In December 2008, I had the chance to review CityEngine, a procedural city generator by Procedural Inc. Last year, they released CityEngine 2009, as well as dot-versions of the application. For this review, I’m using version 2009.3 (released late last year).
For those who don’t know, CityEngine is a software application that facilitates the creation of large-scale cities, allowing the user to create them procedurally (meaning that the user sets different sets of rules and the city is created according to those rules). These rules control size and construction of buildings, streets, elevation, and even city areas. Cities created in CityEngine can be exported to any 3D application, thanks to the variety of exporters available.
The CityEngine interface is made up of different “tabs.” This allows you to rearrange the interface to fit your needs, close and minimize tabs, and also detach each tab as a floating window. This is especially useful if you are on a dual monitor setup, as you can detach the viewport and maximize it on one screen while you keep your editors on the other one.
Now in CityEngine, you can also create your cities using instanced geometry. Sometimes you will already have your buildings library and you need to create a city with them; or maybe you need some sort of stylized buildings for your city, and creating a city with instanced geometry may just be easier than editing the procedural modeling script.
CityEngine includes City Wizard, allowing you to create a complete city with just a few mouse clicks. When you run the City Wizard, you can select elevation and obstacle maps, roads layout, type of city, and whether you want your city textured or just as a gray model. It would be a killer feature if the City Wizard would let you create a city using instanced geometry, as they are created using the CGA scripting language.
New to CityEngine is the Immediate Mode. This feature allows you to change the parameters of your buildings in real-time, using parameter sliders found under the Inspector tab. It’s a very nice addition since you no longer need to rebuild your object after you’ve changed something in your code.
These sliders display attributes depending on the building type you’ve selected, meaning that some parameters will only be available in certain buildings. You can control anything from the size of the building to texture type, in real-time.
Street generation is very well featured. Just like in the previous version, you can create your streets using the Open Street Map format, drawing your streets, and importing the shapes. You can add small features to the streets, such as street lamps as well. Lamps and other accessories can be added as imported assets and are placed on your sidewalks procedurally using CGA scripting.
If you own a 3D mouse, you can use it to navigate your city. I’ve been using my SpacePilot Pro to move my camera around, and it’s extremely responsive and works just as I’d expect. You can also map your buttons to commands you use. On the other hand, CityEngine also allows you to use navigation modes based on your favorite 3D app (such as Maya or Max).
As I said before, CityEngine includes different ways of exporting created cities to 3D applications or even game engines. Among others, you can export to both FBX and COLLADA formats, meaning you can export to virtually any 3D app out there.
Exporting my city to Maya was a breeze using the included FBX exporter. Everything worked as expected, even texturing.
I was interested to see how CityEngine would exchange data with Unreal Engine 3. Unfortunately, you need to use Python scripting, which I don’t know, and write your own routine to import and position your meshes inside Unreal Engine. The COLLADA format will get your meshes inside Unreal Engine, but they are imported as separate building parts, which you’d have to assemble yourself. On the other hand, even if it’s extremely simple to use exchange data between CityEngine and Maya in FBX format, that same file didn’t work with UE3, meaning there must be a problem with the UE3 FBX importer.
Other exporters are .OBJ, Mentalray, Renderman and a Massive Software exporter (for those who don’t know, Massive is the software used to create the 10,000 strong armies you saw in the Lord of the Rings movies).
CityEngine comes in different versions: SE, Pro, and EDU. You can see the chart below listing the features in each version, as well as the pricing. The price range may be out of reach to hobbyists, but I don’t really think the program is aimed to them.
If you find yourself needing to create large scale cities for film, game development or any other type of architectural projects, CityEngine is an application you should really consider adding to your toolset.
For more information on CityEngine, please visit the Procedural website.
Sergio Aris Rosa [nemirc], is Sr. Staff Writer for the Renderosity Front Page News. Sergio discusses on computer graphics software, animation techniques, and technology. He also hosts interviews with professionals in the animation and cinematography fields. You can follow him on Twitter, and if you want to see what he's up to you can visit his blog.
February 22, 2010
Please note: If you find the color of the text hard to read, please click on "Printer-friendly" and black text will appear on a white background.