docs: define calibration science v2 heterogeneous optics

This commit is contained in:
fy59 2026-09-03 12:22:07 +02:00
parent 53563ce1e7
commit cc903981ad
5 changed files with 651 additions and 25 deletions

View file

@ -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`.

View file

@ -24,7 +24,7 @@ SOURCE_COMMENT_AUDIT PASS
PRODUCT_DEFINITION PASS/FROZEN PRODUCT_DEFINITION PASS/FROZEN
PROMPT_TREE CURRENT PROMPT_TREE CURRENT
USER_FACING_UI_LANGUAGE_NORMALIZATION PASS 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: 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. 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 Calibration Tooling v1 consumes an already acquired Science v1 evidence bundle, validates the bounded
contract and produces deterministic `L3DCALB1` v1. contract and produces deterministic `L3DCALB1` v1.

View file

@ -6,7 +6,7 @@
CURRENT_PROJECT_DB_SCHEMA=v25 CURRENT_PROJECT_DB_SCHEMA=v25
PRODUCTION_TASK_KINDS=16 PRODUCTION_TASK_KINDS=16
USER_FACING_UI_LANGUAGE_NORMALIZATION=PASS USER_FACING_UI_LANGUAGE_NORMALIZATION=PASS
CURRENT_IMPLEMENTATION_CURSOR=2_DEDICATED_PHYSICAL_CALIBRATED_REAL_CAMPAIGN CURRENT_IMPLEMENTATION_CURSOR=CALIBRATION_SCIENCE_V2_DESIGN
``` ```
## Authority ## Authority
@ -35,6 +35,9 @@ Calibration workflow input boundary PASS/FROZEN
Calibration workflow evidence materialization PASS/FROZEN Calibration workflow evidence materialization PASS/FROZEN
Calibration workflow selected-execution binding PASS/FROZEN Calibration workflow selected-execution binding PASS/FROZEN
Calibration workflow Tooling/Bootstrap READY 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 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. `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 ## Retained real S21 checkpoint
```text ```text

View file

@ -16,14 +16,17 @@ CALIBRATION_WORKFLOW=PASS/FROZEN
CALIBRATION_WORKFLOW_INPUT_BOUNDARY_V1=PASS/FROZEN CALIBRATION_WORKFLOW_INPUT_BOUNDARY_V1=PASS/FROZEN
CALIBRATION_WORKFLOW_EVIDENCE_MATERIALIZATION_V1=PASS/FROZEN CALIBRATION_WORKFLOW_EVIDENCE_MATERIALIZATION_V1=PASS/FROZEN
CALIBRATION_WORKFLOW_SELECTED_EXECUTION_BINDING_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 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 ## 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. `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. 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 ```text
dedicated physical calibration acquisition dedicated physical calibration acquisition

View file

@ -6,7 +6,7 @@
IMPLEMENTATION_ORDER=DEPENDENCY_DRIVEN IMPLEMENTATION_ORDER=DEPENDENCY_DRIVEN
IMPLEMENTATION_AUTHORIZATION=NO IMPLEMENTATION_AUTHORIZATION=NO
STEP_0_USER_FACING_LANGUAGE_NORMALIZATION=PASS STEP_0_USER_FACING_LANGUAGE_NORMALIZATION=PASS
CURRENT_NEXT=2_DEDICATED_PHYSICAL_CALIBRATED_REAL_CAMPAIGN CURRENT_NEXT=CALIBRATION_SCIENCE_V2_DESIGN
``` ```
## Authority ## Authority
@ -20,23 +20,25 @@ Implementation remains unauthorized until the human explicitly authorizes a tran
Default dependency order: Default dependency order:
0. user-facing repository/UI language normalization where appropriate — PASS; 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; 1. final usable Calibration Science/Tooling/Bootstrap/Workflow v1 compatibility path — PASS/FROZEN;
2. dedicated physical calibrated real campaign; 2. Calibration Science v2 design for heterogeneous cameras/lenses/focals, adaptive capture settings and autofocus — CURRENT;
3. real Sparse SfM proof; 3. Calibration v2 heterogeneous-optics persistence / Tooling / Bootstrap / workflow foundation;
4. durable Dense/OpenMVS orchestration; 4. physical autofocus/optical applicability validation and dedicated calibrated real campaign;
5. mesh / refinement / texturing / export; 5. real Sparse SfM proof;
6. viewer foundation; 6. durable Dense/OpenMVS orchestration;
7. offline Coverage Analysis scientific contract and implementation; 7. mesh / refinement / texturing / export;
8. multi-campaign registration / fusion; 8. viewer foundation;
9. generic live acquisition adapter foundation; 9. offline Coverage Analysis scientific contract and implementation;
10. A6000 HDMI integration; 10. multi-campaign registration / fusion;
11. S21 integration; 11. generic live acquisition adapter foundation;
12. live camera localization; 12. A6000 HDMI integration;
13. live coverage overlay; 13. S21 integration;
14. actionable Capture Guidance; 14. live camera localization;
15. video ingestion / deterministic keyframes; 15. live coverage overlay;
16. final integration, UX, restart and performance proof; 16. actionable Capture Guidance;
17. Product Definition v1 Definition-of-Done closure. 17. video ingestion / deterministic keyframes;
18. final integration, UX, restart and performance proof;
19. Product Definition v1 Definition-of-Done closure.
## Adjustment rule ## 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. 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. 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.