From cc903981ad508234e9b2c0245d2ac342446fec59 Mon Sep 17 00:00:00 2001 From: fy59 Date: Thu, 3 Sep 2026 12:22:07 +0200 Subject: [PATCH] docs: define calibration science v2 heterogeneous optics --- docs/architecture/calibration_science_v2.md | 503 ++++++++++++++++++++ docs/roadmap/roadmap.md | 25 +- prompt/02_CURRENT_FROZEN_STATE.md | 34 +- prompt/12_CALIBRATION.md | 69 ++- prompt/31_IMPLEMENTATION_ORDER.md | 45 +- 5 files changed, 651 insertions(+), 25 deletions(-) create mode 100644 docs/architecture/calibration_science_v2.md diff --git a/docs/architecture/calibration_science_v2.md b/docs/architecture/calibration_science_v2.md new file mode 100644 index 0000000..557c577 --- /dev/null +++ b/docs/architecture/calibration_science_v2.md @@ -0,0 +1,503 @@ +# Calibration Science v2 — heterogeneous optics and adaptive acquisition + +**Status: PLANNED — current additive design authority.** + +Calibration Science v1 remains `PASS/FROZEN`. Science v2 does not weaken, +reinterpret or retroactively replace v1 evidence. It defines the next +scientific generation required by the product requirement that a Lardon3D +project may contain photographs from heterogeneous cameras, lenses, focal +configurations and normal autofocus operation. + +No device-specific autofocus envelope is validated by this document. Numeric +focus-domain limits require dedicated physical evidence. + +## 1. Product/science problem + +A photogrammetry product must not require the operator to remember a rigid +exposure recipe or split one physical subject into artificial projects merely +because acquisition state changed. + +The required user experience is: + +```text +user frames and captures +-> Lardon3D records/observes acquisition state +-> Lardon3D measures actual image quality +-> Lardon3D resolves exact calibration applicability +-> Capture remains usable when quality is good +-> reconstruction becomes READY only when calibration coverage is complete +``` + +A normal supported camera body or rectilinear lens is equipment data. A new +brand/model name alone must not require source-code modification. + +Source changes are justified only by a genuinely unsupported transport, +encoded representation, geometric camera model or required device-state +mechanism. + +## 2. Compatibility with Science v1 + +The following remain frozen compatibility contracts: + +```text +CALIBRATION_SCIENCE_V1=PASS/FROZEN +CALIBRATION_TOOLING_V1=PASS/FROZEN +CALIBRATION_BOOTSTRAP_V1=PASS/FROZEN +CALIBRATION_WORKFLOW_V1=PASS/FROZEN +``` + +Historical S21 and A6000 Engine Bay campaigns remain: + +```text +CALIBRATION_UNAVAILABLE +BLOCKED_BY_KNOWN_CALIBRATION_DATA +``` + +Science v2 does not authorize retro-calibration by inference. + +## 3. Fundamental separation of states + +Science v2 separates three concepts that must never be conflated. + +### 3.1 Capture existence + +A Capture is durable acquisition evidence. Unsupported or unresolved optics do +not erase it. + +### 3.2 Photo quality + +Quality describes whether the decoded representation is useful image evidence. +It is evaluated from the image itself and may include: + +- sharpness; +- defocus; +- motion blur; +- black/white clipping; +- usable shadow/highlight information; +- contrast; +- texture; +- noise or local signal-to-noise evidence when implemented; +- downstream feature usability. + +Photo Quality may recommend `GOOD`, `SUSPECT` or `REJECT` without assigning any +calibration identity. + +### 3.3 Calibration readiness + +Calibration readiness answers whether a selected scientific representation has +exact compatible geometric calibration evidence. + +Therefore this is valid: + +```text +QUALITY=GOOD +CALIBRATION=CALIBRATION_REQUIRED +``` + +The image remains in the project. + +## 4. Heterogeneous selected executions + +A single project and one selected scientific execution may contain images from: + +- different camera bodies; +- different lenses; +- different focal configurations of one zoom; +- different validated focus states or focus applicability domains; +- different validated aperture applicability states; +- different acquisition sessions. + +The scientific requirement is per selected image: + +```text +selected image +-> exactly one compatible calibration +``` + +It is not: + +```text +selected execution +-> one global calibration +``` + +A truthful READY state requires complete calibration coverage of the exact +selected-image set. + +The current Sparse calibration scope already represents members as +`image_id -> calibration_id`; v2 should reuse that per-image model unless +repository inspection proves a real missing invariant. + +## 5. No silent substitution + +Science v2 preserves: + +```text +NO_SILENT_SCIENTIFIC_SUBSTITUTION +``` + +The following are forbidden unless a later explicit validated v2 transfer model +authorizes them: + +- another camera body's calibration; +- another lens's calibration; +- a nearby focal calibration; +- a guessed focus calibration; +- a guessed aperture compatibility; +- a guessed stabilization/crop/pipeline equivalence; +- fuzzy metadata matching that silently changes scientific identity; +- interpolation or extrapolation outside a validated model/domain. + +If exact compatibility cannot be proven: + +```text +CALIBRATION_REQUIRED +``` + +If more than one valid choice remains unresolved: + +```text +SELECTION_REQUIRED +``` + +## 6. Exposure and photometric controls + +Purely photometric controls are adaptive acquisition variables. + +Science v2 does not reject an image merely because of the numeric value of: + +- shutter speed; +- ISO; +- white balance; +- exposure compensation; +- other controls proven not to change image geometry. + +Examples such as `1/125`, `ISO 800` or `f/8` from historical campaigns are +observations, not universal validity thresholds. + +For shutter/ISO/white balance, actual decoded-image evidence decides whether +the result is usable. A faster shutter with higher ISO may be preferable to a +blurred low-ISO image; a slower shutter may be valid when the camera is stable. + +Missing photometric metadata must not cause fabricated values. + +## 7. Aperture + +Aperture is not automatically classified as purely photometric because some +lenses can exhibit focus shift or geometric changes with aperture. + +The product goal remains that the operator does not manually manage scientific +grouping. + +Science v2 must allow either: + +1. one calibration applicability proven valid across an aperture domain; or +2. distinct automatically classified aperture applicability states. + +Unknown compatibility produces `CALIBRATION_REQUIRED`, not Capture rejection. + +No aperture-domain threshold is frozen without physical validation. + +## 8. Focal length and zoom + +Multiple focal configurations may coexist in one project and one selected +execution. + +Exact calibrated focal states are the baseline v2 mechanism. + +Electronic focal metadata may select an exact compatible state only when its +identity and trust rules are satisfied. + +Manual lenses or missing metadata remain normal product paths through explicit +bounded state assignment. + +Calibration at one focal state is never silently borrowed for another focal +state. + +A future continuous focal transfer/interpolation model is allowed only if it is +a separately versioned Science v2 model with fit-domain evidence, hold-out +validation, deterministic evaluation and hard rejection outside its validated +domain. + +## 9. Autofocus and focus applicability + +Autofocus is a normal acquisition mode in Science v2. + +Normal product use must not require the user to lock manual focus for every +project merely to satisfy calibration. + +Science v2 supports the following scientific concepts: + +### 9.1 Exact focus state + +A calibration may apply to one exact observed/declared focus state. + +This remains useful for manual lenses, fixed-focus systems and strict +measurements. + +### 9.2 Validated focus applicability domain + +A calibration may apply across a bounded autofocus/focus domain only when +physical evidence proves that applicability. + +Required evidence includes: + +- exact camera body and objective identities; +- exact focal/geometric pipeline state; +- explicit focus-state observation representation and provenance; +- repeated physical calibration samples across the intended focus domain; +- independent hold-out focus states; +- comparison in image-space geometric error, not only parameter percentage; +- bounded deterministic applicability; +- explicit rejection outside the validated domain. + +Historical EXIF/MakerNote values such as Sony `FocusPosition2` or derived +`FocusDistance2` may inform experiment design. They are not by themselves +physical calibration evidence. + +### 9.3 Discrete focus bands + +If one calibration is not valid across the complete autofocus range, v2 may +use multiple validated discrete focus bands or exact focus states. + +Automatic classification is required where trusted observed state permits it. + +Ambiguous overlap must not silently choose a calibration. + +### 9.4 Continuous focus transfer models + +Continuous interpolation across focus is not assumed. + +If future physical evidence justifies it, such a model must be: + +- explicitly versioned; +- deterministic; +- bounded to a validated domain; +- fitted from retained physical evidence; +- tested on excluded hold-out focus states; +- rejected outside the domain; +- incorporated into scientific identity. + +No extrapolation is silent. + +## 10. Stabilization, crop, orientation and processing pipeline + +Only state capable of changing geometry belongs to calibration applicability. + +Examples requiring explicit treatment unless equivalence is proven: + +- electronic stabilization; +- geometric crop; +- perspective correction; +- resize; +- computational geometry correction; +- in-camera lens correction that changes pixel coordinates; +- orientation normalization. + +Purely cosmetic color processing does not create a new geometric state after +coordinate equivalence has been proven. + +Unknown geometric state is incompatible until resolved. + +## 11. Observed optical state and provenance + +Science v2 requires a bounded, versioned observed state sufficient to decide +calibration applicability. + +Conceptually it may contain: + +```text +camera_body_identity +lens_identity +focal_state +focus_state_or_domain_observation +aperture_state_when_geometrically_relevant +stabilization_and_geometric_pipeline_state +decoded_oriented_width_height +crop_resize_transform_identity +representation/decode_pipeline_identity +observation_provenance +``` + +The exact public ABI and persistence layout are implementation-contract work. + +Important rules: + +- unknown is explicit; +- unknown is never replaced with a guessed default; +- electronic metadata is evidence with defined trust, not automatic truth for + every scientific field; +- manual assignment is explicit and durable where metadata cannot identify a + state; +- exact retry is idempotent. + +## 12. Automatic calibration resolution + +For each selected image: + +```text +load exact Capture and representation +-> load/derive trusted observed optical state +-> enumerate validated compatible calibration applicability +-> exactly one: calibration resolved +-> none: CALIBRATION_REQUIRED +-> multiple unresolved: SELECTION_REQUIRED +``` + +A selection must remain reviewable and durable. + +Calibration readiness does not rewrite Photo Quality evidence. + +## 13. Artifact / Tooling / Bootstrap evolution + +Science v2 does not require a new artifact merely because a project is +heterogeneous. + +Implementation must first inspect and reuse existing primitives. + +Current architecture already has: + +```text +SparseCalibrationScope member = image_id -> calibration_id +L3DCALB1 entry = per-image intrinsics +``` + +However Tooling/Workflow v1 binds one global optical-state/provenance bundle. +If heterogeneous independent calibration groups cannot be represented without +losing provenance, an additive `L3DCALB2` / Tooling v2 / Bootstrap v2 may be +defined. + +Any v2 artifact must preserve per-group: + +- optical/applicability identity; +- target identity; +- solver executable/configuration identity; +- initialization evidence; +- validation evidence; +- model/dimensions; +- exact published intrinsics; +- exact selected-image membership. + +V1 artifact semantics remain unchanged. + +## 14. READY invariant + +A selected execution is READY only if: + +- every selected image is covered exactly once; +- every calibration is scientifically compatible with that image's observed + geometric state; +- the final calibration scope covers the exact selected image set; +- no unresolved or ambiguous selected image remains; +- publication/attachment follows the existing atomicity/idempotence contract. + +A project may retain any number of other non-selected or +`CALIBRATION_REQUIRED` Captures. + +## 15. Device independence + +Normal equipment onboarding is data-driven. + +Required product properties: + +```text +NEW_CAMERA_REQUIRES_CODE_CHANGE=NO +NEW_LENS_REQUIRES_CODE_CHANGE=NO +MULTIPLE_LENSES_PER_CAMERA=SUPPORTED +ZOOM_MULTIPLE_FOCALS=SUPPORTED +MULTIPLE_OPTICAL_CONFIGURATIONS_PER_PROJECT=SUPPORTED +``` + +A genuinely different geometric model, unsupported file format or unsupported +transport may require new code. A different manufacturer/model string does not. + +## 16. Acquisition control philosophy + +Science v2 defines what must be observed and proven; it does not require one +specific control transport. + +Future adapters should follow: + +```text +if hardware permits control: + Lardon3D may choose/control settings automatically +else if state can be observed: + Lardon3D verifies/classifies automatically +else: + request only the minimum explicit user action required +``` + +HDMI, USB remote control and device-specific adapters remain separate future +implementation layers. + +## 17. A6000 + E PZ 16-50 current evidence + +Historical A6000 engine-bay images provide operational design evidence only. + +Observed facts include: + +- E PZ 16-50mm F3.5-5.6 OSS; +- heavy real use of 16-20 mm focal lengths; +- AF-S across the historical JPEG set; +- many distinct focus positions even within the 16 mm / f/8 subset; +- exposure values varied with scene conditions. + +These observations demonstrate that a locked-focus single-state workflow is +not an acceptable general product UX for this use case. + +They do not validate any reusable calibration or autofocus envelope. + +Current device-specific state: + +```text +A6000_E_PZ_16_50_AF_APPLICABILITY=BLOCKED_BY_PHYSICAL_VALIDATION +``` + +## 18. Required future physical study + +Before claiming a real validated autofocus domain, capture dedicated ChArUco +evidence across representative focus states and repeats while preserving the +other relevant geometric state. + +The study must determine whether the lens supports: + +- one validated focus envelope; +- multiple discrete focus bands; +- exact focus-only calibration; or +- a future explicitly validated continuous transfer model. + +Numeric domains and thresholds must come from the Science v2 validation design +and retained physical evidence. They are not inferred from historical scene +photos. + +## 19. Implementation dependency + +Current order: + +```text +Calibration Science v2 design +-> heterogeneous optical-state persistence/applicability foundation +-> v2 Tooling/Bootstrap/artifact only if required +-> heterogeneous Workflow v2 READY proof +-> physical AF/optical applicability study +-> dedicated calibrated real campaign +-> real Sparse SfM +``` + +Do not start Sparse SfM or Dense/MVS as part of this design tranche. + +## 20. STOP conditions + +Stop rather than guess if: + +- a required geometric state cannot be observed or explicitly assigned; +- a proposed compatibility relation lacks physical validation; +- an AF/focal/aperture transfer model needs an invented threshold; +- a new schema would force inference into historical rows; +- heterogeneous calibration would require silently changing a FROZEN v1 + scientific meaning; +- a new camera requires a genuinely different geometric model not covered by + the current pinhole/distortion science. + +Uncertainty remains visible as `CALIBRATION_REQUIRED` or +`SELECTION_REQUIRED`. diff --git a/docs/roadmap/roadmap.md b/docs/roadmap/roadmap.md index d482aea..b14e60a 100644 --- a/docs/roadmap/roadmap.md +++ b/docs/roadmap/roadmap.md @@ -24,7 +24,7 @@ SOURCE_COMMENT_AUDIT PASS PRODUCT_DEFINITION PASS/FROZEN PROMPT_TREE CURRENT USER_FACING_UI_LANGUAGE_NORMALIZATION PASS -CURRENT_NEXT DEDICATED_PHYSICAL_CALIBRATED_REAL_CAMPAIGN +CURRENT_NEXT CALIBRATION_SCIENCE_V2_DESIGN ``` The current Project DB head is additive: @@ -508,7 +508,28 @@ BLOCKED_BY_KNOWN_CALIBRATION_DATA S21 Engine Bay is permanently non-retro-calibrable under Calibration Science v1. -Calibration Science v1 defines the physical protocol for future calibration acquisitions. +Calibration Science v1 defines the frozen physical protocol for its compatibility path. + +Before the next physical campaign, the current dependency is Calibration Science v2. Real A6000 +engine-bay acquisition evidence established that normal operation must support autofocus and +heterogeneous optical states without forcing the operator to maintain one locked focus or one optical +configuration for the whole project. + +Science v2 is additive and must preserve these product invariants: + +```text +one project may mix camera bodies, lenses and focal configurations +one selected execution may use different calibrations per image +unknown calibration state retains the Capture and reports CALIBRATION_REQUIRED +shutter/ISO/white-balance values are adaptive, not image-validity constants +image quality is judged from actual decoded-image evidence +autofocus is a normal supported mode when its applicability is physically validated +silent calibration substitution remains forbidden +``` + +The current Sparse calibration scope already models membership as `image_id -> calibration_id`; v2 +should reuse that capability rather than require one global calibration. Device-specific autofocus +envelopes remain blocked until physical evidence validates them. Calibration Tooling v1 consumes an already acquired Science v1 evidence bundle, validates the bounded contract and produces deterministic `L3DCALB1` v1. diff --git a/prompt/02_CURRENT_FROZEN_STATE.md b/prompt/02_CURRENT_FROZEN_STATE.md index 218f695..e807dec 100644 --- a/prompt/02_CURRENT_FROZEN_STATE.md +++ b/prompt/02_CURRENT_FROZEN_STATE.md @@ -6,7 +6,7 @@ CURRENT_PROJECT_DB_SCHEMA=v25 PRODUCTION_TASK_KINDS=16 USER_FACING_UI_LANGUAGE_NORMALIZATION=PASS -CURRENT_IMPLEMENTATION_CURSOR=2_DEDICATED_PHYSICAL_CALIBRATED_REAL_CAMPAIGN +CURRENT_IMPLEMENTATION_CURSOR=CALIBRATION_SCIENCE_V2_DESIGN ``` ## Authority @@ -35,6 +35,9 @@ Calibration workflow input boundary PASS/FROZEN Calibration workflow evidence materialization PASS/FROZEN Calibration workflow selected-execution binding PASS/FROZEN Calibration workflow Tooling/Bootstrap READY PASS/FROZEN +Calibration Science v2 heterogeneous optics PLANNED +Adaptive capture settings semantics PLANNED +Autofocus v2 foundation PLANNED Calibration Tooling planarity alignment PASS/FROZEN ``` @@ -72,6 +75,35 @@ Preserve at their documented boundaries: `FROZEN` protects meaning and boundary, not necessarily every file byte. +## Current calibration-v2 design intent + +Calibration v1 remains a valid frozen compatibility path. It is not weakened or +retroactively reinterpreted. + +The current product dependency has changed before the physical campaign because +real A6000 engine-bay acquisition evidence showed that normal operation requires +heterogeneous optics and autofocus. Calibration Science v2 must therefore define +an additive path in which: + +```text +one project may mix camera bodies +one project may mix lenses +one project may mix focal configurations +one selected execution may use multiple calibrations +each selected image must resolve to exactly one compatible calibration +autofocus is a normal supported acquisition mode +exposure settings are adaptive rather than fixed scientific constants +``` + +Capture/quality acceptance and calibration readiness are distinct. A sharp, +usable image with unresolved optics is retained and reported as +`CALIBRATION_REQUIRED`; it is not discarded merely because calibration evidence +is not yet available. + +No v2 rule may silently substitute another body, lens, focal state, focus state +or calibration. + + ## Retained real S21 checkpoint ```text diff --git a/prompt/12_CALIBRATION.md b/prompt/12_CALIBRATION.md index a0aa0b6..41d4637 100644 --- a/prompt/12_CALIBRATION.md +++ b/prompt/12_CALIBRATION.md @@ -16,14 +16,17 @@ CALIBRATION_WORKFLOW=PASS/FROZEN CALIBRATION_WORKFLOW_INPUT_BOUNDARY_V1=PASS/FROZEN CALIBRATION_WORKFLOW_EVIDENCE_MATERIALIZATION_V1=PASS/FROZEN CALIBRATION_WORKFLOW_SELECTED_EXECUTION_BINDING_V1=PASS/FROZEN -CURRENT_CALIBRATION_NEXT=WORKFLOW_TOOLING_BOOTSTRAP_READY CALIBRATION_WORKFLOW_TOOLING_BOOTSTRAP_READY_V1=PASS/FROZEN -CURRENT_CALIBRATION_NEXT=DEDICATED_PHYSICAL_CALIBRATED_REAL_CAMPAIGN +CALIBRATION_SCIENCE_V2=PLANNED +CALIBRATION_V2_HETEROGENEOUS_OPTICS=PLANNED +ADAPTIVE_CAPTURE_SETTINGS_CONTRACT=PLANNED +AUTOFOCUS_V2_FOUNDATION=PLANNED +CURRENT_CALIBRATION_NEXT=CALIBRATION_SCIENCE_V2_DESIGN ``` ## Authority -`docs/architecture/calibration_science_v1.md`, `docs/architecture/calibration_bootstrap.md` and `docs/architecture/calibration_solver_preflight_v1.md` are the current specialized calibration documents. +`docs/architecture/calibration_science_v1.md`, `docs/architecture/calibration_science_v2.md`, `docs/architecture/calibration_bootstrap.md` and `docs/architecture/calibration_solver_preflight_v1.md` are the current specialized calibration documents. Science v1 remains FROZEN; the v2 document is the current additive design authority until its contract is validated and frozen. `docs/architecture/calibration_tooling.md` is the specialized Tooling authority. @@ -46,7 +49,65 @@ BLOCKED_BY_KNOWN_CALIBRATION_DATA Do not retro-calibrate them by invention. -## FROZEN flow +## Calibration Science v2 product requirements + +Science v2 is additive. It does not weaken or rewrite Science v1. + +The product requirement is: + +```text +ONE_PROJECT_MAY_MIX_CAMERAS=YES +ONE_PROJECT_MAY_MIX_LENSES=YES +ONE_PROJECT_MAY_MIX_FOCAL_CONFIGURATIONS=YES +PER_IMAGE_COMPATIBLE_CALIBRATION=REQUIRED + +AUTOFOCUS_NORMAL_OPERATION=SUPPORTED_TARGET +MANUAL_FOCUS_LOCK_REQUIRED_FOR_NORMAL_CAPTURE=NO + +SHUTTER_SPEED_FIXED=NO +ISO_FIXED=NO +WHITE_BALANCE_FIXED=NO +EXPOSURE_SETTINGS_ADAPTIVE=YES + +PHOTO_REJECTION_BASED_SOLELY_ON_EXPOSURE_METADATA=FORBIDDEN +UNKNOWN_OPTICS_REJECT_CAPTURE=NO +UNKNOWN_OPTICS_STATE=CALIBRATION_REQUIRED + +SILENT_CALIBRATION_SUBSTITUTION=FORBIDDEN +``` + +The core separation is: + +```text +CAPTURE / PHOTO QUALITY +!= +CALIBRATION READINESS +``` + +A Capture may be sharp, non-clipped and scientifically useful as image data +while still being `CALIBRATION_REQUIRED`. It remains durable in the project. + +Purely photometric settings such as shutter speed, ISO, white balance and +exposure compensation may vary according to conditions. Their numeric values +alone are not scientific rejection criteria. Actual decoded-image evidence +remains authoritative for quality: sharpness/defocus/motion blur, clipping, +usable tonal information, contrast/texture, noise or local SNR where available, +and downstream feature usability. + +Camera/lens/focal/focus/aperture/stabilization/crop/pipeline state is treated +according to whether it can alter geometry. Lardon3D must observe and classify +that state, automatically select an exactly compatible validated calibration +when one exists, expose `CALIBRATION_REQUIRED` when none exists, and expose +`SELECTION_REQUIRED` when compatibility remains ambiguous. + +Autofocus is a normal v2 acquisition mode. A real autofocus applicability +envelope must be supported only by physical calibration/hold-out evidence. +Historical EXIF or MakerNote focus observations may guide experiment design but +must never fabricate such evidence. + +See `docs/architecture/calibration_science_v2.md`. + +## FROZEN v1 flow ```text dedicated physical calibration acquisition diff --git a/prompt/31_IMPLEMENTATION_ORDER.md b/prompt/31_IMPLEMENTATION_ORDER.md index 5efdf8c..76131cd 100644 --- a/prompt/31_IMPLEMENTATION_ORDER.md +++ b/prompt/31_IMPLEMENTATION_ORDER.md @@ -6,7 +6,7 @@ IMPLEMENTATION_ORDER=DEPENDENCY_DRIVEN IMPLEMENTATION_AUTHORIZATION=NO STEP_0_USER_FACING_LANGUAGE_NORMALIZATION=PASS -CURRENT_NEXT=2_DEDICATED_PHYSICAL_CALIBRATED_REAL_CAMPAIGN +CURRENT_NEXT=CALIBRATION_SCIENCE_V2_DESIGN ``` ## Authority @@ -20,23 +20,25 @@ Implementation remains unauthorized until the human explicitly authorizes a tran Default dependency order: 0. user-facing repository/UI language normalization where appropriate — PASS; -1. final usable calibration workflow — PASS/FROZEN; valid external evidence now composes through FROZEN Tooling and Bootstrap to truthful READY; -2. dedicated physical calibrated real campaign; -3. real Sparse SfM proof; -4. durable Dense/OpenMVS orchestration; -5. mesh / refinement / texturing / export; -6. viewer foundation; -7. offline Coverage Analysis scientific contract and implementation; -8. multi-campaign registration / fusion; -9. generic live acquisition adapter foundation; -10. A6000 HDMI integration; -11. S21 integration; -12. live camera localization; -13. live coverage overlay; -14. actionable Capture Guidance; -15. video ingestion / deterministic keyframes; -16. final integration, UX, restart and performance proof; -17. Product Definition v1 Definition-of-Done closure. +1. final usable Calibration Science/Tooling/Bootstrap/Workflow v1 compatibility path — PASS/FROZEN; +2. Calibration Science v2 design for heterogeneous cameras/lenses/focals, adaptive capture settings and autofocus — CURRENT; +3. Calibration v2 heterogeneous-optics persistence / Tooling / Bootstrap / workflow foundation; +4. physical autofocus/optical applicability validation and dedicated calibrated real campaign; +5. real Sparse SfM proof; +6. durable Dense/OpenMVS orchestration; +7. mesh / refinement / texturing / export; +8. viewer foundation; +9. offline Coverage Analysis scientific contract and implementation; +10. multi-campaign registration / fusion; +11. generic live acquisition adapter foundation; +12. A6000 HDMI integration; +13. S21 integration; +14. live camera localization; +15. live coverage overlay; +16. actionable Capture Guidance; +17. video ingestion / deterministic keyframes; +18. final integration, UX, restart and performance proof; +19. Product Definition v1 Definition-of-Done closure. ## Adjustment rule @@ -45,3 +47,10 @@ Change this order only when current repository inspection proves a real dependen Step 0 closure does not authorize mechanical rewriting of historical persisted labels, path names, deliberate UTF-8 fixtures or persistence-sensitive internal strings. Such text is changed only when its owning scope requires it. Do not jump to A6000 live work merely because it is visually interesting. Reconstruction/viewer/coverage foundations required for truthful guidance come first. + +The calibration-v2 insertion before the physical campaign is dependency-driven, +not feature creep: real acquisition evidence established that the v1 locked-focus +single-optical-state path would make normal engine-bay capture impractical and +would contradict the already-FROZEN product requirement for multiple optical +configurations per project. Science v2 must be defined before collecting the +physical evidence intended to validate it.