@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,179 @@
|
|
|
1
|
+
# capture/simulated-capture.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## CaptureFloatStorage
|
|
6
|
+
|
|
7
|
+
External bytes are caller-owned; the engine never reads a path or URL.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
export type CaptureFloatStorage =
|
|
11
|
+
| { kind: "inline-float64"; samples: readonly number[] }
|
|
12
|
+
| { kind: "external-float32" | "external-float64"; byteOrder: "little-endian"; artifactId: string; sha256: string; sampleCount: number };
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## CaptureLinearImageState
|
|
16
|
+
|
|
17
|
+
Distinct linear domains, not one interchangeable 'linear' flag.
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
export type CaptureLinearImageState = "scene-referred-xyz" | "virtual-sensor-channels" | "color-transformed-linear-rgb";
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## CaptureLinearPlane
|
|
24
|
+
|
|
25
|
+
Linear float plane; all channels are co-sited and interleaved in row-major order.
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
export interface CaptureLinearPlane {
|
|
29
|
+
id: string;
|
|
30
|
+
imageStateId: string;
|
|
31
|
+
imageState: CaptureLinearImageState;
|
|
32
|
+
rasterBinding: "oriented-active-capture" | "output";
|
|
33
|
+
pixelWidth: number;
|
|
34
|
+
pixelHeight: number;
|
|
35
|
+
channelIds: readonly string[];
|
|
36
|
+
colorProfile: CapturePublicProfileReference | null;
|
|
37
|
+
/** Defined for colorimetric/RGB encodings; null for unresolved sensor channels. */
|
|
38
|
+
encodingReferenceWhiteXyz: CaptureWhiteXyz | null;
|
|
39
|
+
/** Value normalization, independent of capture saturation or eventual integer white. */
|
|
40
|
+
referenceWhiteValue: number;
|
|
41
|
+
whiteBalanceApplication: "intent-only" | "applied-rgb-gains" | "applied-chromatic-adaptation" | "not-applicable";
|
|
42
|
+
captureSaturation:
|
|
43
|
+
| { kind: "not-modeled" }
|
|
44
|
+
| { kind: "declared-virtual-white"; whiteLevel: number; upstreamClippedSampleCount: number };
|
|
45
|
+
appliedTransforms: readonly { profile: CapturePublicProfileReference; kind: "linear-color" | "chromatic-adaptation" | "digital-lens-correction" }[];
|
|
46
|
+
storage: CaptureFloatStorage;
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## CapturePublicProfileReference
|
|
51
|
+
|
|
52
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
export interface CapturePublicProfileReference { id: string; version: string }
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## CaptureWhiteBalanceIntent
|
|
59
|
+
|
|
60
|
+
A resolved #108 choice, sanitized for public metadata. No estimator is rerun.
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
export interface CaptureWhiteBalanceIntent {
|
|
64
|
+
stateId: string;
|
|
65
|
+
source: ResolvedWhiteBalanceState["source"];
|
|
66
|
+
locked: boolean;
|
|
67
|
+
channelGains: WhiteBalanceChannelGains;
|
|
68
|
+
sourceProfile: CapturePublicProfileReference | null;
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## CaptureWhiteXyz
|
|
73
|
+
|
|
74
|
+
Normalized tristimulus white; Y=1. This is not a spectrum or Kelvin value.
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
export interface CaptureWhiteXyz { x: number; y: 1; z: number }
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## createCaptureWhiteBalanceIntent
|
|
81
|
+
|
|
82
|
+
Converts validated shooting WB into a public metadata allowlist, discarding private extras.
|
|
83
|
+
|
|
84
|
+
```ts
|
|
85
|
+
export function createCaptureWhiteBalanceIntent(input: { state: ResolvedWhiteBalanceState }): CaptureWhiteBalanceIntent;
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
89
|
+
|
|
90
|
+
## createSimulatedCapture
|
|
91
|
+
|
|
92
|
+
Commits a format-neutral float master manifest; no radiance generation, clamp, WB or export encoding.
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
export function createSimulatedCapture(input: SimulatedCaptureInput): CalculationResult<SimulatedCapture>;
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
99
|
+
|
|
100
|
+
## parseSimulatedCapture
|
|
101
|
+
|
|
102
|
+
Parses an archived capture, recomputing and checking all derived geometry/focal metadata.
|
|
103
|
+
|
|
104
|
+
```ts
|
|
105
|
+
export function parseSimulatedCapture(value: unknown): SimulatedCapture;
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
109
|
+
|
|
110
|
+
## resolveSimulatedCapturePlane
|
|
111
|
+
|
|
112
|
+
Requires an exact plane image state; callers may not substitute another kind of 'linear'.
|
|
113
|
+
|
|
114
|
+
```ts
|
|
115
|
+
export function resolveSimulatedCapturePlane(input: {
|
|
116
|
+
capture: SimulatedCapture; planeId: string; requiredImageState: CaptureLinearImageState;
|
|
117
|
+
}): CaptureLinearPlane;
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
121
|
+
|
|
122
|
+
## serializeSimulatedCapture
|
|
123
|
+
|
|
124
|
+
Canonical allowlisted JSON, including semantic samples/IDs, not private caches or file layout.
|
|
125
|
+
|
|
126
|
+
```ts
|
|
127
|
+
export function serializeSimulatedCapture(input: { capture: SimulatedCapture }): string;
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
131
|
+
|
|
132
|
+
## SIMULATED_CAPTURE_SCHEMA_VERSION
|
|
133
|
+
|
|
134
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
135
|
+
|
|
136
|
+
```ts
|
|
137
|
+
SIMULATED_CAPTURE_SCHEMA_VERSION = "0.2.0" as const
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## SimulatedCapture
|
|
141
|
+
|
|
142
|
+
Immutable committed value. Geometry/focal equivalence are derived, never caller overrides.
|
|
143
|
+
|
|
144
|
+
```ts
|
|
145
|
+
export interface SimulatedCapture extends SimulatedCaptureInput {
|
|
146
|
+
schemaVersion: typeof SIMULATED_CAPTURE_SCHEMA_VERSION;
|
|
147
|
+
engineApiVersion: string;
|
|
148
|
+
resolvedGeometry: ResolvedCaptureGeometry;
|
|
149
|
+
equivalentFocalLength35Mm: number;
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## SimulatedCaptureInput
|
|
154
|
+
|
|
155
|
+
Format-neutral input from an upstream master/capture provider, not a preview image.
|
|
156
|
+
|
|
157
|
+
```ts
|
|
158
|
+
export interface SimulatedCaptureInput {
|
|
159
|
+
captureId: string;
|
|
160
|
+
sceneStateId: string;
|
|
161
|
+
/** Seconds on the declared scene clock, not an embedded wall-clock timestamp. */
|
|
162
|
+
sceneTimeSeconds: number;
|
|
163
|
+
geometry: ResolveCaptureGeometryInput;
|
|
164
|
+
exposure: { focalLengthMm: number; aperture: number; shutterSeconds: number; iso: number };
|
|
165
|
+
focus: FocusPlane;
|
|
166
|
+
noise: { seedUint32: number; realizationId: string; model: CapturePublicProfileReference };
|
|
167
|
+
source: {
|
|
168
|
+
kind: "scene-linear-master" | "sensor-derived-linear" | "color-transformed-linear-master";
|
|
169
|
+
artifactId: string;
|
|
170
|
+
sha256: string;
|
|
171
|
+
dynamicRangeHistory: "unknown" | "no-loss-declared" | "upstream-clipped";
|
|
172
|
+
};
|
|
173
|
+
whiteBalanceIntent: CaptureWhiteBalanceIntent | null;
|
|
174
|
+
/** Adopted/WB white is a camera choice, not automatically the encoding white. */
|
|
175
|
+
adoptedWhiteXyz: CaptureWhiteXyz | null;
|
|
176
|
+
models: readonly { profile: CapturePublicProfileReference; scientificStatus: ProvenanceKind; publicEvidenceIds: readonly string[] }[];
|
|
177
|
+
planes: readonly CaptureLinearPlane[];
|
|
178
|
+
}
|
|
179
|
+
```
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# color/capture-color.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## calculateCaptureColorTransform
|
|
6
|
+
|
|
7
|
+
Converts a bounded inline XYZ/ideal-camera plane to unclamped linear sRGB.
|
|
8
|
+
Reuses resolved WB intent; never estimates illumination or changes exposure/noise.
|
|
9
|
+
XYZ diagonal adaptation is explicitly an approximation, distinct from RGB gains.
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
export function calculateCaptureColorTransform(input: CaptureColorTransformInput): CalculationResult<CaptureColorTransformResult>;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
16
|
+
|
|
17
|
+
## CAPTURE_COLOR_MODEL_VERSION
|
|
18
|
+
|
|
19
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
CAPTURE_COLOR_MODEL_VERSION = "0.1.0" as const
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## CaptureColorModel
|
|
26
|
+
|
|
27
|
+
Profile data exposes complete row-major matrices and domain conditions to consumers.
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
export interface CaptureColorModel {
|
|
31
|
+
version: typeof CAPTURE_COLOR_MODEL_VERSION;
|
|
32
|
+
cameraProfile: CapturePublicProfileReference;
|
|
33
|
+
outputProfile: CapturePublicProfileReference;
|
|
34
|
+
referenceIlluminant: "D65";
|
|
35
|
+
observer: "cie-1931-2-degree";
|
|
36
|
+
referenceWhiteXyz: { x: number; y: 1; z: number };
|
|
37
|
+
cameraRgbToXyz: Matrix;
|
|
38
|
+
xyzToCameraRgb: Matrix;
|
|
39
|
+
scientificStatus: "calculated";
|
|
40
|
+
validConditions: readonly string[];
|
|
41
|
+
publicEvidenceIds: readonly string[];
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## CaptureColorTransformInput
|
|
46
|
+
|
|
47
|
+
IDs identify a new derived plane; source capture stays immutable.
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
export interface CaptureColorTransformInput {
|
|
51
|
+
capture: SimulatedCapture;
|
|
52
|
+
sourcePlaneId: string;
|
|
53
|
+
outputPlaneId: string;
|
|
54
|
+
outputImageStateId: string;
|
|
55
|
+
whiteBalance: CaptureColorWhiteBalance;
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## CaptureColorTransformResult
|
|
60
|
+
|
|
61
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
export interface CaptureColorTransformResult {
|
|
65
|
+
plane: CaptureLinearPlane;
|
|
66
|
+
colorModel: CaptureColorModel;
|
|
67
|
+
sourcePlaneId: string;
|
|
68
|
+
sourceImageStateId: string;
|
|
69
|
+
whiteBalance: CaptureColorWhiteBalance;
|
|
70
|
+
/** Matrix on CIE XYZ, identity when no adaptation; row-major, dimensionless. */
|
|
71
|
+
chromaticAdaptationMatrix: Matrix;
|
|
72
|
+
/** False: even adopted-white scaling is a camera choice under mixed illumination. */
|
|
73
|
+
claimsUniqueSceneWhite: false;
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## CaptureColorWhiteBalance
|
|
78
|
+
|
|
79
|
+
One explicit color interpretation; gains and adaptation cannot silently double-apply WB.
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
export type CaptureColorWhiteBalance =
|
|
83
|
+
| { kind: "preserve-intent" }
|
|
84
|
+
| { kind: "apply-resolved-rgb-gains"; channelBasis: CapturePublicProfileReference }
|
|
85
|
+
| { kind: "adopted-white-xyz-scaling" };
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## LINEAR_CAPTURE_RGB_PROFILE
|
|
89
|
+
|
|
90
|
+
Linear light, sRGB primaries/D65; no sRGB transfer curve is applied.
|
|
91
|
+
|
|
92
|
+
```ts
|
|
93
|
+
LINEAR_CAPTURE_RGB_PROFILE = Object.freeze({ id: "linear-srgb-d65", version: CAPTURE_COLOR_MODEL_VERSION })
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## parseCaptureColorTransformInput
|
|
97
|
+
|
|
98
|
+
Validates the entire capture and explicit transform policy across untrusted JSON boundaries.
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
export function parseCaptureColorTransformInput(value: unknown): CaptureColorTransformInput;
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
105
|
+
|
|
106
|
+
## resolveCaptureColorModel
|
|
107
|
+
|
|
108
|
+
Returns the versioned ideal camera basis, independent of rendering/serializer state.
|
|
109
|
+
|
|
110
|
+
```ts
|
|
111
|
+
export function resolveCaptureColorModel(): CaptureColorModel;
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
115
|
+
|
|
116
|
+
## VIRTUAL_COLOR_CAMERA_PROFILE
|
|
117
|
+
|
|
118
|
+
Explicit ideal colorimetric camera, not measured spectral sensor channels.
|
|
119
|
+
|
|
120
|
+
```ts
|
|
121
|
+
VIRTUAL_COLOR_CAMERA_PROFILE = Object.freeze({ id: "photivra-colorimetric-rgb-d65", version: CAPTURE_COLOR_MODEL_VERSION })
|
|
122
|
+
```
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
# color/white-balance.ts public contracts
|
|
2
|
+
|
|
3
|
+
Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
|
|
4
|
+
|
|
5
|
+
## COLOR_TEMPERATURE_WHITE_BALANCE_INTENT_VERSION
|
|
6
|
+
|
|
7
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
COLOR_TEMPERATURE_WHITE_BALANCE_INTENT_VERSION =
|
|
11
|
+
"0.1.0" as const
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## ColorTemperatureWhiteBalanceIntent
|
|
15
|
+
|
|
16
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
export interface ColorTemperatureWhiteBalanceIntent {
|
|
20
|
+
version: typeof COLOR_TEMPERATURE_WHITE_BALANCE_INTENT_VERSION;
|
|
21
|
+
intentId: string;
|
|
22
|
+
colorTemperatureKelvin: number;
|
|
23
|
+
tint: number;
|
|
24
|
+
channelGainsResolved: false;
|
|
25
|
+
requiresCameraProfileColorimetry: true;
|
|
26
|
+
sceneIlluminationModified: false;
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## createColorTemperatureWhiteBalanceIntent
|
|
31
|
+
|
|
32
|
+
Records independent color-temperature and tint intent.
|
|
33
|
+
|
|
34
|
+
No channel gains are fabricated here; mapping CCT+tint into a camera's
|
|
35
|
+
channel/color space belongs to a profile/colorimetry contract.
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
export function createColorTemperatureWhiteBalanceIntent(
|
|
39
|
+
input: CreateColorTemperatureWhiteBalanceIntentInput
|
|
40
|
+
): ColorTemperatureWhiteBalanceIntent;
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
44
|
+
|
|
45
|
+
## CreateColorTemperatureWhiteBalanceIntentInput
|
|
46
|
+
|
|
47
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
export interface CreateColorTemperatureWhiteBalanceIntentInput {
|
|
51
|
+
intentId: string;
|
|
52
|
+
colorTemperatureKelvin: number;
|
|
53
|
+
tint: number;
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## createLockedWhiteBalanceState
|
|
58
|
+
|
|
59
|
+
Freezes a resolved WB state under a new stable identity.
|
|
60
|
+
|
|
61
|
+
Locking changes neither the scene nor the gains; later AWB estimates may
|
|
62
|
+
differ while this locked state remains unchanged.
|
|
63
|
+
|
|
64
|
+
```ts
|
|
65
|
+
export function createLockedWhiteBalanceState(
|
|
66
|
+
input: CreateLockedWhiteBalanceStateInput
|
|
67
|
+
): ResolvedWhiteBalanceState;
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
71
|
+
|
|
72
|
+
## CreateLockedWhiteBalanceStateInput
|
|
73
|
+
|
|
74
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
export interface CreateLockedWhiteBalanceStateInput {
|
|
78
|
+
stateId: string;
|
|
79
|
+
sourceState: ResolvedWhiteBalanceState;
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## estimateAutoWhiteBalance
|
|
84
|
+
|
|
85
|
+
Estimates one global AWB state from declared pre-WB camera-linear samples.
|
|
86
|
+
|
|
87
|
+
It intentionally does not accept true illuminant metadata. A gray-world
|
|
88
|
+
neutralizing estimate is softened by the profile's correctionStrength so
|
|
89
|
+
different generic AWB priorities can preserve different amounts of cast.
|
|
90
|
+
|
|
91
|
+
```ts
|
|
92
|
+
export function estimateAutoWhiteBalance(
|
|
93
|
+
input: EstimateAutoWhiteBalanceInput
|
|
94
|
+
): ResolvedWhiteBalanceState;
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
98
|
+
|
|
99
|
+
## EstimateAutoWhiteBalanceInput
|
|
100
|
+
|
|
101
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
102
|
+
|
|
103
|
+
```ts
|
|
104
|
+
export interface EstimateAutoWhiteBalanceInput {
|
|
105
|
+
stateId: string;
|
|
106
|
+
profile: WhiteBalanceProfile;
|
|
107
|
+
policyId: string;
|
|
108
|
+
sampleSet: PreWhiteBalanceRgbSampleSet;
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## parseResolvedWhiteBalanceState
|
|
113
|
+
|
|
114
|
+
Parses a committed resolved white-balance state from an untrusted JSON
|
|
115
|
+
boundary without re-estimating WB.
|
|
116
|
+
|
|
117
|
+
This is intentionally a state parser, not an AWB estimator. It preserves the
|
|
118
|
+
resolved gains/policy/measurement identity that a capture committed earlier.
|
|
119
|
+
|
|
120
|
+
```ts
|
|
121
|
+
export function parseResolvedWhiteBalanceState(
|
|
122
|
+
value: unknown
|
|
123
|
+
): ResolvedWhiteBalanceState;
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
127
|
+
|
|
128
|
+
## parseWhiteBalanceProfile
|
|
129
|
+
|
|
130
|
+
Parses generic WB presets and AWB policies.
|
|
131
|
+
|
|
132
|
+
Preset gains and AWB correction strength are profile-owned. Labels are not
|
|
133
|
+
treated as universal Kelvin aliases or manufacturer-specific behavior.
|
|
134
|
+
|
|
135
|
+
```ts
|
|
136
|
+
export function parseWhiteBalanceProfile(
|
|
137
|
+
value: unknown
|
|
138
|
+
): WhiteBalanceProfile;
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
142
|
+
|
|
143
|
+
## PreWhiteBalanceRgbSample
|
|
144
|
+
|
|
145
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
146
|
+
|
|
147
|
+
```ts
|
|
148
|
+
export interface PreWhiteBalanceRgbSample {
|
|
149
|
+
sampleId: string;
|
|
150
|
+
red: number;
|
|
151
|
+
green: number;
|
|
152
|
+
blue: number;
|
|
153
|
+
weight: number;
|
|
154
|
+
clipped: boolean;
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## PreWhiteBalanceRgbSampleSet
|
|
159
|
+
|
|
160
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
161
|
+
|
|
162
|
+
```ts
|
|
163
|
+
export interface PreWhiteBalanceRgbSampleSet {
|
|
164
|
+
imageStateId: string;
|
|
165
|
+
inputDomain: WhiteBalanceInputDomain;
|
|
166
|
+
samples: readonly PreWhiteBalanceRgbSample[];
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## resolveCustomWhiteBalance
|
|
171
|
+
|
|
172
|
+
Resolves a user-declared neutral/gray custom-WB measurement.
|
|
173
|
+
|
|
174
|
+
The engine validates and reduces the selected pre-WB sample, but it does not
|
|
175
|
+
claim the selected object is spectrally neutral in the real scene.
|
|
176
|
+
|
|
177
|
+
```ts
|
|
178
|
+
export function resolveCustomWhiteBalance(
|
|
179
|
+
input: ResolveCustomWhiteBalanceInput
|
|
180
|
+
): ResolvedWhiteBalanceState;
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
184
|
+
|
|
185
|
+
## ResolveCustomWhiteBalanceInput
|
|
186
|
+
|
|
187
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
188
|
+
|
|
189
|
+
```ts
|
|
190
|
+
export interface ResolveCustomWhiteBalanceInput {
|
|
191
|
+
stateId: string;
|
|
192
|
+
sampleSet: PreWhiteBalanceRgbSampleSet;
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## ResolvedWhiteBalanceState
|
|
197
|
+
|
|
198
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
199
|
+
|
|
200
|
+
```ts
|
|
201
|
+
export interface ResolvedWhiteBalanceState {
|
|
202
|
+
version: typeof WHITE_BALANCE_STATE_VERSION;
|
|
203
|
+
stateId: string;
|
|
204
|
+
inputDomain: WhiteBalanceInputDomain;
|
|
205
|
+
source:
|
|
206
|
+
| "preset"
|
|
207
|
+
| "manual-gains"
|
|
208
|
+
| "custom-measurement"
|
|
209
|
+
| "auto-white-balance";
|
|
210
|
+
channelGains: WhiteBalanceChannelGains;
|
|
211
|
+
locked: boolean;
|
|
212
|
+
sourceProfile?: {
|
|
213
|
+
profileId: string;
|
|
214
|
+
profileVersion: string;
|
|
215
|
+
};
|
|
216
|
+
presetId?: string;
|
|
217
|
+
awbPolicy?: {
|
|
218
|
+
policyId: string;
|
|
219
|
+
intent: WhiteBalanceAwbIntent;
|
|
220
|
+
correctionStrength: number;
|
|
221
|
+
};
|
|
222
|
+
measurement?: {
|
|
223
|
+
imageStateId: string;
|
|
224
|
+
usableSampleCount: number;
|
|
225
|
+
rejectedClippedSampleCount: number;
|
|
226
|
+
weightedMeanPreWbSignal: {
|
|
227
|
+
red: number;
|
|
228
|
+
green: number;
|
|
229
|
+
blue: number;
|
|
230
|
+
};
|
|
231
|
+
};
|
|
232
|
+
sourceStateId?: string;
|
|
233
|
+
trueIlluminantMetadataUsed: false;
|
|
234
|
+
sceneIlluminationModified: false;
|
|
235
|
+
rawCaptureDestructivelyModified: false;
|
|
236
|
+
physicalExposureModified: false;
|
|
237
|
+
focusModified: false;
|
|
238
|
+
limitations: readonly string[];
|
|
239
|
+
}
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## resolveManualWhiteBalance
|
|
243
|
+
|
|
244
|
+
Resolves explicit manual camera-linear channel gains.
|
|
245
|
+
|
|
246
|
+
```ts
|
|
247
|
+
export function resolveManualWhiteBalance(
|
|
248
|
+
input: ResolveManualWhiteBalanceInput
|
|
249
|
+
): ResolvedWhiteBalanceState;
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
253
|
+
|
|
254
|
+
## ResolveManualWhiteBalanceInput
|
|
255
|
+
|
|
256
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
257
|
+
|
|
258
|
+
```ts
|
|
259
|
+
export interface ResolveManualWhiteBalanceInput {
|
|
260
|
+
stateId: string;
|
|
261
|
+
channelGains: WhiteBalanceChannelGains;
|
|
262
|
+
}
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## resolvePresetWhiteBalance
|
|
266
|
+
|
|
267
|
+
Resolves a profile-owned WB preset without universal label/Kelvin rules.
|
|
268
|
+
|
|
269
|
+
```ts
|
|
270
|
+
export function resolvePresetWhiteBalance(
|
|
271
|
+
input: ResolvePresetWhiteBalanceInput
|
|
272
|
+
): ResolvedWhiteBalanceState;
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
276
|
+
|
|
277
|
+
## ResolvePresetWhiteBalanceInput
|
|
278
|
+
|
|
279
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
280
|
+
|
|
281
|
+
```ts
|
|
282
|
+
export interface ResolvePresetWhiteBalanceInput {
|
|
283
|
+
stateId: string;
|
|
284
|
+
profile: WhiteBalanceProfile;
|
|
285
|
+
presetId: string;
|
|
286
|
+
}
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
## WHITE_BALANCE_PROFILE_SCHEMA_VERSION
|
|
290
|
+
|
|
291
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
292
|
+
|
|
293
|
+
```ts
|
|
294
|
+
WHITE_BALANCE_PROFILE_SCHEMA_VERSION = "0.1.0" as const
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
## WHITE_BALANCE_STATE_VERSION
|
|
298
|
+
|
|
299
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
300
|
+
|
|
301
|
+
```ts
|
|
302
|
+
WHITE_BALANCE_STATE_VERSION = "0.1.0" as const
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
## WhiteBalanceAwbIntent
|
|
306
|
+
|
|
307
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
308
|
+
|
|
309
|
+
```ts
|
|
310
|
+
export type WhiteBalanceAwbIntent =
|
|
311
|
+
| "neutral-priority"
|
|
312
|
+
| "standard"
|
|
313
|
+
| "ambience-preserving";
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
## WhiteBalanceAwbPolicy
|
|
317
|
+
|
|
318
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
319
|
+
|
|
320
|
+
```ts
|
|
321
|
+
export interface WhiteBalanceAwbPolicy {
|
|
322
|
+
policyId: string;
|
|
323
|
+
intent: WhiteBalanceAwbIntent;
|
|
324
|
+
/**
|
|
325
|
+
* Fraction of a gray-world neutralizing correction applied in logarithmic
|
|
326
|
+
* gain space. 1 is full neutral-priority correction; lower values preserve
|
|
327
|
+
* more of the observed cast.
|
|
328
|
+
*/
|
|
329
|
+
correctionStrength: EvidenceBackedFact<number>;
|
|
330
|
+
limitations?: readonly string[];
|
|
331
|
+
}
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
## WhiteBalanceChannelGains
|
|
335
|
+
|
|
336
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
337
|
+
|
|
338
|
+
```ts
|
|
339
|
+
export interface WhiteBalanceChannelGains {
|
|
340
|
+
red: number;
|
|
341
|
+
green: number;
|
|
342
|
+
blue: number;
|
|
343
|
+
}
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
## WhiteBalanceInputDomain
|
|
347
|
+
|
|
348
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
349
|
+
|
|
350
|
+
```ts
|
|
351
|
+
export type WhiteBalanceInputDomain =
|
|
352
|
+
"relative-pre-wb-camera-linear-rgb";
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
## WhiteBalancePresetDefinition
|
|
356
|
+
|
|
357
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
358
|
+
|
|
359
|
+
```ts
|
|
360
|
+
export interface WhiteBalancePresetDefinition {
|
|
361
|
+
presetId: string;
|
|
362
|
+
label: string;
|
|
363
|
+
channelGains: EvidenceBackedFact<WhiteBalanceChannelGains>;
|
|
364
|
+
nominalColorTemperatureKelvin?: number;
|
|
365
|
+
nominalTint?: number;
|
|
366
|
+
limitations?: readonly string[];
|
|
367
|
+
}
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
## WhiteBalanceProfile
|
|
371
|
+
|
|
372
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
373
|
+
|
|
374
|
+
```ts
|
|
375
|
+
export interface WhiteBalanceProfile {
|
|
376
|
+
schemaVersion: typeof WHITE_BALANCE_PROFILE_SCHEMA_VERSION;
|
|
377
|
+
profileId: string;
|
|
378
|
+
profileVersion: string;
|
|
379
|
+
scientificStatus: "approximation";
|
|
380
|
+
inputDomain: WhiteBalanceInputDomain;
|
|
381
|
+
presets: readonly WhiteBalancePresetDefinition[];
|
|
382
|
+
awbPolicies: readonly WhiteBalanceAwbPolicy[];
|
|
383
|
+
evidence: readonly EvidenceProvenance[];
|
|
384
|
+
limitations: readonly string[];
|
|
385
|
+
}
|
|
386
|
+
```
|