Wednesday, September 7, 2011

Coding Emergence

I've been reading about the work of Swiss programmer and 3D artist Pascal Mueller, who has for the last several years been developing and refining a computer program capable of generating cities of realistic form and complexity.  As the paper introducing the program describes:

"Modeling and visualization of man-made systems such as large cities is a great challenge for computer graphics. Cities are systems of high functional and visual complexity. They reflect the historical, cultural, economic and social changes over time in every aspect in which they are seen. Examining pictures of a large-scale city such as New York reveals a fantastic diversity of street patterns, buildings, forms and textures. The modeling and visualization of large-area cities using computers has become feasible with the large memory, processing and graphics power of today's hardware.

We present a system called CityEngine which is capable of modeling a complete city using a comparatively small set of statistical
and geographical input data and is highly controllable by the user."
The potential applications for a procedural creation range from research and educational purposes such as urban planning and creation of virtual environments to simulation.  Especially the entertainment market such as the movie and game industry have a high demand for the quick creation of complex environments in their applications. ...

The results of one such modeling exercise are shown at right, where a Pompeii lookalike was generated using a few basic inputs -- essentially, a form-based code with architectural guidelines -- derived from study of the archaeological site.

Most interesting to me is CityEngine's process for creating street networks, which Mueller divides into four separate categories: the "basic," or organic, street network, the grid, the radial pattern, and a pattern designed to let streets follow the route of least elevation on hilly terrain (p. 304).  From the point of view of the programmer, the organic network is simultaneously the simplest and the most complex of the patterns:

"This [the "basic"] is the simplest possible rule. There is no superimposed pattern and all roads follow population density. This may also be referred to as the natural growth of a transportation network. Mainly older parts of cities show such patterns. All other rules are based on restrictions of this rule by narrowing the choices of branch angles and road segment length."

The program therefore provides a glimpse at a possible way to mathematically recreate, or at least imitate, the process of organic street growth.  Missing from this initial model is the element of time, and a way to show the evolution of a network, but this is something Mueller has since worked on heavily, as can be seen at this link.  The paper describing the methodology is here.  Remarkably, this appears to be one of the first attempts to realistically model the process of incremental, emergent urban growth by computer simulation (and no, SimCity does not quite count).  To read more, Mueller has most of his articles linked on his website -- this is definitely a work in progress and something to follow.


  1. The old substrate screensaver on debian/ubuntu did this kind of street layout planning:

    We loved it, as it made its little towns and villages. And such a simple rule too!

  2. Have you seen the study that, by creating a map of Tokyo on an agar dish and placing a food source at every major train node, got a fungus to recreate the Tokyo rail network? Because what you're describing sounds very similar...

  3. Alon, yes, I remember that. Also, university of washington (UW) had a project Urbansim which was attempting to do this kind of predictive computer simulation with real historical city data.