@photivra/engine 0.1.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/CITATION.cff +1 -1
  3. package/README.md +61 -12
  4. package/dist/camera/equivalent-focal-length.d.ts +34 -0
  5. package/dist/camera/equivalent-focal-length.d.ts.map +1 -0
  6. package/dist/camera/equivalent-focal-length.js +33 -0
  7. package/dist/camera/equivalent-focal-length.js.map +1 -0
  8. package/dist/camera/field-of-view.d.ts +40 -3
  9. package/dist/camera/field-of-view.d.ts.map +1 -1
  10. package/dist/camera/field-of-view.js +66 -24
  11. package/dist/camera/field-of-view.js.map +1 -1
  12. package/dist/core/calculation-result.d.ts.map +1 -1
  13. package/dist/core/calculation-result.js +14 -2
  14. package/dist/core/calculation-result.js.map +1 -1
  15. package/dist/core/configuration-error.d.ts +9 -0
  16. package/dist/core/configuration-error.d.ts.map +1 -0
  17. package/dist/core/configuration-error.js +13 -0
  18. package/dist/core/configuration-error.js.map +1 -0
  19. package/dist/core/evidence-provenance.d.ts +40 -0
  20. package/dist/core/evidence-provenance.d.ts.map +1 -0
  21. package/dist/core/evidence-provenance.js +79 -0
  22. package/dist/core/evidence-provenance.js.map +1 -0
  23. package/dist/core/image-formation.d.ts +70 -0
  24. package/dist/core/image-formation.d.ts.map +1 -0
  25. package/dist/core/image-formation.js +335 -0
  26. package/dist/core/image-formation.js.map +1 -0
  27. package/dist/exposure/exposure.d.ts +31 -0
  28. package/dist/exposure/exposure.d.ts.map +1 -1
  29. package/dist/exposure/exposure.js +35 -0
  30. package/dist/exposure/exposure.js.map +1 -1
  31. package/dist/index.d.ts +16 -4
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +16 -4
  34. package/dist/index.js.map +1 -1
  35. package/dist/motion/camera-rotation.d.ts +91 -0
  36. package/dist/motion/camera-rotation.d.ts.map +1 -0
  37. package/dist/motion/camera-rotation.js +157 -0
  38. package/dist/motion/camera-rotation.js.map +1 -0
  39. package/dist/optics/focus-breathing.d.ts +73 -0
  40. package/dist/optics/focus-breathing.d.ts.map +1 -0
  41. package/dist/optics/focus-breathing.js +77 -0
  42. package/dist/optics/focus-breathing.js.map +1 -0
  43. package/dist/optics/illumination-vignetting.d.ts +59 -0
  44. package/dist/optics/illumination-vignetting.d.ts.map +1 -0
  45. package/dist/optics/illumination-vignetting.js +107 -0
  46. package/dist/optics/illumination-vignetting.js.map +1 -0
  47. package/dist/optics/lateral-chromatic-aberration.d.ts +93 -0
  48. package/dist/optics/lateral-chromatic-aberration.d.ts.map +1 -0
  49. package/dist/optics/lateral-chromatic-aberration.js +174 -0
  50. package/dist/optics/lateral-chromatic-aberration.js.map +1 -0
  51. package/dist/optics/psf-foundation.d.ts +102 -0
  52. package/dist/optics/psf-foundation.d.ts.map +1 -0
  53. package/dist/optics/psf-foundation.js +164 -0
  54. package/dist/optics/psf-foundation.js.map +1 -0
  55. package/dist/optics/radial-distortion.d.ts +91 -0
  56. package/dist/optics/radial-distortion.d.ts.map +1 -0
  57. package/dist/optics/radial-distortion.js +198 -0
  58. package/dist/optics/radial-distortion.js.map +1 -0
  59. package/dist/output/capture-geometry.d.ts +225 -0
  60. package/dist/output/capture-geometry.d.ts.map +1 -0
  61. package/dist/output/capture-geometry.js +478 -0
  62. package/dist/output/capture-geometry.js.map +1 -0
  63. package/dist/schema/validation.d.ts +1 -8
  64. package/dist/schema/validation.d.ts.map +1 -1
  65. package/dist/schema/validation.js +2 -11
  66. package/dist/schema/validation.js.map +1 -1
  67. package/dist/sensor/architecture.d.ts +40 -0
  68. package/dist/sensor/architecture.d.ts.map +1 -0
  69. package/dist/sensor/architecture.js +98 -0
  70. package/dist/sensor/architecture.js.map +1 -0
  71. package/dist/sensor/radiometry-readiness.d.ts +111 -0
  72. package/dist/sensor/radiometry-readiness.d.ts.map +1 -0
  73. package/dist/sensor/radiometry-readiness.js +294 -0
  74. package/dist/sensor/radiometry-readiness.js.map +1 -0
  75. package/dist/sensor/sensor-geometry.d.ts +99 -0
  76. package/dist/sensor/sensor-geometry.d.ts.map +1 -0
  77. package/dist/sensor/sensor-geometry.js +71 -0
  78. package/dist/sensor/sensor-geometry.js.map +1 -0
  79. package/dist/simulation/poc-simulation.d.ts +93 -1
  80. package/dist/simulation/poc-simulation.d.ts.map +1 -1
  81. package/dist/simulation/poc-simulation.js +308 -24
  82. package/dist/simulation/poc-simulation.js.map +1 -1
  83. package/docs/API_STYLE.md +35 -2
  84. package/docs/ARCHITECTURE.md +179 -1
  85. package/docs/IMAGE_FORMATION.md +142 -0
  86. package/docs/MOTION_AND_SIGNAL.md +54 -1
  87. package/docs/PHYSICS_FOUNDATION.md +190 -3
  88. package/docs/POC_API.md +73 -7
  89. package/docs/PROVENANCE.md +24 -0
  90. package/docs/PSF_FOUNDATION.md +133 -0
  91. package/docs/STABILIZATION.md +17 -4
  92. package/docs/USAGE.md +680 -4
  93. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"poc-simulation.js","sourceRoot":"","sources":["../../src/simulation/poc-simulation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poc-simulation.js","sourceRoot":"","sources":["../../src/simulation/poc-simulation.ts"],"names":[],"mappings":"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"}
package/docs/API_STYLE.md CHANGED
@@ -16,6 +16,9 @@ The open engine should feel like one coherent library.
16
16
  - Public calculation functions and meaningful public contracts require concise JSDoc covering purpose, units, assumptions, and return meaning.
17
17
  - Do not expose renderer, framework, or UI-specific types through calculation APIs.
18
18
  - Public configuration interfaces that are expected to cross JSON/untrusted boundaries should have corresponding runtime parsers; TypeScript types alone are not a validation boundary.
19
+ - Runtime parsers must reject unknown enum/string values rather than falling through to a default interpretation.
20
+ - Prefer semantic role types over reusing a narrower type in the wrong stage. For example, use `RasterDimensions` for generic active/output rasters and reserve `NativeImageRaster` for the native sampling grid.
21
+ - When a physical quantity is axis-dependent, preserve the axes explicitly instead of collapsing to a scalar unless the model documents and validates that simplification.
19
22
  - Preserve backward compatibility after 1.0 unless a documented major version changes the contract.
20
23
 
21
24
  ## Preferred shape
@@ -37,6 +40,29 @@ calculateDepthOfField({
37
40
 
38
41
  Avoid one-off positional signatures and inconsistent abbreviations.
39
42
 
43
+ ## Coordinate and staged-geometry contracts
44
+
45
+ Coordinate systems and image-formation stages are part of the API contract, not implementation details.
46
+
47
+ - Native raster coordinates use a top-left origin with +X right and +Y down.
48
+ - Raster rectangles use integer half-open extents.
49
+ - Physical camera rotation does not redefine native sensor coordinates; transform points, vectors, and rectangles explicitly.
50
+ - Physical active capture and later digital/output crop are distinct concepts and should have distinct fields/types.
51
+ - Off-center physical capture must preserve position relative to the optical axis rather than being silently recentered.
52
+ - Output resizing/cropping must not imply geometric stretching without an explicit transform or pixel-aspect contract.
53
+ - Conventional 35 mm-equivalent focal length is derived from active physical capture geometry; it must not replace physical focal length or silently include later digital crop.
54
+
55
+ ## Image-formation ownership contracts
56
+
57
+ Cross-cutting optical/sensor effects must use the public image-formation contract rather than defining one-off stage ordering in a renderer or downstream app.
58
+
59
+ - Treat `requiredUpstreamStages` as hard scientific dependencies.
60
+ - Treat `coupledStages` as shared scientific state, not an instruction to serialize independent filters.
61
+ - Coordinate spaces are part of the public semantic contract.
62
+ - Time-dependent models use seconds from exposure start as the authoritative temporal coordinate.
63
+ - A reserved stage does not imply an implemented capability.
64
+ - Preview and reference implementations may differ in bounded fidelity but must consume the same engine-owned parameters and semantics.
65
+
40
66
  ## Result metadata
41
67
 
42
68
  Primitive public scientific calculation functions return `CalculationResult<T>`, which carries model provenance and optional quality metadata.
@@ -60,6 +86,13 @@ Do **not** automatically sum, average, add in quadrature, or otherwise collapse
60
86
 
61
87
  ## Versioning
62
88
 
63
- `ENGINE_API_VERSION` describes the composed engine API contract and is independent of the npm/package version.
89
+ Photivra has multiple independent version surfaces:
90
+
91
+ - npm/package version: distribution/release version;
92
+ - `ENGINE_API_VERSION`: root browser-safe engine/public-contract version;
93
+ - `POC_SIMULATION_API_VERSION`: composed `simulatePocCamera()` request/response contract;
94
+ - schema-specific versions such as sensor-architecture or radiometry-readiness schemas.
95
+
96
+ Do not reuse one version as a proxy for another. A change to a parser/schema does not necessarily require changing the POC contract, and a POC response change does not necessarily mean the npm package has been released.
64
97
 
65
- Before 1.0, public APIs may evolve with documented changes. After 1.0, breaking public-contract changes require an appropriate major-version transition.
98
+ Before 1.0, public APIs may evolve with documented changes. Breaking or semantically meaningful contract changes must update the relevant version surface, tests, changelog, and migration/compatibility documentation. After 1.0, breaking public-contract changes require an appropriate major-version transition.
@@ -7,6 +7,7 @@ Photivra separates a reusable scientific core from optional composition and tran
7
7
  The browser-safe root package currently owns:
8
8
 
9
9
  - unit-explicit camera, sensor, lens, exposure, focus, scene, and motion contracts;
10
+ - additive sensor-foundation contracts that separate physical imaging area from native effective image raster;
10
11
  - deterministic camera/optics/exposure/crop calculations;
11
12
  - the explicitly approximate stabilization-equivalent camera-shake model;
12
13
  - sensor signal/noise primitives;
@@ -18,6 +19,179 @@ The root package has no runtime npm dependencies. CI walks the root import graph
18
19
 
19
20
  Comparison, optimization, real-camera calibration databases, renderer effects, and full optical simulation are **not** current root-package capabilities.
20
21
 
22
+ The sensor foundation intentionally keeps physical image-formation geometry separate from digital sampling. `SensorImagingArea` represents the photosensitive imaging dimensions used for image formation; `NativeImageRaster` represents effective image samples and does not imply one image sample equals one physical photodiode. Derived sampling pitch is geometric spacing only, not fill factor or photon-collection area.
23
+
24
+ Capture geometry builds on that foundation without mutating native sensor identity:
25
+
26
+ ```text
27
+ physical imaging area + native raster
28
+ ↓
29
+ native active-capture rectangle
30
+ ↓
31
+ physical camera orientation
32
+ ↓
33
+ oriented active capture
34
+ ↓
35
+ digital/output crop
36
+ ↓
37
+ output raster
38
+ ```
39
+
40
+ Native coordinates use a top-left origin with +X right and +Y down and remain invariant under physical camera rotation. Exact point, vector, and half-open rectangle transforms map between native and oriented capture coordinates for 0°/90°/180°/270° rotations. This keeps later CFA phase, rolling-readout direction, motion-vector transforms, and camera-shake transforms anchored to one stable sensor coordinate system. Display/file transforms remain separate from physical capture orientation.
41
+
42
+ Active capture retains its physical bounds and center offset relative to the optical axis. Off-center crops therefore use asymmetric angular bounds instead of being silently recentered. Output raster resampling must preserve the output-crop aspect ratio; implicit geometric stretching is rejected.
43
+
44
+ Equivalent focal length is also layered on top of physical capture geometry rather than stored as lens identity. The engine keeps physical `focalLengthMm` authoritative and derives diagonal-based 35 mm equivalence from the active physical capture area. Focus distance and final digital/output crop do not redefine this conventional capture-equivalent quantity.
45
+
46
+ Sensor architecture is a separate descriptive layer. Illumination (FSI/BSI), integration/stacking, readout capabilities, and color-sampling family are independent evidence-backed facts. Their presence alone has no image-quality effect in the engine. Evidence origin is modeled independently from reuse rights, scalar facts may cite multiple evidence records, and multi-valued capabilities carry evidence per value. Omitted facts remain unknown rather than being inferred. Capture-mode semantics, readout timing, reconstruction, and calibrated radiometry consume these facts only through later explicit models.
47
+
48
+
49
+ ## Image-formation ownership and ordering
50
+
51
+ The root package exports `getImageFormationContract()` as the canonical semantic map for current and future image-formation work.
52
+
53
+ It defines five scientific domains:
54
+
55
+ 1. scene/ray geometry;
56
+ 2. lens mapping plus pupil/throughput;
57
+ 3. field- and wavelength-dependent PSF;
58
+ 4. time-dependent exposure/readout;
59
+ 5. sensor sampling through orientation/output/display.
60
+
61
+ The graph is a **dependency/ownership graph**, not a literal renderer filter list. Hard upstream dependencies are acyclic; explicit couplings record interactions that must not be split into scientifically independent post-effects.
62
+
63
+ Important consequences:
64
+
65
+ - focus breathing is projection/lens mapping;
66
+ - lateral CA is wavelength/channel-dependent field mapping;
67
+ - illumination vignetting is throughput-only;
68
+ - mechanical/pupil vignetting can affect both throughput and PSF/bokeh;
69
+ - diffraction belongs to the pupil/PSF domain;
70
+ - camera rotation should be time-parameterized so global and rolling readout consume one motion model;
71
+ - exposure duration and readout timing remain independent;
72
+ - future sensor ordering is reserved from optical stack/CFA sampling through charge/noise/ADC/reconstruction before oriented/output transforms.
73
+
74
+ Renderer implementations may optimize or approximate only when they preserve the engine-owned semantics. Geometric warps use inverse destination-to-source sampling, premultiplied alpha, and stable depth/occlusion order.
75
+
76
+ See `docs/IMAGE_FORMATION.md`.
77
+
78
+ ## Radiometry readiness boundary
79
+
80
+ Radiometry prerequisites are represented separately from the composed POC and from low-level signal/noise primitives. `parseRadiometryReadinessProfile()` validates declared scene spectral radiance, optical transmission, pupil/vignetting behavior, photosite collection-area semantics, exposure integration, and sensor response together with evidence and uncertainty declarations.
81
+
82
+ `assessRadiometryReadiness()` distinguishes:
83
+
84
+ - `not-ready`: one or more required components are absent;
85
+ - `approximate-only`: all required components exist, but one or more are approximate or lack quantified uncertainty;
86
+ - `calibrated-ready`: every required component is declared calibrated and carries quantified uncertainty.
87
+
88
+ These states describe the declared prerequisite package only. They do **not** prove that cited evidence is scientifically correct, do not derive photon counts, and never enable photon/noise output in `simulatePocCamera()` automatically.
89
+
90
+ Geometric sample pitch is explicitly insufficient as a photosite photon-collection area. A radiometric profile must supply either an effective collection area or a geometric cell area plus explicit fill factor. Calibration artifacts are identified by stable IDs and SHA-256 checksums rather than being embedded implicitly in geometry metadata.
91
+
92
+ ## Composition boundary at POC API 0.20
93
+
94
+ The sensor/capture/architecture/radiometry modules are public root-engine foundations. POC simulation API 0.20 composes the geometry foundation through final output/viewing semantics while keeping older callers valid.
95
+
96
+ The POC now composes:
97
+
98
+ - physical sensor width/height plus native effective raster dimensions;
99
+ - shared sensor-geometry metrics, including physical crop factor, raster-derived megapixels, and X/Y geometric sampling pitch;
100
+ - the legacy same-aspect centered `crop.factor` path for compatibility;
101
+ - an opt-in staged `capture` path for physical orientation, native active-capture rectangle, oriented digital/output crop, and final output raster;
102
+ - active-capture and final-output FOV, including asymmetric bounds for off-center physical or digital crop;
103
+ - diagonal-based 35 mm-equivalent focal length derived from active physical capture while physical focal length remains authoritative;
104
+ - capture-mode equivalent-viewing CoC based on the final retained physical viewing area rather than output pixel count;
105
+ - orientation-aware post-output subject framing with explicit retained physical bounds/FOV;
106
+ - additive image-plane→native-raster conversion plus oriented-capture and final-output motion/camera-shake vector diagnostics;
107
+ - explicit oriented-capture→output pixel scale for renderer sampling/blur conversion;
108
+ - one representative horizontal-pitch path for existing blur/sampling calculations, with a fail-closed guard for materially non-square sampling;
109
+ - the established projection, DOF/defocus, diffraction, motion, exposure, aperture-shape, and camera-shake models.
110
+
111
+ Compatibility boundaries remain explicit:
112
+
113
+ - staged capture geometry cannot be combined with legacy `crop.factor` other than `1`;
114
+ - legacy `subjectCrop` response remains for legacy mode, while staged capture reports post-output framing under `capture.subjectFraming`;
115
+ - explicit physical CoC remains caller-owned; equivalent-viewing CoC is a separately labeled approximation based on final retained physical viewing area;
116
+ - existing legacy motion/camera-shake fields retain their image-plane (+X right, +Y up) meaning rather than being reinterpreted; capture diagnostics explicitly convert to native raster (+Y down) before orientation.
117
+
118
+ The POC still does **not** consume:
119
+
120
+ - `SensorArchitectureProfile`;
121
+ - `RadiometryReadinessProfile` or calibrated photon/noise output.
122
+
123
+ That separation is deliberate. Further foundation APIs should remain independently testable and only enter the POC through explicit contract/version changes and migration review.
124
+
125
+ ## PSF/pupil foundation
126
+
127
+ The field/wavelength PSF domain now has an explicit public foundation through `getPsfFoundationContract()` and `calculatePsfFoundationComponents()`.
128
+
129
+ The foundation provides:
130
+ - stable contribution IDs and implementation/reservation status;
131
+ - field/depth/spectral/pupil context;
132
+ - existing geometric-defocus and circular-Airy diagnostics with their original provenance;
133
+ - an explicit `not-composed` policy.
134
+
135
+ It does not invent a combined PSF, MTF, or lens-sharpness score.
136
+
137
+ Future non-circular diffraction, mechanical pupil clipping, field curvature, field-dependent aberration, and bokeh models should extend this contribution/context model rather than replacing existing defocus/diffraction APIs.
138
+
139
+ Preview and reference render paths may use different computational fidelity, but must preserve contribution identities and engine-owned semantics.
140
+
141
+ ## Standalone illumination-throughput foundation
142
+
143
+ The lens-field/pupil domain now includes generic illumination vignetting as field-dependent linear throughput.
144
+
145
+ The engine owns:
146
+ - physical field-radius normalization;
147
+ - the declared operating envelope;
148
+ - full-envelope extrema validation;
149
+ - the linear throughput factor and stop-loss diagnostic.
150
+
151
+ Renderer backends consume that factor in a linear working domain. They must not reinterpret this stage as gamma-space darkening, coordinate warp, or pupil clipping.
152
+
153
+ Mechanical/pupil vignetting remains part of future pupil/PSF work because it can change both throughput and bokeh/PSF shape.
154
+
155
+ ## Standalone lateral-CA field-mapping foundation
156
+
157
+ The lens-field domain also exposes generic red/green/blue channel-dependent radial mapping.
158
+
159
+ The green channel is the reference/common geometric field map. A shared base distortion is combined with explicit red/blue coefficient offsets, so ordinary distortion and chromatic separation remain semantically distinct without requiring two renderer warps.
160
+
161
+ The engine owns both forward per-channel coordinates and inverse per-channel destination-to-source sampling. Backends should not implement lateral CA as arbitrary finished-image channel offsets or apply the same base distortion twice.
162
+
163
+ This is deliberately not a spectral/CFA/colorimetric model. Wavelength-dependent optics, longitudinal CA, wavelength-dependent PSFs, and calibrated lens profiles remain separate future work.
164
+
165
+ ## Standalone radial field-mapping foundation
166
+
167
+ The lens-field/pupil domain now also exposes generic radial distortion through paired forward and inverse mappings.
168
+
169
+ The engine, rather than a renderer backend, owns:
170
+ - coefficient normalization against a declared physical image-plane radius;
171
+ - the valid maximum normalized field radius;
172
+ - strict monotonicity/invertibility checks;
173
+ - deterministic inverse destination-to-source mapping.
174
+
175
+ This prevents WebGPU/WebGL2 implementations from inventing separate distortion equations.
176
+
177
+ The radial-distortion slice is optical-axis-centered only. Tangential/decentered distortion and calibrated lens profiles remain future work. Lateral chromatic aberration and illumination vignetting are implemented as separate standalone foundations and are not part of the radial-distortion model.
178
+
179
+ ## Standalone focus-breathing foundation
180
+
181
+ The lens-field/pupil domain now has a partial standalone foundation through `calculateFocusBreathingProjection()` and `calculateFocusBreathingFieldOfView()`.
182
+
183
+ These functions apply an explicit caller-declared scale to the ideal thin-lens projection for one focus state. They do not infer a breathing curve, identify a real lens, or mutate physical focal length.
184
+
185
+ The model remains standalone and is not composed into `simulatePocCamera()` yet. Generic radial distortion, lateral chromatic aberration, and illumination vignetting are separately implemented standalone foundations and must not be silently coupled into focus breathing. Mechanical/pupil vignetting, pupil/PSF coupling, and calibrated lens profiles remain future work.
186
+
187
+ ## Standalone spatial camera-rotation foundation
188
+
189
+ The root engine exposes `calculateCameraRotationImageMapping()` as a low-level implementation of the image-formation contract's time-parameterized camera-rotation placement.
190
+
191
+ It is intentionally **not** composed into `simulatePocCamera()` yet. The existing POC and `estimateCameraShakeBlur()` retain their backwards-compatible global shake approximation.
192
+
193
+ The new primitive provides deterministic yaw/pitch/roll rotation geometry only. It does not model camera translation, stabilization control laws, rolling-readout scheduling, or scene-depth-dependent parallax.
194
+
21
195
  ## Repository-local Node POC transport
22
196
 
23
197
  The repository contains a minimal Node-only HTTP transport under `src/api` for contributor integration testing.
@@ -30,7 +204,7 @@ This transport is intentionally **not** part of the public `@photivra/engine` pa
30
204
 
31
205
  Future capabilities should compose onto the scientific core rather than silently widening unrelated models. Examples include:
32
206
 
33
- - more complete camera-rotation and translation models;
207
+ - composed use of the standalone spatial camera-rotation model plus future depth-aware camera translation;
34
208
  - panning and rolling/global shutter;
35
209
  - flash;
36
210
  - spectral/color modeling;
@@ -49,3 +223,7 @@ Capabilities should remain discoverable and explicitly versioned rather than bei
49
223
  This repository contains the Apache-2.0 scientific/business-logic package together with its tests, documentation, schemas, validation, and contributor tooling.
50
224
 
51
225
  The published npm package intentionally exposes only the browser-safe scientific root surface; repository-local development tooling such as the Node POC transport remains outside the published package.
226
+
227
+ ## Version surfaces
228
+
229
+ The root library contract and the composed POC simulation contract are versioned independently. `ENGINE_API_VERSION` describes the root browser-safe engine surface. `POC_SIMULATION_API_VERSION` describes the request/response behavior of `simulatePocCamera()` and the repository-local POC HTTP transport. Package versioning remains separate from both.
@@ -0,0 +1,142 @@
1
+ # Image-Formation Contract
2
+
3
+ Photivra's image-formation contract defines **scientific ownership, coordinate semantics, and dependency/coupling boundaries** for current and future camera effects.
4
+
5
+ It is not a claim that every stage is implemented, and it is not a requirement that renderers execute one literal serial filter chain.
6
+
7
+ Use:
8
+
9
+ ```ts
10
+ import { getImageFormationContract } from "@photivra/engine";
11
+
12
+ const contract = getImageFormationContract();
13
+ ```
14
+
15
+ ## Five scientific domains
16
+
17
+ The contract groups image formation into five domains:
18
+
19
+ 1. **scene / ray geometry**
20
+ 2. **lens mapping + pupil / throughput**
21
+ 3. **field- and wavelength-dependent PSF**
22
+ 4. **time-dependent exposure / readout**
23
+ 5. **native sensor sampling -> orientation -> output / display**
24
+
25
+ These are scientific ownership domains. Some effects couple more than one domain.
26
+
27
+ Examples:
28
+
29
+ - focus breathing changes projection/magnification and therefore couples lens mapping to scene projection;
30
+ - lateral chromatic aberration is wavelength/channel-dependent field mapping and may share wavelength basis with the PSF model;
31
+ - illumination vignetting is throughput-only;
32
+ - mechanical/pupil vignetting can change both throughput and PSF/bokeh shape;
33
+ - diffraction consumes the effective pupil and belongs to the PSF domain;
34
+ - rolling readout couples native sensor timing to temporal integration;
35
+ - camera rotation should be evaluable as a function of physical exposure time so global and rolling readout can consume the same motion model.
36
+
37
+ ## Coordinate spaces
38
+
39
+ The contract explicitly distinguishes:
40
+
41
+ - `scene-metric` — scene/world metric coordinates;
42
+ - `image-plane-metric` — optical-axis origin, +X right, +Y up, millimetres;
43
+ - `native-sensor-physical` — optical-axis origin, +X right, +Y down, millimetres;
44
+ - `native-raster` — top-left origin, +X right, +Y down, pixels;
45
+ - `oriented-capture-raster` — explicit physical-orientation transform of native raster coordinates;
46
+ - `output-raster` — digital crop/resampling result;
47
+ - `display` — consumer/display coordinates, which are never authoritative camera-science coordinates.
48
+
49
+ Native sensor/raster coordinates remain invariant under physical camera orientation.
50
+
51
+ ## Partial ordering and coupling
52
+
53
+ `requiredUpstreamStages` defines hard scientific dependencies.
54
+
55
+ `coupledStages` identifies interactions that must not be treated as independent post-processes.
56
+
57
+ The required-dependency graph is acyclic. Coupling may be bidirectional because it describes shared scientific state rather than execution order.
58
+
59
+ An implementation may combine stages for performance only when the combination is mathematically equivalent and the public stage/effect semantics remain intact.
60
+
61
+ ## PSF contribution foundation
62
+
63
+ The `field-wavelength-psf` stage has a dedicated public foundation documented in [PSF and Pupil Foundation](PSF_FOUNDATION.md).
64
+
65
+ Current implementation:
66
+ - geometric defocus-circle diagnostic;
67
+ - ideal circular-pupil Airy first-zero diagnostic;
68
+ - explicit field/depth/wavelength/pupil context.
69
+
70
+ Reserved contributions:
71
+ - non-circular diffraction;
72
+ - mechanical pupil clipping;
73
+ - field curvature;
74
+ - field-dependent aberration;
75
+ - field-dependent bokeh.
76
+
77
+ No combined PSF is currently calculated.
78
+
79
+ ## Temporal basis
80
+
81
+ Physical time is measured in **seconds from exposure start**.
82
+
83
+ A normalized `[0,1]` shutter parameter may be derived for an algorithm, but it is not the authoritative time coordinate.
84
+
85
+ Exposure duration and sensor readout timing are independent:
86
+
87
+ - global readout does not mean zero motion blur;
88
+ - rolling readout changes when different native sensor locations are sampled/integrated;
89
+ - native readout direction remains defined in native sensor coordinates even when the camera is physically rotated.
90
+
91
+ This allows later rolling-shutter work to consume the same time-parameterized camera-motion model used for global exposure.
92
+
93
+ ## Renderer semantics
94
+
95
+ Renderer implementations may use a bounded real-time preview approximation or a higher-fidelity deterministic reference evaluation, but both must consume the same engine-owned scientific contract.
96
+
97
+ For geometric warps:
98
+
99
+ - destination samples are inverse-mapped to source locations;
100
+ - premultiplied-alpha semantics are preserved;
101
+ - scene depth/occlusion order is preserved across warps;
102
+ - renderer backend choice may change implementation/fidelity, not model semantics.
103
+
104
+ ## Reserved sensor ordering
105
+
106
+ The contract reserves a future sensor path without claiming it is implemented:
107
+
108
+ ```text
109
+ optical PSF
110
+ -> sensor optical stack (OLPF / cover glass / microlens)
111
+ -> photosite / CFA sampling
112
+ -> photon / charge statistics
113
+ -> electronic read noise / conversion
114
+ -> ADC / quantization
115
+ -> reconstruction (demosaic / remosaic / capture-mode combination)
116
+ -> physical orientation transform
117
+ -> output crop / resampling
118
+ -> display processing
119
+ ```
120
+
121
+ Temporal exposure/readout couples into the photosite/charge stages rather than acting as an unrelated display blur.
122
+
123
+ ## Current implementation status
124
+
125
+ Each stage is labeled:
126
+
127
+ - `existing-foundation` — the root engine already contains the relevant foundation;
128
+ - `partial-foundation` — some low-level science exists, but the full stage contract is not implemented; spatial camera rotation in the temporal domain plus declared-scale focus breathing, radial distortion, RGB-channel lateral CA, and illumination throughput in the lens-field domain are current examples;
129
+ - `reserved-contract` — ordering/ownership is reserved for future work only.
130
+
131
+ Do not infer capabilities from a stage merely because it is present in the contract.
132
+
133
+ ## Test Fixture relationship
134
+
135
+ The private Test Fixture may provide deterministic browser regression targets, but it is not the scientific source of truth for the open engine.
136
+
137
+ Engine analytical/invariant tests establish model correctness. Test Fixture images provide secondary integration and renderer evidence.
138
+
139
+ In particular:
140
+
141
+ - the LDR/sRGB optics target may verify deterministic field/channel mapping behavior;
142
+ - it does not establish spectral lens calibration, MTF, RAW/CFA truth, HDR radiometry, or real-lens performance.
@@ -21,10 +21,49 @@ Projected displacement therefore depends on:
21
21
  - object velocity;
22
22
  - optional sensor pixel pitch for pixel-domain reporting.
23
23
 
24
+ The low-level motion primitive still accepts one scalar pixel pitch. The newer sensor-geometry API preserves independent X/Y geometric pitch. The composed POC therefore fails closed when X/Y pitch differs by more than 1% rather than silently applying horizontal pitch to materially different vertical sampling.
25
+
24
26
  The model can represent a representative point moving laterally and/or along the optical axis. It does **not** yet model an extended object's changing apparent scale across the exposure, rotational subject motion, acceleration, deformation, or occlusion changes. A large object moving significantly in depth can therefore exhibit real scale blur that this point-displacement primitive does not describe.
25
27
 
26
28
  Camera motion is not folded into subject motion. Camera shake is modeled separately by `estimateCameraShakeBlur()`; panning detection/intent is not currently modeled.
27
29
 
30
+ The returned `deltaXmm`/`deltaYmm` components are legacy camera/image-plane components: +X right and +Y up. They are preserved for compatibility.
31
+
32
+ Capture raster coordinates use +X right and +Y down. POC API 0.19 therefore converts a legacy image-plane vector to native raster axes as `{ x, y: -y }` before applying the native↔oriented rotation helper. The additive capture diagnostics expose `nativeRasterDeltaPixels`, `orientedCaptureDeltaPixels`, and `outputDeltaPixels`; the legacy motion fields are not reinterpreted.
33
+
34
+ ## Spatial camera rotation
35
+
36
+ `calculateCameraRotationImageMapping()` now provides the rotation-only primitive reserved by the image-formation contract.
37
+
38
+ The function:
39
+
40
+ - accepts one image-plane point at exposure start;
41
+ - uses physical time in seconds from exposure start;
42
+ - accepts constant pitch/yaw/roll angular velocity resolved in the camera axes at exposure start;
43
+ - integrates the simultaneous angular velocity as one axis-angle vector;
44
+ - transforms the stationary world ray by the inverse camera rotation;
45
+ - returns field-position-dependent image-plane displacement;
46
+ - optionally reports axis-aware geometric sample displacement.
47
+
48
+ For pure yaw/pitch, image displacement varies with field position because the rectilinear projection denominator changes away from the optical axis. Pure roll leaves the optical-axis center fixed while rotating off-axis points.
49
+
50
+ This is camera **rotation only**. Translation is excluded because parallax requires scene depth.
51
+
52
+ The returned image-plane/sample components use +X right and +Y up. Native raster remains +X right/+Y down and requires the existing explicit coordinate transform at capture composition boundaries.
53
+
54
+ ## Temporal image-formation basis
55
+
56
+ The image-formation contract defines physical time in **seconds from exposure start**.
57
+
58
+ A future spatial camera-rotation model should be evaluable at arbitrary physical times rather than returning only one finished full-frame displacement. That allows global exposure and later rolling readout to consume the same camera-motion model.
59
+
60
+ Exposure duration and sensor readout timing are independent concepts:
61
+
62
+ - global readout can still contain subject/camera motion blur;
63
+ - rolling readout changes the exposure/readout schedule across native sensor locations;
64
+ - physical orientation does not redefine native sensor scan direction;
65
+ - depth-dependent camera translation is not part of the initial rotational-flow model because parallax depends on scene depth.
66
+
28
67
  ## Exposure relations
29
68
 
30
69
  `calculateExposureValue100()` implements EV100 from aperture and shutter duration.
@@ -33,6 +72,8 @@ Camera motion is not folded into subject motion. Camera shake is modeled separat
33
72
 
34
73
  These calculations do not imply a photon count because they do not include scene radiance, lens transmission/T-stop, vignetting, spectral response, or sensor calibration.
35
74
 
75
+ `calculateRelativeRenderedExposure()` combines the relative optical exposure with the nominal ISO gain ratio (`iso / referenceIso`) and reports both the linear factor and stop difference. It is intended for deterministic relative rendering against a declared reference, not for radiometric calibration; it does not model photon creation, sensor noise, clipping, tone mapping, or lens transmission.
76
+
36
77
  `calculateEquivalentIso()` treats ISO as nominal gain/brightness compensation needed to preserve rendered exposure after an aperture/shutter change. It is not used as a shortcut for noise or photon creation.
37
78
 
38
79
  ## Signal/noise primitives
@@ -46,7 +87,19 @@ These functions do **not** derive incident photon counts from scene imagery.
46
87
 
47
88
  They do not currently model dark current, fixed-pattern noise, PRNU/DSNU, ADC quantization, clipping/full-well behavior, CFA/demosaic, downstream denoising, or a particular commercial sensor.
48
89
 
49
- The composed POC intentionally does not expose photon/noise output until there is a defensible calibrated radiometric path including the necessary scene, spectral, optical-transmission, pixel-area, quantum-efficiency, and calibration assumptions.
90
+ The composed POC intentionally does not expose photon/noise output.
91
+
92
+ The root package now includes a **radiometry-readiness gate** that validates whether a declared prerequisite package contains scene spectral radiance, optical transmission, pupil/vignetting behavior, explicit photosite collection-area semantics, exposure integration, sensor response, evidence, and uncertainty declarations.
93
+
94
+ Readiness is deliberately separate from signal/noise calculation:
95
+
96
+ - `not-ready`: prerequisite categories are missing;
97
+ - `approximate-only`: all categories exist, but at least one is approximate or has unquantified uncertainty;
98
+ - `calibrated-ready`: all categories are declared calibrated with quantified uncertainty.
99
+
100
+ These states describe the declared prerequisite package only. They do not prove a calibration is correct, do not calculate incident photons, and never enable photon/noise output in `simulatePocCamera()` automatically.
101
+
102
+ Geometric pixel/sample pitch is not accepted as photon-collection area. An explicit effective collection area or geometric cell area plus fill factor is required.
50
103
 
51
104
  ## Provenance
52
105