New IJGIS paper on the propagation of error in 3D GIS and in estimation of the solar irradiation

A new paper has been published in IJGIS:

Biljecki, F., Heuvelink, G. B. M., Ledoux, H., and Stoter, J. (2015). Propagation of positional error in 3D GIS: estimation of the solar irradiation of building roofs. International Journal of Geographical Information Science, vol. 29(12), December 2015, pp. 2269-2294.
DOI: 10.1080/13658816.2015.1073292

The paper deals with the following:

  • Extension of the error propagation theory to 3D GIS
  • A method to determine the propagation of error with procedurally generated (synthetic) 3D city models
  • Development of a CityGML compliant software prototype to estimate the insolation of rooftops of buildings
  • Investigation of the propagation of error in the estimation of the solar irradiation

The code (Solar3Dcity) supporting this work can be found on the Github repository of our group.


ep-solar-cover ep-solar-disturbed

j j j

An update on Random3Dcity

It has already been two months since I have released Random3Dcity, an experimental basic procedural modelling engine that natively supports CityGML. It is an experimental research prototype that I have built for my PhD project, but nevertheless it has generated quite some interest in the 3D GIS community.

For instance, it has been featured on the ISPRS datasets webpage and in the ISPRS newsletter of December 2014. Nice promotion.

Another thing worth mentioning is that my friend Marko Čubranić found it interesting and he has decided to 3D print a sample dataset. I guess that goes to history books as the first 3D printed CityGML procedurally generated model 🙂

3D printed CityGML dataset with Ultimaker II. Sample of Random3Dcity.

3D printed CityGML dataset with Ultimaker II. Sample of 144 gridded buildings with a street network generated with Random3Dcity.

The most important news is that I have updated the code so now it works with Python 3 (thanks to Mickaël Brasebin for the suggestions). I have also squished a bug where an lod3MultiSurface could have been composed of multiple gml:MultiSurfaces, which is a violation of the CityGML 2.0 standard.

Bug reports and suggestions are always welcome.

j j j

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


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:


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:


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:


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


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!

j j j

Two papers at the 3D GeoInfo 2014 in Dubai

The 9th International 3DGeoInfo 2014 conference will be held in Dubai, UAE, in November. This is perhaps the central event of the 3D city modelling research community, especially for the part focused on CityGML.

I will be presenting two papers:

  1. Improving the consistency of multi-LOD CityGML datasets by removing redundancy (doi:10.1007/978-3-319-12181-9_1)
    This paper deals with the detection and linking of the geometries (linear rings and polygons) that reoccur within the same LOD and across multiple LODs. The paper describes the possible topological cases (see the figure below), show how to detect these relationships, and how to store them explicitly. A software prototype has been implemented to detect matching features within and across LODs, and to automatically link them by establishing explicit topological relationships (with XLink).

    Cases of topological relationships of rings and polygons.

    Cases of topological relationships of rings and polygons.

  2. Height references of CityGML LOD1 buildings and their influence on applications (doi:10.4233/uuid:09d030b5-67d3-467b-babb-5e5ec10f1b38)
    The topic of this paper are the variants of models within the same LOD. For instance, a building in LOD1 may be represented as a block model with the top at the roof edges, or as another block model which top is at the top of the roof. The paper presents an inventory of such geometric references, and proves with experiments that it is very important to regard them, and to store them in the metadata.
    (Edit: this work was extended and published in the ISPRS Journal of Photogrammetry and Remote Sensing).

    Seven height references of an LOD1 block model.

    Seven height references of an LOD1 block model.

j j j

New conference paper: Error propagation in the computation of volumes in 3D city models with the Monte Carlo method (ISPRS TCII, Toronto)

My first paper dealing with the topic of error propagation in GIS has been accepted, and it will be presented on the ISPRS Technical Commission II Midterm Symposium in Toronto in October 2014.

To the extent of my knowledge, this is the first paper that deals with error propagation in 3D GIS/3D city modelling. The dataset that has been used is produced by my random engine Random3Dcity, which generates random CityGML buildings in multiple representations (LODs), and simulates acquisition errors. The datasets will be released for public use soon. The data is released on the website of the engine.

Two versions of LOD2: one as a ground truth reference, the other one is erroneous (disturbed with 0.4m errors).

Two versions of LOD2: one as a ground truth reference, and the erroneous one (with simulated acquisition positional errors, sampled from a normal distribution; sigma=0.4m). The histogram shows the distribution of volumetric errors between two variants of the erroneous datasets.

Read More

j j j