360° Gaussian Splatting Walkthroughs

Indoor scenes reconstructed from single 360° walking videos (Insta360 → equirectangular 3840×1920). Pipeline: frame extraction → spherical SfM (OpenSfM) → MVS dense initialization → 3DGS training.
The cafe scene is the density-optimized run (3M init points), reaching held-out PSNR 20.95 dB — first break past the 20 dB ceiling.

2 scenes held-out PSNR 20.95 dB (cafe) 3.4M gaussians total trained on a single RTX 4070 Ti (12GB)

🌀 Interactive splat viewers (desktop with a decent GPU recommended)

cafe gaussian splats, density optimized
☕ Cafe — density-optimizedNEW
2,269,510 gaussians · PSNR 20.95 dB · 73MB · drag to orbit, WASD to walk
office lobby and corridor gaussian splats
🏢 Lobby + Corridor
1,154,312 gaussians · cleaned (floaters/streaks removed) · 37MB · drag to orbit, WASD to walk

📷 SfM reconstructions (point cloud + camera path, self-contained three.js)

cafe SfM point cloud and camera path
☕ Cafe — SfMFULL 3M
full 3,000,000-point dense cloud + 230 camera frusta · 60MB, give it a few seconds
lobby corridor SfM point cloud and camera path
🏢 Lobby + Corridor — SfM
dense cloud + 149 camera frusta · self-contained three.js viewer

📈 Density scaling study (cafe scene)

How many initial points does 3DGS actually need? Same scene, only the MVS dense-init density changed.

init pointsfinal gaussiansheld-out PSNRverdict
400k367k19.55 dBtoo sparse
1.5M1.22M20.87 dBsweet spot
3M2.27M20.95 dBsaturates (+0.08 dB)

400k → 1.5M gives +1.32 dB; 1.5M → 3M only +0.08 dB while doubling size and training time. densify/prune absorbs the extra points — the initial cloud just needs to be sufficient, not maximal. (The cafe scene above serves the 3M run.)

Built with ingon1026/360-gaussian-splatting (fork of inuex35/360-gaussian-splatting, based on Inria 3DGS) · SfM: ind-bermuda-opensfm · web splat renderer: antimatter15/splat
Captured with Insta360 (5.7K, 30fps), trained locally on a single RTX 4070 Ti (12GB). Blur near the floor is the camera operator (nadir) — left unmasked to keep the ground intact.