@photivra/engine 0.6.0 → 1.0.1
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/AGENTS.md +674 -0
- package/CHANGELOG.md +191 -0
- package/CITATION.cff +1 -1
- package/CONTRIBUTING.md +76 -0
- package/DCO +33 -0
- package/NODE_SUPPORT.md +37 -0
- package/NOTICE +2 -0
- package/README.md +139 -72
- package/SECURITY.md +55 -0
- package/THIRD_PARTY.md +63 -0
- package/dist/camera/equivalent-focal-length.d.ts +9 -0
- package/dist/camera/equivalent-focal-length.d.ts.map +1 -1
- package/dist/camera/equivalent-focal-length.js +9 -0
- package/dist/camera/equivalent-focal-length.js.map +1 -1
- package/dist/camera/field-of-view.d.ts +13 -0
- package/dist/camera/field-of-view.d.ts.map +1 -1
- package/dist/camera/field-of-view.js +13 -0
- package/dist/camera/field-of-view.js.map +1 -1
- package/dist/camera/projected-object-size.d.ts +8 -0
- package/dist/camera/projected-object-size.d.ts.map +1 -1
- package/dist/camera/projected-object-size.js +8 -0
- package/dist/camera/projected-object-size.js.map +1 -1
- package/dist/capture/capture-export-metadata.d.ts +60 -0
- package/dist/capture/capture-export-metadata.d.ts.map +1 -0
- package/dist/capture/capture-export-metadata.js +62 -0
- package/dist/capture/capture-export-metadata.js.map +1 -0
- package/dist/capture/environment-raw-producer.d.ts +55 -0
- package/dist/capture/environment-raw-producer.d.ts.map +1 -0
- package/dist/capture/environment-raw-producer.js +88 -0
- package/dist/capture/environment-raw-producer.js.map +1 -0
- package/dist/capture/export-jpeg.d.ts +12 -0
- package/dist/capture/export-jpeg.d.ts.map +1 -0
- package/dist/capture/export-jpeg.js +126 -0
- package/dist/capture/export-jpeg.js.map +1 -0
- package/dist/capture/export-tiff.d.ts +45 -0
- package/dist/capture/export-tiff.d.ts.map +1 -0
- package/dist/capture/export-tiff.js +129 -0
- package/dist/capture/export-tiff.js.map +1 -0
- package/dist/capture/focus-control.d.ts +210 -0
- package/dist/capture/focus-control.d.ts.map +1 -0
- package/dist/capture/focus-control.js +664 -0
- package/dist/capture/focus-control.js.map +1 -0
- package/dist/capture/linear-encoding.d.ts +59 -0
- package/dist/capture/linear-encoding.d.ts.map +1 -0
- package/dist/capture/linear-encoding.js +98 -0
- package/dist/capture/linear-encoding.js.map +1 -0
- package/dist/capture/photographic-export.d.ts +135 -0
- package/dist/capture/photographic-export.d.ts.map +1 -0
- package/dist/capture/photographic-export.js +273 -0
- package/dist/capture/photographic-export.js.map +1 -0
- package/dist/capture/raw-frame-limits.d.ts +12 -0
- package/dist/capture/raw-frame-limits.d.ts.map +1 -0
- package/dist/capture/raw-frame-limits.js +13 -0
- package/dist/capture/raw-frame-limits.js.map +1 -0
- package/dist/capture/raw-frame-reconstruction.d.ts +48 -0
- package/dist/capture/raw-frame-reconstruction.d.ts.map +1 -0
- package/dist/capture/raw-frame-reconstruction.js +146 -0
- package/dist/capture/raw-frame-reconstruction.js.map +1 -0
- package/dist/capture/release-sequence.d.ts +120 -0
- package/dist/capture/release-sequence.d.ts.map +1 -0
- package/dist/capture/release-sequence.js +446 -0
- package/dist/capture/release-sequence.js.map +1 -0
- package/dist/capture/sensor-raw-frame.d.ts +34 -0
- package/dist/capture/sensor-raw-frame.d.ts.map +1 -0
- package/dist/capture/sensor-raw-frame.js +106 -0
- package/dist/capture/sensor-raw-frame.js.map +1 -0
- package/dist/capture/sensor-raw-producer.d.ts +51 -0
- package/dist/capture/sensor-raw-producer.d.ts.map +1 -0
- package/dist/capture/sensor-raw-producer.js +235 -0
- package/dist/capture/sensor-raw-producer.js.map +1 -0
- package/dist/capture/simulated-capture.d.ts +125 -0
- package/dist/capture/simulated-capture.d.ts.map +1 -0
- package/dist/capture/simulated-capture.js +248 -0
- package/dist/capture/simulated-capture.js.map +1 -0
- package/dist/color/capture-color.d.ts +73 -0
- package/dist/color/capture-color.d.ts.map +1 -0
- package/dist/color/capture-color.js +145 -0
- package/dist/color/capture-color.js.map +1 -0
- package/dist/color/sensor-color-development.d.ts +23 -0
- package/dist/color/sensor-color-development.d.ts.map +1 -0
- package/dist/color/sensor-color-development.js +56 -0
- package/dist/color/sensor-color-development.js.map +1 -0
- package/dist/color/white-balance.d.ts +175 -0
- package/dist/color/white-balance.d.ts.map +1 -0
- package/dist/color/white-balance.js +606 -0
- package/dist/color/white-balance.js.map +1 -0
- package/dist/composition/image-formation-plan.d.ts +481 -0
- package/dist/composition/image-formation-plan.d.ts.map +1 -0
- package/dist/composition/image-formation-plan.js +2499 -0
- package/dist/composition/image-formation-plan.js.map +1 -0
- package/dist/composition/plan-consumer.d.ts +53 -0
- package/dist/composition/plan-consumer.d.ts.map +1 -0
- package/dist/composition/plan-consumer.js +119 -0
- package/dist/composition/plan-consumer.js.map +1 -0
- package/dist/core/calculation-result.d.ts.map +1 -1
- package/dist/core/calculation-result.js +6 -0
- package/dist/core/calculation-result.js.map +1 -1
- package/dist/core/canonical-json.d.ts +18 -0
- package/dist/core/canonical-json.d.ts.map +1 -0
- package/dist/core/canonical-json.js +44 -0
- package/dist/core/canonical-json.js.map +1 -0
- package/dist/core/configuration-error.d.ts +6 -0
- package/dist/core/configuration-error.d.ts.map +1 -1
- package/dist/core/configuration-error.js +6 -0
- package/dist/core/configuration-error.js.map +1 -1
- package/dist/core/evidence-provenance.d.ts +6 -0
- package/dist/core/evidence-provenance.d.ts.map +1 -1
- package/dist/core/evidence-provenance.js +7 -0
- package/dist/core/evidence-provenance.js.map +1 -1
- package/dist/core/image-formation.d.ts +9 -3
- package/dist/core/image-formation.d.ts.map +1 -1
- package/dist/core/image-formation.js +29 -5
- package/dist/core/image-formation.js.map +1 -1
- package/dist/core/owned-data.d.ts +25 -0
- package/dist/core/owned-data.d.ts.map +1 -0
- package/dist/core/owned-data.js +34 -0
- package/dist/core/owned-data.js.map +1 -0
- package/dist/core/record-validation.d.ts +17 -0
- package/dist/core/record-validation.d.ts.map +1 -0
- package/dist/core/record-validation.js +44 -0
- package/dist/core/record-validation.js.map +1 -0
- package/dist/core/scientific-assurance.d.ts +101 -0
- package/dist/core/scientific-assurance.d.ts.map +1 -0
- package/dist/core/scientific-assurance.js +301 -0
- package/dist/core/scientific-assurance.js.map +1 -0
- package/dist/core/spectral-composition.d.ts +106 -0
- package/dist/core/spectral-composition.d.ts.map +1 -0
- package/dist/core/spectral-composition.js +334 -0
- package/dist/core/spectral-composition.js.map +1 -0
- package/dist/core/spectral.d.ts +34 -0
- package/dist/core/spectral.d.ts.map +1 -0
- package/dist/core/spectral.js +57 -0
- package/dist/core/spectral.js.map +1 -0
- package/dist/core/validation.d.ts +6 -0
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +6 -0
- package/dist/core/validation.js.map +1 -1
- package/dist/core/version.d.ts +9 -0
- package/dist/core/version.d.ts.map +1 -0
- package/dist/core/version.js +10 -0
- package/dist/core/version.js.map +1 -0
- package/dist/equipment/exposure-capabilities.d.ts +125 -0
- package/dist/equipment/exposure-capabilities.d.ts.map +1 -0
- package/dist/equipment/exposure-capabilities.js +391 -0
- package/dist/equipment/exposure-capabilities.js.map +1 -0
- package/dist/equipment/generic-tier-assets.d.ts +82 -0
- package/dist/equipment/generic-tier-assets.d.ts.map +1 -0
- package/dist/equipment/generic-tier-assets.js +119 -0
- package/dist/equipment/generic-tier-assets.js.map +1 -0
- package/dist/equipment/generic-tier-presets.d.ts +57 -0
- package/dist/equipment/generic-tier-presets.d.ts.map +1 -0
- package/dist/equipment/generic-tier-presets.js +122 -0
- package/dist/equipment/generic-tier-presets.js.map +1 -0
- package/dist/equipment/iso-capabilities.d.ts +143 -0
- package/dist/equipment/iso-capabilities.d.ts.map +1 -0
- package/dist/equipment/iso-capabilities.js +578 -0
- package/dist/equipment/iso-capabilities.js.map +1 -0
- package/dist/equipment/metering-capabilities.d.ts +58 -0
- package/dist/equipment/metering-capabilities.d.ts.map +1 -0
- package/dist/equipment/metering-capabilities.js +151 -0
- package/dist/equipment/metering-capabilities.js.map +1 -0
- package/dist/equipment/release-capabilities.d.ts +33 -0
- package/dist/equipment/release-capabilities.d.ts.map +1 -0
- package/dist/equipment/release-capabilities.js +176 -0
- package/dist/equipment/release-capabilities.js.map +1 -0
- package/dist/exposure/exposure-duration-control.d.ts +72 -0
- package/dist/exposure/exposure-duration-control.d.ts.map +1 -0
- package/dist/exposure/exposure-duration-control.js +161 -0
- package/dist/exposure/exposure-duration-control.js.map +1 -0
- package/dist/exposure/exposure-mode-resolver.d.ts +637 -0
- package/dist/exposure/exposure-mode-resolver.d.ts.map +1 -0
- package/dist/exposure/exposure-mode-resolver.js +1905 -0
- package/dist/exposure/exposure-mode-resolver.js.map +1 -0
- package/dist/exposure/exposure.d.ts +8 -0
- package/dist/exposure/exposure.d.ts.map +1 -1
- package/dist/exposure/exposure.js +8 -0
- package/dist/exposure/exposure.js.map +1 -1
- package/dist/exposure/flash.d.ts +179 -0
- package/dist/exposure/flash.d.ts.map +1 -0
- package/dist/exposure/flash.js +644 -0
- package/dist/exposure/flash.js.map +1 -0
- package/dist/exposure/metering-scene-radiance.d.ts +72 -0
- package/dist/exposure/metering-scene-radiance.d.ts.map +1 -0
- package/dist/exposure/metering-scene-radiance.js +222 -0
- package/dist/exposure/metering-scene-radiance.js.map +1 -0
- package/dist/exposure/metering-target.d.ts +67 -0
- package/dist/exposure/metering-target.d.ts.map +1 -0
- package/dist/exposure/metering-target.js +265 -0
- package/dist/exposure/metering-target.js.map +1 -0
- package/dist/exposure/metering-temporal.d.ts +76 -0
- package/dist/exposure/metering-temporal.d.ts.map +1 -0
- package/dist/exposure/metering-temporal.js +210 -0
- package/dist/exposure/metering-temporal.js.map +1 -0
- package/dist/exposure/metering.d.ts +124 -0
- package/dist/exposure/metering.d.ts.map +1 -0
- package/dist/exposure/metering.js +422 -0
- package/dist/exposure/metering.js.map +1 -0
- package/dist/exposure/program-line.d.ts +29 -0
- package/dist/exposure/program-line.d.ts.map +1 -0
- package/dist/exposure/program-line.js +126 -0
- package/dist/exposure/program-line.js.map +1 -0
- package/dist/index.d.ts +87 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +85 -6
- package/dist/index.js.map +1 -1
- package/dist/motion/camera-rotation.d.ts +16 -0
- package/dist/motion/camera-rotation.d.ts.map +1 -1
- package/dist/motion/camera-rotation.js +16 -0
- package/dist/motion/camera-rotation.js.map +1 -1
- package/dist/motion/capture-rotation-inverse-mapping.d.ts +13 -0
- package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +1 -1
- package/dist/motion/capture-rotation-inverse-mapping.js +13 -0
- package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -1
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts +15 -0
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +1 -1
- package/dist/motion/capture-rotation-temporal-quadrature.js +15 -0
- package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -1
- package/dist/motion/capture-rotation-trajectory.d.ts +15 -0
- package/dist/motion/capture-rotation-trajectory.d.ts.map +1 -1
- package/dist/motion/capture-rotation-trajectory.js +15 -0
- package/dist/motion/capture-rotation-trajectory.js.map +1 -1
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts +119 -0
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts.map +1 -0
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js +263 -0
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js.map +1 -0
- package/dist/motion/extended-object-projection.d.ts +175 -0
- package/dist/motion/extended-object-projection.d.ts.map +1 -0
- package/dist/motion/extended-object-projection.js +402 -0
- package/dist/motion/extended-object-projection.js.map +1 -0
- package/dist/motion/projected-motion.d.ts +11 -0
- package/dist/motion/projected-motion.d.ts.map +1 -1
- package/dist/motion/projected-motion.js +11 -0
- package/dist/motion/projected-motion.js.map +1 -1
- package/dist/optics/aperture.d.ts +9 -0
- package/dist/optics/aperture.d.ts.map +1 -1
- package/dist/optics/aperture.js +9 -0
- package/dist/optics/aperture.js.map +1 -1
- package/dist/optics/circle-of-confusion.d.ts +8 -0
- package/dist/optics/circle-of-confusion.d.ts.map +1 -1
- package/dist/optics/circle-of-confusion.js +8 -0
- package/dist/optics/circle-of-confusion.js.map +1 -1
- package/dist/optics/complex-pupil-psf.d.ts +128 -0
- package/dist/optics/complex-pupil-psf.d.ts.map +1 -0
- package/dist/optics/complex-pupil-psf.js +462 -0
- package/dist/optics/complex-pupil-psf.js.map +1 -0
- package/dist/optics/depth-of-field.d.ts +18 -0
- package/dist/optics/depth-of-field.d.ts.map +1 -1
- package/dist/optics/depth-of-field.js +29 -4
- package/dist/optics/depth-of-field.js.map +1 -1
- package/dist/optics/diffraction.d.ts +8 -0
- package/dist/optics/diffraction.d.ts.map +1 -1
- package/dist/optics/diffraction.js +8 -0
- package/dist/optics/diffraction.js.map +1 -1
- package/dist/optics/focus-breathing.d.ts +13 -0
- package/dist/optics/focus-breathing.d.ts.map +1 -1
- package/dist/optics/focus-breathing.js +13 -0
- package/dist/optics/focus-breathing.js.map +1 -1
- package/dist/optics/focus-state.d.ts +47 -0
- package/dist/optics/focus-state.d.ts.map +1 -0
- package/dist/optics/focus-state.js +78 -0
- package/dist/optics/focus-state.js.map +1 -0
- package/dist/optics/front-of-lens-filter.d.ts +114 -0
- package/dist/optics/front-of-lens-filter.d.ts.map +1 -0
- package/dist/optics/front-of-lens-filter.js +468 -0
- package/dist/optics/front-of-lens-filter.js.map +1 -0
- package/dist/optics/illumination-vignetting.d.ts +9 -0
- package/dist/optics/illumination-vignetting.d.ts.map +1 -1
- package/dist/optics/illumination-vignetting.js +9 -0
- package/dist/optics/illumination-vignetting.js.map +1 -1
- package/dist/optics/lateral-chromatic-aberration.d.ts +11 -0
- package/dist/optics/lateral-chromatic-aberration.d.ts.map +1 -1
- package/dist/optics/lateral-chromatic-aberration.js +11 -0
- package/dist/optics/lateral-chromatic-aberration.js.map +1 -1
- package/dist/optics/lens-psf-profile.d.ts +217 -0
- package/dist/optics/lens-psf-profile.d.ts.map +1 -0
- package/dist/optics/lens-psf-profile.js +823 -0
- package/dist/optics/lens-psf-profile.js.map +1 -0
- package/dist/optics/polygon-diffraction.d.ts +67 -0
- package/dist/optics/polygon-diffraction.d.ts.map +1 -0
- package/dist/optics/polygon-diffraction.js +145 -0
- package/dist/optics/polygon-diffraction.js.map +1 -0
- package/dist/optics/profile-contract.d.ts +42 -0
- package/dist/optics/profile-contract.d.ts.map +1 -0
- package/dist/optics/profile-contract.js +92 -0
- package/dist/optics/profile-contract.js.map +1 -0
- package/dist/optics/psf-foundation.d.ts +16 -3
- package/dist/optics/psf-foundation.d.ts.map +1 -1
- package/dist/optics/psf-foundation.js +28 -15
- package/dist/optics/psf-foundation.js.map +1 -1
- package/dist/optics/radial-distortion.d.ts +18 -0
- package/dist/optics/radial-distortion.d.ts.map +1 -1
- package/dist/optics/radial-distortion.js +18 -0
- package/dist/optics/radial-distortion.js.map +1 -1
- package/dist/optics/scene-to-sensor-irradiance.d.ts +213 -0
- package/dist/optics/scene-to-sensor-irradiance.d.ts.map +1 -0
- package/dist/optics/scene-to-sensor-irradiance.js +662 -0
- package/dist/optics/scene-to-sensor-irradiance.js.map +1 -0
- package/dist/optics/scene-to-sensor-quadrature.d.ts +63 -0
- package/dist/optics/scene-to-sensor-quadrature.d.ts.map +1 -0
- package/dist/optics/scene-to-sensor-quadrature.js +82 -0
- package/dist/optics/scene-to-sensor-quadrature.js.map +1 -0
- package/dist/optics/sensor-environment-query.d.ts +60 -0
- package/dist/optics/sensor-environment-query.d.ts.map +1 -0
- package/dist/optics/sensor-environment-query.js +50 -0
- package/dist/optics/sensor-environment-query.js.map +1 -0
- package/dist/optics/sensor-psf-quadrature.d.ts +70 -0
- package/dist/optics/sensor-psf-quadrature.d.ts.map +1 -0
- package/dist/optics/sensor-psf-quadrature.js +101 -0
- package/dist/optics/sensor-psf-quadrature.js.map +1 -0
- package/dist/optics/sensor-psf-support.d.ts +20 -0
- package/dist/optics/sensor-psf-support.d.ts.map +1 -0
- package/dist/optics/sensor-psf-support.js +13 -0
- package/dist/optics/sensor-psf-support.js.map +1 -0
- package/dist/optics/stray-light.d.ts +91 -0
- package/dist/optics/stray-light.d.ts.map +1 -0
- package/dist/optics/stray-light.js +110 -0
- package/dist/optics/stray-light.js.map +1 -0
- package/dist/optics/thin-lens.d.ts +8 -0
- package/dist/optics/thin-lens.d.ts.map +1 -1
- package/dist/optics/thin-lens.js +8 -0
- package/dist/optics/thin-lens.js.map +1 -1
- package/dist/output/capture-corrected-sdr.d.ts +49 -0
- package/dist/output/capture-corrected-sdr.d.ts.map +1 -0
- package/dist/output/capture-corrected-sdr.js +149 -0
- package/dist/output/capture-corrected-sdr.js.map +1 -0
- package/dist/output/capture-geometry.d.ts.map +1 -1
- package/dist/output/capture-geometry.js +8 -0
- package/dist/output/capture-geometry.js.map +1 -1
- package/dist/output/capture-sdr.d.ts +49 -0
- package/dist/output/capture-sdr.d.ts.map +1 -0
- package/dist/output/capture-sdr.js +90 -0
- package/dist/output/capture-sdr.js.map +1 -0
- package/dist/output/crop.d.ts +6 -0
- package/dist/output/crop.d.ts.map +1 -1
- package/dist/output/crop.js +6 -0
- package/dist/output/crop.js.map +1 -1
- package/dist/output/geometric-transforms.d.ts +137 -0
- package/dist/output/geometric-transforms.d.ts.map +1 -0
- package/dist/output/geometric-transforms.js +225 -0
- package/dist/output/geometric-transforms.js.map +1 -0
- package/dist/output/lens-corrections.d.ts +121 -0
- package/dist/output/lens-corrections.d.ts.map +1 -0
- package/dist/output/lens-corrections.js +210 -0
- package/dist/output/lens-corrections.js.map +1 -0
- package/dist/output/sdr-rendering.d.ts +81 -0
- package/dist/output/sdr-rendering.d.ts.map +1 -0
- package/dist/output/sdr-rendering.js +106 -0
- package/dist/output/sdr-rendering.js.map +1 -0
- package/dist/output/subject-framing-crop.d.ts +8 -0
- package/dist/output/subject-framing-crop.d.ts.map +1 -1
- package/dist/output/subject-framing-crop.js +8 -0
- package/dist/output/subject-framing-crop.js.map +1 -1
- package/dist/schema/camera.d.ts +6 -0
- package/dist/schema/camera.d.ts.map +1 -1
- package/dist/schema/illumination-spectral.d.ts +51 -0
- package/dist/schema/illumination-spectral.d.ts.map +1 -0
- package/dist/schema/illumination-spectral.js +132 -0
- package/dist/schema/illumination-spectral.js.map +1 -0
- package/dist/schema/illumination-temporal.d.ts +156 -0
- package/dist/schema/illumination-temporal.d.ts.map +1 -0
- package/dist/schema/illumination-temporal.js +554 -0
- package/dist/schema/illumination-temporal.js.map +1 -0
- package/dist/schema/illumination.d.ts +138 -0
- package/dist/schema/illumination.d.ts.map +1 -0
- package/dist/schema/illumination.js +483 -0
- package/dist/schema/illumination.js.map +1 -0
- package/dist/schema/scene-radiance-temporal.d.ts +107 -0
- package/dist/schema/scene-radiance-temporal.d.ts.map +1 -0
- package/dist/schema/scene-radiance-temporal.js +259 -0
- package/dist/schema/scene-radiance-temporal.js.map +1 -0
- package/dist/schema/scene-radiance.d.ts +185 -0
- package/dist/schema/scene-radiance.d.ts.map +1 -0
- package/dist/schema/scene-radiance.js +535 -0
- package/dist/schema/scene-radiance.js.map +1 -0
- package/dist/schema/scene.d.ts +7 -0
- package/dist/schema/scene.d.ts.map +1 -1
- package/dist/schema/validation.d.ts.map +1 -1
- package/dist/schema/validation.js +7 -0
- package/dist/schema/validation.js.map +1 -1
- package/dist/sensor/accumulated-charge.d.ts +199 -0
- package/dist/sensor/accumulated-charge.d.ts.map +1 -0
- package/dist/sensor/accumulated-charge.js +450 -0
- package/dist/sensor/accumulated-charge.js.map +1 -0
- package/dist/sensor/architecture.d.ts +48 -13
- package/dist/sensor/architecture.d.ts.map +1 -1
- package/dist/sensor/architecture.js +58 -16
- package/dist/sensor/architecture.js.map +1 -1
- package/dist/sensor/camera-saturation-capacity.d.ts +138 -0
- package/dist/sensor/camera-saturation-capacity.d.ts.map +1 -0
- package/dist/sensor/camera-saturation-capacity.js +356 -0
- package/dist/sensor/camera-saturation-capacity.js.map +1 -0
- package/dist/sensor/capture-color-sampling-binding.d.ts +1 -0
- package/dist/sensor/capture-color-sampling-binding.d.ts.map +1 -1
- package/dist/sensor/capture-color-sampling-binding.js +14 -0
- package/dist/sensor/capture-color-sampling-binding.js.map +1 -1
- package/dist/sensor/capture-mode-timing.d.ts +63 -0
- package/dist/sensor/capture-mode-timing.d.ts.map +1 -0
- package/dist/sensor/capture-mode-timing.js +270 -0
- package/dist/sensor/capture-mode-timing.js.map +1 -0
- package/dist/sensor/capture-mode.d.ts.map +1 -1
- package/dist/sensor/capture-mode.js +13 -0
- package/dist/sensor/capture-mode.js.map +1 -1
- package/dist/sensor/color-sampling.d.ts.map +1 -1
- package/dist/sensor/color-sampling.js +19 -0
- package/dist/sensor/color-sampling.js.map +1 -1
- package/dist/sensor/constant-rate-temporal-integration.d.ts +126 -0
- package/dist/sensor/constant-rate-temporal-integration.d.ts.map +1 -0
- package/dist/sensor/constant-rate-temporal-integration.js +382 -0
- package/dist/sensor/constant-rate-temporal-integration.js.map +1 -0
- package/dist/sensor/dark-current.d.ts +169 -0
- package/dist/sensor/dark-current.d.ts.map +1 -0
- package/dist/sensor/dark-current.js +427 -0
- package/dist/sensor/dark-current.js.map +1 -0
- package/dist/sensor/environment-photo-signal.d.ts +123 -0
- package/dist/sensor/environment-photo-signal.d.ts.map +1 -0
- package/dist/sensor/environment-photo-signal.js +186 -0
- package/dist/sensor/environment-photo-signal.js.map +1 -0
- package/dist/sensor/eqe-electron-rate.d.ts +107 -0
- package/dist/sensor/eqe-electron-rate.d.ts.map +1 -0
- package/dist/sensor/eqe-electron-rate.js +561 -0
- package/dist/sensor/eqe-electron-rate.js.map +1 -0
- package/dist/sensor/eqe-local-exposure.d.ts +65 -0
- package/dist/sensor/eqe-local-exposure.d.ts.map +1 -0
- package/dist/sensor/eqe-local-exposure.js +84 -0
- package/dist/sensor/eqe-local-exposure.js.map +1 -0
- package/dist/sensor/eqe-temporal-exposure.d.ts +55 -0
- package/dist/sensor/eqe-temporal-exposure.d.ts.map +1 -0
- package/dist/sensor/eqe-temporal-exposure.js +62 -0
- package/dist/sensor/eqe-temporal-exposure.js.map +1 -0
- package/dist/sensor/exposure-window.d.ts +14 -0
- package/dist/sensor/exposure-window.d.ts.map +1 -1
- package/dist/sensor/exposure-window.js +14 -0
- package/dist/sensor/exposure-window.js.map +1 -1
- package/dist/sensor/iso-signal-chain.d.ts +148 -0
- package/dist/sensor/iso-signal-chain.d.ts.map +1 -0
- package/dist/sensor/iso-signal-chain.js +411 -0
- package/dist/sensor/iso-signal-chain.js.map +1 -0
- package/dist/sensor/local-exposure-binding.d.ts +87 -0
- package/dist/sensor/local-exposure-binding.d.ts.map +1 -0
- package/dist/sensor/local-exposure-binding.js +214 -0
- package/dist/sensor/local-exposure-binding.js.map +1 -0
- package/dist/sensor/optical-stack.d.ts.map +1 -1
- package/dist/sensor/optical-stack.js +17 -0
- package/dist/sensor/optical-stack.js.map +1 -1
- package/dist/sensor/photon-energy.d.ts +97 -0
- package/dist/sensor/photon-energy.d.ts.map +1 -0
- package/dist/sensor/photon-energy.js +390 -0
- package/dist/sensor/photon-energy.js.map +1 -0
- package/dist/sensor/physical-charge-capacity.d.ts +130 -0
- package/dist/sensor/physical-charge-capacity.d.ts.map +1 -0
- package/dist/sensor/physical-charge-capacity.js +345 -0
- package/dist/sensor/physical-charge-capacity.js.map +1 -0
- package/dist/sensor/pixel-pitch.d.ts +6 -0
- package/dist/sensor/pixel-pitch.d.ts.map +1 -1
- package/dist/sensor/pixel-pitch.js +6 -0
- package/dist/sensor/pixel-pitch.js.map +1 -1
- package/dist/sensor/radiometry-readiness.d.ts +10 -0
- package/dist/sensor/radiometry-readiness.d.ts.map +1 -1
- package/dist/sensor/radiometry-readiness.js +10 -0
- package/dist/sensor/radiometry-readiness.js.map +1 -1
- package/dist/sensor/raw-readout.d.ts +314 -0
- package/dist/sensor/raw-readout.d.ts.map +1 -0
- package/dist/sensor/raw-readout.js +914 -0
- package/dist/sensor/raw-readout.js.map +1 -0
- package/dist/sensor/raw-reconstruction.d.ts +170 -0
- package/dist/sensor/raw-reconstruction.d.ts.map +1 -0
- package/dist/sensor/raw-reconstruction.js +424 -0
- package/dist/sensor/raw-reconstruction.js.map +1 -0
- package/dist/sensor/readout-exposure-linkage.d.ts +12 -0
- package/dist/sensor/readout-exposure-linkage.d.ts.map +1 -1
- package/dist/sensor/readout-exposure-linkage.js +12 -0
- package/dist/sensor/readout-exposure-linkage.js.map +1 -1
- package/dist/sensor/readout-timing.d.ts +13 -0
- package/dist/sensor/readout-timing.d.ts.map +1 -1
- package/dist/sensor/readout-timing.js +13 -0
- package/dist/sensor/readout-timing.js.map +1 -1
- package/dist/sensor/response-application-compatibility.d.ts +136 -0
- package/dist/sensor/response-application-compatibility.d.ts.map +1 -0
- package/dist/sensor/response-application-compatibility.js +408 -0
- package/dist/sensor/response-application-compatibility.js.map +1 -0
- package/dist/sensor/response-operating-range.d.ts +173 -0
- package/dist/sensor/response-operating-range.d.ts.map +1 -0
- package/dist/sensor/response-operating-range.js +672 -0
- package/dist/sensor/response-operating-range.js.map +1 -0
- package/dist/sensor/responsivity-photocurrent.d.ts +158 -0
- package/dist/sensor/responsivity-photocurrent.d.ts.map +1 -0
- package/dist/sensor/responsivity-photocurrent.js +644 -0
- package/dist/sensor/responsivity-photocurrent.js.map +1 -0
- package/dist/sensor/sampling-aperture.d.ts.map +1 -1
- package/dist/sensor/sampling-aperture.js +14 -0
- package/dist/sensor/sampling-aperture.js.map +1 -1
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts +45 -0
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts.map +1 -0
- package/dist/sensor/scene-eqe-temporal-exposure.js +64 -0
- package/dist/sensor/scene-eqe-temporal-exposure.js.map +1 -0
- package/dist/sensor/sensor-geometry.d.ts +12 -0
- package/dist/sensor/sensor-geometry.d.ts.map +1 -1
- package/dist/sensor/sensor-geometry.js +12 -0
- package/dist/sensor/sensor-geometry.js.map +1 -1
- package/dist/sensor/signal-noise.d.ts +10 -0
- package/dist/sensor/signal-noise.d.ts.map +1 -1
- package/dist/sensor/signal-noise.js +10 -0
- package/dist/sensor/signal-noise.js.map +1 -1
- package/dist/sensor/spatial-sample-reduction.d.ts +44 -1
- package/dist/sensor/spatial-sample-reduction.d.ts.map +1 -1
- package/dist/sensor/spatial-sample-reduction.js +51 -5
- package/dist/sensor/spatial-sample-reduction.js.map +1 -1
- package/dist/sensor/spatial-sampling-quadrature.d.ts +24 -0
- package/dist/sensor/spatial-sampling-quadrature.d.ts.map +1 -1
- package/dist/sensor/spatial-sampling-quadrature.js +27 -0
- package/dist/sensor/spatial-sampling-quadrature.js.map +1 -1
- package/dist/sensor/spatio-spectral-reduction.d.ts +187 -0
- package/dist/sensor/spatio-spectral-reduction.d.ts.map +1 -0
- package/dist/sensor/spatio-spectral-reduction.js +373 -0
- package/dist/sensor/spatio-spectral-reduction.js.map +1 -0
- package/dist/sensor/spectral-coverage.d.ts +24 -0
- package/dist/sensor/spectral-coverage.d.ts.map +1 -0
- package/dist/sensor/spectral-coverage.js +86 -0
- package/dist/sensor/spectral-coverage.js.map +1 -0
- package/dist/sensor/spectral-quadrature.d.ts +169 -0
- package/dist/sensor/spectral-quadrature.d.ts.map +1 -0
- package/dist/sensor/spectral-quadrature.js +542 -0
- package/dist/sensor/spectral-quadrature.js.map +1 -0
- package/dist/sensor/spectral-response.d.ts +192 -0
- package/dist/sensor/spectral-response.d.ts.map +1 -0
- package/dist/sensor/spectral-response.js +664 -0
- package/dist/sensor/spectral-response.js.map +1 -0
- package/dist/sensor/temporal-eqe-sum.d.ts +15 -0
- package/dist/sensor/temporal-eqe-sum.d.ts.map +1 -0
- package/dist/sensor/temporal-eqe-sum.js +30 -0
- package/dist/sensor/temporal-eqe-sum.js.map +1 -0
- package/dist/sensor/temporal-photo-signal.d.ts +38 -0
- package/dist/sensor/temporal-photo-signal.d.ts.map +1 -0
- package/dist/sensor/temporal-photo-signal.js +110 -0
- package/dist/sensor/temporal-photo-signal.js.map +1 -0
- package/dist/sensor/temporal-sample-binding.d.ts +6 -0
- package/dist/sensor/temporal-sample-binding.d.ts.map +1 -0
- package/dist/sensor/temporal-sample-binding.js +32 -0
- package/dist/sensor/temporal-sample-binding.js.map +1 -0
- package/dist/simulation/poc-simulation.d.ts.map +1 -1
- package/dist/simulation/poc-simulation.js +34 -11
- package/dist/simulation/poc-simulation.js.map +1 -1
- package/dist/stabilization/camera-shake.d.ts +11 -0
- package/dist/stabilization/camera-shake.d.ts.map +1 -1
- package/dist/stabilization/camera-shake.js +11 -0
- package/dist/stabilization/camera-shake.js.map +1 -1
- package/dist/stabilization/system.d.ts +218 -0
- package/dist/stabilization/system.d.ts.map +1 -0
- package/dist/stabilization/system.js +695 -0
- package/dist/stabilization/system.js.map +1 -0
- package/docs/API_REFERENCE.md +2017 -0
- package/docs/API_STYLE.md +139 -3
- package/docs/ARCHITECTURE.md +134 -24
- package/docs/AUTOMATION_COORDINATION.md +2 -0
- package/docs/CAPTURE_COLOR.md +25 -0
- package/docs/CAPTURE_CORRECTED_SDR.md +25 -0
- package/docs/CAPTURE_EXPORT_METADATA.md +27 -0
- package/docs/CAPTURE_SDR.md +20 -0
- package/docs/DEVELOPERS.md +60 -0
- package/docs/DIGITAL_OPTICS_FOUNDATION.md +69 -0
- package/docs/ENVIRONMENT_RAW_CAPTURE.md +187 -0
- package/docs/EXPORT_ACCEPTANCE.md +133 -0
- package/docs/GENERIC_TIER_PRESETS.md +269 -0
- package/docs/GEOMETRIC_PREPARATION_REUSE.md +141 -0
- package/docs/IMAGE_FORMATION.md +80 -10
- package/docs/LINEAR_CAPTURE_ENCODING.md +25 -0
- package/docs/MOTION_AND_SIGNAL.md +5 -3
- package/docs/NUMERICAL_CORRECTNESS.md +191 -0
- package/docs/PERFORMANCE_BASELINE.md +56 -0
- package/docs/PHOTOGRAPHIC_EXPORT.md +206 -0
- package/docs/PHYSICS_FOUNDATION.md +152 -5
- package/docs/POC_API.md +2 -0
- package/docs/POC_PROJECTION_REUSE.md +124 -0
- package/docs/PROCESSED_OUTPUT.md +157 -0
- package/docs/PRODUCTION_COMPOSITION.md +373 -0
- package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +131 -0
- package/docs/PROVENANCE.md +4 -0
- package/docs/PSF_FOUNDATION.md +110 -88
- package/docs/RAW_FRAME_ENVELOPE.md +56 -0
- package/docs/RAW_FRAME_RECONSTRUCTION.md +30 -0
- package/docs/RELEASE_1_0.md +66 -0
- package/docs/RELEASE_1_0_1.md +61 -0
- package/docs/RELEASE_AUDIT.md +39 -0
- package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +298 -0
- package/docs/SCENE_SENSOR_QUADRATURE.md +98 -0
- package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +86 -0
- package/docs/SCIENTIFIC_ASSURANCE.md +280 -0
- package/docs/SCIENTIFIC_CONFORMANCE.md +83 -0
- package/docs/SDR_RENDERING.md +33 -0
- package/docs/SENSOR_ENVIRONMENT_QUERY.md +86 -0
- package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +104 -0
- package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +74 -0
- package/docs/SENSOR_PSF_QUADRATURE.md +90 -0
- package/docs/SENSOR_RAW_FRAME.md +20 -0
- package/docs/SENSOR_RAW_PRODUCER.md +77 -0
- package/docs/SIGNAL_CONFORMANCE.md +23 -0
- package/docs/SIMULATED_CAPTURE.md +65 -0
- package/docs/STABILIZATION.md +160 -17
- package/docs/TEMPORAL_PHOTO_RAW.md +83 -0
- package/docs/TIER_ACCEPTANCE.md +129 -0
- package/docs/TIER_PRESET_ACCEPTANCE.md +59 -0
- package/docs/USAGE.md +5050 -1047
- package/docs/V1_COMPOSITION_MAP.md +123 -0
- package/docs/V1_HELPER_REUSE_REVIEW.md +60 -0
- package/docs/V1_PERFORMANCE_DISPOSITION.md +88 -0
- package/docs/api/camera-equivalent-focal-length.md +53 -0
- package/docs/api/camera-field-of-view.md +119 -0
- package/docs/api/camera-projected-object-size.md +54 -0
- package/docs/api/capture-capture-export-metadata.md +107 -0
- package/docs/api/capture-environment-raw-producer.md +56 -0
- package/docs/api/capture-focus-control.md +419 -0
- package/docs/api/capture-linear-encoding.md +99 -0
- package/docs/api/capture-photographic-export.md +172 -0
- package/docs/api/capture-raw-frame-reconstruction.md +87 -0
- package/docs/api/capture-release-sequence.md +252 -0
- package/docs/api/capture-sensor-raw-frame.md +66 -0
- package/docs/api/capture-sensor-raw-producer.md +98 -0
- package/docs/api/capture-simulated-capture.md +179 -0
- package/docs/api/color-capture-color.md +122 -0
- package/docs/api/color-white-balance.md +386 -0
- package/docs/api/composition-image-formation-plan.md +825 -0
- package/docs/api/composition-plan-consumer.md +98 -0
- package/docs/api/core-calculation-result.md +220 -0
- package/docs/api/core-configuration-error.md +19 -0
- package/docs/api/core-image-formation.md +204 -0
- package/docs/api/core-scientific-assurance.md +214 -0
- package/docs/api/core-spectral-composition.md +268 -0
- package/docs/api/core-spectral.md +78 -0
- package/docs/api/core-validation.md +34 -0
- package/docs/api/core-version.md +14 -0
- package/docs/api/equipment-exposure-capabilities.md +270 -0
- package/docs/api/equipment-generic-tier-assets.md +82 -0
- package/docs/api/equipment-generic-tier-presets.md +103 -0
- package/docs/api/equipment-iso-capabilities.md +295 -0
- package/docs/api/equipment-metering-capabilities.md +126 -0
- package/docs/api/equipment-release-capabilities.md +91 -0
- package/docs/api/exports.json +5656 -0
- package/docs/api/exposure-exposure-duration-control.md +115 -0
- package/docs/api/exposure-exposure-mode-resolver.md +966 -0
- package/docs/api/exposure-exposure.md +150 -0
- package/docs/api/exposure-flash.md +327 -0
- package/docs/api/exposure-metering-scene-radiance.md +154 -0
- package/docs/api/exposure-metering-target.md +134 -0
- package/docs/api/exposure-metering-temporal.md +77 -0
- package/docs/api/exposure-metering.md +172 -0
- package/docs/api/exposure-program-line.md +64 -0
- package/docs/api/motion-camera-rotation.md +215 -0
- package/docs/api/motion-capture-rotation-inverse-mapping.md +128 -0
- package/docs/api/motion-capture-rotation-temporal-quadrature.md +127 -0
- package/docs/api/motion-capture-rotation-trajectory.md +132 -0
- package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +171 -0
- package/docs/api/motion-extended-object-projection.md +312 -0
- package/docs/api/motion-projected-motion.md +60 -0
- package/docs/api/optics-aperture.md +69 -0
- package/docs/api/optics-circle-of-confusion.md +46 -0
- package/docs/api/optics-complex-pupil-psf.md +193 -0
- package/docs/api/optics-depth-of-field.md +92 -0
- package/docs/api/optics-diffraction.md +46 -0
- package/docs/api/optics-focus-breathing.md +119 -0
- package/docs/api/optics-focus-state.md +64 -0
- package/docs/api/optics-front-of-lens-filter.md +263 -0
- package/docs/api/optics-illumination-vignetting.md +95 -0
- package/docs/api/optics-lateral-chromatic-aberration.md +225 -0
- package/docs/api/optics-lens-psf-profile.md +380 -0
- package/docs/api/optics-polygon-diffraction.md +68 -0
- package/docs/api/optics-profile-contract.md +47 -0
- package/docs/api/optics-psf-foundation.md +181 -0
- package/docs/api/optics-radial-distortion.md +194 -0
- package/docs/api/optics-scene-to-sensor-irradiance.md +371 -0
- package/docs/api/optics-scene-to-sensor-quadrature.md +78 -0
- package/docs/api/optics-sensor-environment-query.md +58 -0
- package/docs/api/optics-sensor-psf-quadrature.md +81 -0
- package/docs/api/optics-stray-light.md +109 -0
- package/docs/api/optics-thin-lens.md +53 -0
- package/docs/api/output-capture-corrected-sdr.md +71 -0
- package/docs/api/output-capture-geometry.md +500 -0
- package/docs/api/output-capture-sdr.md +69 -0
- package/docs/api/output-crop.md +47 -0
- package/docs/api/output-geometric-transforms.md +199 -0
- package/docs/api/output-lens-corrections.md +162 -0
- package/docs/api/output-sdr-rendering.md +122 -0
- package/docs/api/output-subject-framing-crop.md +59 -0
- package/docs/api/schema-camera.md +84 -0
- package/docs/api/schema-illumination-spectral.md +77 -0
- package/docs/api/schema-illumination-temporal.md +289 -0
- package/docs/api/schema-illumination.md +246 -0
- package/docs/api/schema-scene-radiance-temporal.md +215 -0
- package/docs/api/schema-scene-radiance.md +415 -0
- package/docs/api/schema-scene.md +105 -0
- package/docs/api/schema-validation.md +25 -0
- package/docs/api/sensor-accumulated-charge.md +273 -0
- package/docs/api/sensor-architecture.md +155 -0
- package/docs/api/sensor-camera-saturation-capacity.md +215 -0
- package/docs/api/sensor-capture-color-sampling-binding.md +323 -0
- package/docs/api/sensor-capture-mode-timing.md +123 -0
- package/docs/api/sensor-capture-mode.md +321 -0
- package/docs/api/sensor-color-sampling.md +228 -0
- package/docs/api/sensor-constant-rate-temporal-integration.md +152 -0
- package/docs/api/sensor-dark-current.md +227 -0
- package/docs/api/sensor-environment-photo-signal.md +77 -0
- package/docs/api/sensor-eqe-electron-rate.md +166 -0
- package/docs/api/sensor-eqe-local-exposure.md +68 -0
- package/docs/api/sensor-eqe-temporal-exposure.md +73 -0
- package/docs/api/sensor-exposure-window.md +183 -0
- package/docs/api/sensor-iso-signal-chain.md +264 -0
- package/docs/api/sensor-local-exposure-binding.md +126 -0
- package/docs/api/sensor-optical-stack.md +211 -0
- package/docs/api/sensor-photon-energy.md +149 -0
- package/docs/api/sensor-physical-charge-capacity.md +196 -0
- package/docs/api/sensor-pixel-pitch.md +41 -0
- package/docs/api/sensor-radiometry-readiness.md +240 -0
- package/docs/api/sensor-raw-readout.md +499 -0
- package/docs/api/sensor-raw-reconstruction.md +260 -0
- package/docs/api/sensor-readout-exposure-linkage.md +172 -0
- package/docs/api/sensor-readout-timing.md +209 -0
- package/docs/api/sensor-response-application-compatibility.md +256 -0
- package/docs/api/sensor-response-operating-range.md +293 -0
- package/docs/api/sensor-responsivity-photocurrent.md +245 -0
- package/docs/api/sensor-sampling-aperture.md +221 -0
- package/docs/api/sensor-scene-eqe-temporal-exposure.md +56 -0
- package/docs/api/sensor-sensor-geometry.md +143 -0
- package/docs/api/sensor-signal-noise.md +75 -0
- package/docs/api/sensor-spatial-sample-reduction.md +186 -0
- package/docs/api/sensor-spatial-sampling-quadrature.md +188 -0
- package/docs/api/sensor-spatio-spectral-reduction.md +217 -0
- package/docs/api/sensor-spectral-coverage.md +33 -0
- package/docs/api/sensor-spectral-quadrature.md +183 -0
- package/docs/api/sensor-spectral-response.md +291 -0
- package/docs/api/sensor-temporal-photo-signal.md +62 -0
- package/docs/api/simulation-poc-simulation.md +364 -0
- package/docs/api/stabilization-camera-shake.md +71 -0
- package/docs/api/stabilization-system.md +442 -0
- package/docs/benchmarks/2026-10-01-main-baseline.json +694 -0
- package/docs/benchmarks/2026-10-02-geometric-preparation-reuse.json +2190 -0
- package/docs/benchmarks/2026-10-02-poc-projection-reuse.json +2423 -0
- package/docs/benchmarks/2026-10-02-v1-environment-gc-profile.json +210 -0
- package/docs/benchmarks/2026-10-02-v1-environment-ordinary.json +187 -0
- package/docs/benchmarks/2026-10-02-v1-geometry-gc-profile.json +756 -0
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-1.json +711 -0
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-2.json +711 -0
- package/docs/benchmarks/2026-10-02-v1-poc-gc-profile.json +885 -0
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-1.json +868 -0
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-2.json +868 -0
- package/docs/examples/production-capture.mjs +34 -0
- package/docs/examples/production-request.json +4613 -0
- package/docs/examples/quick-start.mjs +12 -0
- package/docs/validation/documentation-fragments.json +212 -0
- package/docs/validation/release-audit-inventory.json +1306 -0
- package/docs/validation/tier-acceptance-report-v1.json +2538 -0
- package/package.json +15 -3
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
# Production Image-Formation Plan
|
|
2
|
+
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. 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_0_1.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.
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Executed environment production capture
|
|
2
|
+
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. 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_0_1.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
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Scientific and Source Provenance
|
|
2
2
|
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. 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_0_1.md).
|
|
4
|
+
|
|
3
5
|
Every scientific or calculation module in this repository must have a traceable, legally clean origin.
|
|
4
6
|
|
|
5
7
|
## Allowed foundations
|
|
@@ -80,6 +82,8 @@ The composed `simulatePocCamera()` response is not itself a `CalculationResult<T
|
|
|
80
82
|
|
|
81
83
|
## Uncertainty and quality metadata
|
|
82
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
|
+
|
|
83
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.
|
|
84
88
|
|
|
85
89
|
When available, `CalculationResult.quality` records uncertainty components by affected quantity and source:
|