Product Review: CityEngine 2010
This past August, during SIGGRAPH, I had the chance to see Procedural's CityEngine 2010 (and also got a taste of this utterly delicious spicy Swiss chocolate). The new version of CityEngine had some very exciting features oriented to users who are not very fond of writing lines of code.
I'd say the biggest change is the node-based workflow for building creation. Previously, the only way you had to create your buildings was to use the CGA scripting. While it was an effective way, since the scripting language is very open, it made it difficult for people with little or no scripting language, or programming skills, to use. CityEngine 2010 adds the node-based workflow to help those users create their buildings.
This new workflow is not a replacement for CGA scripting, but rather an addition. You can choose to work with either of them, and even switch from one to the other in real-time. For example, you can create different rules inside your graph, and then go to the code and edit values, change names and such, and then go back to the graph. What's cool about this workflow is that changes made in either of these update automatically on the other, without user intervention.
You have a lot of function nodes to choose from, so really, mastering this method may take you some time. However, there's a logic behind the whole workflow, so specific nodes are used in specific situations (obviously, you wouldn't connect a roof-related node to a door). Since everything you can do with nodes can be done with standard CGA scripting, this means the functions are the same. This also means that you can find help on specific functions in the CGA shape grammar reference.
One of the functions you may find especially useful is the asset instancing function. Maybe you'd want to populate a city, or a block, with pre-made buildings, or maybe you'd want to randomize textures for a building (very useful for windows). This can be done using a function inside your node graph.
Another big addition is the ability to interactively create and modify streets. You can now draw streets lines directly in the viewport, and they will be automatically connected to your street network. If you close a "loop," lots will be added automatically.
You can also transform street nodes. If you grab a street node, you can move it around, and the lots will update to fit the new shape. Grab more than one node, and you can also do rotations and scaling. Everything from street drawing to transformation can be done in real time, so you see the results as you're working.
Different buildings will be located at different distances from camera, so you can control the level of detail in each building. Level of detail can be dynamic as well, so you can use a low resolution model when it's seen from a distance, and a very high resolution model for close ups (the image below shows an example of a very high resolution model. It even has pieces of furniture in it).
CityEngine 2010 also includes the Facade Wizard. This wizard allows the user to create an asset in a way similar to sketching or drawing on top of an image. You can simply import a building image, draw the different sections of the building, add subdivisions, extrusions, and generate your own rules based on that. This means you can store these rules (and the associated node graph), and apply them to other buildings of your city.
When you're ready to render your city, you can export it to any major application. CityEngine 2010 supports industry standard formats such as FBX and COLLADA. You can also export your city to .OBJ, Shape, Open Street Map, as well as Mentalray and Renderman.
Work has been made to use procedurally generated cities made with CityEngine to render them in Mental Images RealityServer. RealityServer is a server-side web application that renders scenes in realtime using the power of Nvidia GPUs. You can navigate a city in realtime using your web browser, and the different frames are sent to you in real time as they are rendered. More about that can be found on this page.
I do think CityEngine could use a "presentation mode" (like the one available in Autodesk Mudbox) to preview your city in full quality, without having to send the assets to a host application for rendering. This feature could save artists or studios a lot of time if they have to quickly show a high-quality image to their client, since they wouldn't need to spend that extra time exporting and setting up an external render.
With the introduction of CityEngine Indie ($495), a new market opportunity opens, as some people or studios may find the price tag on the PRO version steep. CityEngine Indie offers node-locked licensing only (no network licensing), and does not offer advanced 3D format support (such as FBX, COLLADA, Mentalray or Renderman). It does support .OBJ and .3DS formats, though, so you can use those to exchange data between CityEngine Indie and any other application.
CityEngine 2010 makes it accessible to people with little or no programming skill to create their entire cities using the node-based workflow. The addition of the Facade Wizard is also a killer feature since it will allow users to pretty much sketch their rules. However, since CityEngine still offers the script-based workflow it's a perfect blend of two worlds, so users who are very keen coders can still work just like they did in previous versions. CityEngine 2010 is a sure winner.
For more information, 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.