This file is the single source of truth for agent instructions in this repo.
CLAUDE.md is a symlink to this file.
Read relevant docs/agent/ files before proceeding:
workflow.md— read before creating issues, PRs, or branches (templates, labels, naming)code_conventions.md— read before writing code (style, typing, minimal diffs)architecture.md— read before modifying pipeline or structuredependencies.md— read before changing dependencies, forks, or Docker buildstesting_patterns.md— read before writing testsreleases.md— read before releasing (conventional commits, git-cliff)
- Type: Video-to-3D mesh reconstruction pipeline
- Entry point:
scripts/run.sh(single source of truth for pipeline contract) - Goal: Convert videos to textured 3D meshes via SfM → neural reconstruction → export
Pipeline orchestrated by Bash scripts (scripts/). Configuration in config/*.sh.
scripts/run.sh— canonical pipeline entry pointconfig/defaults.sh— base defaults for all model typeswebui.py— Gradio UI wrapping run.shdocker/run.sh— Docker wrapper for run.sh
Key flows:
video→ extract frames (ffmpeg)sfm→ structure from motion (COLMAP/GLOMAP/HLoc/VGGSfM)process→ prepare data for trainingtrain→ neural surface reconstruction (sdfstudio)export→ extract and texture mesh
# Install
uv sync --group dev # via uv (matches CI)
pip install -e ".[dev]" # editable + dev tools
# Run pipeline
scripts/run.sh /path/to/input [video|sfm|process|train|export ...]
docker/run.sh /path/to/input [same options]
# Dev (use Makefile or directly)
make check # fmt + lint + type + test
scripts/lint.sh # shellcheck + ruff + pyright + pytest
# Tests
uv run pytest tests/ -k foo # run specific test- Python >= 3.11; lines ≤ 120 chars (see
[tool.ruff]) - Bash: 2-space indent,
set -e, quote variables - Keep
scripts/run.shas canonical reference; updatewebui.py,docker/run.sh,README.mdwhen changing flags
Use Conventional Commits:
type(scope): description
Types: feat, fix, docs, refactor, perf, test, chore, ci
Examples:
feat(export): Add glTF compression option
fix(webui): Handle missing video file gracefully
docs: Update installation instructions
See docs/agent/releases.md for full details.
- Before editing: read files first; understand existing code
- After code changes:
make check(orscripts/lint.sh) - Doc check: explicitly verify if docs need updating
- Pipeline changes: update
README.md,webui.py, Docker wrappers