u/0x00000032

Using loss curves to decide splat count and training length in 3DGS

Should I add more splats, run more iterations, or stop because the scene has already reached a practical plateau?

The useful part was not the absolute loss value by itself, but the shape of the curve:

  • when the run reaches a plateau;
  • whether a higher splat budget actually gives a meaningful improvement;
  • how much slower training becomes;
  • when increasing iterations makes sense;
  • where diminishing returns start.

For example, in this scene, the lower-budget runs mostly stopped improving after around 180k–200k iterations, while the 600k splat run still had a curve that looked worth extending.

The article is the main part here — it is more about the workflow and how to interpret the curves than about the tool itself.

I also made a small LichtFeld Studio plugin/repository that exports training metrics to TensorBoard event files and CSV, so different runs can be compared on the same chart.

Article:
https://github.com/Dok11/lichtfeld-tensorboard-export/blob/main/docs/articles/using-loss-curves.en.md

Repository:
https://github.com/Dok11/lichtfeld-tensorboard-export

This is not meant as a universal rule for every scene, but more as a practical way to make training decisions from data instead of guessing.

u/0x00000032 — 7 days ago

Working on a step-by-step tutorial: travel video footage to Gaussian Splat

I reconstructed Bolton Priory from public travel footage and turned it into an interactive Gaussian Splat.

For this experiment, I used videos by David Pickup from Pexels, extracted frames from the footage, aligned the cameras in RealityScan, and built the final 3DGS scene in LichtFeld.

Source videos:
https://www.pexels.com/@davidpickup/gallery/?filter=videos

Location:
https://maps.app.goo.gl/GGneodrkR7XhtZYS9

I had previously made a traditional 3D model of the same place, so I wanted to try the same kind of reconstruction as a splat and compare how it feels.

Older mesh version:
https://sketchfab.com/3d-models/bolton-priory-0f91b25d4adc4d84a1caf4827b676416

Interactive Gaussian Splat:
https://superspl.at/scene/56496eab

I’m currently preparing a full step-by-step tutorial covering the whole process: extracting frames from video, aligning cameras in RealityScan, training the splat in LichtFeld, and publishing the final scene.

youtube.com
u/0x00000032 — 12 days ago

I extracted 1180 frames from a travel video and turned this hilltop village into an interactive Gaussian Splat

I’ve been experimenting with reconstructing places from video instead of a traditional photo set. For this one, I used footage of Anciolina, extracted 1,180 frames, aligned the cameras in RealityScan, and used that reconstruction as the basis for a Gaussian Splat scene in LichtFeld.

What made this especially interesting to me is that I had already used the same footage once before to build a more traditional 3D model — so this time I wanted to see how the result would feel as a splat instead of a mesh.

Interactive scene: https://superspl.at/scene/1278e99d
Older mesh version: https://sketchfab.com/3d-models/anciolina-3d-hilltop-village-scan-snowy-64ede430838142f5929edfc7eb371efc

The original footage was shot by Mark Soetebier on Pexels, and the creator also has a longer YouTube travel video from the trip.

My workflow:

  1. Download video from Pexels
  2. Use Blender to convert video to images (1180 frames)
  3. Align cameras in RealityScan
  4. Export point cloud and camera registrations from RealityScan (manually choosen 249 cams)
  5. Create Gaussian Splat scene in LichtFeld

Along the way, I also built a small LichtFeld plugin that exports training metrics to TensorBoard, so I could inspect the reconstruction process in more detail.

I’ll probably write a separate post about that next — what it tracks, why it’s useful, and how it helps with tuning Gaussian Splatting experiments.

u/0x00000032 — 14 days ago