Skip to main content

Vector Tiles: A Technology Preview for Cesium and 3D Tiles 

Today, we are excited to announce the first public release of our Vector Tiles Technology Preview across the Cesium and 3D Tiles ecosystem. This preview is a major step toward our implementation of the 3D Tiles 2.0 standard.  

This update introduces an end-to-end pipeline for tiling massive vector datasets into 3D Tiles using Cesium ion and high-fidelity rendering, including hierarchical level of detail, clamping to terrain, and dynamic styling in CesiumJS and Cesium for Unreal.  

In June, we asked for your feedback on our vision for bringing 3D-native vector data to the 3D Tiles ecosystem. Thank you all for your inputs. From our conversations, we’ve identified and built around three key themes:  

  • The community needs a scalable way to stream massive, high-precision vector points, lines, and polygons that live in true 3D space while supporting existing 2D and 2.5D workflows such as placing vector data over 3D tilesets. 
  • To match existing conventions around symbology, styles, and colors, a flexible styling system is required to achieve the desired look with these vector data. 
  • Improved support for existing community adopted vector data formats is required. We need to be able to support importing those common formats and improve the rendering performance of formats we already support. 

A unified workflow for massive 3D vector data 

With this release, you can add performant, global-scale vector rendering to your Cesium applications. You’ll be able to take advantage of the ease-of-use that you’ve come to expect from Cesium: drag-and-drop file upload of common vector data types into ion and add them to your scenes just like any other 3D Tiles asset. 

Cesium's introduction of vectors and CAD-style extensions into the 3D Tiles spec has unlocked the potential for us to provide our customers with highly detailed and faithful representations of the vector drawings they prefer to work with. By leveraging these features of 3D Tiles instead of developing our own proprietary spec, we are able to integrate into the wider open geospatial ecosystem, both contributing back and leveraging the innovations our colleagues in the field develop. 
Tiling vectors provides the best possible experience for our customers, by providing the ability to stream huge datasets, provide different levels of detail to suit the device viewing it, and to do so in a format that preserves the intricacies of the geometry, its styling and its metadata. The end result is a beautiful and performant viewing experience. 3D Tiles 2.0 is the first open specification that supports everything our application demands with extreme technical rigour - that is why we've picked it as our path towards precise, performant and beautifully-rendered vector graphics that rival native desktop solutions. 
Cesium ion has greatly accelerated our testing and prototyping pipeline, letting us focus on the outputs instead of the infrastructure, and rapidly iterate with the Cesium team on building tiling pipelines that suit our specialised needs. 

Harry Morris, Principal Engineer at Propeller Aero 

Included in this initial release: 

  • Progress towards 3D Tiles 2.0: Vector tiles are newly available with 3D Tiles 1.1 and extensions to glTF, and will be part of 3D Tiles 2.0 when ratified later this year. To support vector payloads that stream and render efficiently, we’ve contributed  KHR_mesh_primitive_restart and EXT_mesh_polygon, which can reduce glTF file size by up to 5x in common cases. By using glTF as the underlying tile payload, we ensure that vector data benefits from robust tooling available in the glTF ecosystem.
Vector Extensions in 3D Tiles 2.0

Vector tilesets in 3D Tiles 2.0 are glTF files, relying on a collection of old and new extensions to 3D Tiles 2.0 and glTF 2.1.

  • Tile and host vectors in Cesium ion: You can now upload a variety of vector files [link to docs w/ supported formats], including GeoJSON, GeoPackage, Geodatabase and Shapefiles, to Cesium ion to be processed into optimized 3D Tiles. This process preserves input vector properties, enabling semantic property-based LOD generation during tiling, and property-based operations and styling at runtime.
ion tiling and hosting pipeline illustration

Tiling and hosting pipeline illustration. Various vector data formats are consumed with the geometry and property processed into 3D Tiles.

  • High-fidelity, high-precision visualization in CesiumJS: Experience high-performance rendering of massive vector datasets in the browser. Visualize 3D-native vectors directly in your geospatial context. Use the semantic metadata of the input vector data with Cesium’s styling capabilities to create dynamic, engaging visualizations.
Global river flows dataset from HydroRIVER. Showing north American view with fine LODs

Global river flows dataset from HydroRIVER. Showing North American view with fine LODs.

  • Initial support for Mapbox Vector Tiles (MVT) in CesiumJS: Load and drape existing 2D Mapbox vector tiles with 3D geospatial context, including streaming from existing third-party data sources. This was a popular request from the community, thanks again for your input!
OpenStreetMap road network for Philadelphia City, styled by road class 

The full OpenStreetMap road network for Philadelphia, styled by road class.

  • Cesium for Unreal (Engine Integration): Bring millimeter-precision vector data into Unreal Engine for immersive simulations and digital twins. This enables use cases like displaying complex road networks or AI-extracted infrastructure features directly within a game engine environment.
ODIS street segments for Berlin

ODIS street segments for Berlin, styled by road class.

Vector clamping: terrain and 3D Tiles 

One of the most critical capabilities in this release is support for clamping vectors to terrain and 3D tiles. We know that for our users, precision is paramount. That’s why vector lines and polygons can now be clamped, or draped, to both global terrain and 3D Tiles types, such as high-resolution reality meshes and photogrammetry. Clamping 2D vectors directly to 3D Tiles allows for precisely aligning design strings to a scanned bridge or accurately overlaying AI-extracted features on a reality mesh. 

Polylines and polygons draped to Cesium World Terrain near Mount Hood, Oregon

Polylines and polygons draped to Cesium World Terrain near Mount Hood, Oregon. 

Powerful, metadata-driven styling foundation 

A core benefit of our approach is the preservation of semantic metadata, which powers Cesium’s 3D Tiles Styling language. Using glTF extensions like EXT_mesh_features and EXT_structural_metadata enables you to style your data based on real-world attributes. 

  • Declarative styling in CesiumJS: Use JSON-based expressions to define rules for how features appear. For example, you can color building footprints by usage type or adjust line thickness based on traffic volume. 
  • Dynamic visuals: The preview supports sophisticated visuals at runtime, enabling styling that changes interactively, even for large datasets, for use cases like filters and animation. 
  • Per-feature control: Query and style individual elements enabling interactive visualizations where features respond to user input. 

Today's release contains our initial support for visual properties like line widths and colors, and we plan to add more styling capabilities, draping and styling support for points, and more over the coming months.

What's next 

As we continue to build towards 3D Tiles 2.0 with vector tiles, we’d love your input to influence our roadmap. In particular: 

  • What styling capabilities will you need for your use cases? 
  • Are you using vector databases like GeoParquet or PostGIS? 
  • How does your application approach layering of vector data? 

We want to hear how you use these new styling, streaming, and clamping capabilities to solve your most complex geospatial challenges.  

 

Share your feedback on the Cesium Community Forum, we'd love to hear about your experiences.