Home

Awesome

Cesium Native

License Build Status Release

📚<a href="https://cesium.com/learn/cesium-native/ref-doc/">Documentation</a> - 📒<a href="CHANGES.md">Change Log</a> - 💬<a href="https://community.cesium.com/">Community Forums</a>

📖About

Cesium Native is a set of C++ libraries for 3D geospatial, including:

Cesium Native powers Cesium's runtime integrations for Cesium for Unreal, Cesium for Unity, Cesium for Omniverse, and Cesium for O3DE. Cesium Native is the foundational layer for any 3D geospatial software, especially those that want to stream 3D Tiles. See Projects Using Cesium Native for a list of projects currently integrating with Cesium Native.

Cesium Platform and Ecosystem

<p align="center"><em>A high-level Cesium platform architecture with the runtime integrations powered by Cesium Native and streaming content from Cesium ion.</em></p>

📷Screenshots

<table> <tbody> <tr> <td> <!--! \if DOXYGEN_EXCLUDE --> <img src="doc/img/screenshot-googleplex.jpg" alt="Googleplex" /> <!--! \endif --> <!--! \image html screenshot-googleplex.jpg --> <p align="center"><sub>The Googleplex in Mountain View, California, USA, visualized with Google Photorealistic 3D Tiles in Cesium for Unity.</sub></p> </td> <td> <!--! \if DOXYGEN_EXCLUDE --> <img src="doc/img/screenshot-ny-metadata.jpg" alt="New York" /> <!--! \endif --> <!--! \image html screenshot-ny-metadata.jpg --> <p align="center"><sub>Cesium OSM Buildings in Cesium for Unreal with shading from metadata on building height and age.</sub></p> </td> </tr> <tr> <td> <!--! \if DOXYGEN_EXCLUDE --> <img src="doc/img/screenshot-copernicus-crater.jpg" alt="Copernicus Crater" /> <!--! \endif --> <!--! \image html screenshot-copernicus-crater.jpg --> <p align="center"><sub>The Copernicus Crater, visualized with Cesium Moon Terrain in Cesium for Unreal.<br/>&nbsp;<!-- fake third line to align the two images and captions --></sub></p> </td> <td> <!--! \if DOXYGEN_EXCLUDE --> <img src="doc/img/screenshot-san-francisco.jpg" alt="San Francisco" /> <!--! \endif --> <!--! \image html screenshot-san-francisco.jpg --> <p align="center"><sub>Cesium for Omniverse scene set in San Francisco, California, USA. Data courtesy Aerometrex.</sub></p> </td> </tr> </tbody> </table>

🗃️Libraries Overview

LibraryDescription
Cesium3DTilesLightweight 3D Tiles classes.
Cesium3DTilesContentClasses that support loading and converting 3D Tiles tile content.
Cesium3DTilesReader3D Tiles deserialization, including 3D Tiles extension support.
Cesium3DTilesWriter3D Tiles serialization, including 3D Tiles extension support.
Cesium3DTilesSelectionRuntime streaming, level of detail selection, culling, cache management, and decoding of 3D Tiles.
CesiumAsyncClasses for multi-threaded asynchronous tasks.
CesiumGeometryCommon 3D geometry classes; and bounds testing, intersection testing, and spatial indexing algorithms.
CesiumGeospatial3D geospatial math types and functions for ellipsoids, transforms, projections.
CesiumGltfLightweight glTF processing and optimization functions.
CesiumGltfContentClasses that support manipulating the content of a glTF.
CesiumGltfReaderglTF deserialization / decoding, including glTF extension support (KHR_draco_mesh_compression etc).
CesiumGltfWriterglTF serialization / encoding, including glTF extension support.
CesiumIonClientFunctions to access Cesium ion accounts and 3D tilesets using ion's REST API.
CesiumJsonReaderReads JSON from a buffer into statically-typed classes.
CesiumJsonWriterWrites JSON from statically-typed classes into a buffer.
CesiumQuantizedMeshTerrainClasses for accessing terrain in the quantized-mesh-1.0 format.
CesiumRasterOverlaysClasses for raster overlays, which allow draping massive 2D textures over a model.
CesiumUtilityUtility functions for JSON parsing, URI processing, credits, etc.

📗License

Apache 2.0. Cesium Native is free for both commercial and non-commercial use.

🔧Projects Using Cesium Native

The following official Cesium integrations are built on top of Cesium Native:

In addition, Cesium Native has been used by the community to build projects including:

If you have a project that integrates with Cesium Native that isn't on this list yet, please let us know!

💻Developing with Cesium Native

See the Developer Setup Guide to learn how to set up a development environment with Cesium Native and begin developing with it.

⭐Contributing

Are you interested in contributing to Cesium Native's development? Contributions can come in many forms, from answering questions to creating issues and pull requests. See our Contribution Guide to find out how to get started!