
- 1 · Points
- 2 · Splat
- 3 · Path points
- 4 · Path splat
We stopped borrowing other people's footage and filmed our own local park: two ordinary family walks on an Insta360 X6, 20 seconds down a tree-lined path and 38 seconds through the park. Both fisheye lenses go in raw, with no stitching, and are solved together as one camera rig, so every moment is placed. Everyone in the footage, the camera holder included, is masked out, and a Gaussian splat is trained locally. The page replays each walk with the park building up as points in the order the camera first saw it, then hands over to the finished splat.
What we tried
- Filmed two walks on an Insta360 X6 held on a stick, out with the family.
- Kept the sharpest moment in every third of a second from both raw fisheye lenses, and masked every person, the pram and hands with Grounding DINO and SAM 2.1.
- Solved the two lenses as one COLMAP rig, starting from back-to-back lenses a few centimetres apart and letting the solve refine it.
- Trained in LichtFeld Studio straight on the fisheye images, then tagged every part of the splat with the moment the camera first saw it.
What we measured
| Measure | Tree-lined path | Park walk | Note |
|---|---|---|---|
| Walk filmed | 20 s | 38 s | |
| Moments placed (both lenses) | 61 of 61 | 113 of 113 | 122 and 226 images |
| Camera solve error | 0.71 px | 0.67 px | |
| Distance walked | about 22 m | about 20 m | Approximate, from an assumed 1.6 m camera height |
| Points in the replay | 1.50M | 1.54M | |
| Held-out PSNR | 17.9 dB | 19.4 dB | Held down by the two lenses' different exposure |
| End to end on one RTX 4070 | 52 min | 1 h 26 min | Training 42 and 58 min |
What went wrong
- On an earlier home capture we solved the two lenses separately and some frames landed in the wrong place. Locking them together as one rig placed every moment of both walks.
- Before this, we tried crowded stock street walks. Half of every frame was strangers to remove, and the crowd left grey smears. Our own quieter walks came out far cleaner.
- On one of those stock walks, the ground fit locked onto the crowd and tilted the whole street by 15 degrees. "Up" now comes from the camera's level horizon and its steps.
What happens next
- Match the two lenses' exposure before training.
- Longer walks that loop back, so the far sides fill in.
- Join several walks into one map of the area.
Built with
- COLMAP 4.1 BSD-3-Clause
- Grounding DINO Apache 2.0
- SAM 2.1 Apache 2.0
- LichtFeld Studio GPL-3.0
- Spark 2.2 MIT
- three.js MIT
Next experiment
A Quest 3 headset rebuilt our room as a splat, no camera solve needed →
Want this for your data?