Quantized Mesh Serving / SceneMode


I’m trying to tile and serve quantized mesh terrain data to Cesium JS.

So far, for tiling I have used GitHub - heremaps/tin-terrain: A command-line tool for converting heightmaps in GeoTIFF format into tiled optimized meshes. to create quantized mesh terrain tile pyramid. And for serving up tiles I’m using GitHub - heremaps/quantized-mesh-viewer: Render custom quantized mesh tiles in Cesium.js and debug individual tiles using THREE.js renderer. to view the terrrain.

This is my index.js code:

import { WebMercatorTilingScheme, GeographicTilingScheme, Viewer, WebMercatorProjection, SceneMode, viewerCesiumInspectorMixin, Cartesian3, Math, GeographicProjection} from ‘cesium’
import SurfaceProvider from ‘./surface-provider’

const container = document.getElementById(‘cesium-container’)
const tilingScheme = new GeographicTilingScheme()

const terrainProvider = new SurfaceProvider({
getUrl: (x, y, level) => {
const column = x
const row = tilingScheme.getNumberOfYTilesAtLevel(level) - y - 1

let url = `/example-tiles/${level}/${column}/${row}.terrain`

return url


const viewer = new Viewer(container, {
mapProjection: new GeographicProjection(),
sceneMode: SceneMode.COLUMBUS_VIEW,


destination: Cartesian3.fromDegrees(
orientation: {
heading: 0.0,
pitch: -Math.PI_OVER_TWO, // top down view
roll: 0.0

I’m trying to integrate this into another piece of Cesium JS code which is using SceneMode of SCENE3D. However, it seems changing the SceneMode from COLUMBUS_VIEW to SCENE3D while loading this terrain seems to crash the app.

Does anyone have an idea who to work around this? Thanks!