Cesium Powers City Scale 3D Data Captured with a Smartphone


A lot of industries make use of real-world 3D data, from urban planning and real-estate to construction and mining. Capturing this data can be expensive, especially if you need weekly or daily scans to keep it up to date. This is why we’re excited to see our friends at Pixel8 using Cesium in their work to make it possible to capture city scale 3D datasets with commodity hardware, like a smartphone.

A bank in Boulder, Colorado.This LiDAR dataset of downtown Boulder, CO is streamed as 3D Tiles and fused with Cesium World Terrain. The source data was captured by a group of volunteers taking pictures of the area with their smartphones. The resolution is so high, even the sign on the street corner is legibile.

The point cloud dataset above was captured by two dozen volunteers taking pictures of downtown Boulder, Colorado, with their smartphones over an afternoon. Pixel8 converts these images into point clouds which are then combined and geolocated using a LiDAR dataset as a reference.

This fusion between accurate source LiDAR data and smartphone camera data combines the best of both worlds: you get a frequently updated dataset that’s cost effective to create, while still having the accuracy of a high quality LiDAR capture.

View showing where the cameras were that created this dataset.The green arrows visualize the location and direction where each picture was taken to create this 3D dataset.

The output from this process is then combined and tiled into 3D Tiles using Cesium ion, which makes it easy to share as well as fuse with the globally curated Cesium World Terrain to get accurate geospatial context. This pipeline is easily automated with the Cesium ion REST API.

To visually compare how accurate their output was compared to a ground truth, Pixel8 used CesiumJS to compare both layers together in the same scene. Their output was only about 25 cm off on average compared to an aerial derived point cloud.

If you’re collecting large photogrammetry or point cloud data, and need to combine and analyze them together, you can do that just by dragging and dropping your dataset on Cesium ion. The getting started guide is a great place to start.

Get started with a Cesium ion account

Sign up for free