The arrival of the Cesium for Unreal plug-in is fairly recent. It was announced last March and became officially available in April 2021, but the ability to work with large geospatial models in the Unreal game engine is a snowball rolling downhill. The alliance between Cesium and Unreal means that the Unreal Engine supports the open format 3D Tiles pioneered by Cesium, which opens up new possibilities for companies bringing their data into Unreal to create compelling visualizations.
Cesium began in 2011 as an engine for viewing global scale 3D data online by a team of developers led by Patrick Cozzi at Analytic Graphics (AGI). The company was spun out in 2019.
Cozzi describes Cesium’s work with Unreal as a logical culmination of work his company has been doing for years. Cesium, he says, combines graphics and game engine techniques to enable people to work with and visualize 3D geospatial data via their CesiumJS WebGL engine and development platform. The deal with Unreal closes the loop and brings 3D geospatial data and tools to Unreal Engine including Cesium’s global scale WGS84 globe (the World Geodetic System 1984, a spatial reference system for GPS satellites). Cesium serves its data from the cloud via its Ion server. Unreal Engine users can have access to Cesium’s Ion as free non-commercial licenses, or they can license the data for commercial applications.
In 2017, Cesium captured the imagination of Bentley Systems. The companies came together in the Cesium Consortium with AGI, Cesium’s parent company. (FYI: AGI has since been acquired by Ansys, but that’s a trail to follow another day.) Cesium’s 3D Tile format is an open standard that can act as a base system for all the real-world data being gathered by cameras and scanners everywhere in the world with increasing frequency. Bentley signed on to support 3D Tile in its ContextCapture technology.
ContextCapture is photogrammetry software that can handle overlapping photos and point cloud data to create 3D reality meshes, Bentley’s term for 3D spatial models combining data and images. Another piece of the puzzle comes from Cesium’s collaboration with the Khronos Organization for open standards APIs. Khronos and Cesium worked together to add support for glTF (GL transmission format) to Cesium. The two standards enable massive gigabyte models to be stored on the web and streamed.
Companies working in the AEC fields have been increasingly taking advantage of the ability to bring disparate data into Unreal engine to create interactive, rendered 3D environments for projects. Unreal has support for CAD data formats through its Datasmith tool.
The Cesium for Unreal enables AEC companies to also use geospatial data. The ability to stream that data into the digital environment lets users create huge worlds or draw on geospatial data to envision and experience large-scale projects in context.
In addition, there are other alternatives for getting CAD models into geospatial models. For instance, CADtoEarth, developed by software services developers AMCBridge, has translation tools for popular CAD programs. The models can be uploaded directly from a supported CAD program into Cesium and it’s also possible to import a chunk of Cesium’s world model into the model within the CAD application, align it with the model, and export the combined data back to Cesium. AMCBridge calls CADtoEarth a technology demonstration because their business is primarily developing tools for customers’ specific projects. The tools can be found on AMCBridge’s site, and also as plug-ins for supported products and AMCBridge is available to develop custom applications for customers.
So wait, Earth? Yes, AMCBridge had been developing these tools for Google Earth, and as Google started deprecating Earth in 2014, there were developers who had developed applications on the Google Earth API including Cesium. As Cesium director Matthew Amato explains it, Cesium began building an onramp for developers to transfer the tools they developed for Google Earth to Cesium.
And, of course, there’s Bentley’s support for 3D Tiles. Bentley’s customers can bring site data, CAD, BIM, or photogrammetry, into Unreal Engine with 3D Tiles. For example, Cesium demonstrates a tour of a transformer station, modeled by Bentley’s ContextCapture with data captured by Topcon Positioning Systems and visualized in Unreal Engine using 3D Tiles as a spatial index.
It’s a really good example of how to put Cesium’s technology to work to create a walk-through. The reality mesh comes from Bentley’s ContextCapture. It’s hosted on Cesium’s Ion and streams into Unreal Engine at runtime via 3D Tiles. So, for instance, Unreal and Cesium could come in handy for a giant rail project developed in Bentley’s software and visualized in Unreal.
The integration of Cesium technology with that of Unreal enables support for global terrain, imagery, and 3D buildings to add context. In the latest update of Cesium for Unreal, the company added support for a variety of vehicles. In addition to being able to walk through giant geospatial models, developers can use a drone to give visitors a flyover view, or a car to speed through the model. Models, like drones, or cars, or spaceships, etc., can be downloaded from Unreal’s store.
Many of the people who will be using Cesium for Unreal will have their own huge datasets, which can be uploaded to Ion for exploration in Unreal. In that case, they may be able to use CADtoEarth’s tools, but new bridges are being built as well as support for 3D Tiles is growing, and as support grows, so does the amount and quality of the data available.
What do we think?
Writing this article was a trip down several inter-connected rabbit holes. On the way, I ignored quite a view promising side tunnels for fear I’d never finish but the point I was chasing is that Cesium is another example of the metaverse building itself. Over in Unity-land, there are people calling for support for tools like Cesium and I saw that Geopipe is doing work similar to Cesiums on the Unity platform. Geopipe also supports 3D Tiles. At the moment, Unity has very basic support for 3D Tiles. I think it’s fair to say that more access to geospatial data is coming to Unity from Geopipe, and probably from Cesium as well.
Cesium welcomed Geopipe to its party with a blog post about Geopipe’s ContextSnap, which enables users to navigate a 3D city in the browser and click on components in the model to see semantic information such as height, number of floors, materials, etc.
3D Tiles has growing support in the geospatial world. People working in the geospatial fields have embraced open formats to differing degrees because what they’re trying to do is as big as the world and often demands collaboration. Data really does want to be free and especially geodata. What’s not free are the skills and expertise to make use of the available data in the ways you may want to. Game engines and related work like Nvidia’s Omniverse can make the process easier and as this work comes together and expands; well yes, more of it probably becomes free.