10.6 million LiDAR points, and none of them were downloaded
The source is an 81 MB COPC — a LAZ file whose chunks are laid out as an octree with the index stored inside the file. The plate never fetches the file. It reads the header, reads the hierarchy page, and from there issues HTTP range requests for the octree nodes the camera can see, at the depth the screen can actually resolve. Every point on the canvas came out of the LASzip arithmetic decoder (laz-perf, WASM) in this tab, and the 36-byte LAS records go straight into one interleaved buffer, so RGB, ASPRS class and elevation are three uniforms rather than three uploads. Zoom into the stadium roof and watch Spacing fall: the walk descends only where the pixels pay for it.
The point cloud could not be streamed
This plate needs WebGL2 and cross-origin range requests to a public S3 bucket.
Nothing about the cloud is baked into this build, so there is no still to fall
back to — the COPC reader and the LOD walk are in src/pointcloud.ts.
Plate 10 · COPC octree streaming · LASzip in WASM · WebGL2 Drag to orbit · scroll to zoom · 10.6 M classified airborne points over Autzen Stadium, Oregon — the reference cloud published with the COPC spec, read by range request from its public bucket
Happy to walk through any of it.
Also built: embedded systems, moving-map engines, production Rust against Norwegian national geodata, and a live product of my own at solrapport.no.
bjreppen@gmail.com