Go to file
Janine Liu 89f7263002 Merge branch 'main' into 0.52.2 2025-10-07 16:53:41 -04:00
.concierge update concierge 2022-03-18 10:49:53 -04:00
.github/workflows Use Doxygen 1.13.2 in prod builds. 2025-05-14 21:14:12 +10:00
.vscode Change namespace of Cesium3DTilesContent types. 2023-11-02 22:05:00 +11:00
Cesium3DTiles Merge remote-tracking branch 'origin/main' into vcpkg-pkg 2025-03-03 14:14:23 -05:00
Cesium3DTilesContent Merge remote-tracking branch 'origin/main' into parent-tile-id 2025-07-02 10:29:10 -04:00
Cesium3DTilesReader Formatting. 2025-06-21 21:47:57 +10:00
Cesium3DTilesSelection Merge pull request #1254 from CesiumGS/google-raster-overlay-from-ion 2025-09-30 20:15:02 +10:00
Cesium3DTilesWriter Fix clang-tidy errors 2025-05-02 18:55:44 -04:00
CesiumAsync Add missing doc. 2025-09-27 19:02:06 +10:00
CesiumClientCommon Update new library CMakeLists.txt for the changes in this branch. 2025-03-31 11:30:25 +11:00
CesiumCurl Formatting 2025-07-01 14:17:59 -05:00
CesiumGeometry Formatting 2025-06-17 12:55:14 -05:00
CesiumGeospatial Formatting. 2025-07-31 19:27:46 +10:00
CesiumGltf Merge branch 'main' into accessible-accessor-view 2025-08-04 14:01:33 -04:00
CesiumGltfContent Show all google credits as one credit. 2025-09-26 21:15:00 +10:00
CesiumGltfReader Incorporate SharedAssetDepot changes from asset-endpoint-as-shared-asset 2025-09-23 10:45:10 +10:00
CesiumGltfWriter Added SubtreeWriter::writeSubtreeBinary 2025-05-02 18:09:27 -04:00
CesiumITwinClient clang-tidy 2025-06-04 19:53:30 +10:00
CesiumIonClient Merge remote-tracking branch 'origin/main' into vcpkg-pkg 2025-03-31 11:10:31 +11:00
CesiumJsonReader Initial steps toward Google Map Tiles raster overlay. 2025-09-23 14:11:12 +10:00
CesiumJsonWriter Remove obsolete references to dependency header directories 2025-03-31 17:06:14 +02:00
CesiumNativeTests Add option to disable CesiumCurl library. 2025-07-01 11:00:06 -04:00
CesiumQuantizedMeshTerrain Merge remote-tracking branch 'origin/main' into vcpkg-pkg 2025-01-31 17:02:12 +01:00
CesiumRasterOverlays Don't try to parse a non-object credit 2025-10-07 10:38:22 -04:00
CesiumUtility Merge pull request #1254 from CesiumGS/google-raster-overlay-from-ion 2025-09-30 20:15:02 +10:00
CesiumVectorData Guessing which header clang-tidy likes for std::hash... 2025-09-01 23:08:00 +10:00
cmake Autodetct arm64-linux vs x64-linux 2025-08-08 13:56:23 -04:00
data Minor cleanup. 2024-08-22 20:40:31 +10:00
doc Doc tweaks. 2025-09-16 18:19:58 +10:00
extern Make sure overlay directories exist. 2025-05-14 20:40:50 +10:00
tools Doc and dependency graph updates. 2025-06-04 08:04:46 +10:00
.clang-format Fix includes 2021-10-11 17:28:44 -04:00
.clang-tidy Fix various build problems and merge conflicts. 2025-01-17 13:42:52 +11:00
.editorconfig Add editorconfig and gitattributes. 2021-07-01 16:33:15 +10:00
.gitattributes Better comment. 2021-07-01 16:49:34 +10:00
.gitignore Add helper functions to Tileset 2025-01-22 18:42:24 -05:00
.gitmodules Migrate dependencies to vcpkg 2024-02-24 00:37:37 +00:00
CHANGES.md Merge branch 'main' into 0.52.2 2025-10-07 16:53:41 -04:00
CMakeGraphVizOptions.cmake Switch tests to doctest 2025-01-15 16:58:03 -05:00
CMakeLists.txt Revert vcpkg upgrade 2025-10-01 18:13:12 -04:00
CONTRIBUTING.md Fix warnings from merge with main 2024-12-17 13:43:45 -05:00
LICENSE Add license. That's it. 2021-03-03 15:43:33 +01:00
README.md Merge remote-tracking branch 'origin/main' into url-asset-accessor 2025-06-12 16:00:16 +10:00
ThirdParty.json Remove uriparser, format, etc 2025-01-28 11:57:53 -05:00
cesium-nativeConfig.cmake Install libraries with an EXPORT target 2024-12-05 16:03:52 +01:00
package-lock.json Formatting. 2025-06-04 08:12:47 +10:00
package.json Bump to v0.52.0. 2025-09-30 20:22:33 +10:00
vcpkg-configuration.json Revert vcpkg upgrade 2025-10-01 18:13:12 -04:00
vcpkg.json Disable default features 2025-06-13 12:15:34 -04:00

README.md

Cesium Native

License Build Status Release

📚Documentation - 📒Change Log - 💬Community Forums

📖About

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

  • 3D Tiles runtime streaming
  • lightweight glTF serialization and deserialization
  • high-precision 3D geospatial math types and functions, including support for global-scale WGS84 ellipsoids.
  • support for draping raster overlays from WMS, TMS, WMTS, and other sources over 3D tilesets

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

A high-level Cesium platform architecture with the runtime integrations powered by Cesium Native and streaming content from Cesium ion.

📷Screenshots

Googleplex

The Googleplex in Mountain View, California, USA, visualized with Google Photorealistic 3D Tiles in Cesium for Unity.

New York

Cesium OSM Buildings in Cesium for Unreal with shading from metadata on building height and age.

Copernicus Crater

The Copernicus Crater, visualized with Cesium Moon Terrain in Cesium for Unreal.
 

San Francisco

Cesium for Omniverse scene set in San Francisco, California, USA. Data courtesy Aerometrex.

🗃️Libraries Overview

Library Description
Cesium3DTiles Lightweight 3D Tiles classes.
Cesium3DTilesContent Classes that support loading and converting 3D Tiles tile content.
Cesium3DTilesReader 3D Tiles deserialization, including 3D Tiles extension support.
Cesium3DTilesWriter 3D Tiles serialization, including 3D Tiles extension support.
Cesium3DTilesSelection Runtime streaming, level of detail selection, culling, cache management, and decoding of 3D Tiles.
CesiumAsync Classes for multi-threaded asynchronous tasks.
CesiumClientCommon Functionality shared between ion and iTwin client implementations, primarily shared authentication code.
CesiumCurl Provides the ability to access HTTP and other network resources using libcurl.
CesiumGeometry Common 3D geometry classes; and bounds testing, intersection testing, and spatial indexing algorithms.
CesiumGeospatial 3D geospatial math types and functions for ellipsoids, transforms, projections.
CesiumGltf Lightweight glTF processing and optimization functions.
CesiumGltfContent Classes that support manipulating the content of a glTF.
CesiumGltfReader glTF deserialization / decoding, including glTF extension support (KHR_draco_mesh_compression etc).
CesiumGltfWriter glTF serialization / encoding, including glTF extension support.
CesiumIonClient Functions to access Cesium ion accounts and 3D tilesets using ion's REST API.
CesiumITwinClient Functions to access the Bentley iTwin platform.
CesiumJsonReader Reads JSON from a buffer into statically-typed classes.
CesiumJsonWriter Writes JSON from statically-typed classes into a buffer.
CesiumQuantizedMeshTerrain Classes for accessing terrain in the quantized-mesh-1.0 format.
CesiumRasterOverlays Classes for raster overlays, which allow draping massive 2D textures over a model.
CesiumUtility Utility functions for JSON parsing, URI processing, credits, etc.
CesiumVectorData Classes for loading vector data such as GeoJSON.

📗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:

  • vsgCs integrates Cesium Native with VulkanSceneGraph.
  • osgEarth uses Cesium Native to load 3D Tiles in OpenSceneGraph.
  • 3D Tiles for Godot integrates Cesium Native with the Godot game engine.
  • cesium_3d_native provides a Dart wrapper around Cesium Native, allowing integration with Dart/Flutter applications.

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

Backward Compatibility

Cesium Native currently does not have any measures for deprecation or backwards compatibility. This grants us the mobility needed for rapid, iterative development.

Breaking changes can be made without warning, but they should be well-documented under the Breaking Changes section in CHANGES.md.

[!note] This will change when Cesium Native is officially released as v1.0.0 with a stabilized API.

💻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!