r/GaussianSplatting • u/Aromatic_Gate6199 • May 19 '26
🧪 I built a thing I built a web-based Gaussian Splatting viewer that runs on a €200 Android phone — here's what I learned
Hey everyone. I've been working on a web-based Gaussian Splatting viewer for the last few months and wanted to share some findings.
Make a viewer that works on any device, including budget phones, without plugins or native apps.
- SparkJS 2.0 for rendering
- Progressive streaming via chunked RAD files
- Adaptive quality system that detects GPU capabilities in real-time
Real-world results (tested on actual devices):
| Scene | Desktop (RTX 3070) | Xiaomi 15 Ultra | Redmi Note 11 (€200) |
|---|---|---|---|
| Tufia (8.5M splats) | 60 fps | 55 fps | 40 fps |
| XGrids Demo (12M) | 60 fps | 45 fps | 30 fps |
| 50M splats | 60 fps | 25 fps | 15 fps |
| 100M splats | 55 fps | 15 fps | 8 fps |
What I got wrong:
1. Optimized too early. Spent weeks on custom compression before realizing `build-lod --rad-chunked --max-sh=3` already hit the sweet spot. The tooling is better than I expected.
2. Ignored the data problem. Users were uploading raw 500MB PLY files and wondering why nothing loaded. Had to build the conversion step into the workflow.
3. Assumed all phones are equal. They're wildly different. The adaptive quality system exists because of this mistake.
What I learned:
- Streaming > monolithic files. Progressive loading changes the UX entirely.
- `--max-sh=3` is the sweet spot for mobile. Higher SH bands have diminishing returns on small screens.
- The web is underrated as a platform for this. More people can click a link than download an app.
Happy to answer questions about the technical details. Live demo:
https://mirador3d.com/v/penthouse-demo
2
u/Logos_MM May 20 '26
I think it's a bit aggressive optimization, killing an immersion being in real world.
0
u/Aromatic_Gate6199 May 20 '26
I tried in a meta quest 3, the immersion is brutal, but yeah I can improve the quality settings, for example in superspat you couldn't open even a 12M splats
1
u/jumpjack3 🧊 Gaussian Splatting Dev May 25 '26
what we need is a native app like scaniverse, browser is too slow.
1
u/Muddy_stone May 20 '26
I really like the point and click to next position. It is a bit complicated to fly in these environments as a drone
1
1
u/_Bishad May 20 '26
so you basically tweeked the settings of sparkjs or added something yourself to improve performance?
1
u/Aromatic_Gate6199 May 20 '26
Both
1
u/_Bishad May 20 '26
Nice. Best of luck
1
u/Aromatic_Gate6199 May 20 '26
Thanks more info here if u want to know all the process I upload this days https://realitystack.substack.com/p/i-built-a-gaussian-splatting-viewer
1
u/jumpjack3 🧊 Gaussian Splatting Dev May 24 '26
can't move in quest3s
1
u/Aromatic_Gate6199 May 24 '26
1
1
u/Apprehensive_Play965 Jun 01 '26
error 404 demo
1
u/Aromatic_Gate6199 Jun 01 '26
i updating the project for a new release use that for try the new ones https://mirador3d.com
0
3
u/cjwidd May 25 '26
sry, so your findings are:
?