festifun/plan/lane-B-recon.md
m3ultra e31e8ac559 Festival 4D build spec + parallel lane plan for Opus agents
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 00:06:54 +10:00

12 lines
1.3 KiB
Markdown

# Lane B — Reconstruction & geometry (branch `lane/b-recon`)
**Scope: spec milestone M2** (frame sampling, COLMAP orchestration, model parsing, scene normalization, pose interpolation) **plus the M8 geometry functions** (backend math only — no endpoint wiring, no UI).
- Owned files: `backend/festival4d/frames.py`, `sfm.py`, `geometry.py`, `backend/tests/test_sfm.py`, `test_geometry.py`. Nothing else.
- `geometry.py`: implement the stubs foundation left — `slerp_pose`, `ray_from_pixel`, `triangulate_rays`, `nearest_point_on_ray` — with unit tests (spec M2 + M8 math). **Do not modify `colmap_to_threejs` or its test** — that is a frozen contract.
- COLMAP is optional at runtime (spec ground rules): detect the binary, degrade gracefully, and make everything testable without it (hand-written COLMAP TXT snippets for parser tests; synthetic poses for the export path).
- Honor the spec M2 failure handling: bad reconstruction must diagnose and leave existing poses untouched, never corrupt the DB.
- Write poses through `db.py` helpers; output normalized scene + `points.ply` in exactly the fixture's format (lane C is already consuming that format).
**Done when:** spec M2 acceptance passes, geometry unit tests pass (slerp, normalization, ray/triangulation), `pytest` green, merged to `main`.