Reall3dViewer is a Three.js-based Web renderer for 3D Gaussian Splatting (3DGS). It focuses on large‑scene streaming rendering, adaptive LOD, and cross‑platform high‑performance optimization, providing high‑performance Web rendering support for enterprise‑grade 3DGS applications.
- Features
- Benchmarked Performance
- Live Demos
- Key Configuration Parameters
- SPX High‑Compression Format
- Quick Start
- Changelog
- Acknowledgements
- Contact & Support
- ✅ Multi‑format support:
.ply,.splat,.spx,.spz,.sog,.glb(withKHR_gaussian_splattingextension) - ✅ Built‑in measurement & annotation: distance, area, flexible labeling
- ✅ Spherical harmonics: supports SH degree 1–3
- ✅ Map scene rendering: GIS basemap integration
- ✅ Per‑model independent configuration: via
.meta.jsonfiles - ✅ Adaptive rendering quality: multiple quality levels, auto‑optimized per device
- ✅ Multiple sorting algorithms: choose optimal strategy for different scenes
- ✅ Large‑scene streaming: preset‑based LOD, smooth loading for 100M+ points
Tested on a 150‑million‑point scene: Desktop (discrete GPU) 60 FPS, iGPU laptop 30 FPS, modern smartphone 25‑40+ FPS, older smartphone 7‑15+ FPS – stable, no overheating, no crashes.
You can also load your own model via URL parameter:
https://reall3d.com/reall3dviewer/examples/index.html?url=your-model.sog&debug=true
| Parameter | Recommended Default (Mobile/PC) | Description |
|---|---|---|
maxRenderCountOfMobile |
2 million | Max rendered points on mobile, adjustable per device |
maxRenderCountOfPc |
3 million | Max rendered points on PC |
qualityLevel |
auto | Quality level (1–9), affects rendering precision & performance |
sortType |
auto | Sorting algorithm type, choose different strategy per scene |
- Size advantage: reduces file size by >95% compared to PLY, significantly faster loading.
- Streaming rendering: native support for LOD tiling and streaming.
- Conversion tool: cross‑platform CLI tool
gsbox(portable, no installation required).
# Convert PLY to SPX
gsbox ply2spx -i input.ply -o output.spxUsing the source code
# develop
npm run dev
# build
npm run build
# open a web browser to render your 3dgs model
# http://hostname:port/index.html?url=your-model-link-address
# .sog or .spx file can be obtained through conversion using the gsbox
gsbox ply2sog -i /path/to/input.ply -o /path/to/output.sog
gsbox sog2spx -i /path/to/input.ply -o /path/to/output.spxUsing the npm package example project
# install
npm install @reall3d/reall3dviewer// use built-in viewer
const viewer = new Reall3dViewer({ root: '#gsviewer' });
viewer.addModel(`https://reall3d.com/demo-models/yz.spx`);// preset-lod rendering
const viewer = new Reall3dViewer({ root: '#gsviewer' });
viewer.addScene(`https://reall3d.com/demo-models/lod-v1/hgd/hgd-lod.scene.json`);// use splat mesh
const splatMesh = new SplatMesh({ renderer, scene, controls});
splatMesh.addModel({ url: 'https://reall3d.com/demo-models/yz.spx' });
scene.add(splatMesh);See Releases for version history.
Thanks to the following open‑source projects for reference implementations:
- antimatter15/splat
- mkkellogg/GaussianSplats3D
- huggingface/gsplat.js
- playcanvas/supersplat
- sxguojf/three-tile
- Issues:Please submit questions and suggestions on the GitHub project page
- Services:Model format optimization, IP protection, customization, and other enterprise services
- Website:https://reall3d.com
