In the early days of Cesium, I was able to keep track of all the apps being built with Cesium. As the community grew, I could no longer keep up with each project and interact with everyone individually. It’s a sad but perhaps necessary milestone as a project becomes widely adopted.
3D Tiles has now reached the same point where I can’t track all the activity. This blog post is a snapshot of the current happenings — as best as I know them — and near-term plans.
- Spec updates
- OGC updates
- Cesium Composer
- 3D Tiles community adoptions
- How to get involved
We continue to do all the design discussions and updates in public on GitHub in collaboration with the community.
The 1.0 spec is largely complete. The remaining issues are small enhancements or spec cleanup, with the two bigger issues being explicit tiling schemes and deciding if vector tiles should be included in 1.0.
We’re going to do a Cesium community review of the spec in the next few months, very likely in late April, to gather any last-minute feedback before finalizing 1.0.
3D Tiles is in the OGC Community Standard process. We’ll start the final review and vote to finish the process after the Cesium community review period. In the meantime, I have been doing various briefings, including one for the 3DPS SWG at the OGC TC meeting last week.
The 3D Tiles engine in Cesium is in really good shape; it is in the 3d-tiles branch, which has become “the new master” given how widely used it is. The implementation has been publicly code reviewed, and has full unit tests, reference docs, and a ton of optimizations, everything from fancy visibility tests to texture compression to mesh quantization.
We’ll do a final code review at the same time as the Cesium community review of the spec.
We are developing several 3D tiling pipelines to convert datasets into 3D Tiles as part of our upcoming Composer product on cesium.com. These multiprocess pipelines tile massive geometry and texture datasets, including
- Photogrammetry models
- CAD models, exteriors and interiors
- KML/COLLADA, CityGML, and OSM 3D building datasets
- LAS/LAZ point clouds
We are also working with several users on direct tiling pipelines for their datasets. Feel free to email me if you have a dataset you would like us to tile.
Photogrammetry model of AGI headquarters, home of the Cesium team.
See Streaming 3D Capture Data using 3D Tiles for more.
San Miguel Hacienda interior model by Guillermo M. Leal Llaguno.
See Visualizing Massive Models using 3D Tiles for more.
3 million structures with roof geometries and overhangs by swisstopo.
135,000 buildings with per-building attributes fromCyberCity3D, one of the first 3D Tiles users.
1.1 million buildings in NYC converted from CityGML or OpenStreetMap. Give it a try.
glTF is an open standard for the efficient transmission of 3D models by Khronos, the same consortium behind WebGL, Vulkan, and COLLADA. The Cesium team has collaborated on glTF since its early days and I serve as the coeditor for the glTF spec.
I often describe 3D Tiles as a spatial data structure with glTF nodes and declarative styling based on metadata.
3D Tiles and glTF. For more on glTF, see www.khronos.org/gltf.
All this adoption is creating innovations that benefit 3D Tiles, both by leaning on the glTF spec and the broad open-source software ecosystem. Some examples:
- Google is adding an [extension](https://github.com/KhronosGroup/glTF/pull/874) for mesh and point cloud compression.
- Binomial plans to add an extension for [universal texture compression](https:/docs.google.com/presentation/d/1-JPeMsQVkkF4szX99OMKFH4DzXtSibVSSlwjmt0fzPs/edit#slide=id.p).
- glTF 2.0 includes PBR (Physically-Based Rendering) materials for realistic visual quality.
It’s been incredible to facilitate the growth of the 3D Tiles community. Users are creating a complete 3D Tiles ecosystem: exporters, converters, renderers, and validation tools!
Here are some examples of what folks are building.
ContextCapture exports 3D Tiles of reality meshes created from digital photography and scanning devices. The Penn State model shown below was created from 2,500 photos (100+ GB raw data) taken from a small plane at 1,000 ft during a 90-minute flight. The resolution is approximately 1 inch!
MicroStation is used to create highly detailed infrastructure engineering models. There is work-in-progress to export these models to 3D Tiles using batched (b3dm) and instanced (i3dm) models as well as point clouds (pnts).
There is also work on rendering 3D Tiles inside MicroStation. Seeing 3D Tiles renderers other than Cesium is really exciting to us and fantastic for the 3D Tiles ecosystem.
Cityzenith has a 3D Tiles pipeline for 3D buildings as part of their City Information Modeling tool.
Data61 converts massive point clouds to 3D Tiles. The image of Queanbeyan, New South Wales, Australia below is a 130 GB point cloud with 4-8 points per meter.
Entwine has 3D Tiles converters for point clouds. The 4.7 billion points from the USGS scan of NYC below was tiled in two hours using Amazon’s 30 core machine.
Fraunhofer IGD has a 3D Tiles pipeline for windpark planning and uses 3D Tiles in GeoRocket with OGC 3D Portrayal Service (3DPS).
GameSim Conform exports 3D Tiles for urban planning and civil engineering projects.
Peaxy helps industrial enterprises aggregate and visualize massive unstructured data assets like geometry, telemetry and simulation. CADTiler is an application that works with Peaxy’s Aureum data access platform to convert CAD models to 3D Tiles.
FME can export 3D Tiles (b3dm) from a variety of formats, and import/export 3D Tiles point clouds (pnts).
SiteSee has work-in-progress for a 3D Tiles renderer in three.js for visualizing photogrammetry models of cell towers.
virtualcitySYSTEMS has 3D Tiles converters for CityGML and point clouds used in their city planning solutions.
Vricon exports 3D Tiles of high-resolution Digital Terrain Models (DTM) and Digital Surface Models (DSM) derived from satellite imagery.
The 3D Tiles Tools project is a joint effort by the Cesium team and University of Pennsylvania students to provide tools for manipulating tilesets, validating tiles, and generating tilesets for testing.
Collaborating with the community is one of our favorite things to do. Work with us!
Here’s a few ways to get started:
- Check out the [3D Tiles spec](https://github.com/CesiumGS/3d-tiles/blob/master/README.md) on GitHub, and open issues with your feedback.
- Let us know if you implement something using 3D Tiles. We'll help spread the word!
- Send me a note if you have a dataset you would like us to tile: [email@example.com](mailto:firstname.lastname@example.org).