If you’ve been working with large-scale spatial data — drone surveys, LiDAR captures, photogrammetry models — you’ve probably run into the problem of sharing them. The files are enormous. The viewers require specialist software. Clients can’t open them.
3D Tiles is the open standard that solves this — and it’s worth understanding properly.
What are 3D Tiles?
3D Tiles is an open specification developed by Cesium (the same team behind CesiumJS) and standardized by the Open Geospatial Consortium (OGC) in 2019.
The core idea: instead of trying to load an entire 3D dataset at once (which would require enormous bandwidth and memory), 3D Tiles breaks the dataset into a hierarchical set of spatial tiles that are streamed on demand.
The browser loads only the tiles that are visible at the current camera position and zoom level — similar to how Google Maps loads map tiles as you pan and zoom, but for 3D data.
The tile hierarchy: LOD explained
3D Tiles uses a Level of Detail (LOD) hierarchy. Each level of the hierarchy contains a lower-resolution representation of the entire dataset. As you zoom in, progressively higher-resolution tiles are loaded.
Tileset Root (lowest resolution — whole site at low detail)
├── Level 1 (medium resolution — sections of the site)
│ ├── Level 2 (high resolution — subsections)
│ │ └── Level 3 (full resolution — individual tile areas)
This means a 10 billion point LiDAR dataset can be navigated in a browser on a standard laptop — you’re never loading more detail than what’s visible.
What formats can be stored in 3D Tiles?
The 3D Tiles specification supports several tile content formats:
| Format | Used for |
|---|---|
.b3dm (Batched 3D Model) | Meshes, textured models, buildings |
.pnts (Point Cloud) | Raw point cloud data |
.i3dm (Instanced 3D Model) | Repeated objects (trees, poles) |
.cmpt (Composite) | Mixed content tiles |
.glb | Modern replacement for b3dm — binary glTF |
For surveying work, you’ll typically encounter:
.pntstiles for raw LiDAR point clouds.b3dmtiles for photogrammetry meshes and textured 3D models
How 3D Tiles relate to LAS/LAZ
If you’re producing LiDAR deliverables, your source data is likely in .las or .laz format. These are point cloud formats designed for storage and processing — not streaming.
To stream a LAS file in a browser, it needs to be converted to 3D Tiles. The conversion process:
- Point cloud processing: Clean and classify the point cloud
- Tiling: Subdivide the point cloud spatially using an octree or kd-tree structure
- LOD generation: Generate decreasing-resolution representations for each level
- Export: Write the tile hierarchy to the 3D Tiles format
Tools that convert LAS to 3D Tiles include:
- Potree Converter (open source — produces Potree format, similar principle to 3D Tiles)
- RealityCapture (direct 3D Tiles export)
- Pix4D (3D Tiles export from mesh)
- PDAL (open source pipeline for point cloud conversion)
- Cesium ion (cloud conversion service)
3D Tiles vs Potree: what’s the difference?
You’ll often see both referenced in the context of browser-based point cloud viewing.
Potree is a WebGL-based point cloud renderer developed at TU Wien. It uses its own octree tile format (.potree files with an associated metadata JSON). It’s excellent for raw point cloud data.
3D Tiles is the OGC standard that’s broader in scope — supporting meshes, textured models, and buildings as well as point clouds. CesiumJS implements 3D Tiles natively.
For practical purposes:
- Use Potree for raw LiDAR point cloud viewing (better point rendering, wider tool support for LAS conversion)
- Use 3D Tiles for photogrammetry meshes, building models, and environments where you need mixed content types
Swyvl uses Potree for point clouds (LAS/LAZ) and CesiumJS for 3D Tiles meshes — automatically selecting the right viewer based on your file type.
Why 3D Tiles matter for data delivery
Before 3D Tiles (and before Potree), sharing large spatial datasets meant one of three things:
- Send the raw file: Client needs specialist software to open it
- Export screenshots/renders: Loses interactivity, loses accuracy
- Set up a GIS server: Requires server infrastructure, web development
3D Tiles enable a fourth option: stream the full-resolution, interactive dataset to any browser, without requiring the client to install anything.
This is significant for surveyors because:
- Clients engage with the data: They can explore it themselves rather than waiting for the surveyor to produce screenshots
- Deliverables are permanent: A shared link stays accessible — the dataset isn’t lost when a hard drive dies
- Accuracy is preserved: The full point density is available at full zoom — you’re not showing a downsampled version
How to deliver 3D Tiles to clients today
The technical standard is solved. The operational question is: how do you host and serve 3D Tiles without running your own infrastructure?
Options:
Self-hosted: Store tiles on AWS S3 / Cloudflare R2, serve via CesiumJS. Requires front-end development and ongoing maintenance.
Cesium ion: Cesium’s managed platform. Uploads your data, converts to 3D Tiles, provides sharing links. Good but aimed at enterprise GIS teams.
Swyvl: Designed specifically for surveyors — upload your processed outputs, Swyvl serves them in a branded viewer via a shareable link. No infrastructure to manage, no GIS expertise required.
3D Tiles is the infrastructure that makes professional spatial data delivery possible. It’s not the sexiest topic in surveying — but understanding how it works helps you explain to clients why your deliverables look and work the way they do, and why browser-based delivery is more professional than a Dropbox link.