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

1.3 KiB

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.