A JSON-based encoding for 3D city models
CityJSON is a JSON-based encoding for storing 3D city models, also called digital maquettes or digital twins.
The aim of CityJSON is to offer a compact and developer-friendly format, so that files can be easily visualised, manipulated, and edited. It was designed with programmers in mind, so that tools and APIs supporting it can be quickly built, and several have been created already.
We believe that you should use CityJSON because:
- its simplicity means that it is already supported by several software
- you can in one-click convert CityGML files to CityJSON files, and vice versa, with the open-source tool citygml-tools; we even have a tutorial
- files are on average 6X more compact than their CityGML equivalent
- there is a web-viewer where you can drag-and-drop a file
- you can easily manipulate files with cjio, you can for instance merge files, remove/filter objects, change the CRS, manage the textures, etc.
- you can easily define Extensions to the core model
- its development is open on GitHub, it is supported by a vibrant community, and everyone is welcome to contribute
While CityJSON itself is not officially standardised, it is an encoding for a subset of the OGC CityGML data model (version 2.0.0), which is an open standardised data model and exchange format (in GML) to store digital 3D models of cities and landscapes. The few features that are not currently supported are either because they are seldom used, or because they would overcomplicate the JSON encoding; see the CityGML compatibility page.
And because we offer bidirectional conversion between CityJSON and CityGML, using CityJSON means that you are using the CityGML data model.
CityJSON was started, and is maintained, by the 3D geoinformation group at TU Delft. Others have since joined its development.
We invite anyone to contribute to the development and improvement of CityJSON, all discussions, issues, and developments are open to everyone on the GitHub repository of CityJSON.