# M00-QAR-CAMERA-POSE-SWEEP-001 — Empirical camera pose sweep ## Ownership - Target: M00 - Program: QAR - Owner/Agent ID: sindo-main-codex - Branch: `work/sindo-main-codex/m00-camera-pose-sweep` - Lease expires UTC: 2026-07-14 - Integrator: milestone integrator ## Outcome Recover reproducible checkpoint framing by sweeping bounded yaw/pitch offsets and ranking paired-image error. ## Non-goals - Changing runtime player camera defaults. - Claiming an exact original-client camera pose from perceptual score alone. - Adding computer-vision registration or image warping. ## Paths - Exclusive: camera-pose CLI and sweep orchestration - Shared/hotspots: renderer baseline documentation - Generated/ignored: local candidate PNGs and JSON reports ## Contracts and data - Public API/events: additive camera yaw/pitch offset and single-pass capture options; new PowerShell sweep command - Schema/format version: capture report schema remains version 1 with additive camera-offset fields - Migration/compatibility: existing capture commands retain zero offsets and two passes - Consumers: M00 paired-fidelity workflow ## Dependencies - Requires: build 12340 reference image, capture tool, paired-image comparator - Blocks: reproducible manual-reference framing - External state: original screenshots remain outside Git ## Verification - Commands: capture dry-run offset regression, comparator self-test, bounded local sweep when a display/reference is available, repository gates - Fixtures: one named M00 checkpoint - Fidelity evidence: ranked yaw/pitch candidates with explicit human-approval requirement - Performance budget: offline diagnostic; single-pass mode avoids redundant warm capture ## Documentation deliverables - Inline public API docs: capture and sweep usage - Module specification: camera-pose data flow, verification and source map - Data-flow diagram: updated pose-sweep flow - Sequence/state/dependency diagrams: unchanged - Source map/status updates: baseline workflow and findings ## Simplicity and naming - Important names introduced: `camera_yaw_offset_degrees`, `camera_pitch_offset_degrees`, `single_pass` - Simplest considered solution: bounded grid over existing capture/comparator tools - Rejected complexity/abstractions: feature matching, optimizer framework, image transforms - Unavoidable complexity and justification: original-client camera angles are not exposed by tested APIs - Measured optimization evidence: single-pass mode halves captures per candidate ## Status - State: ready-for-review - Done: additive capture offsets, single-pass calibration mode, bounded grid runner, ranked JSON contract, grid-plan regression and documentation - Next: run a coarse-to-fine real sweep with the private build 12340 reference directory, then obtain human framing approval - Blocked by: ## Handoff - Commit: this work-package commit - Results: dry-run reported yaw 12.50/pitch -7.50; comparator self-test passed; a 3x2 plan produced six unique candidates; full seven-checkpoint M00 dry-run passed with default zero offsets - Remaining risks: no private reference directory was available in this worktree, so real perceptual ranking and human approval remain external evidence - Documentation updated: `docs/CAMERA_POSE_SWEEP.md`; renderer module verification, risk and source map