Skip to main content


ogc-logo   3dtiles-logo

The module supports loading and traversing 3D Tiles.



npm install
npm install


A standard complement of loaders and writers are provided to load the individual 3d Tile file formats:

  • Tiles3DLoader, a loader for loading a top-down or nested tileset and its tiles.
  • CesiumIonLoader, a loader extends from Tiles3DLoader with resolving credentials from Cesium ion.

To handle the complex dynamic tile selection and loading required to performantly render larger-than-browser-memory tilesets, additional helper classes are provided in module:

  • Tileset3D to work with the loaded tileset.
  • Tile3D to access data for a specific tile.


Basic API usage is illustrated in the following snippet. Create a Tileset3D instance, point it a valid tileset URL, set up callbacks, and keep feeding in new camera positions:

import {load} from '';
import {Tiles3DLoader} from '';
import {Tileset3D} from '';

const tilesetUrl = ''; // add the url to your tileset.json file here

const tilesetJson = await load(tilesetUrl, Tiles3DLoader);

const tileset3d = new Tileset3D(tilesetJson, {
onTileLoad: (tile) => console.log(tile)

// initial viewport

// Viewport changes (pan zoom etc)

// Visible tiles
const visibleTiles = tileset3d.tiles.filter((tile) => tile.selected);

// Note that visibleTiles will likely not immediately include all tiles
// tiles will keep loading and file `onTileLoad` callbacks

Remarks does not yet support the full 3D tiles standard. Notable omissions are:

Attribution is a fork of 3D tile related code in the Cesium github repository under Apache 2 License, and is developed in collabration with the Cesium engineering team.