Simulation / Modeling / Design

How to Use 3D Geospatial Data for Immersive Environments with Cesium

This post was updated January 16, 2024.

Recent years have witnessed a massive increase in the volume of 3D geospatial data being generated. This data provides rich real-world environmental and contextual information, spatial relationships, and real-time monitoring capabilities for industrial applications. It can enhance the realism, accuracy, and effectiveness of simulations across various domains, leading to more meaningful and reliable results. Yet processing 3D data to make it available for use can be a challenging task.

Cesium is the open platform for software applications designed to unleash the power of 3D data. To process and disseminate heterogenous 3D geospatial data to geospatial applications and runtime engines across industries, Cesium created 3D Tiles, an open standard for streaming and rendering massive, heterogeneous datasets. 3D Tiles are an optimized format designed to support the most demanding analytics and large-scale simulations.

Cesium is known for their longtime dedication to creating and maintaining open standards in 3D geospatial and computer graphics through organizations such as the Open Geospatial Consortium, The Khronos Group, and the Metaverse Standards Forum. One of the first general members of the Alliance for OpenUSD, they are building interoperability and compatibility with Universal Scene Description (OpenUSD) and their software through NVIDIA Omniverse.

Omniverse is a modular development platform of APIs and microservices for building 3D applications and services powered by OpenUSD and NVIDIA RTX.

Cesium’s open-source Omniverse extension, Cesium for Omniverse, delivers 3D Tiles and real-world digital twins at global scale with remarkable speed and quality. The extension enables users to create real-world-ready models from any source of 3D geospatial content at rapid speeds and high accuracy using OpenUSD.

With Cesium for Omniverse, you can jump-start 3D geospatial application development with tiling pipelines for streaming your own content. You can also enhance your 3D content by incorporating real-world context from popular 3D and photogrammetry applications from Autodesk, Bentley, Pix4D, and Matterport.

For example, you can integrate a Bentley iTwin model of an iron ore mining facility with Cesium so project planners can visualize and analyze the facility in its precise geospatial context. With Cesium for Omniverse, project planners can use a digital twin of the facility to share plans and potential impacts with local utilities, engineers, and residents, accounting for location-specific details such as weather and lighting.

A digital twin of an iron ore mining facility modeled in Cesium for Omniverse with precise geospatial context.
Figure 1. Bentley’s iTwin model of an iron ore mining facility in South Africa visualized in its precise geospatial context

Geospatial data for architecture, engineering, construction, and operations

In architecture, engineering, construction, and operations (AECO) and urban planning, geospatial data is crucial for understanding the physical and environmental characteristics of a location. 3D geospatial data can be integrated into building information modeling (BIM) systems, enabling architects and engineers to create accurate 3D models of buildings and infrastructure.

An easy way to get started leveraging 3D geospatial data for AECO workflows is with the Omniverse AECO Demo Pack. You can experiment integrating an architectural design model within an accurate geospatial context using the Demo Pack. For a limited time, you can design a building in San Francisco with an accurate 2-cm-resolution photogrammetry model of the city courtesy of Aerometrex streamed into the stage using Cesium for Omniverse.

Download and try the AECO Demo Pack in Omniverse.

3D render of an office building in San Francisco that can be modified as part of the demo pack.
Figure 2. Use the Omniverse AECO Demo Pack to design a structure in downtown San Francisco

New opportunities for 3D Tiles with OpenUSD

Just as Cesium is building the 3D geospatial ecosystem through openness and interoperability with 3D Tiles, NVIDIA is enabling an open and collaborative industrial metaverse built on OpenUSD. Originally developed by Pixar, OpenUSD is an open and extensible ecosystem for describing, composing, simulating, and collaborating within 3D worlds.

By connecting 3D Tiles to the OpenUSD ecosystem, Cesium is opening new possibilities for customization and integration of 3D Tiles into metaverse applications built by developers across global industries. For example, popular AECO tools can leverage OpenUSD to add 3D geospatial context streamed by Cesium to enable powerful workflows.

Creating a full-scale virtual globe

To further interoperate with USD, developers at Cesium created a custom schema in USD to support their full-scale virtual globe (Figure 3).

Cesium’s virtual globe is a digital representation of the earth’s surface based on the World Geodetic System 1984 (WGS84) coordinate system. It encompasses the earth’s terrain, oceans, and atmosphere, enabling users to explore and visualize geospatial data and models with high accuracy and realism.

Cesium’s full-scale virtual globe in Omniverse.
Figure 3. Cesium full-scale WGS84 virtual globe

“Leveraging the interoperability of USD with 3D Tiles and glTF, we create additional workflows, like importing content from Bentley’s LumenRT for Omniverse, Trimble Sketchup, Autodesk Revit, Autodesk 3ds Max, and Esri ArcGIS CityEngine into NVIDIA Omniverse in precise 3D geospatial context,” said Shehzan Mohammed, director of 3D Engineering and Ecosystems at Cesium.

In Omniverse, all the information for the globe such as tilesets, imagery layers, and georeferencing data is stored in USD. USD is a highly extensible and powerful interchange for virtual worlds. A key USD feature is custom schemas, which you can use to extend data for complex and sophisticated virtual world use cases.

Cesium’s team developed a custom schema, with specific classes defined for key elements of the virtual globe. The C++ layer of the schema actively monitors state changes using the OpenUSD TfNotice Notification System, ensuring that tilesets are updated promptly whenever necessary. Cesium Native is used for efficient tile streaming. The lower-level Fabric API from Omniverse is employed for tile rendering, ensuring optimal performance and high-quality visual representation of the globe.

The result is a robust and precise WGS84 virtual globe created and seamlessly integrated within the USD framework.

Developing the Cesium extension for Omniverse

To develop the extension for Omniverse, Cesium’s developers leveraged Omniverse Kit, a low-code toolkit to help developers get started building tools. Omniverse Kit provides sample applications, templates, and popular components in Omniverse that serve as the building blocks for powerful applications.

Omniverse Kit supports both Python and C++. The extension’s code was predominantly written in Python, while the tile streaming code was implemented in C++. Communication between the Python code and C++ code uses a combination of PyBind11 bindings and Carbonite plug-ins where possible.

Screencapture of the user interface of the Cesium ion extension in Omniverse
Figure 4. Cesium ion extension in Omniverse

During the initial stages of the project, the team heavily relied on the kit-extension-template-cpp as a reference. After becoming familiar with the platform, they began to take advantage of Omniverse Kit’s highly modular design, and developed their own Kit application to facilitate the development process. This application served as a common development environment across Cesium’s team where they could establish their own default settings and easily enable often-used extensions.

Cesium used many existing Omniverse Kit extensions, like omni.example.ui and omni.kit.debug.vscode, and created their own to streamline task execution. For instance, their extension Cesium Power Tools has more advanced developer tools, like geospatial coordinate conversions and syncing Sun Study with the scene’s georeferencing information. They plan on developing more of these extensions in the future as they scale with Omniverse.

High-performance streaming

Maintaining high-performance streaming for 3D Tiles and global content can be a challenge for Cesium’s street-level to global-scale workloads. To address this, their team relied on the Omniverse Fabric API, which enables high-performance creation, modification, and access of scene data. Fabric plays a vital role in achieving optimal performance levels for Cesium, improving load speed, runtime performance, simulation performance, and availability of data on GPUs.

A street-level view of the Melbourne town hall rendered with over 500,000 individual meshes. Image courtesy of Aerometrex.
Figure 5. Melbourne street-level photogrammetry consists of more than 30 GB and over 500,000 individual meshes. Image courtesy of Aerometrex

Building on Fabric, Cesium incorporated an object pool mechanism that enables recycling geometry and materials as tiles unload, optimizing resource utilization. Tile streaming occurs either over HTTP or through the local filesystem, providing efficient data transmission. 

Getting started with Cesium for Omniverse

Cesium for Omniverse is free and open source under the Apache 2.0 License and is integrated with Cesium ion. This provides instant access to cloud-based global high-resolution 3D content including photogrammetry, terrain, imagery, and buildings. Additionally, industry-leading 3D tiling pipelines and global curated datasets are available as part of an optional commercial subscription to Cesium ion, enabling you to transform content into optimized, spatially indexed 3D Tiles ready for streaming to Omniverse. Learn more about Cesium for Omniverse.

Explore Cesium learning content and sample projects for Omniverse. To get started building your own extension like Cesium for Omniverse, visit Omniverse Developer Resources.

To learn more, join Cesium at GTC 2024 and register for OpenUSD Day at GTC 2024 for a full day of expert-led sessions and panels. Register for GTC 2024 and attend in person or virtually to learn the latest in AI with in-depth sessions, workshops, and training on building OpenUSD-based extensions, apps, and services on Omniverse. 

Get started with NVIDIA Omniverse by downloading the standard license free, or learn how Omniverse Enterprise can connect your team. If you are a developer, get started with Omniverse resources to build extensions and apps for your customers. Stay up to date on the platform by subscribing to the newsletter, and following NVIDIA Omniverse on Instagram, Medium, and Twitter. For resources, check out our forums, Discord server, Twitch, and YouTube channels.

Discuss (0)