@photivra/engine 1.4.0 → 2.0.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.
- package/CHANGELOG.md +401 -6
- package/CITATION.cff +1 -1
- package/NODE_SUPPORT.md +64 -12
- package/README.md +301 -182
- package/SECURITY.md +37 -28
- package/THIRD_PARTY.md +148 -4
- package/dist/camera/equivalent-focal-length.d.ts +13 -14
- package/dist/camera/equivalent-focal-length.js +15 -13
- package/dist/camera/equivalent-focal-length.js.map +1 -1
- package/dist/camera/field-of-view.d.ts +30 -19
- package/dist/camera/field-of-view.js +67 -18
- package/dist/camera/field-of-view.js.map +1 -1
- package/dist/camera/lens-projection.d.ts +170 -0
- package/dist/camera/lens-projection.js +444 -0
- package/dist/camera/lens-projection.js.map +1 -0
- package/dist/camera/projected-object-size.d.ts +10 -11
- package/dist/camera/projected-object-size.js +12 -10
- package/dist/camera/projected-object-size.js.map +1 -1
- package/dist/capture/capture-export-metadata.d.ts +9 -10
- package/dist/capture/capture-export-metadata.js +8 -5
- package/dist/capture/capture-export-metadata.js.map +1 -1
- package/dist/capture/dng-import.d.ts +91 -0
- package/dist/capture/dng-import.js +343 -0
- package/dist/capture/dng-import.js.map +1 -0
- package/dist/capture/environment-raw-producer.d.ts +37 -17
- package/dist/capture/environment-raw-producer.js +43 -19
- package/dist/capture/environment-raw-producer.js.map +1 -1
- package/dist/capture/export-jpeg.d.ts +35 -4
- package/dist/capture/export-jpeg.js +133 -47
- package/dist/capture/export-jpeg.js.map +1 -1
- package/dist/capture/export-tiff.d.ts +48 -24
- package/dist/capture/export-tiff.js +91 -31
- package/dist/capture/export-tiff.js.map +1 -1
- package/dist/capture/focus-control.d.ts +42 -65
- package/dist/capture/focus-control.js +56 -75
- package/dist/capture/focus-control.js.map +1 -1
- package/dist/capture/host-yield-cadence.d.ts +25 -0
- package/dist/capture/host-yield-cadence.js +25 -0
- package/dist/capture/host-yield-cadence.js.map +1 -0
- package/dist/capture/linear-encoding.d.ts +14 -12
- package/dist/capture/linear-encoding.js +14 -13
- package/dist/capture/linear-encoding.js.map +1 -1
- package/dist/capture/lossless-jpeg.d.ts +27 -0
- package/dist/capture/lossless-jpeg.js +237 -0
- package/dist/capture/lossless-jpeg.js.map +1 -0
- package/dist/capture/native-environment-lean.d.ts +227 -0
- package/dist/capture/native-environment-lean.js +974 -0
- package/dist/capture/native-environment-lean.js.map +1 -0
- package/dist/capture/native-environment-optical-stage.d.ts +97 -0
- package/dist/capture/native-environment-optical-stage.js +340 -0
- package/dist/capture/native-environment-optical-stage.js.map +1 -0
- package/dist/capture/native-environment-raw.d.ts +140 -6
- package/dist/capture/native-environment-raw.js +435 -34
- package/dist/capture/native-environment-raw.js.map +1 -1
- package/dist/capture/native-raw-development.d.ts +118 -5
- package/dist/capture/native-raw-development.js +224 -59
- package/dist/capture/native-raw-development.js.map +1 -1
- package/dist/capture/native-raw-dng.d.ts +60 -0
- package/dist/capture/native-raw-dng.js +167 -0
- package/dist/capture/native-raw-dng.js.map +1 -0
- package/dist/capture/native-raw.d.ts +67 -10
- package/dist/capture/native-raw.js +90 -24
- package/dist/capture/native-raw.js.map +1 -1
- package/dist/capture/packed-sensor-raw.d.ts +160 -0
- package/dist/capture/packed-sensor-raw.js +221 -0
- package/dist/capture/packed-sensor-raw.js.map +1 -0
- package/dist/capture/photographic-export.d.ts +58 -35
- package/dist/capture/photographic-export.js +177 -70
- package/dist/capture/photographic-export.js.map +1 -1
- package/dist/capture/raw-development-kernel.d.ts +52 -0
- package/dist/capture/raw-development-kernel.js +88 -0
- package/dist/capture/raw-development-kernel.js.map +1 -0
- package/dist/capture/raw-frame-limits.d.ts +7 -7
- package/dist/capture/raw-frame-limits.js +7 -6
- package/dist/capture/raw-frame-limits.js.map +1 -1
- package/dist/capture/raw-frame-reconstruction.d.ts +8 -9
- package/dist/capture/raw-frame-reconstruction.js +9 -8
- package/dist/capture/raw-frame-reconstruction.js.map +1 -1
- package/dist/capture/raw-white-level.d.ts +55 -0
- package/dist/capture/raw-white-level.js +165 -0
- package/dist/capture/raw-white-level.js.map +1 -0
- package/dist/capture/release-sequence.d.ts +5 -7
- package/dist/capture/release-sequence.js +15 -13
- package/dist/capture/release-sequence.js.map +1 -1
- package/dist/capture/sensor-raw-frame.d.ts +5 -6
- package/dist/capture/sensor-raw-frame.js +26 -9
- package/dist/capture/sensor-raw-frame.js.map +1 -1
- package/dist/capture/sensor-raw-producer.d.ts +21 -13
- package/dist/capture/sensor-raw-producer.js +86 -25
- package/dist/capture/sensor-raw-producer.js.map +1 -1
- package/dist/capture/simulated-capture.d.ts +15 -16
- package/dist/capture/simulated-capture.js +22 -12
- package/dist/capture/simulated-capture.js.map +1 -1
- package/dist/color/camera-color-matrix.d.ts +69 -0
- package/dist/color/camera-color-matrix.js +132 -0
- package/dist/color/camera-color-matrix.js.map +1 -0
- package/dist/color/capture-color.d.ts +17 -10
- package/dist/color/capture-color.js +50 -17
- package/dist/color/capture-color.js.map +1 -1
- package/dist/color/chromatic-adaptation.d.ts +63 -0
- package/dist/color/chromatic-adaptation.js +91 -0
- package/dist/color/chromatic-adaptation.js.map +1 -0
- package/dist/color/color-difference.d.ts +104 -0
- package/dist/color/color-difference.js +205 -0
- package/dist/color/color-difference.js.map +1 -0
- package/dist/color/color-matching-functions.d.ts +168 -0
- package/dist/color/color-matching-functions.js +309 -0
- package/dist/color/color-matching-functions.js.map +1 -0
- package/dist/color/colorimetry-math.d.ts +52 -0
- package/dist/color/colorimetry-math.js +144 -0
- package/dist/color/colorimetry-math.js.map +1 -0
- package/dist/color/gamut-mapping.d.ts +54 -0
- package/dist/color/gamut-mapping.js +107 -0
- package/dist/color/gamut-mapping.js.map +1 -0
- package/dist/color/illuminants.d.ts +182 -0
- package/dist/color/illuminants.js +434 -0
- package/dist/color/illuminants.js.map +1 -0
- package/dist/color/rgb-color-spaces.d.ts +79 -0
- package/dist/color/rgb-color-spaces.js +115 -0
- package/dist/color/rgb-color-spaces.js.map +1 -0
- package/dist/color/sensor-color-development.d.ts +33 -11
- package/dist/color/sensor-color-development.js +104 -30
- package/dist/color/sensor-color-development.js.map +1 -1
- package/dist/color/srgb-icc.d.ts +9 -2
- package/dist/color/srgb-icc.js +16 -5
- package/dist/color/srgb-icc.js.map +1 -1
- package/dist/color/srgb-transfer.d.ts +1 -2
- package/dist/color/srgb-transfer.js +1 -1
- package/dist/color/srgb-transfer.js.map +1 -1
- package/dist/color/white-balance.d.ts +68 -19
- package/dist/color/white-balance.js +168 -35
- package/dist/color/white-balance.js.map +1 -1
- package/dist/composition/image-formation-plan.d.ts +152 -128
- package/dist/composition/image-formation-plan.js +292 -138
- package/dist/composition/image-formation-plan.js.map +1 -1
- package/dist/composition/plan-consumer.d.ts +6 -7
- package/dist/composition/plan-consumer.js +14 -11
- package/dist/composition/plan-consumer.js.map +1 -1
- package/dist/core/calculation-result.d.ts +21 -14
- package/dist/core/calculation-result.js +209 -11
- package/dist/core/calculation-result.js.map +1 -1
- package/dist/core/canonical-json.d.ts +13 -8
- package/dist/core/canonical-json.js +34 -15
- package/dist/core/canonical-json.js.map +1 -1
- package/dist/core/configuration-error.d.ts +5 -4
- package/dist/core/configuration-error.js +5 -3
- package/dist/core/configuration-error.js.map +1 -1
- package/dist/core/evidence-provenance.d.ts +12 -12
- package/dist/core/evidence-provenance.js +10 -9
- package/dist/core/evidence-provenance.js.map +1 -1
- package/dist/core/image-formation.d.ts +11 -10
- package/dist/core/image-formation.js +11 -9
- package/dist/core/image-formation.js.map +1 -1
- package/dist/core/owned-data.d.ts +9 -17
- package/dist/core/owned-data.js +9 -16
- package/dist/core/owned-data.js.map +1 -1
- package/dist/core/portable-math.d.ts +15 -0
- package/dist/core/portable-math.js +56 -0
- package/dist/core/portable-math.js.map +1 -0
- package/dist/core/record-validation.d.ts +48 -9
- package/dist/core/record-validation.js +93 -19
- package/dist/core/record-validation.js.map +1 -1
- package/dist/core/scientific-assurance.d.ts +16 -14
- package/dist/core/scientific-assurance.js +22 -18
- package/dist/core/scientific-assurance.js.map +1 -1
- package/dist/core/spectral-composition.d.ts +13 -14
- package/dist/core/spectral-composition.js +30 -27
- package/dist/core/spectral-composition.js.map +1 -1
- package/dist/core/spectral.d.ts +5 -6
- package/dist/core/spectral.js +9 -7
- package/dist/core/spectral.js.map +1 -1
- package/dist/core/validation.d.ts +3 -6
- package/dist/core/validation.js +3 -5
- package/dist/core/validation.js.map +1 -1
- package/dist/core/version.d.ts +6 -6
- package/dist/core/version.js +6 -5
- package/dist/core/version.js.map +1 -1
- package/dist/equipment/exposure-capabilities.d.ts +10 -10
- package/dist/equipment/exposure-capabilities.js +40 -30
- package/dist/equipment/exposure-capabilities.js.map +1 -1
- package/dist/equipment/generic-tier-assets.d.ts +13 -6
- package/dist/equipment/generic-tier-assets.js +34 -15
- package/dist/equipment/generic-tier-assets.js.map +1 -1
- package/dist/equipment/generic-tier-presets.d.ts +5 -6
- package/dist/equipment/generic-tier-presets.js +15 -13
- package/dist/equipment/generic-tier-presets.js.map +1 -1
- package/dist/equipment/iso-capabilities.d.ts +21 -22
- package/dist/equipment/iso-capabilities.js +49 -44
- package/dist/equipment/iso-capabilities.js.map +1 -1
- package/dist/equipment/metering-capabilities.d.ts +5 -6
- package/dist/equipment/metering-capabilities.js +22 -19
- package/dist/equipment/metering-capabilities.js.map +1 -1
- package/dist/equipment/release-capabilities.d.ts +3 -4
- package/dist/equipment/release-capabilities.js +18 -14
- package/dist/equipment/release-capabilities.js.map +1 -1
- package/dist/exposure/exposure-duration-control.d.ts +19 -17
- package/dist/exposure/exposure-duration-control.js +27 -23
- package/dist/exposure/exposure-duration-control.js.map +1 -1
- package/dist/exposure/exposure-mode-resolver.d.ts +42 -39
- package/dist/exposure/exposure-mode-resolver.js +127 -82
- package/dist/exposure/exposure-mode-resolver.js.map +1 -1
- package/dist/exposure/exposure.d.ts +17 -16
- package/dist/exposure/exposure.js +22 -15
- package/dist/exposure/exposure.js.map +1 -1
- package/dist/exposure/flash-ttl.d.ts +135 -0
- package/dist/exposure/flash-ttl.js +193 -0
- package/dist/exposure/flash-ttl.js.map +1 -0
- package/dist/exposure/flash.d.ts +144 -36
- package/dist/exposure/flash.js +259 -59
- package/dist/exposure/flash.js.map +1 -1
- package/dist/exposure/metering-scene-radiance.d.ts +10 -10
- package/dist/exposure/metering-scene-radiance.js +42 -23
- package/dist/exposure/metering-scene-radiance.js.map +1 -1
- package/dist/exposure/metering-target.d.ts +8 -8
- package/dist/exposure/metering-target.js +30 -20
- package/dist/exposure/metering-target.js.map +1 -1
- package/dist/exposure/metering-temporal.d.ts +16 -15
- package/dist/exposure/metering-temporal.js +41 -19
- package/dist/exposure/metering-temporal.js.map +1 -1
- package/dist/exposure/metering.d.ts +64 -17
- package/dist/exposure/metering.js +159 -30
- package/dist/exposure/metering.js.map +1 -1
- package/dist/exposure/program-line.d.ts +5 -5
- package/dist/exposure/program-line.js +20 -13
- package/dist/exposure/program-line.js.map +1 -1
- package/dist/facade/camera-preset.d.ts +8 -0
- package/dist/facade/camera-preset.js +102 -0
- package/dist/facade/camera-preset.js.map +1 -0
- package/dist/facade/chart-radiance-batch.d.ts +57 -0
- package/dist/facade/chart-radiance-batch.js +121 -0
- package/dist/facade/chart-radiance-batch.js.map +1 -0
- package/dist/facade/chart-scenes.d.ts +177 -0
- package/dist/facade/chart-scenes.js +232 -0
- package/dist/facade/chart-scenes.js.map +1 -0
- package/dist/facade/host-yield.d.ts +7 -0
- package/dist/facade/host-yield.js +23 -0
- package/dist/facade/host-yield.js.map +1 -0
- package/dist/facade/scene-radiance.d.ts +117 -0
- package/dist/facade/scene-radiance.js +205 -0
- package/dist/facade/scene-radiance.js.map +1 -0
- package/dist/facade/simulate-capture.d.ts +284 -0
- package/dist/facade/simulate-capture.js +1026 -0
- package/dist/facade/simulate-capture.js.map +1 -0
- package/dist/gpu/chart-radiance-gpu.d.ts +17 -0
- package/dist/gpu/chart-radiance-gpu.js +176 -0
- package/dist/gpu/chart-radiance-gpu.js.map +1 -0
- package/dist/gpu/image-kernel-accelerator.d.ts +132 -0
- package/dist/gpu/image-kernel-accelerator.js +720 -0
- package/dist/gpu/image-kernel-accelerator.js.map +1 -0
- package/dist/gpu/image-kernel-execution.d.ts +92 -0
- package/dist/gpu/image-kernel-execution.js +84 -0
- package/dist/gpu/image-kernel-execution.js.map +1 -0
- package/dist/gpu/sensor-stage-gpu.d.ts +44 -0
- package/dist/gpu/sensor-stage-gpu.js +317 -0
- package/dist/gpu/sensor-stage-gpu.js.map +1 -0
- package/dist/gpu/temporal-sum-gpu.d.ts +23 -0
- package/dist/gpu/temporal-sum-gpu.js +150 -0
- package/dist/gpu/temporal-sum-gpu.js.map +1 -0
- package/dist/gpu/webgpu-runtime.d.ts +63 -0
- package/dist/gpu/webgpu-runtime.js +215 -0
- package/dist/gpu/webgpu-runtime.js.map +1 -0
- package/dist/gpu/wgsl-chart-kernel.d.ts +30 -0
- package/dist/gpu/wgsl-chart-kernel.js +165 -0
- package/dist/gpu/wgsl-chart-kernel.js.map +1 -0
- package/dist/gpu/wgsl-kernels.d.ts +53 -0
- package/dist/gpu/wgsl-kernels.js +365 -0
- package/dist/gpu/wgsl-kernels.js.map +1 -0
- package/dist/gpu/wgsl-sensor-kernel.d.ts +64 -0
- package/dist/gpu/wgsl-sensor-kernel.js +409 -0
- package/dist/gpu/wgsl-sensor-kernel.js.map +1 -0
- package/dist/index.d.ts +89 -25
- package/dist/index.js +59 -15
- package/dist/index.js.map +1 -1
- package/dist/motion/camera-rotation.d.ts +92 -40
- package/dist/motion/camera-rotation.js +84 -47
- package/dist/motion/camera-rotation.js.map +1 -1
- package/dist/motion/capture-rotation-inverse-mapping.d.ts +37 -34
- package/dist/motion/capture-rotation-inverse-mapping.js +32 -24
- package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -1
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts +39 -35
- package/dist/motion/capture-rotation-temporal-quadrature.js +37 -28
- package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -1
- package/dist/motion/capture-rotation-trajectory.d.ts +32 -28
- package/dist/motion/capture-rotation-trajectory.js +36 -26
- package/dist/motion/capture-rotation-trajectory.js.map +1 -1
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts +23 -21
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js +33 -14
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js.map +1 -1
- package/dist/motion/extended-object-projection.d.ts +19 -16
- package/dist/motion/extended-object-projection.js +38 -18
- package/dist/motion/extended-object-projection.js.map +1 -1
- package/dist/motion/projected-motion.d.ts +18 -17
- package/dist/motion/projected-motion.js +25 -17
- package/dist/motion/projected-motion.js.map +1 -1
- package/dist/motion/temporal-exposure-sum.d.ts +55 -0
- package/dist/motion/temporal-exposure-sum.js +141 -0
- package/dist/motion/temporal-exposure-sum.js.map +1 -0
- package/dist/motion/video-sequence.d.ts +111 -0
- package/dist/motion/video-sequence.js +179 -0
- package/dist/motion/video-sequence.js.map +1 -0
- package/dist/optics/aperture.d.ts +14 -15
- package/dist/optics/aperture.js +13 -11
- package/dist/optics/aperture.js.map +1 -1
- package/dist/optics/atmospheric-haze.d.ts +83 -0
- package/dist/optics/atmospheric-haze.js +113 -0
- package/dist/optics/atmospheric-haze.js.map +1 -0
- package/dist/optics/brown-conrady-distortion.d.ts +116 -0
- package/dist/optics/brown-conrady-distortion.js +291 -0
- package/dist/optics/brown-conrady-distortion.js.map +1 -0
- package/dist/optics/circle-of-confusion.d.ts +10 -10
- package/dist/optics/circle-of-confusion.js +15 -11
- package/dist/optics/circle-of-confusion.js.map +1 -1
- package/dist/optics/complex-pupil-psf.d.ts +64 -33
- package/dist/optics/complex-pupil-psf.js +190 -98
- package/dist/optics/complex-pupil-psf.js.map +1 -1
- package/dist/optics/depth-of-field.d.ts +25 -15
- package/dist/optics/depth-of-field.js +67 -27
- package/dist/optics/depth-of-field.js.map +1 -1
- package/dist/optics/diffraction.d.ts +14 -13
- package/dist/optics/diffraction.js +14 -10
- package/dist/optics/diffraction.js.map +1 -1
- package/dist/optics/focus-breathing.d.ts +88 -27
- package/dist/optics/focus-breathing.js +114 -23
- package/dist/optics/focus-breathing.js.map +1 -1
- package/dist/optics/focus-state.d.ts +18 -18
- package/dist/optics/focus-state.js +21 -15
- package/dist/optics/focus-state.js.map +1 -1
- package/dist/optics/front-of-lens-filter.d.ts +45 -14
- package/dist/optics/front-of-lens-filter.js +259 -88
- package/dist/optics/front-of-lens-filter.js.map +1 -1
- package/dist/optics/illumination-vignetting.d.ts +16 -17
- package/dist/optics/illumination-vignetting.js +40 -17
- package/dist/optics/illumination-vignetting.js.map +1 -1
- package/dist/optics/irradiance-convolution.d.ts +59 -0
- package/dist/optics/irradiance-convolution.js +138 -0
- package/dist/optics/irradiance-convolution.js.map +1 -0
- package/dist/optics/lateral-chromatic-aberration.d.ts +33 -30
- package/dist/optics/lateral-chromatic-aberration.js +33 -23
- package/dist/optics/lateral-chromatic-aberration.js.map +1 -1
- package/dist/optics/lens-psf-kernels.d.ts +89 -0
- package/dist/optics/lens-psf-kernels.js +175 -0
- package/dist/optics/lens-psf-kernels.js.map +1 -0
- package/dist/optics/lens-psf-profile.d.ts +78 -46
- package/dist/optics/lens-psf-profile.js +335 -124
- package/dist/optics/lens-psf-profile.js.map +1 -1
- package/dist/optics/longitudinal-chromatic-aberration.d.ts +102 -0
- package/dist/optics/longitudinal-chromatic-aberration.js +210 -0
- package/dist/optics/longitudinal-chromatic-aberration.js.map +1 -0
- package/dist/optics/polygon-diffraction.d.ts +80 -23
- package/dist/optics/polygon-diffraction.js +130 -25
- package/dist/optics/polygon-diffraction.js.map +1 -1
- package/dist/optics/profile-contract.d.ts +5 -6
- package/dist/optics/profile-contract.js +14 -11
- package/dist/optics/profile-contract.js.map +1 -1
- package/dist/optics/psf-foundation.d.ts +23 -23
- package/dist/optics/psf-foundation.js +24 -21
- package/dist/optics/psf-foundation.js.map +1 -1
- package/dist/optics/pupil-vignetting.d.ts +118 -0
- package/dist/optics/pupil-vignetting.js +264 -0
- package/dist/optics/pupil-vignetting.js.map +1 -0
- package/dist/optics/radial-distortion.d.ts +34 -33
- package/dist/optics/radial-distortion.js +37 -30
- package/dist/optics/radial-distortion.js.map +1 -1
- package/dist/optics/scene-to-sensor-irradiance.d.ts +47 -33
- package/dist/optics/scene-to-sensor-irradiance.js +73 -45
- package/dist/optics/scene-to-sensor-irradiance.js.map +1 -1
- package/dist/optics/scene-to-sensor-quadrature.d.ts +23 -18
- package/dist/optics/scene-to-sensor-quadrature.js +16 -11
- package/dist/optics/scene-to-sensor-quadrature.js.map +1 -1
- package/dist/optics/sensor-aperture-rays.d.ts +20 -4
- package/dist/optics/sensor-aperture-rays.js +32 -14
- package/dist/optics/sensor-aperture-rays.js.map +1 -1
- package/dist/optics/sensor-environment-query.d.ts +81 -16
- package/dist/optics/sensor-environment-query.js +145 -12
- package/dist/optics/sensor-environment-query.js.map +1 -1
- package/dist/optics/sensor-psf-quadrature.d.ts +12 -10
- package/dist/optics/sensor-psf-quadrature.js +18 -11
- package/dist/optics/sensor-psf-quadrature.js.map +1 -1
- package/dist/optics/sensor-psf-support.d.ts +8 -6
- package/dist/optics/sensor-psf-support.js +8 -5
- package/dist/optics/sensor-psf-support.js.map +1 -1
- package/dist/optics/stray-light.d.ts +22 -19
- package/dist/optics/stray-light.js +18 -12
- package/dist/optics/stray-light.js.map +1 -1
- package/dist/optics/thin-lens.d.ts +10 -9
- package/dist/optics/thin-lens.js +12 -8
- package/dist/optics/thin-lens.js.map +1 -1
- package/dist/optics/zernike-wavefront.d.ts +154 -0
- package/dist/optics/zernike-wavefront.js +352 -0
- package/dist/optics/zernike-wavefront.js.map +1 -0
- package/dist/output/capture-corrected-sdr.d.ts +16 -8
- package/dist/output/capture-corrected-sdr.js +16 -8
- package/dist/output/capture-corrected-sdr.js.map +1 -1
- package/dist/output/capture-geometry.d.ts +34 -36
- package/dist/output/capture-geometry.js +52 -32
- package/dist/output/capture-geometry.js.map +1 -1
- package/dist/output/capture-sdr.d.ts +7 -6
- package/dist/output/capture-sdr.js +11 -8
- package/dist/output/capture-sdr.js.map +1 -1
- package/dist/output/crop.d.ts +22 -6
- package/dist/output/crop.js +40 -6
- package/dist/output/crop.js.map +1 -1
- package/dist/output/geometric-transforms.d.ts +60 -23
- package/dist/output/geometric-transforms.js +111 -24
- package/dist/output/geometric-transforms.js.map +1 -1
- package/dist/output/lens-corrections.d.ts +27 -19
- package/dist/output/lens-corrections.js +29 -13
- package/dist/output/lens-corrections.js.map +1 -1
- package/dist/output/native-capture-sdr.d.ts +71 -16
- package/dist/output/native-capture-sdr.js +190 -33
- package/dist/output/native-capture-sdr.js.map +1 -1
- package/dist/output/png-encoder.d.ts +65 -0
- package/dist/output/png-encoder.js +461 -0
- package/dist/output/png-encoder.js.map +1 -0
- package/dist/output/print-contrast-reference.d.ts +10 -9
- package/dist/output/print-contrast-reference.js +10 -8
- package/dist/output/print-contrast-reference.js.map +1 -1
- package/dist/output/print-detail.d.ts +18 -17
- package/dist/output/print-detail.js +12 -10
- package/dist/output/print-detail.js.map +1 -1
- package/dist/output/print-jpeg.d.ts +26 -5
- package/dist/output/print-jpeg.js +117 -50
- package/dist/output/print-jpeg.js.map +1 -1
- package/dist/output/print-plan.d.ts +19 -19
- package/dist/output/print-plan.js +11 -10
- package/dist/output/print-plan.js.map +1 -1
- package/dist/output/print-region-statistics.d.ts +14 -15
- package/dist/output/print-region-statistics.js +11 -11
- package/dist/output/print-region-statistics.js.map +1 -1
- package/dist/output/sdr-rendering.d.ts +48 -10
- package/dist/output/sdr-rendering.js +114 -25
- package/dist/output/sdr-rendering.js.map +1 -1
- package/dist/output/subject-framing-crop.d.ts +6 -10
- package/dist/output/subject-framing-crop.js +23 -13
- package/dist/output/subject-framing-crop.js.map +1 -1
- package/dist/processing/demosaic.d.ts +90 -0
- package/dist/processing/demosaic.js +275 -0
- package/dist/processing/demosaic.js.map +1 -0
- package/dist/processing/denoise.d.ts +68 -0
- package/dist/processing/denoise.js +214 -0
- package/dist/processing/denoise.js.map +1 -0
- package/dist/processing/focus-stacking.d.ts +17 -0
- package/dist/processing/focus-stacking.js +80 -0
- package/dist/processing/focus-stacking.js.map +1 -0
- package/dist/processing/hdr.d.ts +54 -0
- package/dist/processing/hdr.js +172 -0
- package/dist/processing/hdr.js.map +1 -0
- package/dist/processing/image-ops.d.ts +66 -0
- package/dist/processing/image-ops.js +192 -0
- package/dist/processing/image-ops.js.map +1 -0
- package/dist/processing/panorama.d.ts +51 -0
- package/dist/processing/panorama.js +305 -0
- package/dist/processing/panorama.js.map +1 -0
- package/dist/processing/processing-task.d.ts +85 -0
- package/dist/processing/processing-task.js +164 -0
- package/dist/processing/processing-task.js.map +1 -0
- package/dist/processing/tone-mapping.d.ts +69 -0
- package/dist/processing/tone-mapping.js +310 -0
- package/dist/processing/tone-mapping.js.map +1 -0
- package/dist/schema/camera.d.ts +5 -4
- package/dist/schema/illumination-spectral.d.ts +13 -19
- package/dist/schema/illumination-spectral.js +23 -19
- package/dist/schema/illumination-spectral.js.map +1 -1
- package/dist/schema/illumination-temporal.d.ts +12 -15
- package/dist/schema/illumination-temporal.js +43 -28
- package/dist/schema/illumination-temporal.js.map +1 -1
- package/dist/schema/illumination.d.ts +5 -4
- package/dist/schema/illumination.js +55 -20
- package/dist/schema/illumination.js.map +1 -1
- package/dist/schema/scene-radiance-temporal.d.ts +9 -11
- package/dist/schema/scene-radiance-temporal.js +26 -23
- package/dist/schema/scene-radiance-temporal.js.map +1 -1
- package/dist/schema/scene-radiance.d.ts +17 -17
- package/dist/schema/scene-radiance.js +56 -34
- package/dist/schema/scene-radiance.js.map +1 -1
- package/dist/schema/scene.d.ts +14 -13
- package/dist/schema/validation.d.ts +0 -1
- package/dist/schema/validation.js +17 -15
- package/dist/schema/validation.js.map +1 -1
- package/dist/sensor/accumulated-charge.d.ts +45 -64
- package/dist/sensor/accumulated-charge.js +41 -47
- package/dist/sensor/accumulated-charge.js.map +1 -1
- package/dist/sensor/architecture.d.ts +22 -25
- package/dist/sensor/architecture.js +17 -16
- package/dist/sensor/architecture.js.map +1 -1
- package/dist/sensor/camera-saturation-capacity.d.ts +21 -28
- package/dist/sensor/camera-saturation-capacity.js +36 -34
- package/dist/sensor/camera-saturation-capacity.js.map +1 -1
- package/dist/sensor/capture-color-sampling-binding.d.ts +46 -51
- package/dist/sensor/capture-color-sampling-binding.js +39 -41
- package/dist/sensor/capture-color-sampling-binding.js.map +1 -1
- package/dist/sensor/capture-mode-timing.d.ts +8 -9
- package/dist/sensor/capture-mode-timing.js +24 -21
- package/dist/sensor/capture-mode-timing.js.map +1 -1
- package/dist/sensor/capture-mode.d.ts +28 -30
- package/dist/sensor/capture-mode.js +33 -31
- package/dist/sensor/capture-mode.js.map +1 -1
- package/dist/sensor/color-sampling.d.ts +30 -33
- package/dist/sensor/color-sampling.js +32 -37
- package/dist/sensor/color-sampling.js.map +1 -1
- package/dist/sensor/constant-rate-temporal-integration.d.ts +19 -23
- package/dist/sensor/constant-rate-temporal-integration.js +28 -26
- package/dist/sensor/constant-rate-temporal-integration.js.map +1 -1
- package/dist/sensor/dark-current.d.ts +53 -49
- package/dist/sensor/dark-current.js +87 -46
- package/dist/sensor/dark-current.js.map +1 -1
- package/dist/sensor/environment-photo-signal.d.ts +71 -30
- package/dist/sensor/environment-photo-signal.js +127 -46
- package/dist/sensor/environment-photo-signal.js.map +1 -1
- package/dist/sensor/eqe-electron-rate.d.ts +14 -13
- package/dist/sensor/eqe-electron-rate.js +34 -14
- package/dist/sensor/eqe-electron-rate.js.map +1 -1
- package/dist/sensor/eqe-local-exposure.d.ts +24 -24
- package/dist/sensor/eqe-local-exposure.js +15 -11
- package/dist/sensor/eqe-local-exposure.js.map +1 -1
- package/dist/sensor/eqe-temporal-exposure.d.ts +11 -11
- package/dist/sensor/eqe-temporal-exposure.js +15 -10
- package/dist/sensor/eqe-temporal-exposure.js.map +1 -1
- package/dist/sensor/exposure-window.d.ts +48 -34
- package/dist/sensor/exposure-window.js +77 -36
- package/dist/sensor/exposure-window.js.map +1 -1
- package/dist/sensor/fixed-pattern-noise.d.ts +108 -0
- package/dist/sensor/fixed-pattern-noise.js +166 -0
- package/dist/sensor/fixed-pattern-noise.js.map +1 -0
- package/dist/sensor/iso-gain.d.ts +44 -0
- package/dist/sensor/iso-gain.js +119 -0
- package/dist/sensor/iso-gain.js.map +1 -0
- package/dist/sensor/iso-signal-chain.d.ts +25 -48
- package/dist/sensor/iso-signal-chain.js +52 -66
- package/dist/sensor/iso-signal-chain.js.map +1 -1
- package/dist/sensor/local-exposure-binding.d.ts +21 -21
- package/dist/sensor/local-exposure-binding.js +22 -18
- package/dist/sensor/local-exposure-binding.js.map +1 -1
- package/dist/sensor/optical-stack.d.ts +36 -40
- package/dist/sensor/optical-stack.js +34 -37
- package/dist/sensor/optical-stack.js.map +1 -1
- package/dist/sensor/photon-energy.d.ts +22 -28
- package/dist/sensor/photon-energy.js +42 -34
- package/dist/sensor/photon-energy.js.map +1 -1
- package/dist/sensor/physical-charge-capacity.d.ts +20 -30
- package/dist/sensor/physical-charge-capacity.js +35 -36
- package/dist/sensor/physical-charge-capacity.js.map +1 -1
- package/dist/sensor/pixel-pitch.d.ts +2 -3
- package/dist/sensor/pixel-pitch.js +4 -2
- package/dist/sensor/pixel-pitch.js.map +1 -1
- package/dist/sensor/radiometry-readiness.d.ts +13 -15
- package/dist/sensor/radiometry-readiness.js +20 -17
- package/dist/sensor/radiometry-readiness.js.map +1 -1
- package/dist/sensor/raw-readout.d.ts +173 -83
- package/dist/sensor/raw-readout.js +425 -160
- package/dist/sensor/raw-readout.js.map +1 -1
- package/dist/sensor/raw-reconstruction.d.ts +112 -44
- package/dist/sensor/raw-reconstruction.js +200 -47
- package/dist/sensor/raw-reconstruction.js.map +1 -1
- package/dist/sensor/readout-exposure-linkage.d.ts +103 -34
- package/dist/sensor/readout-exposure-linkage.js +125 -27
- package/dist/sensor/readout-exposure-linkage.js.map +1 -1
- package/dist/sensor/readout-timing.d.ts +43 -44
- package/dist/sensor/readout-timing.js +38 -30
- package/dist/sensor/readout-timing.js.map +1 -1
- package/dist/sensor/response-application-compatibility.d.ts +21 -28
- package/dist/sensor/response-application-compatibility.js +35 -34
- package/dist/sensor/response-application-compatibility.js.map +1 -1
- package/dist/sensor/response-operating-range.d.ts +26 -35
- package/dist/sensor/response-operating-range.js +40 -39
- package/dist/sensor/response-operating-range.js.map +1 -1
- package/dist/sensor/responsivity-photocurrent.d.ts +21 -29
- package/dist/sensor/responsivity-photocurrent.js +57 -40
- package/dist/sensor/responsivity-photocurrent.js.map +1 -1
- package/dist/sensor/sampling-aperture.d.ts +21 -25
- package/dist/sensor/sampling-aperture.js +29 -28
- package/dist/sensor/sampling-aperture.js.map +1 -1
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts +14 -12
- package/dist/sensor/scene-eqe-temporal-exposure.js +13 -8
- package/dist/sensor/scene-eqe-temporal-exposure.js.map +1 -1
- package/dist/sensor/sensor-geometry.d.ts +28 -32
- package/dist/sensor/sensor-geometry.js +35 -20
- package/dist/sensor/sensor-geometry.js.map +1 -1
- package/dist/sensor/signal-noise.d.ts +14 -16
- package/dist/sensor/signal-noise.js +15 -13
- package/dist/sensor/signal-noise.js.map +1 -1
- package/dist/sensor/spatial-sample-reduction.d.ts +45 -60
- package/dist/sensor/spatial-sample-reduction.js +39 -48
- package/dist/sensor/spatial-sample-reduction.js.map +1 -1
- package/dist/sensor/spatial-sampling-quadrature.d.ts +46 -54
- package/dist/sensor/spatial-sampling-quadrature.js +31 -36
- package/dist/sensor/spatial-sampling-quadrature.js.map +1 -1
- package/dist/sensor/spatio-spectral-reduction.d.ts +32 -42
- package/dist/sensor/spatio-spectral-reduction.js +24 -29
- package/dist/sensor/spatio-spectral-reduction.js.map +1 -1
- package/dist/sensor/spectral-coverage.d.ts +6 -9
- package/dist/sensor/spectral-coverage.js +9 -6
- package/dist/sensor/spectral-coverage.js.map +1 -1
- package/dist/sensor/spectral-quadrature.d.ts +46 -60
- package/dist/sensor/spectral-quadrature.js +38 -48
- package/dist/sensor/spectral-quadrature.js.map +1 -1
- package/dist/sensor/spectral-response.d.ts +53 -41
- package/dist/sensor/spectral-response.js +80 -47
- package/dist/sensor/spectral-response.js.map +1 -1
- package/dist/sensor/stochastic-seed.d.ts +50 -0
- package/dist/sensor/stochastic-seed.js +123 -0
- package/dist/sensor/stochastic-seed.js.map +1 -0
- package/dist/sensor/temporal-eqe-sum.d.ts +2 -4
- package/dist/sensor/temporal-eqe-sum.js +5 -6
- package/dist/sensor/temporal-eqe-sum.js.map +1 -1
- package/dist/sensor/temporal-photo-signal.d.ts +5 -6
- package/dist/sensor/temporal-photo-signal.js +11 -10
- package/dist/sensor/temporal-photo-signal.js.map +1 -1
- package/dist/sensor/temporal-sample-binding.d.ts +1 -2
- package/dist/sensor/temporal-sample-binding.js +3 -3
- package/dist/sensor/temporal-sample-binding.js.map +1 -1
- package/dist/simulation/poc-simulation.d.ts +16 -16
- package/dist/simulation/poc-simulation.js +20 -15
- package/dist/simulation/poc-simulation.js.map +1 -1
- package/dist/stabilization/camera-shake.d.ts +42 -18
- package/dist/stabilization/camera-shake.js +43 -20
- package/dist/stabilization/camera-shake.js.map +1 -1
- package/dist/stabilization/system.d.ts +44 -41
- package/dist/stabilization/system.js +196 -108
- package/dist/stabilization/system.js.map +1 -1
- package/docs/AGENT_GUIDE.md +183 -0
- package/docs/API_REFERENCE.md +761 -2
- package/docs/QUICK_START.md +495 -0
- package/docs/USAGE.md +1719 -714
- package/docs/api/camera-equivalent-focal-length.md +6 -7
- package/docs/api/camera-field-of-view.md +16 -8
- package/docs/api/camera-lens-projection.md +246 -0
- package/docs/api/camera-projected-object-size.md +6 -5
- package/docs/api/capture-capture-export-metadata.md +10 -10
- package/docs/api/capture-dng-import.md +134 -0
- package/docs/api/capture-environment-raw-producer.md +17 -11
- package/docs/api/capture-export-jpeg.md +16 -0
- package/docs/api/capture-focus-control.md +25 -47
- package/docs/api/capture-linear-encoding.md +21 -12
- package/docs/api/capture-lossless-jpeg.md +49 -0
- package/docs/api/capture-native-environment-optical-stage.md +75 -0
- package/docs/api/capture-native-environment-raw.md +161 -4
- package/docs/api/capture-native-raw-development.md +69 -4
- package/docs/api/capture-native-raw-dng.md +84 -0
- package/docs/api/capture-native-raw.md +23 -8
- package/docs/api/capture-packed-sensor-raw.md +156 -0
- package/docs/api/capture-photographic-export.md +69 -31
- package/docs/api/capture-raw-frame-reconstruction.md +8 -8
- package/docs/api/capture-raw-white-level.md +37 -0
- package/docs/api/capture-release-sequence.md +6 -7
- package/docs/api/capture-sensor-raw-frame.md +6 -6
- package/docs/api/capture-sensor-raw-producer.md +17 -11
- package/docs/api/capture-simulated-capture.md +15 -15
- package/docs/api/color-camera-color-matrix.md +103 -0
- package/docs/api/color-capture-color.md +22 -11
- package/docs/api/color-chromatic-adaptation.md +82 -0
- package/docs/api/color-color-difference.md +134 -0
- package/docs/api/color-color-matching-functions.md +259 -0
- package/docs/api/color-colorimetry-math.md +54 -0
- package/docs/api/color-gamut-mapping.md +72 -0
- package/docs/api/color-illuminants.md +280 -0
- package/docs/api/color-rgb-color-spaces.md +151 -0
- package/docs/api/color-sensor-color-development.md +27 -0
- package/docs/api/color-srgb-icc.md +2 -4
- package/docs/api/color-white-balance.md +95 -19
- package/docs/api/composition-image-formation-plan.md +124 -95
- package/docs/api/composition-plan-consumer.md +7 -7
- package/docs/api/core-calculation-result.md +18 -14
- package/docs/api/core-configuration-error.md +1 -1
- package/docs/api/core-image-formation.md +7 -7
- package/docs/api/core-scientific-assurance.md +12 -10
- package/docs/api/core-spectral-composition.md +14 -14
- package/docs/api/core-spectral.md +6 -6
- package/docs/api/core-validation.md +3 -3
- package/docs/api/core-version.md +7 -6
- package/docs/api/equipment-exposure-capabilities.md +11 -10
- package/docs/api/equipment-generic-tier-assets.md +7 -2
- package/docs/api/equipment-generic-tier-presets.md +6 -6
- package/docs/api/equipment-iso-capabilities.md +18 -18
- package/docs/api/equipment-metering-capabilities.md +6 -6
- package/docs/api/equipment-release-capabilities.md +4 -4
- package/docs/api/exports.json +2213 -8
- package/docs/api/exposure-exposure-duration-control.md +9 -9
- package/docs/api/exposure-exposure-mode-resolver.md +35 -31
- package/docs/api/exposure-exposure.md +10 -10
- package/docs/api/exposure-flash-ttl.md +182 -0
- package/docs/api/exposure-flash.md +183 -28
- package/docs/api/exposure-metering-scene-radiance.md +11 -10
- package/docs/api/exposure-metering-target.md +9 -8
- package/docs/api/exposure-metering-temporal.md +8 -8
- package/docs/api/exposure-metering.md +69 -9
- package/docs/api/exposure-program-line.md +6 -5
- package/docs/api/facade-chart-radiance-batch.md +96 -0
- package/docs/api/facade-chart-scenes.md +240 -0
- package/docs/api/facade-scene-radiance.md +122 -0
- package/docs/api/facade-simulate-capture.md +324 -0
- package/docs/api/gpu-image-kernel-accelerator.md +157 -0
- package/docs/api/gpu-image-kernel-execution.md +152 -0
- package/docs/api/motion-camera-rotation.md +43 -26
- package/docs/api/motion-capture-rotation-inverse-mapping.md +24 -23
- package/docs/api/motion-capture-rotation-temporal-quadrature.md +22 -22
- package/docs/api/motion-capture-rotation-trajectory.md +15 -15
- package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +15 -14
- package/docs/api/motion-extended-object-projection.md +10 -8
- package/docs/api/motion-projected-motion.md +8 -8
- package/docs/api/motion-temporal-exposure-sum.md +98 -0
- package/docs/api/motion-video-sequence.md +159 -0
- package/docs/api/optics-aperture.md +8 -8
- package/docs/api/optics-atmospheric-haze.md +104 -0
- package/docs/api/optics-brown-conrady-distortion.md +123 -0
- package/docs/api/optics-circle-of-confusion.md +5 -4
- package/docs/api/optics-complex-pupil-psf.md +57 -16
- package/docs/api/optics-depth-of-field.md +12 -6
- package/docs/api/optics-diffraction.md +8 -7
- package/docs/api/optics-focus-breathing.md +104 -16
- package/docs/api/optics-focus-state.md +9 -10
- package/docs/api/optics-front-of-lens-filter.md +72 -14
- package/docs/api/optics-illumination-vignetting.md +10 -10
- package/docs/api/optics-irradiance-convolution.md +95 -0
- package/docs/api/optics-lateral-chromatic-aberration.md +22 -21
- package/docs/api/optics-lens-psf-kernels.md +72 -0
- package/docs/api/optics-lens-psf-profile.md +48 -26
- package/docs/api/optics-longitudinal-chromatic-aberration.md +128 -0
- package/docs/api/optics-polygon-diffraction.md +78 -13
- package/docs/api/optics-profile-contract.md +4 -4
- package/docs/api/optics-psf-foundation.md +12 -12
- package/docs/api/optics-pupil-vignetting.md +132 -0
- package/docs/api/optics-radial-distortion.md +12 -12
- package/docs/api/optics-scene-to-sensor-irradiance.md +25 -14
- package/docs/api/optics-scene-to-sensor-quadrature.md +15 -12
- package/docs/api/optics-sensor-aperture-rays.md +3 -2
- package/docs/api/optics-sensor-environment-query.md +52 -9
- package/docs/api/optics-sensor-psf-quadrature.md +13 -10
- package/docs/api/optics-stray-light.md +12 -11
- package/docs/api/optics-thin-lens.md +4 -3
- package/docs/api/optics-zernike-wavefront.md +229 -0
- package/docs/api/output-capture-corrected-sdr.md +10 -7
- package/docs/api/output-capture-geometry.md +35 -36
- package/docs/api/output-capture-sdr.md +4 -4
- package/docs/api/output-crop.md +7 -4
- package/docs/api/output-geometric-transforms.md +65 -19
- package/docs/api/output-lens-corrections.md +17 -15
- package/docs/api/output-native-capture-sdr.md +26 -13
- package/docs/api/output-png-encoder.md +105 -0
- package/docs/api/output-print-contrast-reference.md +8 -8
- package/docs/api/output-print-detail.md +14 -14
- package/docs/api/output-print-jpeg.md +22 -5
- package/docs/api/output-print-plan.md +18 -18
- package/docs/api/output-print-region-statistics.md +14 -14
- package/docs/api/output-sdr-rendering.md +52 -10
- package/docs/api/output-subject-framing-crop.md +5 -6
- package/docs/api/processing-demosaic.md +120 -0
- package/docs/api/processing-denoise.md +148 -0
- package/docs/api/processing-focus-stacking.md +41 -0
- package/docs/api/processing-hdr.md +113 -0
- package/docs/api/processing-panorama.md +82 -0
- package/docs/api/processing-processing-task.md +107 -0
- package/docs/api/processing-tone-mapping.md +142 -0
- package/docs/api/schema-camera.md +6 -4
- package/docs/api/schema-illumination-spectral.md +10 -11
- package/docs/api/schema-illumination-temporal.md +13 -15
- package/docs/api/schema-illumination.md +4 -4
- package/docs/api/schema-scene-radiance-temporal.md +10 -11
- package/docs/api/schema-scene-radiance.md +18 -17
- package/docs/api/schema-scene.md +9 -9
- package/docs/api/schema-validation.md +1 -1
- package/docs/api/sensor-accumulated-charge.md +12 -20
- package/docs/api/sensor-architecture.md +15 -16
- package/docs/api/sensor-camera-saturation-capacity.md +9 -11
- package/docs/api/sensor-capture-color-sampling-binding.md +47 -51
- package/docs/api/sensor-capture-mode-timing.md +9 -9
- package/docs/api/sensor-capture-mode.md +29 -30
- package/docs/api/sensor-color-sampling.md +31 -33
- package/docs/api/sensor-constant-rate-temporal-integration.md +10 -11
- package/docs/api/sensor-dark-current.md +30 -14
- package/docs/api/sensor-environment-photo-signal.md +13 -6
- package/docs/api/sensor-eqe-electron-rate.md +9 -8
- package/docs/api/sensor-eqe-local-exposure.md +18 -17
- package/docs/api/sensor-eqe-temporal-exposure.md +12 -11
- package/docs/api/sensor-exposure-window.md +24 -24
- package/docs/api/sensor-fixed-pattern-noise.md +104 -0
- package/docs/api/sensor-iso-gain.md +63 -0
- package/docs/api/sensor-iso-signal-chain.md +13 -22
- package/docs/api/sensor-local-exposure-binding.md +12 -13
- package/docs/api/sensor-optical-stack.md +37 -40
- package/docs/api/sensor-photon-energy.md +10 -11
- package/docs/api/sensor-physical-charge-capacity.md +8 -13
- package/docs/api/sensor-pixel-pitch.md +1 -1
- package/docs/api/sensor-radiometry-readiness.md +9 -9
- package/docs/api/sensor-raw-readout.md +118 -52
- package/docs/api/sensor-raw-reconstruction.md +97 -20
- package/docs/api/sensor-readout-exposure-linkage.md +120 -24
- package/docs/api/sensor-readout-timing.md +33 -35
- package/docs/api/sensor-response-application-compatibility.md +9 -11
- package/docs/api/sensor-response-operating-range.md +14 -18
- package/docs/api/sensor-responsivity-photocurrent.md +9 -12
- package/docs/api/sensor-sampling-aperture.md +22 -25
- package/docs/api/sensor-scene-eqe-temporal-exposure.md +9 -8
- package/docs/api/sensor-sensor-geometry.md +23 -24
- package/docs/api/sensor-signal-noise.md +10 -10
- package/docs/api/sensor-spatial-sample-reduction.md +27 -30
- package/docs/api/sensor-spatial-sampling-quadrature.md +37 -39
- package/docs/api/sensor-spatio-spectral-reduction.md +27 -29
- package/docs/api/sensor-spectral-coverage.md +5 -5
- package/docs/api/sensor-spectral-quadrature.md +33 -35
- package/docs/api/sensor-spectral-response.md +28 -16
- package/docs/api/sensor-temporal-photo-signal.md +6 -6
- package/docs/api/simulation-poc-simulation.md +17 -16
- package/docs/api/stabilization-camera-shake.md +29 -10
- package/docs/api/stabilization-system.md +25 -21
- package/docs/examples/production-request.json +3821 -2157
- package/docs/examples/simulate-capture.mjs +14 -0
- package/llms.txt +35 -0
- package/package.json +32 -12
- package/AGENTS.md +0 -674
- package/CONTRIBUTING.md +0 -76
- package/DCO +0 -33
- package/dist/camera/equivalent-focal-length.d.ts.map +0 -1
- package/dist/camera/field-of-view.d.ts.map +0 -1
- package/dist/camera/projected-object-size.d.ts.map +0 -1
- package/dist/capture/capture-export-metadata.d.ts.map +0 -1
- package/dist/capture/environment-raw-producer.d.ts.map +0 -1
- package/dist/capture/export-jpeg.d.ts.map +0 -1
- package/dist/capture/export-tiff.d.ts.map +0 -1
- package/dist/capture/focus-control.d.ts.map +0 -1
- package/dist/capture/linear-encoding.d.ts.map +0 -1
- package/dist/capture/native-environment-raw.d.ts.map +0 -1
- package/dist/capture/native-raw-development.d.ts.map +0 -1
- package/dist/capture/native-raw.d.ts.map +0 -1
- package/dist/capture/photographic-export.d.ts.map +0 -1
- package/dist/capture/raw-frame-limits.d.ts.map +0 -1
- package/dist/capture/raw-frame-reconstruction.d.ts.map +0 -1
- package/dist/capture/release-sequence.d.ts.map +0 -1
- package/dist/capture/sensor-raw-frame.d.ts.map +0 -1
- package/dist/capture/sensor-raw-producer.d.ts.map +0 -1
- package/dist/capture/simulated-capture.d.ts.map +0 -1
- package/dist/color/capture-color.d.ts.map +0 -1
- package/dist/color/sensor-color-development.d.ts.map +0 -1
- package/dist/color/srgb-icc.d.ts.map +0 -1
- package/dist/color/srgb-transfer.d.ts.map +0 -1
- package/dist/color/white-balance.d.ts.map +0 -1
- package/dist/composition/image-formation-plan.d.ts.map +0 -1
- package/dist/composition/plan-consumer.d.ts.map +0 -1
- package/dist/core/calculation-result.d.ts.map +0 -1
- package/dist/core/canonical-json.d.ts.map +0 -1
- package/dist/core/configuration-error.d.ts.map +0 -1
- package/dist/core/evidence-provenance.d.ts.map +0 -1
- package/dist/core/image-formation.d.ts.map +0 -1
- package/dist/core/owned-data.d.ts.map +0 -1
- package/dist/core/record-validation.d.ts.map +0 -1
- package/dist/core/scientific-assurance.d.ts.map +0 -1
- package/dist/core/spectral-composition.d.ts.map +0 -1
- package/dist/core/spectral.d.ts.map +0 -1
- package/dist/core/validation.d.ts.map +0 -1
- package/dist/core/version.d.ts.map +0 -1
- package/dist/equipment/exposure-capabilities.d.ts.map +0 -1
- package/dist/equipment/generic-tier-assets.d.ts.map +0 -1
- package/dist/equipment/generic-tier-presets.d.ts.map +0 -1
- package/dist/equipment/iso-capabilities.d.ts.map +0 -1
- package/dist/equipment/metering-capabilities.d.ts.map +0 -1
- package/dist/equipment/release-capabilities.d.ts.map +0 -1
- package/dist/exposure/exposure-duration-control.d.ts.map +0 -1
- package/dist/exposure/exposure-mode-resolver.d.ts.map +0 -1
- package/dist/exposure/exposure.d.ts.map +0 -1
- package/dist/exposure/flash.d.ts.map +0 -1
- package/dist/exposure/metering-scene-radiance.d.ts.map +0 -1
- package/dist/exposure/metering-target.d.ts.map +0 -1
- package/dist/exposure/metering-temporal.d.ts.map +0 -1
- package/dist/exposure/metering.d.ts.map +0 -1
- package/dist/exposure/program-line.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/motion/camera-rotation.d.ts.map +0 -1
- package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +0 -1
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +0 -1
- package/dist/motion/capture-rotation-trajectory.d.ts.map +0 -1
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts.map +0 -1
- package/dist/motion/extended-object-projection.d.ts.map +0 -1
- package/dist/motion/projected-motion.d.ts.map +0 -1
- package/dist/optics/aperture.d.ts.map +0 -1
- package/dist/optics/circle-of-confusion.d.ts.map +0 -1
- package/dist/optics/complex-pupil-psf.d.ts.map +0 -1
- package/dist/optics/depth-of-field.d.ts.map +0 -1
- package/dist/optics/diffraction.d.ts.map +0 -1
- package/dist/optics/focus-breathing.d.ts.map +0 -1
- package/dist/optics/focus-state.d.ts.map +0 -1
- package/dist/optics/front-of-lens-filter.d.ts.map +0 -1
- package/dist/optics/illumination-vignetting.d.ts.map +0 -1
- package/dist/optics/lateral-chromatic-aberration.d.ts.map +0 -1
- package/dist/optics/lens-psf-profile.d.ts.map +0 -1
- package/dist/optics/polygon-diffraction.d.ts.map +0 -1
- package/dist/optics/profile-contract.d.ts.map +0 -1
- package/dist/optics/psf-foundation.d.ts.map +0 -1
- package/dist/optics/radial-distortion.d.ts.map +0 -1
- package/dist/optics/scene-to-sensor-irradiance.d.ts.map +0 -1
- package/dist/optics/scene-to-sensor-quadrature.d.ts.map +0 -1
- package/dist/optics/sensor-aperture-rays.d.ts.map +0 -1
- package/dist/optics/sensor-environment-query.d.ts.map +0 -1
- package/dist/optics/sensor-psf-quadrature.d.ts.map +0 -1
- package/dist/optics/sensor-psf-support.d.ts.map +0 -1
- package/dist/optics/stray-light.d.ts.map +0 -1
- package/dist/optics/thin-lens.d.ts.map +0 -1
- package/dist/output/capture-corrected-sdr.d.ts.map +0 -1
- package/dist/output/capture-geometry.d.ts.map +0 -1
- package/dist/output/capture-sdr.d.ts.map +0 -1
- package/dist/output/crop.d.ts.map +0 -1
- package/dist/output/geometric-transforms.d.ts.map +0 -1
- package/dist/output/lens-corrections.d.ts.map +0 -1
- package/dist/output/native-capture-sdr.d.ts.map +0 -1
- package/dist/output/print-contrast-reference.d.ts.map +0 -1
- package/dist/output/print-detail.d.ts.map +0 -1
- package/dist/output/print-jpeg.d.ts.map +0 -1
- package/dist/output/print-plan.d.ts.map +0 -1
- package/dist/output/print-region-statistics.d.ts.map +0 -1
- package/dist/output/sdr-rendering.d.ts.map +0 -1
- package/dist/output/subject-framing-crop.d.ts.map +0 -1
- package/dist/schema/camera.d.ts.map +0 -1
- package/dist/schema/camera.js +0 -3
- package/dist/schema/camera.js.map +0 -1
- package/dist/schema/illumination-spectral.d.ts.map +0 -1
- package/dist/schema/illumination-temporal.d.ts.map +0 -1
- package/dist/schema/illumination.d.ts.map +0 -1
- package/dist/schema/scene-radiance-temporal.d.ts.map +0 -1
- package/dist/schema/scene-radiance.d.ts.map +0 -1
- package/dist/schema/scene.d.ts.map +0 -1
- package/dist/schema/scene.js +0 -3
- package/dist/schema/scene.js.map +0 -1
- package/dist/schema/validation.d.ts.map +0 -1
- package/dist/sensor/accumulated-charge.d.ts.map +0 -1
- package/dist/sensor/architecture.d.ts.map +0 -1
- package/dist/sensor/camera-saturation-capacity.d.ts.map +0 -1
- package/dist/sensor/capture-color-sampling-binding.d.ts.map +0 -1
- package/dist/sensor/capture-mode-timing.d.ts.map +0 -1
- package/dist/sensor/capture-mode.d.ts.map +0 -1
- package/dist/sensor/color-sampling.d.ts.map +0 -1
- package/dist/sensor/constant-rate-temporal-integration.d.ts.map +0 -1
- package/dist/sensor/dark-current.d.ts.map +0 -1
- package/dist/sensor/environment-photo-signal.d.ts.map +0 -1
- package/dist/sensor/eqe-electron-rate.d.ts.map +0 -1
- package/dist/sensor/eqe-local-exposure.d.ts.map +0 -1
- package/dist/sensor/eqe-temporal-exposure.d.ts.map +0 -1
- package/dist/sensor/exposure-window.d.ts.map +0 -1
- package/dist/sensor/iso-signal-chain.d.ts.map +0 -1
- package/dist/sensor/local-exposure-binding.d.ts.map +0 -1
- package/dist/sensor/optical-stack.d.ts.map +0 -1
- package/dist/sensor/photon-energy.d.ts.map +0 -1
- package/dist/sensor/physical-charge-capacity.d.ts.map +0 -1
- package/dist/sensor/pixel-pitch.d.ts.map +0 -1
- package/dist/sensor/radiometry-readiness.d.ts.map +0 -1
- package/dist/sensor/raw-readout.d.ts.map +0 -1
- package/dist/sensor/raw-reconstruction.d.ts.map +0 -1
- package/dist/sensor/readout-exposure-linkage.d.ts.map +0 -1
- package/dist/sensor/readout-timing.d.ts.map +0 -1
- package/dist/sensor/response-application-compatibility.d.ts.map +0 -1
- package/dist/sensor/response-operating-range.d.ts.map +0 -1
- package/dist/sensor/responsivity-photocurrent.d.ts.map +0 -1
- package/dist/sensor/sampling-aperture.d.ts.map +0 -1
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts.map +0 -1
- package/dist/sensor/sensor-geometry.d.ts.map +0 -1
- package/dist/sensor/signal-noise.d.ts.map +0 -1
- package/dist/sensor/spatial-sample-reduction.d.ts.map +0 -1
- package/dist/sensor/spatial-sampling-quadrature.d.ts.map +0 -1
- package/dist/sensor/spatio-spectral-reduction.d.ts.map +0 -1
- package/dist/sensor/spectral-coverage.d.ts.map +0 -1
- package/dist/sensor/spectral-quadrature.d.ts.map +0 -1
- package/dist/sensor/spectral-response.d.ts.map +0 -1
- package/dist/sensor/temporal-eqe-sum.d.ts.map +0 -1
- package/dist/sensor/temporal-photo-signal.d.ts.map +0 -1
- package/dist/sensor/temporal-sample-binding.d.ts.map +0 -1
- package/dist/simulation/poc-simulation.d.ts.map +0 -1
- package/dist/stabilization/camera-shake.d.ts.map +0 -1
- package/dist/stabilization/system.d.ts.map +0 -1
- package/docs/API_STYLE.md +0 -235
- package/docs/ARCHITECTURE.md +0 -356
- package/docs/AUTOMATION_COORDINATION.md +0 -190
- package/docs/CAPTURE_COLOR.md +0 -25
- package/docs/CAPTURE_CORRECTED_SDR.md +0 -25
- package/docs/CAPTURE_EXPORT_METADATA.md +0 -27
- package/docs/CAPTURE_SDR.md +0 -22
- package/docs/DEVELOPERS.md +0 -68
- package/docs/DIGITAL_OPTICS_FOUNDATION.md +0 -69
- package/docs/ENVIRONMENT_RAW_CAPTURE.md +0 -208
- package/docs/EXPORT_ACCEPTANCE.md +0 -133
- package/docs/GENERIC_TIER_PRESETS.md +0 -269
- package/docs/GEOMETRIC_PREPARATION_REUSE.md +0 -141
- package/docs/IMAGE_FORMATION.md +0 -247
- package/docs/LINEAR_CAPTURE_ENCODING.md +0 -25
- package/docs/MOTION_AND_SIGNAL.md +0 -250
- package/docs/NATIVE_CAPTURE_SDR.md +0 -70
- package/docs/NATIVE_CAPTURE_SDR_REVIEW.md +0 -37
- package/docs/NATIVE_CAPTURE_SDR_VALIDATION.md +0 -34
- package/docs/NATIVE_RAW_AND_PRINT.md +0 -47
- package/docs/NUMERICAL_CORRECTNESS.md +0 -191
- package/docs/PERFORMANCE_BASELINE.md +0 -56
- package/docs/PHOTOGRAPHIC_EXPORT.md +0 -206
- package/docs/PHYSICS_FOUNDATION.md +0 -426
- package/docs/POC_API.md +0 -278
- package/docs/POC_PROJECTION_PLATFORM_REFERENCE.md +0 -12
- package/docs/POC_PROJECTION_REUSE.md +0 -124
- package/docs/PRINT_195_196_REVIEW.md +0 -93
- package/docs/PRINT_196_ENGINE_ACCEPTANCE.md +0 -45
- package/docs/PRINT_CONTRAST_REFERENCE.md +0 -43
- package/docs/PRINT_DETAIL_ASSESSMENT.md +0 -81
- package/docs/PRINT_DETAIL_JPEG_EVIDENCE.md +0 -36
- package/docs/PRINT_DETAIL_SDR_EVIDENCE.md +0 -29
- package/docs/PRINT_DETAIL_VALIDATION.md +0 -36
- package/docs/PRINT_PLANNING.md +0 -75
- package/docs/PRINT_REGION_STATISTICS.md +0 -38
- package/docs/PROCESSED_OUTPUT.md +0 -157
- package/docs/PRODUCTION_COMPOSITION.md +0 -373
- package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +0 -131
- package/docs/PROVENANCE.md +0 -115
- package/docs/PSF_FOUNDATION.md +0 -165
- package/docs/RAW_FRAME_ENVELOPE.md +0 -56
- package/docs/RAW_FRAME_RECONSTRUCTION.md +0 -30
- package/docs/RELEASE_1_0.md +0 -66
- package/docs/RELEASE_1_0_1.md +0 -61
- package/docs/RELEASE_1_1_0.md +0 -25
- package/docs/RELEASE_1_2_0.md +0 -51
- package/docs/RELEASE_1_3_0.md +0 -15
- package/docs/RELEASE_1_4_0.md +0 -23
- package/docs/RELEASE_AUDIT.md +0 -39
- package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +0 -298
- package/docs/SCENE_SENSOR_QUADRATURE.md +0 -98
- package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +0 -86
- package/docs/SCIENTIFIC_ASSURANCE.md +0 -280
- package/docs/SCIENTIFIC_CONFORMANCE.md +0 -83
- package/docs/SDR_RENDERING.md +0 -33
- package/docs/SENSOR_APERTURE_RAYS.md +0 -23
- package/docs/SENSOR_ENVIRONMENT_QUERY.md +0 -86
- package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +0 -104
- package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +0 -74
- package/docs/SENSOR_PSF_QUADRATURE.md +0 -90
- package/docs/SENSOR_RAW_FRAME.md +0 -20
- package/docs/SENSOR_RAW_PRODUCER.md +0 -77
- package/docs/SIGNAL_CONFORMANCE.md +0 -23
- package/docs/SIMULATED_CAPTURE.md +0 -65
- package/docs/STABILIZATION.md +0 -234
- package/docs/TEMPORAL_PHOTO_RAW.md +0 -83
- package/docs/TIER_ACCEPTANCE.md +0 -129
- package/docs/TIER_PRESET_ACCEPTANCE.md +0 -59
- package/docs/V1_COMPOSITION_MAP.md +0 -123
- package/docs/V1_HELPER_REUSE_REVIEW.md +0 -60
- package/docs/V1_PERFORMANCE_DISPOSITION.md +0 -88
- package/docs/benchmarks/2026-10-01-main-baseline.json +0 -694
- package/docs/benchmarks/2026-10-02-geometric-preparation-reuse.json +0 -2190
- package/docs/benchmarks/2026-10-02-poc-projection-reuse.json +0 -2423
- package/docs/benchmarks/2026-10-02-v1-environment-gc-profile.json +0 -210
- package/docs/benchmarks/2026-10-02-v1-environment-ordinary.json +0 -187
- package/docs/benchmarks/2026-10-02-v1-geometry-gc-profile.json +0 -756
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-1.json +0 -711
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-2.json +0 -711
- package/docs/benchmarks/2026-10-02-v1-poc-gc-profile.json +0 -885
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-1.json +0 -868
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-2.json +0 -868
- package/docs/licenses/castleCSF-MIT.txt +0 -21
- package/docs/validation/documentation-fragments.json +0 -212
- package/docs/validation/native-capture-sdr-darwin-arm64-node26-review.jsonl +0 -4
- package/docs/validation/native-capture-sdr-darwin-arm64.jsonl +0 -3
- package/docs/validation/native-raw-print-2026-10-04/fractional-asymmetric-crop.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/gray-ramp.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/linear-area-checker.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/manifest.json +0 -218
- package/docs/validation/native-raw-print-2026-10-04/megapixel-native.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/native-color.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel-validation.json +0 -9
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json +0 -29
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.codes.u16le.gz +0 -0
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.rgb.gz +0 -0
- package/docs/validation/native-raw-print-2026-10-04/srgb.icc +0 -0
- package/docs/validation/native-raw-print-2026-10-04/validation.json +0 -41
- package/docs/validation/print-196-candidate-capabilities.json +0 -28
- package/docs/validation/print-196-candidate-evidence.json +0 -356
- package/docs/validation/print-196-engine-acceptance.json +0 -81
- package/docs/validation/print-detail-capabilities.json +0 -103
- package/docs/validation/print-detail-jpeg-evidence.json +0 -116
- package/docs/validation/print-detail-sdr-evidence.json +0 -81
- package/docs/validation/release-audit-inventory.json +0 -1306
- package/docs/validation/tier-acceptance-report-v1.json +0 -2538
|
@@ -1,373 +0,0 @@
|
|
|
1
|
-
# Production Image-Formation Plan
|
|
2
|
-
|
|
3
|
-
Release context: **package 1.2.0 candidate / root API 1.2.0**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_2_0.md).
|
|
4
|
-
|
|
5
|
-
Photivra's production composition layer is separate from the legacy
|
|
6
|
-
`simulatePocCamera()` proof-of-concept API.
|
|
7
|
-
|
|
8
|
-
The plan contract is a renderer-neutral, browser-safe semantic layer:
|
|
9
|
-
|
|
10
|
-
```text
|
|
11
|
-
prepared static context
|
|
12
|
-
+ immutable capture snapshot
|
|
13
|
-
+ authoritative image-formation graph
|
|
14
|
-
-> deterministic production image-formation plan
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
It does not turn the TypeScript engine into a path tracer and it does not
|
|
18
|
-
permit an application or renderer to silently redefine scientific ordering.
|
|
19
|
-
|
|
20
|
-
## Contract versions
|
|
21
|
-
|
|
22
|
-
The production plan has independent version surfaces:
|
|
23
|
-
|
|
24
|
-
- `PRODUCTION_IMAGE_FORMATION_PLAN_VERSION`;
|
|
25
|
-
- `PREPARED_IMAGE_FORMATION_CONTEXT_VERSION`;
|
|
26
|
-
- `PRODUCTION_CAPTURE_SNAPSHOT_VERSION`;
|
|
27
|
-
- `RENDERER_CAPABILITY_SCHEMA_VERSION`;
|
|
28
|
-
- `IMAGE_FORMATION_FIDELITY_PROFILE_SCHEMA_VERSION`.
|
|
29
|
-
|
|
30
|
-
Those remain distinct from:
|
|
31
|
-
|
|
32
|
-
- npm package version;
|
|
33
|
-
- `ENGINE_API_VERSION`;
|
|
34
|
-
- `IMAGE_FORMATION_CONTRACT_VERSION`;
|
|
35
|
-
- `POC_SIMULATION_API_VERSION`.
|
|
36
|
-
|
|
37
|
-
A plan records all of these materially relevant engine/plan contract versions.
|
|
38
|
-
|
|
39
|
-
## Prepare once, evaluate many
|
|
40
|
-
|
|
41
|
-
Use `prepareImageFormationContext()` for relatively static semantic inputs:
|
|
42
|
-
|
|
43
|
-
- resolved generic equipment exposure capabilities;
|
|
44
|
-
- scene/provider identity;
|
|
45
|
-
- #110 optical-throughput profile;
|
|
46
|
-
- output-geometry profile identity;
|
|
47
|
-
- renderer capability declaration;
|
|
48
|
-
- fidelity profile.
|
|
49
|
-
|
|
50
|
-
The returned context is cloned, deeply frozen, and fingerprinted.
|
|
51
|
-
|
|
52
|
-
Later mutation of UI objects or source profile objects cannot change the
|
|
53
|
-
prepared context.
|
|
54
|
-
|
|
55
|
-
## Immutable capture snapshot
|
|
56
|
-
|
|
57
|
-
Use `createProductionCaptureSnapshot()` for per-capture dynamic state:
|
|
58
|
-
|
|
59
|
-
- capture ID;
|
|
60
|
-
- release-frame ID;
|
|
61
|
-
- committed scene-state ID;
|
|
62
|
-
- physical scene time;
|
|
63
|
-
- aperture/shutter/ISO;
|
|
64
|
-
- output-state identity;
|
|
65
|
-
- deterministic capture seed;
|
|
66
|
-
- optional #85 scene-radiance request/result plus #110 focus/field input;
|
|
67
|
-
- optional generic front-of-lens filter stack.
|
|
68
|
-
|
|
69
|
-
The snapshot is also cloned, deeply frozen, and fingerprinted.
|
|
70
|
-
|
|
71
|
-
Once committed, later UI state changes do not mutate its plan identity.
|
|
72
|
-
|
|
73
|
-
## Fidelity is capability-based
|
|
74
|
-
|
|
75
|
-
A fidelity profile does not use labels such as `low`, `medium`, or `high`.
|
|
76
|
-
|
|
77
|
-
It declares:
|
|
78
|
-
|
|
79
|
-
- required image-formation stages;
|
|
80
|
-
- required effects and model identities;
|
|
81
|
-
- required renderer spectral capability;
|
|
82
|
-
- sensor-domain requirement;
|
|
83
|
-
- depth requirement.
|
|
84
|
-
|
|
85
|
-
Stage dependencies are expanded from `getImageFormationContract()`, which
|
|
86
|
-
remains the semantic source of truth.
|
|
87
|
-
|
|
88
|
-
Request order does not change semantic identity: set-like stage/effect lists
|
|
89
|
-
are normalized into authoritative contract order before fingerprinting.
|
|
90
|
-
|
|
91
|
-
## Stage and effect states
|
|
92
|
-
|
|
93
|
-
The plan distinguishes:
|
|
94
|
-
|
|
95
|
-
- `active`;
|
|
96
|
-
- `modeled-zero`;
|
|
97
|
-
- `omitted-by-fidelity`;
|
|
98
|
-
- `unsupported`;
|
|
99
|
-
- `blocked`.
|
|
100
|
-
|
|
101
|
-
This matters because a numerically neutral modeled effect is not the same as
|
|
102
|
-
an absent or unsupported effect.
|
|
103
|
-
|
|
104
|
-
The first composed effect is illumination vignetting:
|
|
105
|
-
|
|
106
|
-
- explicit unity throughput -> `modeled-zero`;
|
|
107
|
-
- non-unity declared throughput -> `active`;
|
|
108
|
-
- not requested -> `omitted-by-fidelity`.
|
|
109
|
-
|
|
110
|
-
A non-unity field-throughput input cannot be supplied while the fidelity
|
|
111
|
-
profile omits illumination vignetting; that becomes a structured blocker.
|
|
112
|
-
|
|
113
|
-
## Renderer capability declaration
|
|
114
|
-
|
|
115
|
-
A renderer declares semantic capability, not raw WebGPU/Three.js objects.
|
|
116
|
-
|
|
117
|
-
The declaration includes:
|
|
118
|
-
|
|
119
|
-
- optimized-interactive vs reference consumer kind;
|
|
120
|
-
- supported stages/effects;
|
|
121
|
-
- wavelength-resolved vs wavelength-independent spectral support;
|
|
122
|
-
- temporal-sampling bound;
|
|
123
|
-
- depth support;
|
|
124
|
-
- inverse field mapping;
|
|
125
|
-
- alpha representation;
|
|
126
|
-
- depth-order preservation;
|
|
127
|
-
- sensor-domain processing capability.
|
|
128
|
-
|
|
129
|
-
The plan does not silently degrade requested fidelity.
|
|
130
|
-
|
|
131
|
-
Capability mismatch becomes a structured blocker such as:
|
|
132
|
-
|
|
133
|
-
- `renderer-stage-unsupported`;
|
|
134
|
-
- `renderer-effect-unsupported`;
|
|
135
|
-
- `renderer-spectral-capability-insufficient`;
|
|
136
|
-
- `renderer-sensor-domain-processing-unavailable`;
|
|
137
|
-
- `renderer-depth-capability-insufficient`.
|
|
138
|
-
|
|
139
|
-
## First physical composed path
|
|
140
|
-
|
|
141
|
-
Current plan schema `0.5.0` composes the #110 physical sample path.
|
|
142
|
-
|
|
143
|
-
For a fidelity profile requiring `lens-field-pupil-evaluation`, dependencies
|
|
144
|
-
expand to:
|
|
145
|
-
|
|
146
|
-
```text
|
|
147
|
-
scene-ray-projection
|
|
148
|
-
-> scene-radiance-evaluation
|
|
149
|
-
-> lens-field-pupil-evaluation
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
The plan consumes one immutable #85 scene-radiance request/result and evaluates
|
|
153
|
-
#110 with:
|
|
154
|
-
|
|
155
|
-
- prepared lens-throughput profile;
|
|
156
|
-
- resolved equipment focal length;
|
|
157
|
-
- committed aperture;
|
|
158
|
-
- explicit focus state;
|
|
159
|
-
- image-plane field point;
|
|
160
|
-
- declared field throughput.
|
|
161
|
-
|
|
162
|
-
The plan stores the resulting pre-sensor-stack spectral irradiance result.
|
|
163
|
-
|
|
164
|
-
This path never substitutes an RGB preview for physical spectral irradiance.
|
|
165
|
-
|
|
166
|
-
## Release-frame and white-balance capture binding
|
|
167
|
-
|
|
168
|
-
Plan contract `0.5.0` / capture snapshot `0.3.0` add the preferred handoff from #105 release sequencing into production composition.
|
|
169
|
-
|
|
170
|
-
Use `createProductionCaptureSnapshotFromReleaseFrame()` when a logical release frame has already been committed. The helper takes ownership from the release frame for:
|
|
171
|
-
|
|
172
|
-
- release sequence/frame identity;
|
|
173
|
-
- aperture, shutter and ISO;
|
|
174
|
-
- focus state;
|
|
175
|
-
- AE/AF/AWB automation state;
|
|
176
|
-
- exposure start/end and sequence-relative scene time;
|
|
177
|
-
- timing constraints;
|
|
178
|
-
- stochastic frame seed;
|
|
179
|
-
- committed white-balance state identity.
|
|
180
|
-
|
|
181
|
-
When the release frame declares `whiteBalanceStateId`, the full resolved #108 WB state must be supplied and its ID must match. A release frame with locked AWB requires a locked WB state.
|
|
182
|
-
|
|
183
|
-
The snapshot stores both the release binding and resolved WB state inside its deterministic fingerprint. Later UI changes therefore cannot alter the committed capture.
|
|
184
|
-
|
|
185
|
-
The release-frame sequence-relative scene time is preserved separately from `sceneTimeSecondsFromExposureStart`: the latter remains the local time used by #85/#110 scene-radiance evaluation within the exposure.
|
|
186
|
-
|
|
187
|
-
Existing `createProductionCaptureSnapshot()` remains supported for lower-level callers. Its optional release/WB fields receive the same validation when present.
|
|
188
|
-
|
|
189
|
-
## Front-of-lens filter capture state
|
|
190
|
-
|
|
191
|
-
Plan contract `0.5.0` / capture snapshot `0.3.0` preserve optional #135 front-of-lens filter state in the immutable physical scene sample.
|
|
192
|
-
|
|
193
|
-
The filter stack is:
|
|
194
|
-
|
|
195
|
-
- parsed/validated when the capture snapshot is committed;
|
|
196
|
-
- included in the capture fingerprint;
|
|
197
|
-
- forwarded to #110 exactly once;
|
|
198
|
-
- preserved in the #110 physical result as filter count, transmission factor, attenuation and evidence.
|
|
199
|
-
|
|
200
|
-
Changing only the selected filter stack changes capture/plan identity and the physical sensor-plane irradiance result, but it does not alter committed aperture/f-number, focus geometry, DOF or diffraction.
|
|
201
|
-
|
|
202
|
-
Filter transmission remains separate from lens transmission/T-stop and from sensor optical-stack response.
|
|
203
|
-
|
|
204
|
-
## Temporal capture composition
|
|
205
|
-
|
|
206
|
-
Plan contract `0.2.0` adds immutable temporal-capture input.
|
|
207
|
-
|
|
208
|
-
A capture may bind:
|
|
209
|
-
|
|
210
|
-
- #12 exposure-window input;
|
|
211
|
-
- sensor readout declaration;
|
|
212
|
-
- physical imaging area and capture orientation;
|
|
213
|
-
- optional constant pure-camera-rotation velocity;
|
|
214
|
-
- deterministic temporal quadrature sample count.
|
|
215
|
-
|
|
216
|
-
The planner evaluates exposure windows and sensor readout separately:
|
|
217
|
-
|
|
218
|
-
```text
|
|
219
|
-
exposure-window time reference:
|
|
220
|
-
first-opening-boundary-phase
|
|
221
|
-
|
|
222
|
-
sensor readout phase:
|
|
223
|
-
separate native-sensor timing contract
|
|
224
|
-
|
|
225
|
-
synchronization:
|
|
226
|
-
not assumed
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
If pure rotation is supplied, the planner reuses `calculateCaptureRotationTemporalQuadrature()`. The committed quadrature count is part of capture identity and a renderer may not silently reduce it.
|
|
230
|
-
|
|
231
|
-
Requested spatial-camera-rotation distinguishes:
|
|
232
|
-
|
|
233
|
-
- nonzero rotation with resolved quadrature -> `active`;
|
|
234
|
-
- explicit zero angular velocity -> `modeled-zero`;
|
|
235
|
-
- missing rotation model -> `blocked`.
|
|
236
|
-
|
|
237
|
-
Requested rolling-readout distinguishes:
|
|
238
|
-
|
|
239
|
-
- rolling native readout -> `active`;
|
|
240
|
-
- global/no-spatial-skew timing -> `modeled-zero`;
|
|
241
|
-
- missing readout declaration -> `blocked`.
|
|
242
|
-
|
|
243
|
-
A renderer whose declared temporal-sampling capacity is below the committed quadrature count receives a structured `renderer-temporal-sampling-insufficient` blocker.
|
|
244
|
-
|
|
245
|
-
The image-formation graph is still authoritative. Because `temporal-exposure-readout` depends on `field-wavelength-psf`, useful temporal results may exist while the whole requested fidelity plan remains blocked on the sample-only route. Plan 0.7.0 separately supports [bounded environment execution](PRODUCTION_ENVIRONMENT_CAPTURE.md), including explicit modeled-zero or supported local PSF disposition.
|
|
246
|
-
|
|
247
|
-
## Scientific assurance composition
|
|
248
|
-
|
|
249
|
-
Plan contract `0.4.0` records the cross-engine #134 `scientificAssurance` summary whenever composed scientific results exist.
|
|
250
|
-
|
|
251
|
-
The physical path preserves distinct required components for scene radiance, optical throughput, the Photivra primary-optics bridge model, selected front filters, and non-unity field throughput when present. Temporal composition adds its own explicit schedule-model component.
|
|
252
|
-
|
|
253
|
-
The summary:
|
|
254
|
-
|
|
255
|
-
- cannot exceed the weakest required component status;
|
|
256
|
-
- degrades to `unknown` when required evidence is missing;
|
|
257
|
-
- preserves component evidence and uncertainty declarations;
|
|
258
|
-
- reports quantified component uncertainty as `not-propagated` unless a real propagation rule exists;
|
|
259
|
-
- never converts `not-quantified` into zero;
|
|
260
|
-
- participates in the plan fingerprint.
|
|
261
|
-
|
|
262
|
-
See [Scientific Assurance and Uncertainty Composition](SCIENTIFIC_ASSURANCE.md).
|
|
263
|
-
|
|
264
|
-
## Optimized and reference consumers
|
|
265
|
-
|
|
266
|
-
Use `createProductionPlanConsumerManifest()` to project one finalized semantic plan into either:
|
|
267
|
-
|
|
268
|
-
- `interactive-optimized`; or
|
|
269
|
-
- `reference`.
|
|
270
|
-
|
|
271
|
-
Both manifests retain the same:
|
|
272
|
-
|
|
273
|
-
- plan fingerprint;
|
|
274
|
-
- active/modeled stage identities;
|
|
275
|
-
- active/modeled effect identities;
|
|
276
|
-
- #110 physical result;
|
|
277
|
-
- temporal capture result;
|
|
278
|
-
- capture seed;
|
|
279
|
-
- structured blockers;
|
|
280
|
-
- scientific assurance/evidence/uncertainty.
|
|
281
|
-
|
|
282
|
-
The consumer role changes execution responsibility only. It does not authorize changing scientific inputs, reordering stages, replacing seeds, or reducing committed temporal samples.
|
|
283
|
-
|
|
284
|
-
## V1 integration map
|
|
285
|
-
|
|
286
|
-
[V1 composition and consumer map](V1_COMPOSITION_MAP.md) links all 32 scoped
|
|
287
|
-
items to their implemented primitives/consumers and representative tests, and
|
|
288
|
-
records the missing upstream RAW handoff and existing ticket ownership. Bounded
|
|
289
|
-
Standalone RAW/output adapter execution does not activate production-plan stages.
|
|
290
|
-
The explicitly bound plan 0.7.0 environment route below does.
|
|
291
|
-
|
|
292
|
-
## Executed environment capture and explicit unsupported capabilities
|
|
293
|
-
|
|
294
|
-
Plan 0.7.0 accepts an optional `environmentCapture` declaration. It executes
|
|
295
|
-
`simulateEnvironmentSensorRawFrame()` inside the authoritative graph, rather
|
|
296
|
-
than treating a caller's RAW attachment as proof that upstream work ran. With
|
|
297
|
-
all required renderer declarations and optional processing policy, the bounded
|
|
298
|
-
route reaches all fourteen stages. The earlier sample-based and attached-RAW
|
|
299
|
-
routes remain available and retain their missing-stage blockers.
|
|
300
|
-
|
|
301
|
-
See [executed production capture](PRODUCTION_ENVIRONMENT_CAPTURE.md) for input
|
|
302
|
-
ownership, exact event/profile binding, optional output policy, replay and the
|
|
303
|
-
current supported scientific envelope. Stage activation refers to the executed
|
|
304
|
-
bounded algorithms; it does not establish calibrated provider transport or
|
|
305
|
-
physical visibility. An explicitly omitted PSF is a declared point-optics
|
|
306
|
-
model, with its evidence and limitation, not proof of a physically perfect lens.
|
|
307
|
-
|
|
308
|
-
Required effects outside a route's actual implementation continue to report
|
|
309
|
-
`engine-effect-not-composed`. The plan cannot silently reinterpret a requested
|
|
310
|
-
surface, depth, stabilization, breathing or field-transport model as an ideal
|
|
311
|
-
environment ray. Existing foundation APIs and their direct consumers remain
|
|
312
|
-
valid; unsupported combinations are not approved V1 deferrals.
|
|
313
|
-
|
|
314
|
-
## Structured blockers vs malformed input
|
|
315
|
-
|
|
316
|
-
Malformed schemas, non-finite numbers, invalid equipment settings, identity
|
|
317
|
-
drift, and tampered fingerprints fail fast.
|
|
318
|
-
|
|
319
|
-
Scientifically incomplete but structurally valid requests return a blocked
|
|
320
|
-
plan with explicit blocker codes, for example:
|
|
321
|
-
|
|
322
|
-
- missing #110 optical profile;
|
|
323
|
-
- missing physical scene sample;
|
|
324
|
-
- renderer fidelity mismatch;
|
|
325
|
-
- requested stage not yet composed;
|
|
326
|
-
- #110 evaluation blocked by wavelength/applicability constraints.
|
|
327
|
-
|
|
328
|
-
## Deterministic identity
|
|
329
|
-
|
|
330
|
-
Prepared contexts, capture snapshots, and finished plans use canonical JSON
|
|
331
|
-
serialization plus an FNV-1a 32-bit fingerprint.
|
|
332
|
-
|
|
333
|
-
The fingerprint is explicitly:
|
|
334
|
-
|
|
335
|
-
```text
|
|
336
|
-
non-cryptographic
|
|
337
|
-
purpose: deterministic reproducibility key
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
It is not an integrity/security checksum.
|
|
341
|
-
|
|
342
|
-
`serializeProductionImageFormationPlan()` emits canonical key ordering so
|
|
343
|
-
identical semantic inputs serialize identically across supported runtimes.
|
|
344
|
-
|
|
345
|
-
## Stochastic ownership
|
|
346
|
-
|
|
347
|
-
The capture snapshot owns one explicit unsigned 32-bit capture seed.
|
|
348
|
-
|
|
349
|
-
The plan records:
|
|
350
|
-
|
|
351
|
-
```text
|
|
352
|
-
backendRandomnessMayRedefineScientificResult = false
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
Future stochastic stages must derive reproducible sub-seeds from an explicit
|
|
356
|
-
engine-owned policy rather than allowing backend randomness to silently change
|
|
357
|
-
scientific results.
|
|
358
|
-
|
|
359
|
-
## POC compatibility
|
|
360
|
-
|
|
361
|
-
The production plan is additive.
|
|
362
|
-
|
|
363
|
-
It does not call, rewrite, or reinterpret `simulatePocCamera()`.
|
|
364
|
-
|
|
365
|
-
`POC_SIMULATION_API_VERSION` remains independent, and plan results report
|
|
366
|
-
`legacyPocModified: false`.
|
|
367
|
-
|
|
368
|
-
Migration should happen deliberately:
|
|
369
|
-
|
|
370
|
-
1. add/expand production plan stages;
|
|
371
|
-
2. add optimized/reference consumers;
|
|
372
|
-
3. migrate application consumers;
|
|
373
|
-
4. deprecate POC only through an explicit compatibility decision.
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
# Executed environment production capture
|
|
2
|
-
|
|
3
|
-
Release context: **package 1.2.0 candidate / root API 1.2.0**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_2_0.md).
|
|
4
|
-
|
|
5
|
-
Introduced at root API 0.116.0 and production plan 0.7.0, this adds a bounded source-to-RAW route
|
|
6
|
-
inside the existing authoritative image-formation graph. Consumer manifest
|
|
7
|
-
0.2.0 exposes the same immutable executed capture and processed-output results.
|
|
8
|
-
At introduction, package 0.6.0, POC 0.20.0, capture snapshot 0.3.0 and the image-formation
|
|
9
|
-
ordering contract 0.4.0 remain unchanged.
|
|
10
|
-
|
|
11
|
-
## Inputs and ownership
|
|
12
|
-
|
|
13
|
-
`createProductionImageFormationPlan()` accepts `environmentCapture` with:
|
|
14
|
-
|
|
15
|
-
- `capture`: the existing `SimulateEnvironmentSensorRawFrameInput`, including
|
|
16
|
-
a complete native frame, owned per-site sensor/readout profiles, shared scene
|
|
17
|
-
and optical state, exact local shutter schedule and synchronous evaluator;
|
|
18
|
-
- optional `processing`: the existing processed-RAW policy, with
|
|
19
|
-
`reconstruction.rawFrame` omitted. The plan supplies its executed RAW frame.
|
|
20
|
-
|
|
21
|
-
The declaration cannot be combined with `processedOutput` or an independently
|
|
22
|
-
declared `physicalSceneSample`. These are separate supported input routes,
|
|
23
|
-
not interchangeable evidence of upstream execution.
|
|
24
|
-
|
|
25
|
-
The immutable snapshot must match capture/event identity, scene state/time,
|
|
26
|
-
seed, aperture/shutter/ISO, resolved WB identity/gains and release focus. The
|
|
27
|
-
prepared context additionally binds provider scene/profile, the complete
|
|
28
|
-
optical bridge profile and selected physical focal length. Native raster,
|
|
29
|
-
imaging area, orientation and the opening/closing schedule must match the
|
|
30
|
-
temporal snapshot. This producer executes a full-native shutter schedule: an
|
|
31
|
-
explicit temporal active rectangle must cover the full native raster. Cropped
|
|
32
|
-
timing cannot be silently substituted for it; output/physical capture geometry
|
|
33
|
-
keeps its separate downstream meaning. Motion and sample count must match
|
|
34
|
-
its rotation declaration; omitted rotation authorizes only zero angular motion.
|
|
35
|
-
Readout diagnostics remain independent of exposure timing.
|
|
36
|
-
|
|
37
|
-
Requested stages are expanded from `getImageFormationContract()`. Renderer
|
|
38
|
-
stage support, wavelength-resolved capability, sensor-domain support, inverse
|
|
39
|
-
mapping, temporal sample budget and existing effect constraints must pass
|
|
40
|
-
before provider code is invoked. The ADC stage must be requested, directly or
|
|
41
|
-
through downstream dependencies. Known output crop/resampling incompatibilities
|
|
42
|
-
also fail before provider calls, using the same envelope check as attached-RAW
|
|
43
|
-
processing. Pixel-dependent reconstruction/correction checks still run on the
|
|
44
|
-
actual realized RAW; preflight is not a proof of complete output readiness.
|
|
45
|
-
|
|
46
|
-
The provider receives owned frozen requests at each wavelength/local-time/PSF
|
|
47
|
-
support node. Execution snapshots all capture data and optional output policy
|
|
48
|
-
before invoking provider code. Callback mutation of the original caller objects
|
|
49
|
-
cannot change execution or its post-capture policy. No function, file IO,
|
|
50
|
-
network request, renderer installation or runtime dependency enters the plan's
|
|
51
|
-
serialized representation.
|
|
52
|
-
|
|
53
|
-
## Execution and consumers
|
|
54
|
-
|
|
55
|
-
The existing environment producer generates focus-aware inverse rays, invokes
|
|
56
|
-
the supplied provider, evaluates optical throughput and optional local sampled
|
|
57
|
-
PSF support, then applies the existing optical-stack/spatial/spectral response
|
|
58
|
-
and temporal EQE integration. Existing dark-current, charge-completeness,
|
|
59
|
-
capacity, seeded noise, signed readout and ADC APIs create native CFA codes.
|
|
60
|
-
There is no alternate RAW producer, RGB-to-RAW conversion or new seed schedule.
|
|
61
|
-
|
|
62
|
-
With complete declarations and a valid processing policy, all fourteen graph
|
|
63
|
-
stages have executed bounded consumers. An explicitly omitted PSF is recorded
|
|
64
|
-
as `modeled-zero` for the declared point-optics model, with its supplied evidence
|
|
65
|
-
and limitation; it is not a physical assertion of zero lens blur. Unrequested
|
|
66
|
-
stages remain omitted by fidelity. A failed source preflight leaves requested
|
|
67
|
-
stages blocked rather than advertising execution.
|
|
68
|
-
|
|
69
|
-
`environmentCaptureResult` retains the full executed lineage and child results.
|
|
70
|
-
`environmentCaptureRequestFingerprint` commits the capture data, excluding
|
|
71
|
-
callback identity. The plan fingerprint includes that commitment, returned
|
|
72
|
-
provider values, realized RAW and optional processing result. Replay requires
|
|
73
|
-
the same inputs **and** provider responses. Different source results, even from
|
|
74
|
-
the same callback, change plan identity. These FNV keys are not cryptographic
|
|
75
|
-
integrity or provenance certificates.
|
|
76
|
-
|
|
77
|
-
Optional processing reuses `calculateProcessedSensorRaw()` on the exact returned
|
|
78
|
-
frame: reconstruction, channel-basis color/WB once, selected native correction,
|
|
79
|
-
physical orientation, digital crop and SDR rendering retain their existing
|
|
80
|
-
order. Rendering changes do not rewrite physical capture, charge/noise or RAW.
|
|
81
|
-
The resulting source frame can also feed the existing paired DNG/JPEG exporter;
|
|
82
|
-
the plan itself performs no file serialization.
|
|
83
|
-
|
|
84
|
-
`createProductionPlanConsumerManifest()` carries the same capture/output result
|
|
85
|
-
references for interactive and reference consumers. Neither consumer may change
|
|
86
|
-
seed, committed inputs, sample count or stage order. Existing manifests without
|
|
87
|
-
the new optional execution fields retain their old data shape apart from the
|
|
88
|
-
explicit manifest/plan versions.
|
|
89
|
-
|
|
90
|
-
## Scientific envelope and remaining ownership
|
|
91
|
-
|
|
92
|
-
This route preserves the existing adapter's limits: at most 4,096 native sites
|
|
93
|
-
and 100,000 aggregate provider evaluations; one-to-one native CFA timing;
|
|
94
|
-
opening-reference scene time zero; ideal focus-aware environment projection;
|
|
95
|
-
constant-axis rotation; explicit unity field throughput; and optional
|
|
96
|
-
destination-local sampled PSF. Continuous spectral density, source-plane and
|
|
97
|
-
response-area bindings are mandatory. The output reference route keeps its
|
|
98
|
-
explicit topology, reconstruction support and 1:1 output-crop constraints.
|
|
99
|
-
|
|
100
|
-
Execution is approximation-only. Supplied provider invocation does not verify
|
|
101
|
-
physical transport, visibility, world pose/translation, calibration, convergence
|
|
102
|
-
or global field-energy conservation. Child `providerTransportVerified`,
|
|
103
|
-
`upstreamRadiometryVerified`, `producerOriginVerified` and standalone
|
|
104
|
-
`productionPlanActivated` fields retain their original conservative meanings.
|
|
105
|
-
The parent plan records what actually executed; it never upgrades those flags.
|
|
106
|
-
Child evidence/limitations remain inspectable, and combined uncertainty remains
|
|
107
|
-
unquantified rather than inferred from a count of successful stages.
|
|
108
|
-
|
|
109
|
-
Required unsupported effects or combinations still block. No wider scientific
|
|
110
|
-
capability, supported megapixel limit or V1 deferral is approved by this route.
|
|
111
|
-
The [32-item composition map](V1_COMPOSITION_MAP.md) retains the specific
|
|
112
|
-
foundation/consumer/acceptance owners. Broader same-scene equipment-tier
|
|
113
|
-
acceptance is #116/#119, final performance remeasurement is #43/#45, final
|
|
114
|
-
science conformance is #131, and the exhaustive release documentation/source
|
|
115
|
-
audit is #180. #165 C2PA remains post-V1.
|
|
116
|
-
|
|
117
|
-
## Migration and verification
|
|
118
|
-
|
|
119
|
-
Consumers of serialized plans must recognize plan 0.7.0 and consumer manifest
|
|
120
|
-
0.2.0. New fields are optional; existing attached-RAW and sample-only callers
|
|
121
|
-
need no input migration. The current root API retains the additive
|
|
122
|
-
`ProductionEnvironmentCaptureInput` type. The standalone environment producer
|
|
123
|
-
and processed-output model versions, hashes and seed schedule are unchanged.
|
|
124
|
-
|
|
125
|
-
`test/production-image-formation-plan.test.ts` covers complete graph execution,
|
|
126
|
-
global/rolling shutter, sampled/omitted PSF, source-response replay, caller
|
|
127
|
-
mutation, rejected context/event/profile/renderer bindings before callbacks,
|
|
128
|
-
all four physical orientations with an output crop, incompatible resampling,
|
|
129
|
-
resolved WB and selected correction with exact native RAW preservation.
|
|
130
|
-
Existing SI-count, phase/support, noise/ADC, file-byte and correction suites
|
|
131
|
-
remain the independent domain oracles.
|
package/docs/PROVENANCE.md
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
# Scientific and Source Provenance
|
|
2
|
-
|
|
3
|
-
Release context: **package 1.2.0 candidate / root API 1.2.0**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_2_0.md).
|
|
4
|
-
|
|
5
|
-
Every scientific or calculation module in this repository must have a traceable, legally clean origin.
|
|
6
|
-
|
|
7
|
-
## Allowed foundations
|
|
8
|
-
|
|
9
|
-
An implementation may be based on:
|
|
10
|
-
|
|
11
|
-
1. Public-domain facts and mathematics.
|
|
12
|
-
2. Established mathematical identities and physical laws.
|
|
13
|
-
3. Scientific methods described in public technical literature, standards, patents, or papers, provided protected text/code/tables/figures are not copied unless separately licensed for that use and any applicable third-party patent rights are separately considered.
|
|
14
|
-
4. Third-party code, datasets, model weights, or calibration material only when the applicable license explicitly permits the intended copying, modification, redistribution, and commercial use and is compatible with this project.
|
|
15
|
-
|
|
16
|
-
"Available on the internet" is not sufficient permission.
|
|
17
|
-
|
|
18
|
-
A paper, standard, or patent publication may explain a method without granting copyright permission to copy its expression and without granting a patent license. Independent implementation addresses source-code/prose provenance; it does not by itself resolve active third-party patent claims.
|
|
19
|
-
|
|
20
|
-
## Source evidence and reuse rights
|
|
21
|
-
|
|
22
|
-
Factual/source evidence keeps **origin** separate from **reuse rights**.
|
|
23
|
-
|
|
24
|
-
- `sourceOrigin` identifies who originated the referenced fact or data: manufacturer, third party, or Photivra.
|
|
25
|
-
- `reuseStatus` identifies how Photivra may use it: factual-reference-only, reusable-data, or Photivra-owned.
|
|
26
|
-
- Reusable data requires an explicit license.
|
|
27
|
-
- Photivra-owned material must originate from Photivra.
|
|
28
|
-
- Manufacturer or third-party sources may be either factual-reference-only or explicitly reusable when licensing supports that use.
|
|
29
|
-
|
|
30
|
-
One evidence record must not silently support unrelated facts. Scalar metadata may cite multiple evidence records, and multi-valued capabilities should carry evidence per value.
|
|
31
|
-
|
|
32
|
-
Evidence provenance is not a confidence score and does not establish scientific effect by itself. Descriptive hardware facts only affect calculations when a separate documented model explicitly consumes them.
|
|
33
|
-
|
|
34
|
-
## Independent implementation
|
|
35
|
-
|
|
36
|
-
When a reference explains a method but does not license its implementation or text for reuse:
|
|
37
|
-
|
|
38
|
-
- understand the mathematical/scientific method;
|
|
39
|
-
- write a fresh implementation from the method, not from proprietary source structure;
|
|
40
|
-
- do not translate, mechanically rewrite, or adapt proprietary source code;
|
|
41
|
-
- do not copy protected tables, diagrams, explanatory prose, calibration datasets, waveform files, or model weights;
|
|
42
|
-
- add tests based on independently derived analytical cases or clearly reusable data;
|
|
43
|
-
- record material references and any known licensing/patent constraints.
|
|
44
|
-
|
|
45
|
-
## AI-assisted work
|
|
46
|
-
|
|
47
|
-
AI-assisted code, documentation, tests, or research notes are treated as untrusted draft material until substantively reviewed by a human contributor.
|
|
48
|
-
|
|
49
|
-
A contributor using an AI system remains responsible for:
|
|
50
|
-
|
|
51
|
-
- confirming that the submitted expression is appropriate to distribute under Apache-2.0;
|
|
52
|
-
- checking for suspiciously copied/source-like output;
|
|
53
|
-
- validating scientific and technical correctness;
|
|
54
|
-
- ensuring no confidential or restricted third-party material was supplied to the tool;
|
|
55
|
-
- making the DCO certification for the final submitted contribution.
|
|
56
|
-
|
|
57
|
-
An AI system's assertion about originality, copyrightability, patents, or license compatibility is not accepted as provenance evidence.
|
|
58
|
-
|
|
59
|
-
## Module record
|
|
60
|
-
|
|
61
|
-
Meaningful scientific modules should document, in JSDoc or an adjacent reference document:
|
|
62
|
-
|
|
63
|
-
- mathematical/physical basis;
|
|
64
|
-
- assumptions and valid range;
|
|
65
|
-
- units and coordinate conventions;
|
|
66
|
-
- whether the implementation is independent;
|
|
67
|
-
- public references used to understand or validate the method;
|
|
68
|
-
- third-party code/data incorporated, if any;
|
|
69
|
-
- the license for any incorporated third-party material;
|
|
70
|
-
- uncertainty or approximation status where applicable.
|
|
71
|
-
|
|
72
|
-
## Provenance labels
|
|
73
|
-
|
|
74
|
-
Scientific calculation envelopes use these labels:
|
|
75
|
-
|
|
76
|
-
- `calculated`: directly computed from the documented model.
|
|
77
|
-
- `calibrated`: uses measurement/calibration data with documented reuse rights.
|
|
78
|
-
- `estimated`: an input or result is inferred rather than known exactly.
|
|
79
|
-
- `approximation`: a deliberately simplified model is used.
|
|
80
|
-
|
|
81
|
-
The composed `simulatePocCamera()` response is not itself a `CalculationResult<T>`; it reports aggregate/component provenance separately and uses `mixed` when calculated components are combined with explicitly approximate components.
|
|
82
|
-
|
|
83
|
-
## Uncertainty and quality metadata
|
|
84
|
-
|
|
85
|
-
Cross-engine composition semantics are defined in [Scientific Assurance and Uncertainty Composition](SCIENTIFIC_ASSURANCE.md). That contract preserves module-level provenance/quality rather than replacing it.
|
|
86
|
-
|
|
87
|
-
Provenance answers **how a result was produced**; uncertainty answers **what quantitative accuracy/variability is defensibly known**. They are related but must not be conflated.
|
|
88
|
-
|
|
89
|
-
When available, `CalculationResult.quality` records uncertainty components by affected quantity and source:
|
|
90
|
-
|
|
91
|
-
- `measurement`: variability/uncertainty originating in measured inputs or observations;
|
|
92
|
-
- `calibration`: uncertainty originating in a calibration or calibrated reference;
|
|
93
|
-
- `model-approximation`: quantified error attributed to a simplified/inexact model.
|
|
94
|
-
|
|
95
|
-
An approximation label does not by itself justify a numeric model-error estimate. If no defensible bound exists, retain the approximation provenance and assumptions without fabricating quality metadata.
|
|
96
|
-
|
|
97
|
-
Confidence/coverage levels are optional and must include a stated basis. They are not subjective confidence scores.
|
|
98
|
-
|
|
99
|
-
Valid-range metadata describes where a model/calibration is considered applicable. It is not an uncertainty interval.
|
|
100
|
-
|
|
101
|
-
When composing models, preserve uncertainty components separately unless a documented model provides a defensible combination rule. Do not imply statistical independence, add errors in quadrature, or publish a single aggregate confidence score without evidence.
|
|
102
|
-
|
|
103
|
-
## Radiometry readiness evidence
|
|
104
|
-
|
|
105
|
-
Radiometry readiness is a declaration/validation gate, not proof that a calibration is correct.
|
|
106
|
-
|
|
107
|
-
A component labeled `calibrated` must identify its model/version, supporting evidence, and quantified uncertainty. If uncertainty cannot yet be quantified, the component may still be represented, but the overall assessment cannot become `calibrated-ready`.
|
|
108
|
-
|
|
109
|
-
Data-bearing calibration artifacts are referenced by stable identifier plus SHA-256 checksum. Publicly viewable curves/tables without reuse rights must not be copied into those artifacts. Manufacturer-published factual specifications may support independently authored models, while copied calibration datasets require explicit reusable licensing or Photivra ownership.
|
|
110
|
-
|
|
111
|
-
An `approximation` remains explicitly approximate even when all prerequisite categories are present. Readiness must never be used to upgrade approximation provenance into calibration provenance.
|
|
112
|
-
|
|
113
|
-
## Release gate
|
|
114
|
-
|
|
115
|
-
Ambiguous licensing, unresolved material patent risk, uncertain provenance, unexplained copied material, fabricated uncertainty, undocumented uncertainty combination, or unsupported scientific claims block release until resolved.
|