git clone https://github.com/noahmeurer/monocular-depth-estimation.git ~/monocular-depth-estimation
cd ~/monocular-depth-estimationDepth Anything 3 is installed automatically by uv sync (git dependency in pyproject.toml).
Uses uv with CUDA 13.0 PyTorch wheels from pyproject.toml.
Copy .env.example to .env and fill in your username under the /work/scratch/<your_username>/... paths and your HF_TOKEN:
cp .env.example .env
# edit HF_TOKEN, HF_HOME, XDG_CACHE_HOME
source .envOn x86 GPU nodes, load CUDA before uv sync:
module add cuda/13.0Keep uv’s cache on scratch (20GB home quota):
export UV_CACHE_DIR=/work/scratch/<your_username>/uv-cacheOn the login node or any x86 GPU node:
cd ~/monocular-depth-estimation
module add cuda/13.0
uv sync
source .venv/bin/activateGB10 is aarch64 — use .venv-gb10, not .venv. Interactive setup and drop-caches: CLUSTER.md → GB10 (interactive).
python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"Train: /cluster/courses/cil/monocular-depth-estimation/train
Test: /cluster/courses/cil/monocular-depth-estimation/test
Interactive session (x86 GPU):
srun --pty --gpus 5060ti:1 -A cil_jobs -t 120 bash --loginBatch job:
sbatch scripts/baseline1.slurmSlurm accounts, storage, Jupyter: CLUSTER.md.
Scratch dirs are world-readable on the cluster, so the simplest way to share between teammates is to rsync/cp straight from another user's /work/scratch/<user>/.... See SCRATCH.md for the index of known artifacts (baseline outputs, pseudo-labels, etc.).
For sharing off-cluster (e.g. to a teammate without cluster access, or as a durable backup), scripts/hf_scratch_sync.py pushes/pulls scratch paths to a private Hub repo (HF_SCRATCH_REPO_ID in .env):
# upload outputs/baseline1 from your scratch to the team's private HF repo
python scripts/hf_scratch_sync.py push outputs/baseline1
# pull it back on another machine into the same scratch-relative path
python scripts/hf_scratch_sync.py pull outputs/baseline1
# list what's on the Hub
python scripts/hf_scratch_sync.py list outputs/For folders with thousands of files (e.g. pseudo-labels), use --chunk-size 1000 --sleep-between-chunks 30 to stay under HF's commit-rate limits. --scratch-root /work/scratch/<other_user> lets you push someone else's tree without touching your own.
| # | Tool | Files affected | Purpose |
|---|---|---|---|
| 1 | Claude Sonnet | README.md, CLUSTER.md |
Cluster onboarding, environment setup |
| 2 | Claude (Cursor) | notebooks/visualize_dataset.ipynb |
Matplotlib syntax for visualize_random_batch dataset inspector |
| 3 | Codex | scripts/baseline1.slurm |
Slurm job script for DA3MONO-LARGE zero-shot baseline |
| 4 | Claude (Cursor) | README.md, CLUSTER.md, pyproject.toml, scripts/baseline_teacher_gb10.slurm |
GB10/uv dual-env setup (.venv-gb10, PyTorch cu130 index, xformers x86-only) |
| 5 | Codex | scripts/preview_bs3_pseudo_labels.py |
Debug script for baseline3 pseudo-label generation |
| 6 | Claude (Cursor) | scripts/hf_scratch_sync.py, .env.example, SCRATCH.md, README.md |
Private Hub push/pull for scratch artifacts (cil-mono-depth-26); scratch artifact index |
| 7 | Codex | src/bs3_pseudo_label_DA3_train.py, scripts/baseline3_train.slurm, src/bs3_extract_da3_features.py, scripts/baseline3_build_val_manifest.py, scripts/baseline3_extract_features.slurm |
Reimplemenation of baseline2 fine-tune script but taking the pre-generated pseudo-labels as targets; implement intra-epoch validation; implemented idea to perform DA3/DINO feature extraction followed by cosine-similarity and PCA-based similarity ranking of training samples to do validation-manifest construction |
| 8 | Codex | scripts/baseline3_build_val_manifest.py |
HTML preview/test-gallery utilities for visually inspecting cosine and PCA validation subsets against the test set |
| 9 | Codex | src/bs4_ablationA_topk_adapt.py, scripts/baseline4_ablationA_top250_adapt.slurm |
Baseline4 ablation A resume script for top-k target-similar adaptation from a saved Baseline3 checkpoint using DA3-GIANT pseudo-labels |
| 10 | Claude (Cursor) | notebooks/novel_view_synthesis.ipynb |
gsplat splat rendering and depth reprojection helpers |
| 11 | Claude (Cursor) | notebooks/novel_view_synthesis.ipynb |
Clean refactor of novel_view_synthesis_messy.ipynb (author's work) and stacked multi-view figures |
| 12 | Codex | src/bs4_generate_novel_views.py, scripts/baseline4_generate_novel_views.slurm |
Baseline4 top-250 cosine novel-view dataset generation using DA3-GIANT Gaussian splats and confidence-masked reprojected depth |
| 13 | Codex | src/bs4_ablationB_aug_adapt.py, scripts/baseline4_ablationB_aug_adapt.slurm |
Baseline4 ablation B fine-tuning on the generated 250-image augmented dataset (original + left/right/up/down novel views) from the same saved Baseline3 checkpoint |