Learning Path
Web Viewing & Interaction
Running splats in the browser: renderers, engines, formats and productization
Level
Intermediate
Duration
约 3 小时
Audience
Front-end engineers and interactive designers embedding splats into web products
Prerequisites
- Familiar with JavaScript/TypeScript and modern front-end tooling
- Basic understanding of Three.js or similar 3D engines
- Have a loadable .ply / .splat / .spz asset or URL ready
After this path you can
- Map the lineage and positioning of mainstream web splat renderers
- Embed scenes and control cameras in Three.js and PlayCanvas independently
- Compare ply/splat/spz/sog trade-offs and convert between them
- Design LOD and streaming strategies for million-splat scenes
- Productize embeds via the SuperSplat and WebXR paths
Modules
6 modules, layered understanding
- Module 01Article25 分钟
Web Renderers: From antimatter15 to Spark
Web splat rendering started as a personal demo and forked into several routes within a few years. This module traces from antimatter15's minimal experiment to mainstream community renderers like Spark and GaussianSplats3D.
What's inside
- 01antimatter15's minimal single-page demo
- 02Spark: an open-source project aiming for extensible architecture
- 03GaussianSplats3D within the Three.js ecosystem
- 04Selection framework: performance, ecosystem and maintenance velocity
Related Terms
- Module 02Tutorial35 分钟
Three.js Integration: Scene Embedding & Control
Stuffing splat assets into Three.js is far trickier than loading a GLB. This module uses GaussianSplats3D and gsplat as its base to walk through loader selection, coordinate alignment and camera control.
What's inside
- 01Loader choice: built-in or community extension
- 02Coordinate alignment: common right-handed pitfalls
- 03OrbitControls and first-order camera handling
- 04Debugging: bounding-box visualization and FPS monitors
Related Terms
- Module 03Tutorial30 分钟
PlayCanvas & Babylon.js: Engine-level Support
When renderers graduate to first-class engine citizens, DX changes qualitatively. This module compares the official splat support depth in PlayCanvas and Babylon.js, plus their differentiated stances on scene graph, physics and editors.
What's inside
- 01PlayCanvas's native support for .ply / .splat
- 02Babylon.js SPZ loader working with PBR
- 03Composing splats with traditional meshes inside engines
- 04Choice framework: project scope and existing stack
Related Terms
- Module 04Article30 分钟
File Formats & Compression: ply / splat / spz / sog
Splat file formats are like shipping crates: wrong choice penalizes you from the start. This module benchmarks ply's readability, splat's compactness, spz's compression and the experimental sog, then converts between them losslessly with splat-transform.
What's inside
- 01ply: the readable but bulky elder format
- 02splat: the de-facto compact binary standard
- 03spz: Niantic's flagship compression pipeline
- 04sog experiments: the next stop for streaming
- Module 05Video30 分钟
LOD & Streaming: Scheduling Millions of Splats
The real challenge for million-splat scenes is not rendering — it's getting the browser to open at all. This module covers LOD tiling, frustum culling, streaming loaders, and structured approaches like Scaffold-GS that drag first-frame cost into the acceptable zone.
What's inside
- 01LOD tiling and on-demand loading trade-offs
- 02Frustum and back-face culling implementations
- 03Why Scaffold-GS anchors are loader-friendly
- 04Luma Web Library performance on large scenes
- Module 06Tutorial30 分钟
Editor Embedding & Productization: SuperSplat / WebXR
The last mile of productizing splats lies in editors and cross-device delivery. This module demonstrates final cleanup in SuperSplat, hooking scenes into WebXR, and lightweight productization templates such as StorySplat.
What's inside
- 01SuperSplat shortcuts and export settings
- 02WebXR integration: Quest vs Vision Pro reality gap
- 03StorySplat: wrapping scenes into shareable links
- 04Compatibility checklist for web and WeChat mini-programs
Related Terms
Put it to work
Take one of your trained .ply files, pick an engine stack from this path, ship it as a shareable link, and pin it on your portfolio.
Browse Tools Index