A JSON-based encoding for 3D city models

Specs latest version: v2.0.1 Upgrading to v2.0 🚀

Getting started Web-viewer Validator cjio


Latest news

31 Oct 2024 CityJSONSeq now has its own media type

16 Sep 2024 Large datasets? CityJSONSeq!

06 Nov 2023 CityJSON v2.0 now also an OGC community standard

All the news


What is CityJSON?

CityJSON is a JSON-based encoding for storing 3D city models, also called digital maquettes or digital twins (longer explanation).

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 are available (most as open-source).

We believe that you should use CityJSON because:

  1. its simplicity means adding CityJSON support to your software is easy, many software already support it
  2. you can in one-click convert CityGML-XML files to CityJSON files, and vice versa, with the open-source tool citygml-tools; we even have a tutorial
  3. files are on average 7X more compact than their CityGML-XML equivalent
  4. you can automatically convert to/from CityGML-XML v3.0 files with the excellent citygml-tools
  5. there is a web-viewer where you can drag-and-drop a file
  6. you can easily manipulate files with cjio, you can for instance merge files, remove/filter objects, change the CRS, manage the textures, etc.
  7. you can easily define Extensions to the core model
  8. its development is open on GitHub, it is supported by a vibrant community, and everyone is welcome to contribute

Is it an international standard?

Yes, CityJSON v2.0 is an official standard of the Open Geospatial Consortium (OGC).

document 20-072r5


What’s its relationship to CityGML?

CityJSON is an encoding for a subset of the OGC CityGML data model (version 3.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 v3.0 implementation page.

And because we offer bidirectional conversion between CityJSON and CityGML-XML, using CityJSON means that you are using the CityGML data model.


Contributing to the project

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.


If you use CityJSON in an academic context, please cite this article

Ledoux H, Arroyo Ohori K, Kumar K, Dukai B, Labetski A, Vitalis S (2019). CityJSON: A compact and easy-to-use encoding of the CityGML data model. Open Geospatial Data, Software and Standards, 4:4