Reall3dViewer
This is a 3DGS(3D Gaussian Splatting) viewer built on Three.js, with features for marking, measurements, preset-lod ren…
Reall3dViewer
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.
📋 Table of Contents
- Features
- Benchmarked Performance
- Live Demos
- Key Configuration Parameters
- SPX High‑Compression Format
- Quick Start
- Changelog
- Acknowledgements
- Contact & Support
✨ Features
- ✅ 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
🚀 Benchmarked Performance
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.
🌐 Live Demos
You can also load your own model via URL parameter:
https://reall3d.com/reall3dviewer/examples/index.html?url=your-model.sog&debug=true
⚙️ Key Configuration Parameters
| 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 |
📦 SPX High‑Compression Format
- 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.spx
🛠️ Quick Start
Using 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.spx
Using 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);
📜 Changelog
See Releases for version history.
🙏 Acknowledgements
Thanks to the following open‑source projects for reference implementations:
- antimatter15/splat
- mkkellogg/GaussianSplats3D
- huggingface/gsplat.js
- playcanvas/supersplat
- sxguojf/three-tile
📬 Contact & Support
- 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
more like this
batched-mesh-extensions
Extension methods for BatchedMesh to accelerate raycasting and frustum culling, handle different uniforms for each inst…
mapbox-3d-tiles
Integrate threejs with mapbox-gl to enable 3dtiles / 3dgs / gltf rendering.
nexus
Nexus is a c++/javascript library for creation and visualization of a batched multiresolution mesh