honours project

about me

Procedural City Detailing

City-based games are currently very popular, and will likely increase in popularity over the years to come. However, cities contain a huge amount of detail: each building must have appropriately positioned and textured doors and windows for instance. Games companies currently invest a great deal of time creating all of this detail. In addition, because it takes so long to create each building, there is a high cost in honing the city for game play. This means that companies will be inclined to leave less-than-perfect areas in the game.

However, much of this detail is very repetitive, and is ideal material for automation. My honours project looks at the issues associated with producing a system to accomplish this.

My dissertation discusses the system in substantial depth. I also gave a presentation about it.

You can download version 0.1 of the system here: pcd-0.1.tar.gz (1.47Mb). The system is written in Python, so it should run on Windows, Linux, MacOS and anything else that Python runs on. I have only tested is on Linux (Debian Sid) and Windows 2000 though.

I have written the system to be closely integrated with the excellent 3D editor Blender - it can be used as a plugin directly, or it can process files in its own format, for which I have written exporter and importer scripts for Blender.

The system can transform cities like this:

Input Output

[Streetlamps added manually]

Older city renders:

Input file

Detail showing generated features

[streetlamps added manually]