Random3Dcity – the first CityGML procedural modelling engine and multi-LOD building generator

R3-interior

I am happy to announce the release of Random3Dcity, an open-source experimental CityGML procedural modelling engine that I have developed within my PhD research at the 3D geoinformation group at the Delft University of Technology. It is an experimental software prototype that was created for research purposes, but potential applications are not limited to it.

I have built Random3Dcity entirely from scratch with a custom grammar, and implemented it in Python. The source is available on Github. A prepared collection of sample datasets is available on the datasets page, with extensive technical details, so I invite you to visit it if you are interested in further details and/or interested in the data without the need to run the software.

This is the first procedural modelling engine that generates buildings and other features in CityGML, and one that is designed to do so in multiple levels of detail. The engine generates buildings according to a novel series of 16 refined levels of detail (“Delft LODs”) that I have developed during my research on this topic:

This specification will be detailed soon in a research paper that is currently under submission. The program supports five types of roofs:

R3-roofTypes

The number of unique buildings is virtually unlimited, and the datasets are suited for a number of application domains, from error propagation analysis to the testing of validation and repair software.

Random3Dcity supports interior (see the image in the header), and also vegetation and roads:

R3-roads

Further, the engine generates different geometric references within each LOD (e.g. LOD2.0 with the walls at their actual position and another [photogrammetric] LOD2.0 with the walls as projections from the roof edges), and different geometry (solid vs. b-rep). This results in almost 400 representations of a building. I believe that this is the most thorough CityGML dataset available to date. Solids are assembled by using the surfaces that define the usable volume of the building:

R3-assemblingSolid

The composite rendering below shows an example dataset of 100 buildings in four LODs.

R3-LOD-composite

A research paper is under submission to the journal Computers, Environment, and Urban Systems, describing the engine and the refined LOD specification. I will update this post when the paper becomes available. If you are interested in using the engine, please contact me to give you the reference to cite.

For more information about this project please head to my personal page. Please let me know if you encounter a bug and/or have a suggestion. Note that this is an experimental software under continuous development.

As a bonus, check a video of a sample dataset of 10000 buildings:

Happy CityGML-ing!