Cesium3D TilesWebGLSpatial DataExplainer

CesiumJS 3D Tiles Viewer: What It Is and How to Use It for Spatial Data Delivery

CesiumJS is the open-source WebGL engine behind browser-based 3D Tiles viewing. Here's how it works, who uses it, and how to get your survey data into it without building from scratch.

Alex Tolson

Alex Tolson

October 10, 2024

If you’ve ever explored a 3D building model or point cloud in a browser — chances are you were using CesiumJS, even if you didn’t know it. It’s the open-source engine that powers browser-based 3D geospatial visualization at scale.

Here’s what it is, how it works, and how it fits into a surveyor’s delivery workflow.

What is CesiumJS?

CesiumJS is an open-source JavaScript library for 3D geospatial visualization on the web. It was created by Analytical Graphics Inc. (AGI) in 2011, open-sourced in 2012, and has since become the industry standard for browser-based 3D mapping.

It’s used by:

  • NASA (for mission visualization)
  • The European Space Agency
  • Google Earth (partially)
  • National mapping agencies worldwide
  • Urban planning platforms, military simulation systems, and — increasingly — spatial data delivery tools for surveyors

CesiumJS renders a globe (using accurate WGS84 ellipsoid geometry) and supports streaming of massive 3D datasets via the 3D Tiles specification. It runs in any modern browser, using WebGL for hardware-accelerated rendering.

What CesiumJS can display

Data typeFormatNotes
Point clouds3D Tiles (.pnts)Stream massive LiDAR datasets
Textured meshes3D Tiles (.b3dm, .glb)Photogrammetry models
TerrainQuantized MeshGlobal terrain, custom DTMs
Vector featuresGeoJSON, KML, CZMLBoundaries, annotations
ImageryWMS, TMS, WMTS, Bing, GoogleRaster map layers
Time-dynamic dataCZMLTime-series spatial data

For surveyors, the most relevant capabilities are:

  • Streaming large point clouds (LiDAR, photogrammetry) via 3D Tiles
  • Displaying orthomosaics as map layers
  • Rendering photogrammetry meshes as textured 3D models
  • Placing KML/KMZ annotations and boundaries

How CesiumJS streams large datasets

The key to CesiumJS’s performance is the 3D Tiles streaming architecture:

  1. The browser requests the root tileset.json file
  2. CesiumJS evaluates which tiles are visible at the current camera position
  3. It requests only those tiles (starting with the lowest-LOD tiles that cover the viewport)
  4. As you zoom in or pan, higher-resolution tiles are requested on demand
  5. Tiles outside the viewport are unloaded to free memory

This means a 50 GB photogrammetry dataset can be navigated smoothly — you never try to load more than what’s currently visible at the current resolution.

The gap: CesiumJS is a library, not a product

Here’s the catch: CesiumJS is a JavaScript library. It does the rendering — but it doesn’t handle:

  • Hosting your tile data (you need a CDN or storage bucket)
  • User authentication (who can view the data)
  • Sharing infrastructure (generating links, managing access)
  • A built-in viewer UI (you need to build it yourself)

To use CesiumJS, you need to either:

  1. Build your own viewer — front-end development, CDN hosting, access control, share link generation. Significant engineering effort.
  2. Use Cesium ion — Cesium’s hosted platform. Upload your data, Cesium converts it and generates a viewer. Aimed at enterprise/developer use.
  3. Use a platform built on CesiumJS — like Swyvl, which uses CesiumJS under the hood but adds the sharing, hosting, and branding layer that surveyors actually need.

CesiumJS viewer controls

If you’re delivering a CesiumJS-based view to your clients, it helps to understand what they can do with it:

Navigation:

  • Left click + drag: Rotate / orbit around a point
  • Right click + drag: Zoom (or scroll wheel)
  • Middle click + drag: Pan

Toolbar controls (depend on implementation):

  • Home button: Return to initial camera position
  • Geocoder: Search for a location by name
  • Layer picker: Toggle imagery and terrain layers
  • Scene mode toggle: Switch between 3D globe, 2D map, and Columbus view

Point cloud specific:

  • EDL (Eye Dome Lighting): Enhances depth perception in point clouds — makes them much easier to read for non-technical viewers
  • Point budget: Controls the maximum number of points rendered simultaneously (affects performance)

For client-facing viewers, simpler is better. A clean CesiumJS viewer with just the navigation controls and perhaps a measurement tool is more useful than one overloaded with GIS features that clients don’t understand.

Cesium ion vs. self-hosted vs. Swyvl

If you want to deliver your survey data via a CesiumJS viewer, here are your practical options:

Cesium ion

  • Cost: $25/month for basic; $500/month for professional
  • Workflow: Upload data to cesium.com/ion → Cesium converts to 3D Tiles → embeddable viewer
  • Best for: Developers building applications on top of Cesium; enterprise teams with technical staff
  • Limitation: Viewer customisation requires front-end development; not designed for surveyor delivery workflows

Self-hosted CesiumJS

  • Cost: Free (open source) + hosting costs
  • Workflow: Export 3D Tiles → upload to cloud storage → build viewer → configure sharing
  • Best for: Teams with web development capability
  • Limitation: Significant upfront investment; requires ongoing maintenance

Swyvl

  • Cost: From $49/mo USD
  • Workflow: Upload your spatial files → Swyvl converts and serves → share branded link with client
  • Best for: Surveyors and drone operators who want professional delivery without infrastructure overhead
  • Under the hood: CesiumJS for 3D meshes/tiles, Potree for point clouds

CesiumJS is exceptional technology — used for spacecraft trajectory visualization and urban digital twins. For surveyors, the value is that it brings that same capability to the browser, so your clients can experience their spatial data the way it deserves to be experienced. The question is just how much effort you want to spend on the infrastructure to make that happen.

Alex Tolson

Alex Tolson

Co-founder of Swyvl. Eight years capturing the world in 3D — underground mines, the Great Barrier Reef, and everything in between. Previously co-founded Lateral Vision, a 3D visualization company and Google Street View contractor.

Share spatial data the right way.

Swyvl lets you upload your LAS, GeoTIFF, drone video, and 3D models and share them with clients via a branded portal — no software required on their end.

Get started free

Not ready to sign up? See Swyvl live in 30 minutes.

Related articles

Back to all posts