The Gaussian Splat Viewer opens the complete 741,883-splat Train capture from the public Hugging Face catalog. Use the scene selector to explore Train, Truck, Dr Johnson, or Playroom; the Train capture automatically falls back to its two GitHub-hosted segments when the Hugging Face CDN is unavailable. Source identification, downloaded bytes, progressive batches, and actual splat counts remain visible while each capture streams.
A separate, dynamically imported loaders.gl 5 alpha browser bundle handles .ply, .splat,
.ksplat, .spz, and independently range-fetched .rad pages without replacing the website's
existing loaders.gl
installation. @luma.gl/arrow adapts each Apache Arrow record batch
directly to @luma.gl/splats, preserving batch ownership,
floating-point HDR radiance, camera-aware transparency, and the WebGL2 fallback.
On WebGPU, every streamed batch renders through a compiled GPU command graph as soon as it
arrives. Projection, visibility, depth ordering, and rendering remain GPU work from the first
visible splats rather than reprojecting source rows on the main thread while the scene loads.
Directional spherical harmonics remain GPU-native and update as the camera moves.
Large RAD captures use bounded projected segments and one shared global GPU depth order, keeping
overlapping source pages correctly blended beyond a single storage-buffer limit.
Expand GPU graph inspector to see the real graph nodes, encoding timings, and transient-memory
reuse. Choose CPU depth ordering in the execution selector, or append ?renderer=cpu, to
compare against the original renderer. WebGL2 always retains its compatible CPU-ordered fallback.
Append ?scene=truck, ?scene=drjohnson, ?scene=playroom, or ?scene=train-github to select a
capture directly. ?scene=coit selects the 50,937,127-splat Coit Tower RAD source and retains
a camera-driven, one-million-splat source-page window. A bounded background-worker pool decodes
independently range-fetched pages while the GPU remains responsive to camera movement. Spark-style
best-first refinement, angular foveation, nonlinear coarse-node opacity, area-preserving
antialiasing, and a 75-degree camera recover the authored scene without loading all 50 million
source splats. Parents remain visible until their children arrive; irrelevant requests are
canceled and pages can be evicted or reloaded as the camera changes. Use
&residentSplats=250000 to choose a different whole-page residency limit. Browsers without
module-worker support retain a clearly reported main-thread decoding fallback. The homepage
poster uses Spark's reference view of Vincent Woo's Coit Tower capture; the interactive scene
itself is rendered by luma.gl. Provide
?source=https://example.com/scene.ply for another compatible public file.
Choose Synthetic chromatic showcase in the scene selector or visit the separate
Gaussian Splats showcase for the deterministic generated
scene.
Local development can still override the bundled parser with a neighboring loaders.gl checkout:
start the standalone example with VITE_LOADERS_GL_ROOT=/path/to/loaders.gl and open
?loaders=local. The lightweight parser fixture remains available as ?loaders=local&scene=fixture.