CesiumJS Adds Support for Indexed 3D Scene Layers (I3S)
Cesium and Esri collaborated to bring open source support for Indexed 3D Scene Layers (I3S) to CesiumJS. This enables the fusion of a variety of data streams– including 3D Tiles, imagery, and terrain from Cesium ion alongside Esri services– in one app.
I3S is an Open Geospatial Consortium (OGC) Community Standard for large amounts of heterogeneously distributed 3D geographic data including 3D objects, integrated meshes, point features, and point clouds.
The collaboration is part of our longstanding commitment to interoperability in the 3D geospatial ecosystem. CesiumJS has long supported ArcGIS terrain and imagery, allowing users to visualize, combine, share, and analyze their data quickly, regardless of the data’s origin. This integration provides one more way to visualize all your data in one environment, allowing users to combine, visualize, share, and analyze their datasets quickly and efficiently in CesiumJS independent of where the data originates.
“This contribution is an attempt to further increase I3S adoption in the free and open source community,” wrote Tamrat Belayneh, Senior Software Developer at Esri, in a post about the technical details. “We believe this work further advances interoperability goals in the geospatial community.”
Cesium would like to thank the co-authors of the code, Alexandre Jean-Claude of Spiria, Elizabeth Rudkin and Anthony Mirabeau of Presagis, and Tamrat Belayneh of Esri, for their contributions.
The recent contribution for I3S, specifically I3S 3D Object and IntegratedMesh Scene Layers, accomplishes the following:
- Allows for displaying features and mesh attributes associated with an I3S layer
- Leverages the existing CesiumJS 3D Tiles traversal implementation for refinement and LOD replacement
- Transcodes the I3S geometry payload, materials, and texture to glTF for rendering
Users can now visualize 3D Tiles from Cesium ion alongside I3S data from Esri and/or on-premises servers in a single application.
To see an I3S Object Layer on Cesium World Terrain, try the live code example in Sandcastle.