theGian7
Live demo · streaming from /lidar/

23 million LiDAR points
streamed to your browser.

Real USGS classified airborne LiDAR — the kind of data normally locked behind $5K-a-seat GIS desktop software. Now it loads in your browser, only downloads what you can see, and lets you orbit the Salt Lake Capitol at 60fps.

Launch SLC Capitol Or try Ogden 25th
23.8M
Classified returns
~5-15 MB
Actual visitor download
840 MB
Source octree on disk

Smart enough to ship gigabytes of geometry without a server.

A raw LiDAR scan of a single square kilometer holds tens of millions of 3D points — too much to download or render naively. Three pieces of off-the-shelf tech let it stream from any static host (here: nginx-equivalent on a $2/mo droplet).

STEP 01
Octree pre-processing
PotreeConverter reorders the cloud into a spatial octree on disk — root holds a coarse "thumbnail," children hold finer subdivisions all the way down to leaf chunks at full density.
STEP 02
HTTP range requests
The full octree is one 840MB binary file. The browser sends Range: bytes=N-M headers to fetch only the byte ranges holding the chunks currently in view. Standard since HTTP 1.1.
STEP 03
Viewport-aware loading
As you orbit and zoom, the viewer recomputes which octree nodes intersect the frustum, fetches their byte ranges, decodes, and uploads to GPU. A 3M point budget caps GPU load.

Real LiDAR data with real classification work baked in.

The source data is USGS 3DEP airborne LiDAR captured over Salt Lake County in 2023. Raw returns are bare-earth + unclassified, so a custom Python pipeline runs Height-Above-Ground analysis, multi-band coloring, and synthesizes 787K wall points from detected building edges before the octree is built.

23.8 million classified returns 1 km² of downtown SLC sampled at ~25 pts/m²; ground / vegetation / structures isolated by HAG bands.
Smart subsetting by elevation Color palette derived from height-above-ground per point — warm concrete at ground level, olive in vegetation bands, light gray for wall returns.
Synthesized building edges Airborne LiDAR misses vertical surfaces. The pipeline detects sharp HAG dropoffs and inserts 787K wall points at 1m resolution along every building outline.
Eye-dome lighting Potree's EDL shader adds depth contrast at the edges of point clusters — turns flat splats into something that reads as solid surfaces.
Measure / profile / clip Full Potree toolkit: distance and area measurements, vertical profile extraction, clipping volumes to slice through buildings.
Static-host friendly 4 files total. No server-side code, no special infra. Works on any static host that supports range requests.

Two captures. Same pipeline. Different stories.

Each scan ran through the same Python pipeline (HAG bands + synthesized walls), then PotreeConverter packed it into a single streaming octree. The viewer is identical — just a different cloud loaded.

Drag to orbit. Scroll to zoom. Double-click to recenter.

Open the sidebar to switch attributes (elevation, classification, intensity), measure distances, or clip through buildings.

Potree 2.0 PotreeConverter 2.1 three.js Python · laspy + numpy USGS 3DEP