CoolFace
Datasetpublic

eseefrie/csu101-colmap

CSU 101 NeRF Training — Undergrad Guide This document explains what has already been done, what you need to do, and how to do it. Background: What is COLMAP and what has already been done? COLMAP is a photogrammetry tool. Given a set of images or video frames of a building, it figures out where the camera was located and which direction it was pointing for every single frame. This process — called Structure from Motion (SfM) — produces a 3D point cloud and a… See the full description on the dataset page: https://huggingface.co/datasets/eseefrie/csu101-colmap.

sourceHugging Faceupdated 25d agoView on Hugging Face
0likes105downloads
Dataset Card

CSU 101 NeRF Training — Undergrad Guide

This document explains what has already been done, what you need to do, and how to do it.


Background: What is COLMAP and what has already been done?

COLMAP is a photogrammetry tool. Given a set of images or video frames of a building, it figures out where the camera was located and which direction it was pointing for every single frame. This process — called Structure from Motion (SfM) — produces a 3D point cloud and a transforms.json file describing the camera positions.

This step has already been completed for every building. You do not need to run COLMAP. The results live in:

/data/csu101-nerfs/colmap_runs/<BuildingName>/processed/

Each processed/ folder contains:

  • transforms.json — camera positions for every frame (required by the training script)
  • images/ — the extracted video frames used for training

There are 55 buildings already processed and ready to train.


What you need to do

You need to train at least 5 different neural rendering models on the building scenes. The first model is required:

  1. 1.`splatfacto-big` — required, run this first on every scene you work with 2–5. Choose 4 more from the list below

Recommended additional models (choose any 4)

ModelDescriptionSpeed
nerfactoStandard NeRF, tuned for real-world capturesFast
nerfacto-bigHigher quality version of nerfactoMedium
nerfacto-hugeHighest quality nerfactoSlow
instant-ngpVery fast real-time model, good for unbounded scenesVery fast
splatfactoStandard Gaussian Splatting (lighter than splatfacto-big)Fast

Avoid models marked (slow) in the nerfstudio list unless you have time to spare.


Setup: Activating the conda environment

The training script requires the nerfs conda environment. Conda is already installed and shared at /home/exx/miniconda3/. If conda is not found when you open a terminal, run this once:

bash
source /home/exx/miniconda3/etc/profile.d/conda.sh

To activate the environment:

bash
conda activate /home/eseefrie/.conda/envs/nerfs

You should see (nerfs) appear at the start of your terminal prompt.

If you get a "Permission denied" error activating the env, let the instructor know — they need to run one command (chmod o+x /home/eseefrie) to allow access.

Running a training job

Step 1 — Navigate to the project folder

bash
cd /data/csu101-nerfs

Step 2 — Activate the conda environment

bash
conda activate /home/eseefrie/.conda/envs/nerfs

Step 3 — Run the training script

bash
./train-one.sh <BuildingName>

Replace <BuildingName> with the exact folder name from colmap_runs/. For example:

bash
./train-one.sh Guggenheim
./train-one.sh Morgan_Library_1
./train-one.sh Stadium

The script will print where it is saving output and then begin training. The very first run will appear to hang for 5–15 minutes — this is normal. It is compiling CUDA GPU kernels in the background. Every run after the first will start immediately.

What the script does

  • Validates that COLMAP data exists for the scene
  • Sets up the GPU environment
  • Runs ns-train splatfacto-big with tuned parameters (60,000 iterations, scale regularization)
  • Saves the trained model and a log to nerf_training_runs/splatfacto-big/<BuildingName>/

Running a different model

The script defaults to splatfacto-big. To train a different model on the same scene, edit line 40 of train-one.sh and change splatfacto-big to the model name you want, or you can run ns-train directly:

bash
ns-train nerfacto \
  --output-dir /data/csu101-nerfs/nerf_training_runs/nerfacto/<BuildingName>/output \
  --data /data/csu101-nerfs/colmap_runs/<BuildingName>/processed

Available building scenes (55 total)

Admin                          Johnson
Ammons                         Laurel
Anatomy_Zoology_Yates_Chemistry  Lory_Student_Center_1
Animal_Science                 Lory_Student_Center_2
Behavioral_Sciences            Microbiology
Biology                        Military_Service1
Centennial_and_Student_Services  Military_Service2
Chemistry_Research             Moby_Arena
Clark_1                        Morgan_Library_1
Clark_2                        Morgan_Library_2
Computer_Science_merged        NESB
Danforth_Chapel                NRRL_and_Wagar
Eddy_merged                    OT
Education_merged               OT_Annex
Engineering_merged             Painter
Environmental_Health           Pathology
Forestry                       Physiology
Gibbons                        Plant_Growth_Facilities_and_Insectary
Glover_1                       Plant_Science
Glover_2                       Preconstruction_Center
Guggenheim                     Rockwell
Industrial_Science_Lab         Scott_Bioengineering
                               Shepardson
                               Smith_Natural_Resources_1
                               Smith_Natural_Resources_2
                               Stadium
                               Statistics
                               Student_Recreation_Center
                               TILT
                               Weber_1
                               Weber_2
                               Weber_3
                               Weed_Research_lab

Where outputs go

Trained models are saved to:

/data/csu101-nerfs/nerf_training_runs/<model>/<BuildingName>/output/

A training log is saved to:

/data/csu101-nerfs/nerf_training_runs/<model>/<BuildingName>/logs/train.log

Viewing results (optional)

When training runs, a viser web viewer is started automatically. If you are on the same machine (or have port forwarding set up), you can open it in a browser at the URL printed in the terminal (e.g. http://0.0.0.0:7007). You can watch the splat/NeRF build up in real time. This is optional — training continues regardless of whether anyone connects.


Quick reference

bash
# Activate environment
conda activate /home/eseefrie/.conda/envs/nerfs

# Train splatfacto-big on a scene (required model)
cd /data/csu101-nerfs
./train-one.sh Guggenheim

# List all available scenes
ls colmap_runs/

# Check training output
ls nerf_training_runs/splatfacto-big/
eseefrie/csu101-colmap · CoolFace