Bamburgh Castle Reconstruction with gsplat
Overview
This lab runs the identical Bamburgh Castle reconstruction pipeline as Lab 6 — same video source, same COLMAP/GLOMAP SfM — but replaces the original gaussian-splatting training step with gsplat, a community reimplementation under the MIT license.
The goal is two-fold: demonstrate that the license distinction does not affect reconstruction quality, and gain hands-on familiarity with gsplat's built-in evaluation output (PSNR/SSIM/LPIPS at configurable checkpoints), which the original codebase does not provide.
Prerequisites
Complete Lab 6 before running this lab. You will be comparing outputs directly against the Lab 6 baseline.
What Changes From Lab 6
The pipeline is identical up to and including GLOMAP reconstruction:
Video download → Frame extraction → COLMAP feature extraction
→ COLMAP exhaustive matching → GLOMAP reconstruction
At the training step, gaussian-splatting/train.py is replaced with:
python gsplat_repo/examples/simple_trainer.py default \
--data_dir /content/data \
--data_factor 1 \
--result_dir /content/results/bamburgh \
--max_steps 30000 \
--eval_steps 7000 15000 30000 \
--save_steps 30000 \
--disable_viewer
gsplat reads the same COLMAP-format sparse/0/ output and writes a .ply with the identical 59-property schema.
Evaluation
Unlike the original codebase, gsplat logs PSNR, SSIM, and LPIPS to a JSON file at each --eval_steps checkpoint. §7 of the notebook parses and plots these metrics.
Reference values (Lab 6 baseline, no depth priors):
- PSNR: ~29.6 dB
- SSIM: ~0.88
- LPIPS: ~0.18
Discussion
Section §12 of the notebook poses four discussion questions connecting the hands-on pipeline to the commercial licensing considerations covered in the Module 1 license reading. Work through these after completing the reconstruction.