Skip to main content

Help Us Shape Composable Tiling Pipelines for Next-Gen Workflows 

3D Tiles has become the foundational OGC community standard for the 3D geospatial ecosystem. Massive, heterogeneous 3D geospatial datasets such as 3D photogrammetry and reality models, 3D buildings, point clouds, and Gaussian splats can be encoded as 3D Tiles, optimized for streaming, and rendered with high precision and performance. To power these experiences, Cesium has built robust tiling pipelines to process various types of source data into highly optimized tilesets. Because 3D Tiles is built for interoperability, these tilesets can be seamlessly streamed and visualized across a wide-open ecosystem of runtime engines, including CesiumJS, Cesium for Unreal, Three.js, BabylonJS, QGIS, and Godot. 

To accelerate and streamline how we optimize 3D geospatial data, we are introducing a new concept: composable tiling pipelines. Built on a unified, modular architecture of reusable and configurable components, this new approach offers significantly better flexibility for tiling your data. As always, the evolution of our platform is guided directly by your input. To kick off this community discussion, we’re sharing our vision for composable tiling based on feedback we've gathered so far. We’d love to learn about your current workflows, the challenges you face delivering complex 3D content, and which capabilities you want us to prioritize. 

Google Photorealistic 3D Tiles of Philadelphia, Pennsylvania, USA.

Google Photorealistic 3D Tiles of Philadelphia, Pennsylvania, USA.

Why composable?

The current generation of tilers are specialized, separate pipelines for each type of data. Terrain, imagery, 3D photogrammetry, point clouds—each of these has a dedicated tiler. As the number of tilers continues to grow, we’ve shifted our thinking from “How can we create a tiler for a new type of data?” to “How can we bring together the best of our algorithms to create the most efficient 3D Tilesets?” Making that leap requires a new architecture. 

It’s more than just a technical upgrade, though: this new architecture sets the stage for faster, more flexible tiling pipelines that better serve the community. We’ve been watching a few key trends unfold, and it’s clearly time to recalibrate and evolve our approach. 

First, datasets are getting larger, with higher resolution and greater detail, and are captured more frequently. We’re moving beyond terabytes in some cases. As such, it's critical that our tiling pipelines scale with such massive datasets. 

Second, datasets are increasingly heterogeneous, often with mixed resolutions. We frequently see design models overlaid on photogrammetry or terrain, all in a single model file. In these cases, the usual approach is to separate the data, tile it into two tilesets and then combine those into a single 3D tileset. This has been an acceptable approach so far, but there is ample room for optimization. 

Finally, many users have asked for more fine-grained configurability and to perform additional customization relevant to their use cases—for example, it’s becoming increasingly important to combine tiling pipelines with data analysis and enrichment workflows, like point cloud classification in Cesium ion

We believe a well-executed composable architecture addresses all the above: it paves the way for robust multi-node processing to handle massive datasets; it can naturally handle heterogeneous data; and it is, by design, both flexible and extensible. 

Architecture overview 

Composability is a well-established concept in software engineering. The idea is to construct a system, usually a program or series of programs, out of small building blocks, or components, where each component is responsible for a relatively small task. The components can then be chained together, or composed, to accomplish more complex tasks. 

In the context of tiling, composability boils down to how we structure data transformations. A point cloud tiling pipeline, for example, might consist of the following steps: load the input data, remove duplicate points and outliers, divide the points into an octree, iteratively merge and simplify octree nodes to fill out a 3D Tiles tree, and, finally, optimize each tile in the tree by applying geometry and attribute compression. Each of these steps could be implemented by a single component in the pipeline, and we can visualize this with a simple node graph: 

A node graph for a possible point cloud tiling pipeline: load, clean, divide, merge and simplify, and optimize.

A node graph for a possible point cloud tiling pipeline.

The example of a point cloud tiling pipeline is a relatively simple one. To illustrate the power of composable architecture, let’s consider a more complex scenario. Imagine a dataset that consists of CAD data, in the form of implicit surfaces and triangle meshes for organic surfaces. With our current tilers, the data needs to be split into two different datasets as input, tiled individually, and either combined into one tileset with a common root tile or streamed as two different tilesets to the application. With composable tiling pipelines, the process could be configured like the diagram below, producing a single spatially coherent and optimized tileset.

Composable tiling pipeline for dataset with CAD data (implicit surfaces) and triangle mesh data: load, split, tesselate or clean, divide, merge and simplify, and optimize.

Composable tiling pipeline for dataset with CAD data (implicit surfaces) and triangle mesh data.

This example highlights two distinct advantages of composable architecture. First, the pipeline can seamlessly handle two very different types of data. By setting up a pipeline configured for the input data, there is no need to pre- or post-process the data. 

Second, notice how the process diverges into two paths but then converges back into one. After the implicit surfaces are tessellated, they can be treated just like triangle meshes—in fact, they are triangle meshes at this point. With two separate tilers, we would be doing redundant work to process triangle mesh data. With composable tiling pipelines, we are able to reuse nearly half of the components in the pipeline and streamline the entire process. As we consider larger and more complex pipelines, the ability to reuse as many components as possible becomes increasingly attractive. 

The benefits of a comprehensive approach also extend to runtime performance. Merging two separately optimized tilesets may not produce an optimal result, because the tiling algorithm isn't "aware" of all geometry in each spatial region. This can cause the merged tileset to have excessive geometry in some areas, even if the original tilesets were well balanced. A comprehensive tiling algorithm avoids this issue as it’s "aware" of all the data from the start. 

Configuring composable tiling pipelines 

We’ve described an architecture and explored early examples, but how will users configure tiling pipelines? Our baseline plan is to have a library of off-the-shelf components from which users can choose. We envision a new, web-based GUI, backed by a published JSON schema, with a node graph editor for constructing composable pipelines with these components. Users will be able to drag and drop, arrange, and connect components in a simple graphical interface. Users familiar with Unreal Engine’s node editor or with the Rete.js project should feel right at home. 

A mockup showing the potential look of a graph editor for composable tiling.

A mockup showing the potential look of a graph editor for composable tiling.

The composable tiling pipelines will include preconfigured pipelines for the most common types of tiling workflows. This way, the most common use cases won’t require additional configuration. 

For those who prefer a text editor, or who use the Cesium ion REST API, we expect to enable a JSON scheme that describes a pipeline and specify relevant options. (In fact, the JSON configuration would likely be an underlying implementation detail of the node graph editor.) Here’s what the configuration file for the point cloud example above might look like: 

Example JSON file for a composable point cloud tiling pipeline.

Example JSON file for a composable point cloud tiling pipeline.

Your input 

Many of these ideas are still incubating, and we want community needs to guide our roadmap. We’d love to hear from you:  

  • What capabilities would be most valuable in a composable tiling pipeline? 
  • What formats, transformations, or integrations would support your workflows? 
  • How could this architecture help you build better experiences with Cesium? 

Your feedback will help shape the next generation of tiling pipelines. Share your thoughts with us on the community forum