These past few weeks I’ve been trying to do some clever augmented reality stuff with Unity involving putting an object on the floor and ensuring it doesn’t wobble when you walk around it. (Yay for SLAM in mobile devices.)
Although in software like Unreal and Unity you can download or buy models, what do you do when you want something bespoke you have built in GIS? Or how about when you want to use a coordinate system to keep bits of your model the right distance?
Although I work with one of the world’s most prominent CityEngine gurus, I, like many of you, have been put off by the way it sounds and also that it is blatantly referred to as “not a GIS.” How many of you have asked what CityEngine actually is, only to hear the confusing phrase: “It’s a procedural modeling tool”? To me, that sounds like saying that GIS is a geospatial configuration and analysis tool: not very helpful to the masses.
But, here is the thing: Having used it a few times over the last few weeks, I wouldn’t be without it. So, if you read on, I’ll run through what it actually is, what it does, and why it will be useful not only to the GIS people out there but also the architects, technicians, and construction industries, too, to name only a few.
“It’s a procedural modeling tool.”
What is procedural modeling? By definition, it is creating 3D models from a set of rules. This is just as confusing as the term, so let’s look at it another way.
How would you go about creating a 3D city from scratch? It doesn’t have to be real and can have a lot of the generic features. You can do this by using rules; for example, you could say that if certain buildings are x tall, then they should look like this, or you could say that if a certain area were green, then fill it with a mix of trees. By using rules in this way it is easy to quickly build an entire city without having to drag out the editing tools.
Building in this way, by using rules, is what is meant as “procedural modeling,” and it’s widely used by the film industry for creating realistic cities due to how easily convincing areas can be built, destroyed, manipulated, and recreated relatively quickly. To date CityEngine has been used in Cars 2, Total Recall, Big Hero 6, Man of Steel, Independence Day 2, and Zootopia. But don’t think that you can just open it up and create your own film; there is a fair bit of studio work that goes into turning the virtual city into what you see on screen. That isn’t to say you can’t, and that is what makes this so great.
Let’s have a think about the film Zootopia. It centers around a city of animals from the smallest to the largest, each with their own style of habitat and environment. Modeling this in a conventional way would be extremely time-consuming, but using this rule-based system you can easily apply rules to govern what species live near another or how they interact. Yes, it is a tool for building cities, but it provides the means to bring them to life and give them validity.
It’s Not All Urban Design
Although this is a tool designed for urban design and planners, there is a lot of other functionality that’s overlooked. For example, those cities you see in the images above have coordinate systems. From a GIS point of view, this means that I can build a pretend city quickly using a local coordinate system and then export it over to my 3D GIS, or I can create a real town based on the footprints and very quickly populate it using a generic building type and export it over to the GIS.
This brings me to the next interesting piece of functionality that nobody knows about: the sheer amount of modeling formats you can interchange with. Sure, there is software that allows you to convert between formats, but I’ve not seen one that uses File Geodatabase or 3D Shapefile and converts it to Collada or FBX, ready for use in Unity, Unreal, or even Blender. Here is a list of formats that CityEngine consumes:
- .dae
- .dxf
- .fbx
- .gdb
- .kml
- .kmz
- .obj
- .osm (import only)
- .vob (export only)
- .abc (export only
- .rib (export only)
- Unreal engine (export only)
- .3ws (CityEngine webscene)
- .3VR (standard VR format – export only)
Unlike exporting these data from a GIS, you can specify whether you want to retain materials and textures, whether you need to write the normals or even triangulate the meshes; the sheer amount of functionality with the 3D model data is akin to a gaming software. I can certainly see this being useful for rendering captured data or bringing information to life, also as an easy way of creating virtual-reality environments whereby you can simply import your data and then export (after a little tidying) to VR.
Another nice little touch that I can imagine being useful to architects and modelers is the “Facade wizard.” It’s not widely known, but this tool allows you to quickly apply facades to model objects. Another is the “Normals” tools: how many times have you been building something in Sketchup, ArcGIS Pro, Blender, or other, only to find that when you are drawing it up you see the faces are inside out or that it looks shaded in the wrong places? The “Normals” function within CityEngine make this so much easier: you can select faces or whole cities and click on “reverse normals,” and it simply rectifies them. Furthermore, it is clear which are reversed and which are clean.
A Gateway to GIS
Esri sells CityEngine as an urban planning tool but in my mind there is a lot more to be found here. As a casual modeler, building geospatial cities, towns, and other areas, I’ve found it invaluable in getting the models tidied and visually correct, ready to be imported into the next software—allowing me to use one set of models for multiple purposes, whether it is GIS, gaming, VR, AR, or visualization.
Don’t let the term “CityEngine” blind you. You can work with a single building, a pool of cars, or whatever vector models you wish, though it does have the capability of coping with cities. Yes, it is “procedural,” so you can learn a little CGA code (or copy and paste it) and build large environments from very little data. But you can also use this software as a translator and modeling tool between your vector geospatial data and your other work. A phrase that I have heard recently is that for urban designers and modelers, this has become a gateway to GIS.
…. We just need to convince Esri there is more to this than urban planning!
Nick D