Skip to content
Switch branches/tags
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Build Status

CityGML (City Geography Markup Language) is an XML-based schema for the modelling and exchange of georeferenced 3D city and landscape models that is quickly being adopted on an international level.

libcitygml is a small and easy to use open source C++ library for parsing CityGML files in such a way that data can be easily exploited by 3D rendering applications (geometry data are tesselated and optimized for rendering during parsing). For instance, it can be used to develop readers of CityGML files in many 3D based applications (OpenGL, OpenSceneGraph, ...) Most metadata are not lost, they are available through a per-node hashmap.

The project also contains a loader plugin for OpenSceneGraph. It enables OpenSceneGraph (if installed) to read citygml documents for easy rendering and further graphical optimization.

libcitygml was initally developed by the 3D team of BRGM (the French leading public institution involved in the Earth Science field for the sustainable management of natural resources and surface and subsurface risks) for the research project DeepCity3D. It is now conducted as a Github open source project.

It was moved to github due to inactivity of the project on google code (

How to Setup

The project is based on the CMAKE build system and should be pretty straight forward to setup.


The XercesC xml parsing library is the only requirement compiling and using libcitygml. Please use a version > 3.1 compiled with an SDK that is compatible with C++11.

GDAL is required if coordinate transformations should be applied during paring.

OpenSceneGraph is required for building the plugin.

Test Data Attribution

Overview over the testing data within the "data" directory:

Dataset Attribution Source
data/berlin_open_data_sample_data.gml Berlin Partner für Wirtschaft und Technologie GmbH Berlin Partner Download Portal