We built FlatCityBuf, a FlatBuffers-based binary encoding that preserves CityJSON semantics while enabling fast, selective data access. The format provides both spatial and attribute indexing (e.g., by bounding box, feature ID, or height > 10 m) and supports HTTP range requests, so clients can fetch only what they need without downloading the entire file. We encoded the full 3DBAG into a single file to demonstrate this: clients can stream arbitrary subsets directly.
We provide an open-source encoder/decoder, a schema, and CLI tools for CityJSON↔FlatCityBuf conversion. On large datasets (including PLATEAU tiles), FlatCityBuf delivered 8.6×–256× faster queries with 2.1×–6.4× lower memory use. Because it is a static file format with built-in indexing, no application or database server is required—just host it on S3 or similar object storage. The repository includes benchmarks, a demo, and documentation to reproduce the results. If this interests you, please consider
starring the GitHub repo.
This work is part of a research project I am working on—many thanks to my supervisors Hugo Ledoux and Ravi Peters for their guidance.