Stream Massive Textured 3D Models Over the Web
Use Cesium ion to tile your photogrammetry models from OBJ or COLLADA into 3D Tiles for efficient streaming and visualization with CesiumJS.
As the creators of 3D Tiles we leverage its full potential to ensure a lightweight and smooth streaming experience, even on mobile devices!
The Command Line Interface (CLI) is easy to integrate into any platform, including Linux, Windows, AWS, and Azure. It's built from the ground up for performance and optimized for the best visual experience and precision.
Control Level of Detail with Mesh Decimation
Cesium ion preserves all source level detail. For efficient streaming, ion generates intermediate levels of detail (LODs) for geometry and textures that accurately approximate the original data. The result is city-scale models that load in seconds instead of minutes.
The produced tileset includes a precise geometric error which allows viewers like CesiumJS to dynamically show the right level of detail at any given view.
Drag the slider to see how the original geometry with ~120k triangles looks when reduced to ~10k triangles. Texture data was reduced by 85%.
Smoother Streaming with Adaptive Subdivision
Cesium ion produces optimized tilesets for both sparse landscapes and densely packed cities. Models spread across numerous files can be stitched together seamlessly with unified texture atlases.
Our subdivision algorithm adapts to the given input data so that tiles are balanced in terms of geometry and texture data. Getting this balance right is what allows CesiumJS to stream tiles quickly without overloading memory and GPU resources.
Adaptive tiling produces tilesets that are much more optimized for the web.
Easy to Use
Cesium ion brings together all the algorithms needed to convert your large photogrammetry models to an efficient tileset for streaming in an easy-to-use configurable CLI that can be run with a single command.
The photogrammetry tiling pipeline uses multithreaded acceleration, giving it a significant performance advantage.
Our out-of-core implementation allows it to handle data upwards of half a billion triangles. The produced tile sizes are tuned for efficient network traffic.
Read about adaptive subdivision and performance results in this blog post.
To optimize load times, our pipeline provides an option to use Google's Draco compression, which optimizes geometry sizes by up to 90%, far better than general purpose compression algorithms like gzip.
Decoding in CesiumJS is fast, using WebAssembly and is done in parallel with web workers.
Read more about geometry simplification in this blog post.
Cesium ion performs a robust preprocessing step to detect the optimal configuration settings for your data. No need to waste time digging through layers of configuration.
The pipeline gracefully handles edge cases such as degenerate triangles, outliers and out-of-bounds texture coordinates. Large datasets work well even on commodity hardware.