Procedural City Generation

We developed an application for procedurally generating the commercial districts of cities.

We use Voronoi diagrams with randomly placed control points to generate the main roads and city districts.

These districts are further subdivided using regularly spaced control points to create city blocks and lots.

We generate buildings with a number of randomized parameters including building height, size, window width, height and density. We control average building height with a two dimensional Gaussian function that produces buildings with higher heights in specified downtown regions.

Finally, pre-generated city elements like stop signs and stoplights are added. Our application produces fully explorable cities using OpenGL with realistic layouts and buildings.