When I first saw renders of models produced with Procedural’s CityEngine I was really impressed. However with prices in the Company or Freelance Professional range I thought that, like other high-end CG software, I’d have to look longingly on knowing that only Pros and pirates would ever get to play with it. CityEngine Indie is still expensive but it put City Engine within reach of hobbyists like me.
CityEngine is a procedural modelling programme for the automatic generation of cityscapes. Using one of the example projects supplied or the CityEngine wizard you can generate a textured city model in a dozen clicks. You can then export it to 3DS, Obj or Vue Vob format to load into your preferred rendering application.
Moving beyond the examples and the wizard the first thing most users are going to want to do is to create a city of their own. The model is built based on a number of elements you can control. The street network and associated lots controls the layout of the city. Obstacle, attribute and height maps are used to shape the model. The allocated Computer Generated Architecture (CGA) file tells CityEngine how to create and texture buildings, streets and other elements of the model.
The first obvious step down that route is with the roads themselves. You can hand draw a road network in CityEngine with its tools. Street networks can also be imported from AutoCAD DXF (dxf), Esri Shapefile (shp) or OpenStreetMaps (osm) files. Depending on the source you’ll probably need to spend some time tidying up some of the roads and junctions by hand. Fortunately, while that can take some time the tools, for doing that are easy to use and quick to master.
CityEngine also has a road generation tool to expand on your street network. For a fictional cityscape I found this a great time saver. Simply fill in the main routes and then let city engine create the fine detail of side streets and back ways. You can fine tune the sort of network it builds – a great help in creating the layout you’re looking for. Once the road network has been created it will generate the lots inside them. You can allocate a CGA file to all or part of your network and then have CityEngine generate the models from it.
After generation the city isn’t set in stone. You can edit the street layout using the same tools as you used to create it. Redrawing streets reorganises the lots and the buildings are regenerated to fit. You can see this happening live in the display as you drag streets around – a really fun and useful feature. If you don’t like a particular building you can select the lot and have it generate a new seed number to create a different building randomly or enter values for the attributes of the building to manually shape it.
Obstacle maps can be used to prevent the generation of streets or buildings in inappropriate areas. This is particularly useful for stopping buildings or random streets appearing in the middle of rivers, parks or where you want to add models built in other 3D software. You can also set up attribute maps that control values used to generate the models.
Attribute maps, which simply colour channels in image files, to control the types of buildings in particular areas or to control attributes of a building. So you can use these to create zones in your city of industrial, residential, commercial or park land. By controlling attributes you could set limits on buildings heights, specify level of detail or the texture sets to be used depending on the attributes used by the CGA file that describes the buildings in your model.
The textures generated are simple UV bit maps. There is currently no support for separate textures for different parts of a surface or for separate layers for bump, luminosity, reflection or other effects. Although the resulting models will look ok for the best results (as with any imported model in any 3D Software) the results can be dramatically improved by enhancing or replacing the textures inside your rendering package of choice.
Another quibble with the exported model is the lack of options for exporting the heightmap based terrain the model in a way that makes them easy to align to the city model. Although it isn’t impossible to do this by trial and error or by adding markers into the model at the terrain’s corners this process could be easier to achieve.
The façade engine is a beta feature. I have managed to achieve reasonable results with the tutorial facade but I found a couple of evenings working with this feature with my own photograph to be quite frustrating resulting in poor results.
Computer Generated Architecture is really at the heart of what CityEngine does. This is the file that tells it how to procedurally construct the settlement for you. CityEngine provides two ways to work with these either as text or as a node network. The node network will be familiar to users of other software where similar tools are used for creating procedural textures or in XFrog plants. By adding and connecting nodes rules for producing simple or complex models can be defines. Under the hood the text file defining your city is being written for you.
The node based approach will appeal to a lot of users who are scared of programming. Personally since I’ve been programming for thirty years I’m quite happy to dig into a new programming language so I’ve spent a lot of my time digging into the text version of CGA. There are tools to help with making working that way easier too including grammar checking as you work and code highlighting.
Whichever way you work the underlying rules are doing similar things – CGA rules split up, align, move, scale, rotate, extrude, colour and apply textures to shapes. There are also rules that can add various gable, hip, pyramid or shelf roofs to a building. They can also pull in external models to add them into a scene – so, for example, you can models street furniture in another programme and them add them automatically to the city.
Unlike traditional modelling where you work with splines, faces or other representations of a single model what you are doing in CityEngine when you work with CGA file is teach the software how to build a whole variety of models for you. By including random elements the models can have variety so you don’t end up with a city of identical structures but something far more akin to the real world.
There are a variety of sample CGA files that are available to download covering modern, historical and science fiction cityscape production. Procedural have also provided an extensive set of video tutorials and documentation to support the software and to really help you get into understanding CGA.
Now I don’t think CGA will be for everyone. When I first started working with 3D if you wanted to include a person in a model you had to model and texture the meshes for them from scratch. Since then you’ve been able to use software like Poser to work with figures or buy premade meshes. Over time I’d expect the same sort of ecosystem of hobbyists selling and giving away the CGA files to emerge as has happened with Vue, Poser and pretty much every other kind of 3D software I use.
On paper CityEngine Indie’s major differences from the CityEngine Pro and CityEngine SE are minor. The Indie versions licence agreements limits its use to those with a turnover of less than $200,000 in a financial year. Indie also lacks python features – since the versions that do have python are out of my price range I’ve not looked at what it can do with python in detail but most of those features seem to relate to enhancing export and workflow. Only CityEngine Pro offers a floating network licence which is unlikely to be an issue for most hobbyists or small studios. The last major difference is the limited technical support.
There are no technical support options for CityEngine Indie. Now that may not seem like a big issue but let’s be absolutely clear what that means – other than service releases of the version you buy you will not get any future updates. They do provide a window of a few weeks for getting the next release if you buy a version just before another one comes out. Based on past release history of three releases a year if you really have to have each of the three annual releases you should look at CityEngine Pro and CityEngine SE with a support contract.
Just because you don’t have a technical support package doesn’t mean Procedural will leave you out in the cold. I had a minor issue with my installation that Procedural’s technical support were really helpful in resolving. They also provide forums where their staff provide excellent answers on how to use the software.
My only other concern regards CityEngine’s stability. I’m running on a 32bit system and, when working with larger models or models with lots of detail, I’ve had a few crashes and times when the CityEngine’s performance has become sluggish. As with all 3D software I’ve ever used users have to understand there systems limit and work out how that affects the scale and detail of the model they produce.
Hopefully future releases will see a more usable façade engine, more advanced texture options and easier export for matching terrains in other packages.
Overall I’d have to say I think CityEngine Indie is a brilliant piece of software and one of my best buys of recent years. I’ve a few quibbles and features I’d like to see but none of them are really serious problems. The features included for the price are amazing. If you want to create scenes of human habitation, from a simple village to a town to a full cityscape, CityEngine Indie is the ideal tool.