# M00-QAR-CAMERA-FRAMING-REFINEMENT-001 — Goldshire pitch/FOV refinement

<!-- OPENWC_CLAIM:M00-QAR-CAMERA-FRAMING-REFINEMENT-001:sindo-main-codex:2026-07-14 -->
<!-- OPENWC_INTEGRATION:ACCEPTED:M00-QAR-CAMERA-FRAMING-REFINEMENT-001:3172f41 -->

## Ownership

- Target: M00
- Program: QAR
- Owner/Agent ID: sindo-main-codex
- Branch: `work/sindo-main-codex/m00-camera-framing-refinement`
- Lease expires UTC: 2026-07-14
- Integrator: milestone integrator

## Outcome

Jointly refine Goldshire checkpoint pitch and FOV against a WMO-ready build 12340 reference.

## Non-goals

- Changing runtime player camera defaults.
- Changing manifest values without an interior optimum and human approval.
- Optimizing yaw beyond the ready-scene coarse result.

## Paths

- Exclusive: joint FOV option in camera-pose sweep and framing evidence
- Shared/hotspots: camera-pose operational documentation and renderer module findings
- Generated/ignored: candidate PNGs and ranking JSON under `user://`

## Contracts and data

- Public API/events: additive `-CameraFovValues`; scalar `-CameraFov` remains compatible
- Schema/format version: ranking schema remains version 1 with existing per-candidate FOV field
- Migration/compatibility: scalar sweeps retain existing candidate paths
- Consumers: M00 fidelity workflow

## Dependencies

- Requires: WMO-ready 8-second capture contract
- Blocks: Goldshire manifest framing decision
- External state: private build 12340 reference remains outside Git

## Verification

- Commands: joint-grid plan regression, real ready-scene sweep, comparator self-test, repository gates
- Fixtures: private Goldshire Inn reference
- Fidelity evidence: joint pitch/FOV ranking and human inspection
- Performance budget: offline diagnostic

## Documentation deliverables

- Inline public API docs: PowerShell parameter
- Module specification: framing finding
- Data-flow diagram: FOV joins pose grid
- Sequence/state/dependency diagrams: unchanged
- Source map/status updates: operational guide

## Simplicity and naming

- Important names introduced: `CameraFovValues`, `effectiveCameraFovValues`
- Simplest considered solution: one additional loop around the existing grid
- Rejected complexity/abstractions: generic optimizer
- Unavoidable complexity and justification: projection and pitch jointly affect framing
- Measured optimization evidence: bounded 1x5x3 grid

## Status

- State: ready-for-review
- Done: additive joint FOV grid, compatibility-preserving paths, plan regression, ready-scene 15-candidate ranking and human inspection
- Next: add approved landmark/region scoring before any manifest camera calibration
- Blocked by:

## Handoff

- Commit: this work-package commit
- Results: numeric best FOV 62/yaw 10/pitch -25 at mean 0.078843 and ratio 0.667721 was visually rejected as grass-dominated; FOV 38/yaw 10/pitch -10 better matched building scale at mean 0.084220
- Remaining risks: full-frame metric does not preserve landmark framing; no manifest values were changed
- Documentation updated: `docs/CAMERA_POSE_SWEEP.md`, `docs/modules/world-renderer.md`
