@photivra/engine 1.5.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +414 -6
- package/CITATION.cff +1 -1
- package/NODE_SUPPORT.md +64 -12
- package/README.md +301 -182
- package/SECURITY.md +37 -28
- package/THIRD_PARTY.md +148 -4
- package/dist/camera/equivalent-focal-length.d.ts +13 -14
- package/dist/camera/equivalent-focal-length.js +15 -13
- package/dist/camera/equivalent-focal-length.js.map +1 -1
- package/dist/camera/field-of-view.d.ts +30 -19
- package/dist/camera/field-of-view.js +67 -18
- package/dist/camera/field-of-view.js.map +1 -1
- package/dist/camera/lens-projection.d.ts +170 -0
- package/dist/camera/lens-projection.js +444 -0
- package/dist/camera/lens-projection.js.map +1 -0
- package/dist/camera/projected-object-size.d.ts +10 -11
- package/dist/camera/projected-object-size.js +12 -10
- package/dist/camera/projected-object-size.js.map +1 -1
- package/dist/capture/capture-export-metadata.d.ts +9 -10
- package/dist/capture/capture-export-metadata.js +8 -5
- package/dist/capture/capture-export-metadata.js.map +1 -1
- package/dist/capture/dng-import.d.ts +91 -0
- package/dist/capture/dng-import.js +343 -0
- package/dist/capture/dng-import.js.map +1 -0
- package/dist/capture/environment-raw-producer.d.ts +37 -17
- package/dist/capture/environment-raw-producer.js +43 -19
- package/dist/capture/environment-raw-producer.js.map +1 -1
- package/dist/capture/export-jpeg.d.ts +35 -4
- package/dist/capture/export-jpeg.js +133 -47
- package/dist/capture/export-jpeg.js.map +1 -1
- package/dist/capture/export-tiff.d.ts +48 -24
- package/dist/capture/export-tiff.js +91 -31
- package/dist/capture/export-tiff.js.map +1 -1
- package/dist/capture/focus-control.d.ts +42 -65
- package/dist/capture/focus-control.js +56 -75
- package/dist/capture/focus-control.js.map +1 -1
- package/dist/capture/host-yield-cadence.d.ts +25 -0
- package/dist/capture/host-yield-cadence.js +25 -0
- package/dist/capture/host-yield-cadence.js.map +1 -0
- package/dist/capture/linear-encoding.d.ts +14 -12
- package/dist/capture/linear-encoding.js +14 -13
- package/dist/capture/linear-encoding.js.map +1 -1
- package/dist/capture/lossless-jpeg.d.ts +27 -0
- package/dist/capture/lossless-jpeg.js +237 -0
- package/dist/capture/lossless-jpeg.js.map +1 -0
- package/dist/capture/native-environment-lean.d.ts +227 -0
- package/dist/capture/native-environment-lean.js +974 -0
- package/dist/capture/native-environment-lean.js.map +1 -0
- package/dist/capture/native-environment-optical-stage.d.ts +97 -0
- package/dist/capture/native-environment-optical-stage.js +340 -0
- package/dist/capture/native-environment-optical-stage.js.map +1 -0
- package/dist/capture/native-environment-raw.d.ts +140 -6
- package/dist/capture/native-environment-raw.js +435 -34
- package/dist/capture/native-environment-raw.js.map +1 -1
- package/dist/capture/native-raw-development.d.ts +116 -9
- package/dist/capture/native-raw-development.js +221 -62
- package/dist/capture/native-raw-development.js.map +1 -1
- package/dist/capture/native-raw-dng.d.ts +60 -0
- package/dist/capture/native-raw-dng.js +167 -0
- package/dist/capture/native-raw-dng.js.map +1 -0
- package/dist/capture/native-raw.d.ts +65 -12
- package/dist/capture/native-raw.js +81 -19
- package/dist/capture/native-raw.js.map +1 -1
- package/dist/capture/packed-sensor-raw.d.ts +160 -0
- package/dist/capture/packed-sensor-raw.js +221 -0
- package/dist/capture/packed-sensor-raw.js.map +1 -0
- package/dist/capture/photographic-export.d.ts +58 -35
- package/dist/capture/photographic-export.js +177 -70
- package/dist/capture/photographic-export.js.map +1 -1
- package/dist/capture/raw-development-kernel.d.ts +52 -0
- package/dist/capture/raw-development-kernel.js +88 -0
- package/dist/capture/raw-development-kernel.js.map +1 -0
- package/dist/capture/raw-frame-limits.d.ts +7 -7
- package/dist/capture/raw-frame-limits.js +7 -6
- package/dist/capture/raw-frame-limits.js.map +1 -1
- package/dist/capture/raw-frame-reconstruction.d.ts +8 -9
- package/dist/capture/raw-frame-reconstruction.js +9 -8
- package/dist/capture/raw-frame-reconstruction.js.map +1 -1
- package/dist/capture/raw-white-level.d.ts +55 -0
- package/dist/capture/raw-white-level.js +165 -0
- package/dist/capture/raw-white-level.js.map +1 -0
- package/dist/capture/release-sequence.d.ts +5 -7
- package/dist/capture/release-sequence.js +15 -13
- package/dist/capture/release-sequence.js.map +1 -1
- package/dist/capture/sensor-raw-frame.d.ts +5 -6
- package/dist/capture/sensor-raw-frame.js +26 -9
- package/dist/capture/sensor-raw-frame.js.map +1 -1
- package/dist/capture/sensor-raw-producer.d.ts +21 -13
- package/dist/capture/sensor-raw-producer.js +86 -25
- package/dist/capture/sensor-raw-producer.js.map +1 -1
- package/dist/capture/simulated-capture.d.ts +15 -16
- package/dist/capture/simulated-capture.js +22 -12
- package/dist/capture/simulated-capture.js.map +1 -1
- package/dist/color/camera-color-matrix.d.ts +69 -0
- package/dist/color/camera-color-matrix.js +132 -0
- package/dist/color/camera-color-matrix.js.map +1 -0
- package/dist/color/capture-color.d.ts +17 -10
- package/dist/color/capture-color.js +50 -17
- package/dist/color/capture-color.js.map +1 -1
- package/dist/color/chromatic-adaptation.d.ts +63 -0
- package/dist/color/chromatic-adaptation.js +91 -0
- package/dist/color/chromatic-adaptation.js.map +1 -0
- package/dist/color/color-difference.d.ts +104 -0
- package/dist/color/color-difference.js +205 -0
- package/dist/color/color-difference.js.map +1 -0
- package/dist/color/color-matching-functions.d.ts +168 -0
- package/dist/color/color-matching-functions.js +309 -0
- package/dist/color/color-matching-functions.js.map +1 -0
- package/dist/color/colorimetry-math.d.ts +52 -0
- package/dist/color/colorimetry-math.js +144 -0
- package/dist/color/colorimetry-math.js.map +1 -0
- package/dist/color/gamut-mapping.d.ts +54 -0
- package/dist/color/gamut-mapping.js +107 -0
- package/dist/color/gamut-mapping.js.map +1 -0
- package/dist/color/illuminants.d.ts +182 -0
- package/dist/color/illuminants.js +434 -0
- package/dist/color/illuminants.js.map +1 -0
- package/dist/color/rgb-color-spaces.d.ts +79 -0
- package/dist/color/rgb-color-spaces.js +115 -0
- package/dist/color/rgb-color-spaces.js.map +1 -0
- package/dist/color/sensor-color-development.d.ts +33 -11
- package/dist/color/sensor-color-development.js +104 -30
- package/dist/color/sensor-color-development.js.map +1 -1
- package/dist/color/srgb-icc.d.ts +9 -2
- package/dist/color/srgb-icc.js +16 -5
- package/dist/color/srgb-icc.js.map +1 -1
- package/dist/color/srgb-transfer.d.ts +1 -2
- package/dist/color/srgb-transfer.js +1 -1
- package/dist/color/srgb-transfer.js.map +1 -1
- package/dist/color/white-balance.d.ts +68 -19
- package/dist/color/white-balance.js +168 -35
- package/dist/color/white-balance.js.map +1 -1
- package/dist/composition/image-formation-plan.d.ts +152 -128
- package/dist/composition/image-formation-plan.js +292 -138
- package/dist/composition/image-formation-plan.js.map +1 -1
- package/dist/composition/plan-consumer.d.ts +6 -7
- package/dist/composition/plan-consumer.js +14 -11
- package/dist/composition/plan-consumer.js.map +1 -1
- package/dist/core/calculation-result.d.ts +21 -14
- package/dist/core/calculation-result.js +209 -11
- package/dist/core/calculation-result.js.map +1 -1
- package/dist/core/canonical-json.d.ts +13 -8
- package/dist/core/canonical-json.js +34 -15
- package/dist/core/canonical-json.js.map +1 -1
- package/dist/core/configuration-error.d.ts +5 -4
- package/dist/core/configuration-error.js +5 -3
- package/dist/core/configuration-error.js.map +1 -1
- package/dist/core/evidence-provenance.d.ts +12 -12
- package/dist/core/evidence-provenance.js +10 -9
- package/dist/core/evidence-provenance.js.map +1 -1
- package/dist/core/image-formation.d.ts +11 -10
- package/dist/core/image-formation.js +11 -9
- package/dist/core/image-formation.js.map +1 -1
- package/dist/core/owned-data.d.ts +9 -17
- package/dist/core/owned-data.js +9 -16
- package/dist/core/owned-data.js.map +1 -1
- package/dist/core/portable-math.d.ts +15 -0
- package/dist/core/portable-math.js +56 -0
- package/dist/core/portable-math.js.map +1 -0
- package/dist/core/record-validation.d.ts +48 -9
- package/dist/core/record-validation.js +93 -19
- package/dist/core/record-validation.js.map +1 -1
- package/dist/core/scientific-assurance.d.ts +16 -14
- package/dist/core/scientific-assurance.js +22 -18
- package/dist/core/scientific-assurance.js.map +1 -1
- package/dist/core/spectral-composition.d.ts +13 -14
- package/dist/core/spectral-composition.js +30 -27
- package/dist/core/spectral-composition.js.map +1 -1
- package/dist/core/spectral.d.ts +5 -6
- package/dist/core/spectral.js +9 -7
- package/dist/core/spectral.js.map +1 -1
- package/dist/core/validation.d.ts +3 -6
- package/dist/core/validation.js +3 -5
- package/dist/core/validation.js.map +1 -1
- package/dist/core/version.d.ts +6 -6
- package/dist/core/version.js +6 -5
- package/dist/core/version.js.map +1 -1
- package/dist/equipment/exposure-capabilities.d.ts +10 -10
- package/dist/equipment/exposure-capabilities.js +40 -30
- package/dist/equipment/exposure-capabilities.js.map +1 -1
- package/dist/equipment/generic-tier-assets.d.ts +13 -6
- package/dist/equipment/generic-tier-assets.js +34 -15
- package/dist/equipment/generic-tier-assets.js.map +1 -1
- package/dist/equipment/generic-tier-presets.d.ts +5 -6
- package/dist/equipment/generic-tier-presets.js +15 -13
- package/dist/equipment/generic-tier-presets.js.map +1 -1
- package/dist/equipment/iso-capabilities.d.ts +21 -22
- package/dist/equipment/iso-capabilities.js +49 -44
- package/dist/equipment/iso-capabilities.js.map +1 -1
- package/dist/equipment/metering-capabilities.d.ts +5 -6
- package/dist/equipment/metering-capabilities.js +22 -19
- package/dist/equipment/metering-capabilities.js.map +1 -1
- package/dist/equipment/release-capabilities.d.ts +3 -4
- package/dist/equipment/release-capabilities.js +18 -14
- package/dist/equipment/release-capabilities.js.map +1 -1
- package/dist/exposure/exposure-duration-control.d.ts +19 -17
- package/dist/exposure/exposure-duration-control.js +27 -23
- package/dist/exposure/exposure-duration-control.js.map +1 -1
- package/dist/exposure/exposure-mode-resolver.d.ts +42 -39
- package/dist/exposure/exposure-mode-resolver.js +127 -82
- package/dist/exposure/exposure-mode-resolver.js.map +1 -1
- package/dist/exposure/exposure.d.ts +17 -16
- package/dist/exposure/exposure.js +22 -15
- package/dist/exposure/exposure.js.map +1 -1
- package/dist/exposure/flash-ttl.d.ts +135 -0
- package/dist/exposure/flash-ttl.js +193 -0
- package/dist/exposure/flash-ttl.js.map +1 -0
- package/dist/exposure/flash.d.ts +144 -36
- package/dist/exposure/flash.js +259 -59
- package/dist/exposure/flash.js.map +1 -1
- package/dist/exposure/metering-scene-radiance.d.ts +10 -10
- package/dist/exposure/metering-scene-radiance.js +42 -23
- package/dist/exposure/metering-scene-radiance.js.map +1 -1
- package/dist/exposure/metering-target.d.ts +8 -8
- package/dist/exposure/metering-target.js +30 -20
- package/dist/exposure/metering-target.js.map +1 -1
- package/dist/exposure/metering-temporal.d.ts +16 -15
- package/dist/exposure/metering-temporal.js +41 -19
- package/dist/exposure/metering-temporal.js.map +1 -1
- package/dist/exposure/metering.d.ts +64 -17
- package/dist/exposure/metering.js +159 -30
- package/dist/exposure/metering.js.map +1 -1
- package/dist/exposure/program-line.d.ts +5 -5
- package/dist/exposure/program-line.js +20 -13
- package/dist/exposure/program-line.js.map +1 -1
- package/dist/facade/camera-preset.d.ts +8 -0
- package/dist/facade/camera-preset.js +102 -0
- package/dist/facade/camera-preset.js.map +1 -0
- package/dist/facade/chart-radiance-batch.d.ts +57 -0
- package/dist/facade/chart-radiance-batch.js +121 -0
- package/dist/facade/chart-radiance-batch.js.map +1 -0
- package/dist/facade/chart-scenes.d.ts +177 -0
- package/dist/facade/chart-scenes.js +232 -0
- package/dist/facade/chart-scenes.js.map +1 -0
- package/dist/facade/diffraction-provider.d.ts +30 -0
- package/dist/facade/diffraction-provider.js +127 -0
- package/dist/facade/diffraction-provider.js.map +1 -0
- package/dist/facade/host-yield.d.ts +7 -0
- package/dist/facade/host-yield.js +19 -0
- package/dist/facade/host-yield.js.map +1 -0
- package/dist/facade/scene-radiance.d.ts +117 -0
- package/dist/facade/scene-radiance.js +205 -0
- package/dist/facade/scene-radiance.js.map +1 -0
- package/dist/facade/simulate-capture.d.ts +363 -0
- package/dist/facade/simulate-capture.js +1281 -0
- package/dist/facade/simulate-capture.js.map +1 -0
- package/dist/gpu/chart-radiance-gpu.d.ts +17 -0
- package/dist/gpu/chart-radiance-gpu.js +176 -0
- package/dist/gpu/chart-radiance-gpu.js.map +1 -0
- package/dist/gpu/image-kernel-accelerator.d.ts +132 -0
- package/dist/gpu/image-kernel-accelerator.js +720 -0
- package/dist/gpu/image-kernel-accelerator.js.map +1 -0
- package/dist/gpu/image-kernel-execution.d.ts +92 -0
- package/dist/gpu/image-kernel-execution.js +84 -0
- package/dist/gpu/image-kernel-execution.js.map +1 -0
- package/dist/gpu/sensor-stage-gpu.d.ts +44 -0
- package/dist/gpu/sensor-stage-gpu.js +317 -0
- package/dist/gpu/sensor-stage-gpu.js.map +1 -0
- package/dist/gpu/temporal-sum-gpu.d.ts +23 -0
- package/dist/gpu/temporal-sum-gpu.js +150 -0
- package/dist/gpu/temporal-sum-gpu.js.map +1 -0
- package/dist/gpu/webgpu-runtime.d.ts +63 -0
- package/dist/gpu/webgpu-runtime.js +215 -0
- package/dist/gpu/webgpu-runtime.js.map +1 -0
- package/dist/gpu/wgsl-chart-kernel.d.ts +30 -0
- package/dist/gpu/wgsl-chart-kernel.js +165 -0
- package/dist/gpu/wgsl-chart-kernel.js.map +1 -0
- package/dist/gpu/wgsl-kernels.d.ts +53 -0
- package/dist/gpu/wgsl-kernels.js +365 -0
- package/dist/gpu/wgsl-kernels.js.map +1 -0
- package/dist/gpu/wgsl-sensor-kernel.d.ts +64 -0
- package/dist/gpu/wgsl-sensor-kernel.js +409 -0
- package/dist/gpu/wgsl-sensor-kernel.js.map +1 -0
- package/dist/index.d.ts +91 -25
- package/dist/index.js +60 -15
- package/dist/index.js.map +1 -1
- package/dist/motion/camera-rotation.d.ts +92 -40
- package/dist/motion/camera-rotation.js +84 -47
- package/dist/motion/camera-rotation.js.map +1 -1
- package/dist/motion/capture-rotation-inverse-mapping.d.ts +37 -34
- package/dist/motion/capture-rotation-inverse-mapping.js +32 -24
- package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -1
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts +39 -35
- package/dist/motion/capture-rotation-temporal-quadrature.js +37 -28
- package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -1
- package/dist/motion/capture-rotation-trajectory.d.ts +32 -28
- package/dist/motion/capture-rotation-trajectory.js +36 -26
- package/dist/motion/capture-rotation-trajectory.js.map +1 -1
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts +23 -21
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js +33 -14
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js.map +1 -1
- package/dist/motion/extended-object-projection.d.ts +19 -16
- package/dist/motion/extended-object-projection.js +38 -18
- package/dist/motion/extended-object-projection.js.map +1 -1
- package/dist/motion/projected-motion.d.ts +18 -17
- package/dist/motion/projected-motion.js +25 -17
- package/dist/motion/projected-motion.js.map +1 -1
- package/dist/motion/temporal-exposure-sum.d.ts +55 -0
- package/dist/motion/temporal-exposure-sum.js +141 -0
- package/dist/motion/temporal-exposure-sum.js.map +1 -0
- package/dist/motion/video-sequence.d.ts +111 -0
- package/dist/motion/video-sequence.js +179 -0
- package/dist/motion/video-sequence.js.map +1 -0
- package/dist/optics/aperture.d.ts +14 -15
- package/dist/optics/aperture.js +13 -11
- package/dist/optics/aperture.js.map +1 -1
- package/dist/optics/atmospheric-haze.d.ts +83 -0
- package/dist/optics/atmospheric-haze.js +113 -0
- package/dist/optics/atmospheric-haze.js.map +1 -0
- package/dist/optics/brown-conrady-distortion.d.ts +116 -0
- package/dist/optics/brown-conrady-distortion.js +291 -0
- package/dist/optics/brown-conrady-distortion.js.map +1 -0
- package/dist/optics/circle-of-confusion.d.ts +10 -10
- package/dist/optics/circle-of-confusion.js +15 -11
- package/dist/optics/circle-of-confusion.js.map +1 -1
- package/dist/optics/complex-pupil-psf.d.ts +64 -33
- package/dist/optics/complex-pupil-psf.js +190 -98
- package/dist/optics/complex-pupil-psf.js.map +1 -1
- package/dist/optics/depth-of-field.d.ts +25 -15
- package/dist/optics/depth-of-field.js +67 -27
- package/dist/optics/depth-of-field.js.map +1 -1
- package/dist/optics/diffraction-psf-profile.d.ts +118 -0
- package/dist/optics/diffraction-psf-profile.js +252 -0
- package/dist/optics/diffraction-psf-profile.js.map +1 -0
- package/dist/optics/diffraction.d.ts +14 -13
- package/dist/optics/diffraction.js +14 -10
- package/dist/optics/diffraction.js.map +1 -1
- package/dist/optics/focus-breathing.d.ts +88 -27
- package/dist/optics/focus-breathing.js +114 -23
- package/dist/optics/focus-breathing.js.map +1 -1
- package/dist/optics/focus-state.d.ts +18 -18
- package/dist/optics/focus-state.js +21 -15
- package/dist/optics/focus-state.js.map +1 -1
- package/dist/optics/front-of-lens-filter.d.ts +45 -14
- package/dist/optics/front-of-lens-filter.js +259 -88
- package/dist/optics/front-of-lens-filter.js.map +1 -1
- package/dist/optics/illumination-vignetting.d.ts +16 -17
- package/dist/optics/illumination-vignetting.js +40 -17
- package/dist/optics/illumination-vignetting.js.map +1 -1
- package/dist/optics/irradiance-convolution.d.ts +59 -0
- package/dist/optics/irradiance-convolution.js +138 -0
- package/dist/optics/irradiance-convolution.js.map +1 -0
- package/dist/optics/lateral-chromatic-aberration.d.ts +33 -30
- package/dist/optics/lateral-chromatic-aberration.js +33 -23
- package/dist/optics/lateral-chromatic-aberration.js.map +1 -1
- package/dist/optics/lens-psf-kernels.d.ts +89 -0
- package/dist/optics/lens-psf-kernels.js +175 -0
- package/dist/optics/lens-psf-kernels.js.map +1 -0
- package/dist/optics/lens-psf-profile.d.ts +78 -46
- package/dist/optics/lens-psf-profile.js +335 -124
- package/dist/optics/lens-psf-profile.js.map +1 -1
- package/dist/optics/longitudinal-chromatic-aberration.d.ts +102 -0
- package/dist/optics/longitudinal-chromatic-aberration.js +210 -0
- package/dist/optics/longitudinal-chromatic-aberration.js.map +1 -0
- package/dist/optics/polygon-diffraction.d.ts +80 -23
- package/dist/optics/polygon-diffraction.js +130 -25
- package/dist/optics/polygon-diffraction.js.map +1 -1
- package/dist/optics/profile-contract.d.ts +5 -6
- package/dist/optics/profile-contract.js +14 -11
- package/dist/optics/profile-contract.js.map +1 -1
- package/dist/optics/psf-foundation.d.ts +23 -23
- package/dist/optics/psf-foundation.js +24 -21
- package/dist/optics/psf-foundation.js.map +1 -1
- package/dist/optics/pupil-vignetting.d.ts +118 -0
- package/dist/optics/pupil-vignetting.js +264 -0
- package/dist/optics/pupil-vignetting.js.map +1 -0
- package/dist/optics/radial-distortion.d.ts +34 -33
- package/dist/optics/radial-distortion.js +37 -30
- package/dist/optics/radial-distortion.js.map +1 -1
- package/dist/optics/scene-to-sensor-irradiance.d.ts +47 -33
- package/dist/optics/scene-to-sensor-irradiance.js +73 -45
- package/dist/optics/scene-to-sensor-irradiance.js.map +1 -1
- package/dist/optics/scene-to-sensor-quadrature.d.ts +23 -18
- package/dist/optics/scene-to-sensor-quadrature.js +16 -11
- package/dist/optics/scene-to-sensor-quadrature.js.map +1 -1
- package/dist/optics/sensor-aperture-rays.d.ts +20 -4
- package/dist/optics/sensor-aperture-rays.js +32 -14
- package/dist/optics/sensor-aperture-rays.js.map +1 -1
- package/dist/optics/sensor-environment-query.d.ts +81 -16
- package/dist/optics/sensor-environment-query.js +145 -12
- package/dist/optics/sensor-environment-query.js.map +1 -1
- package/dist/optics/sensor-psf-quadrature.d.ts +12 -10
- package/dist/optics/sensor-psf-quadrature.js +18 -11
- package/dist/optics/sensor-psf-quadrature.js.map +1 -1
- package/dist/optics/sensor-psf-support.d.ts +8 -6
- package/dist/optics/sensor-psf-support.js +8 -5
- package/dist/optics/sensor-psf-support.js.map +1 -1
- package/dist/optics/stray-light.d.ts +22 -19
- package/dist/optics/stray-light.js +18 -12
- package/dist/optics/stray-light.js.map +1 -1
- package/dist/optics/thin-lens.d.ts +10 -9
- package/dist/optics/thin-lens.js +12 -8
- package/dist/optics/thin-lens.js.map +1 -1
- package/dist/optics/zernike-wavefront.d.ts +154 -0
- package/dist/optics/zernike-wavefront.js +352 -0
- package/dist/optics/zernike-wavefront.js.map +1 -0
- package/dist/output/capture-corrected-sdr.d.ts +16 -8
- package/dist/output/capture-corrected-sdr.js +16 -8
- package/dist/output/capture-corrected-sdr.js.map +1 -1
- package/dist/output/capture-geometry.d.ts +34 -36
- package/dist/output/capture-geometry.js +52 -32
- package/dist/output/capture-geometry.js.map +1 -1
- package/dist/output/capture-sdr.d.ts +7 -6
- package/dist/output/capture-sdr.js +11 -8
- package/dist/output/capture-sdr.js.map +1 -1
- package/dist/output/crop.d.ts +22 -6
- package/dist/output/crop.js +40 -6
- package/dist/output/crop.js.map +1 -1
- package/dist/output/geometric-transforms.d.ts +60 -23
- package/dist/output/geometric-transforms.js +111 -24
- package/dist/output/geometric-transforms.js.map +1 -1
- package/dist/output/lens-corrections.d.ts +27 -19
- package/dist/output/lens-corrections.js +29 -13
- package/dist/output/lens-corrections.js.map +1 -1
- package/dist/output/native-capture-sdr.d.ts +71 -16
- package/dist/output/native-capture-sdr.js +190 -33
- package/dist/output/native-capture-sdr.js.map +1 -1
- package/dist/output/png-encoder.d.ts +65 -0
- package/dist/output/png-encoder.js +461 -0
- package/dist/output/png-encoder.js.map +1 -0
- package/dist/output/print-contrast-reference.d.ts +10 -9
- package/dist/output/print-contrast-reference.js +10 -8
- package/dist/output/print-contrast-reference.js.map +1 -1
- package/dist/output/print-detail.d.ts +18 -17
- package/dist/output/print-detail.js +12 -10
- package/dist/output/print-detail.js.map +1 -1
- package/dist/output/print-jpeg.d.ts +26 -5
- package/dist/output/print-jpeg.js +117 -50
- package/dist/output/print-jpeg.js.map +1 -1
- package/dist/output/print-plan.d.ts +19 -19
- package/dist/output/print-plan.js +11 -10
- package/dist/output/print-plan.js.map +1 -1
- package/dist/output/print-region-statistics.d.ts +14 -15
- package/dist/output/print-region-statistics.js +11 -11
- package/dist/output/print-region-statistics.js.map +1 -1
- package/dist/output/sdr-rendering.d.ts +48 -10
- package/dist/output/sdr-rendering.js +114 -25
- package/dist/output/sdr-rendering.js.map +1 -1
- package/dist/output/subject-framing-crop.d.ts +6 -10
- package/dist/output/subject-framing-crop.js +23 -13
- package/dist/output/subject-framing-crop.js.map +1 -1
- package/dist/processing/demosaic.d.ts +90 -0
- package/dist/processing/demosaic.js +275 -0
- package/dist/processing/demosaic.js.map +1 -0
- package/dist/processing/denoise.d.ts +68 -0
- package/dist/processing/denoise.js +214 -0
- package/dist/processing/denoise.js.map +1 -0
- package/dist/processing/focus-stacking.d.ts +17 -0
- package/dist/processing/focus-stacking.js +80 -0
- package/dist/processing/focus-stacking.js.map +1 -0
- package/dist/processing/hdr.d.ts +54 -0
- package/dist/processing/hdr.js +172 -0
- package/dist/processing/hdr.js.map +1 -0
- package/dist/processing/image-ops.d.ts +66 -0
- package/dist/processing/image-ops.js +192 -0
- package/dist/processing/image-ops.js.map +1 -0
- package/dist/processing/panorama.d.ts +51 -0
- package/dist/processing/panorama.js +305 -0
- package/dist/processing/panorama.js.map +1 -0
- package/dist/processing/processing-task.d.ts +85 -0
- package/dist/processing/processing-task.js +164 -0
- package/dist/processing/processing-task.js.map +1 -0
- package/dist/processing/tone-mapping.d.ts +69 -0
- package/dist/processing/tone-mapping.js +310 -0
- package/dist/processing/tone-mapping.js.map +1 -0
- package/dist/schema/camera.d.ts +5 -4
- package/dist/schema/illumination-spectral.d.ts +13 -19
- package/dist/schema/illumination-spectral.js +23 -19
- package/dist/schema/illumination-spectral.js.map +1 -1
- package/dist/schema/illumination-temporal.d.ts +12 -15
- package/dist/schema/illumination-temporal.js +43 -28
- package/dist/schema/illumination-temporal.js.map +1 -1
- package/dist/schema/illumination.d.ts +5 -4
- package/dist/schema/illumination.js +55 -20
- package/dist/schema/illumination.js.map +1 -1
- package/dist/schema/scene-radiance-temporal.d.ts +9 -11
- package/dist/schema/scene-radiance-temporal.js +26 -23
- package/dist/schema/scene-radiance-temporal.js.map +1 -1
- package/dist/schema/scene-radiance.d.ts +17 -17
- package/dist/schema/scene-radiance.js +56 -34
- package/dist/schema/scene-radiance.js.map +1 -1
- package/dist/schema/scene.d.ts +14 -13
- package/dist/schema/validation.d.ts +0 -1
- package/dist/schema/validation.js +17 -15
- package/dist/schema/validation.js.map +1 -1
- package/dist/sensor/accumulated-charge.d.ts +45 -64
- package/dist/sensor/accumulated-charge.js +41 -47
- package/dist/sensor/accumulated-charge.js.map +1 -1
- package/dist/sensor/architecture.d.ts +22 -25
- package/dist/sensor/architecture.js +17 -16
- package/dist/sensor/architecture.js.map +1 -1
- package/dist/sensor/camera-saturation-capacity.d.ts +21 -28
- package/dist/sensor/camera-saturation-capacity.js +36 -34
- package/dist/sensor/camera-saturation-capacity.js.map +1 -1
- package/dist/sensor/capture-color-sampling-binding.d.ts +46 -51
- package/dist/sensor/capture-color-sampling-binding.js +39 -41
- package/dist/sensor/capture-color-sampling-binding.js.map +1 -1
- package/dist/sensor/capture-mode-timing.d.ts +8 -9
- package/dist/sensor/capture-mode-timing.js +24 -21
- package/dist/sensor/capture-mode-timing.js.map +1 -1
- package/dist/sensor/capture-mode.d.ts +28 -30
- package/dist/sensor/capture-mode.js +33 -31
- package/dist/sensor/capture-mode.js.map +1 -1
- package/dist/sensor/color-sampling.d.ts +30 -33
- package/dist/sensor/color-sampling.js +32 -37
- package/dist/sensor/color-sampling.js.map +1 -1
- package/dist/sensor/constant-rate-temporal-integration.d.ts +19 -23
- package/dist/sensor/constant-rate-temporal-integration.js +28 -26
- package/dist/sensor/constant-rate-temporal-integration.js.map +1 -1
- package/dist/sensor/dark-current.d.ts +53 -49
- package/dist/sensor/dark-current.js +87 -46
- package/dist/sensor/dark-current.js.map +1 -1
- package/dist/sensor/environment-photo-signal.d.ts +71 -30
- package/dist/sensor/environment-photo-signal.js +127 -46
- package/dist/sensor/environment-photo-signal.js.map +1 -1
- package/dist/sensor/eqe-electron-rate.d.ts +14 -13
- package/dist/sensor/eqe-electron-rate.js +34 -14
- package/dist/sensor/eqe-electron-rate.js.map +1 -1
- package/dist/sensor/eqe-local-exposure.d.ts +24 -24
- package/dist/sensor/eqe-local-exposure.js +15 -11
- package/dist/sensor/eqe-local-exposure.js.map +1 -1
- package/dist/sensor/eqe-temporal-exposure.d.ts +11 -11
- package/dist/sensor/eqe-temporal-exposure.js +15 -10
- package/dist/sensor/eqe-temporal-exposure.js.map +1 -1
- package/dist/sensor/exposure-window.d.ts +48 -34
- package/dist/sensor/exposure-window.js +77 -36
- package/dist/sensor/exposure-window.js.map +1 -1
- package/dist/sensor/fixed-pattern-noise.d.ts +108 -0
- package/dist/sensor/fixed-pattern-noise.js +166 -0
- package/dist/sensor/fixed-pattern-noise.js.map +1 -0
- package/dist/sensor/iso-gain.d.ts +44 -0
- package/dist/sensor/iso-gain.js +119 -0
- package/dist/sensor/iso-gain.js.map +1 -0
- package/dist/sensor/iso-signal-chain.d.ts +25 -48
- package/dist/sensor/iso-signal-chain.js +52 -66
- package/dist/sensor/iso-signal-chain.js.map +1 -1
- package/dist/sensor/local-exposure-binding.d.ts +21 -21
- package/dist/sensor/local-exposure-binding.js +22 -18
- package/dist/sensor/local-exposure-binding.js.map +1 -1
- package/dist/sensor/optical-stack.d.ts +36 -40
- package/dist/sensor/optical-stack.js +34 -37
- package/dist/sensor/optical-stack.js.map +1 -1
- package/dist/sensor/photon-energy.d.ts +22 -28
- package/dist/sensor/photon-energy.js +42 -34
- package/dist/sensor/photon-energy.js.map +1 -1
- package/dist/sensor/physical-charge-capacity.d.ts +20 -30
- package/dist/sensor/physical-charge-capacity.js +35 -36
- package/dist/sensor/physical-charge-capacity.js.map +1 -1
- package/dist/sensor/pixel-pitch.d.ts +2 -3
- package/dist/sensor/pixel-pitch.js +4 -2
- package/dist/sensor/pixel-pitch.js.map +1 -1
- package/dist/sensor/radiometry-readiness.d.ts +13 -15
- package/dist/sensor/radiometry-readiness.js +20 -17
- package/dist/sensor/radiometry-readiness.js.map +1 -1
- package/dist/sensor/raw-readout.d.ts +173 -83
- package/dist/sensor/raw-readout.js +425 -160
- package/dist/sensor/raw-readout.js.map +1 -1
- package/dist/sensor/raw-reconstruction.d.ts +112 -44
- package/dist/sensor/raw-reconstruction.js +200 -47
- package/dist/sensor/raw-reconstruction.js.map +1 -1
- package/dist/sensor/readout-exposure-linkage.d.ts +103 -34
- package/dist/sensor/readout-exposure-linkage.js +125 -27
- package/dist/sensor/readout-exposure-linkage.js.map +1 -1
- package/dist/sensor/readout-timing.d.ts +43 -44
- package/dist/sensor/readout-timing.js +38 -30
- package/dist/sensor/readout-timing.js.map +1 -1
- package/dist/sensor/response-application-compatibility.d.ts +21 -28
- package/dist/sensor/response-application-compatibility.js +35 -34
- package/dist/sensor/response-application-compatibility.js.map +1 -1
- package/dist/sensor/response-operating-range.d.ts +26 -35
- package/dist/sensor/response-operating-range.js +40 -39
- package/dist/sensor/response-operating-range.js.map +1 -1
- package/dist/sensor/responsivity-photocurrent.d.ts +21 -29
- package/dist/sensor/responsivity-photocurrent.js +57 -40
- package/dist/sensor/responsivity-photocurrent.js.map +1 -1
- package/dist/sensor/sampling-aperture.d.ts +21 -25
- package/dist/sensor/sampling-aperture.js +29 -28
- package/dist/sensor/sampling-aperture.js.map +1 -1
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts +14 -12
- package/dist/sensor/scene-eqe-temporal-exposure.js +13 -8
- package/dist/sensor/scene-eqe-temporal-exposure.js.map +1 -1
- package/dist/sensor/sensor-geometry.d.ts +28 -32
- package/dist/sensor/sensor-geometry.js +35 -20
- package/dist/sensor/sensor-geometry.js.map +1 -1
- package/dist/sensor/signal-noise.d.ts +14 -16
- package/dist/sensor/signal-noise.js +15 -13
- package/dist/sensor/signal-noise.js.map +1 -1
- package/dist/sensor/spatial-sample-reduction.d.ts +45 -60
- package/dist/sensor/spatial-sample-reduction.js +39 -48
- package/dist/sensor/spatial-sample-reduction.js.map +1 -1
- package/dist/sensor/spatial-sampling-quadrature.d.ts +46 -54
- package/dist/sensor/spatial-sampling-quadrature.js +31 -36
- package/dist/sensor/spatial-sampling-quadrature.js.map +1 -1
- package/dist/sensor/spatio-spectral-reduction.d.ts +32 -42
- package/dist/sensor/spatio-spectral-reduction.js +24 -29
- package/dist/sensor/spatio-spectral-reduction.js.map +1 -1
- package/dist/sensor/spectral-coverage.d.ts +6 -9
- package/dist/sensor/spectral-coverage.js +9 -6
- package/dist/sensor/spectral-coverage.js.map +1 -1
- package/dist/sensor/spectral-quadrature.d.ts +46 -60
- package/dist/sensor/spectral-quadrature.js +38 -48
- package/dist/sensor/spectral-quadrature.js.map +1 -1
- package/dist/sensor/spectral-response.d.ts +53 -41
- package/dist/sensor/spectral-response.js +80 -47
- package/dist/sensor/spectral-response.js.map +1 -1
- package/dist/sensor/stochastic-seed.d.ts +50 -0
- package/dist/sensor/stochastic-seed.js +123 -0
- package/dist/sensor/stochastic-seed.js.map +1 -0
- package/dist/sensor/temporal-eqe-sum.d.ts +2 -4
- package/dist/sensor/temporal-eqe-sum.js +5 -6
- package/dist/sensor/temporal-eqe-sum.js.map +1 -1
- package/dist/sensor/temporal-photo-signal.d.ts +5 -6
- package/dist/sensor/temporal-photo-signal.js +11 -10
- package/dist/sensor/temporal-photo-signal.js.map +1 -1
- package/dist/sensor/temporal-sample-binding.d.ts +1 -2
- package/dist/sensor/temporal-sample-binding.js +3 -3
- package/dist/sensor/temporal-sample-binding.js.map +1 -1
- package/dist/simulation/poc-simulation.d.ts +16 -16
- package/dist/simulation/poc-simulation.js +20 -15
- package/dist/simulation/poc-simulation.js.map +1 -1
- package/dist/stabilization/camera-shake.d.ts +42 -18
- package/dist/stabilization/camera-shake.js +43 -20
- package/dist/stabilization/camera-shake.js.map +1 -1
- package/dist/stabilization/system.d.ts +44 -41
- package/dist/stabilization/system.js +196 -108
- package/dist/stabilization/system.js.map +1 -1
- package/docs/AGENT_GUIDE.md +183 -0
- package/docs/API_REFERENCE.md +777 -2
- package/docs/QUICK_START.md +663 -0
- package/docs/USAGE.md +1719 -714
- package/docs/api/camera-equivalent-focal-length.md +6 -7
- package/docs/api/camera-field-of-view.md +16 -8
- package/docs/api/camera-lens-projection.md +246 -0
- package/docs/api/camera-projected-object-size.md +6 -5
- package/docs/api/capture-capture-export-metadata.md +10 -10
- package/docs/api/capture-dng-import.md +134 -0
- package/docs/api/capture-environment-raw-producer.md +17 -11
- package/docs/api/capture-export-jpeg.md +16 -0
- package/docs/api/capture-focus-control.md +25 -47
- package/docs/api/capture-linear-encoding.md +21 -12
- package/docs/api/capture-lossless-jpeg.md +49 -0
- package/docs/api/capture-native-environment-optical-stage.md +75 -0
- package/docs/api/capture-native-environment-raw.md +161 -4
- package/docs/api/capture-native-raw-development.md +69 -8
- package/docs/api/capture-native-raw-dng.md +84 -0
- package/docs/api/capture-native-raw.md +21 -10
- package/docs/api/capture-packed-sensor-raw.md +156 -0
- package/docs/api/capture-photographic-export.md +69 -31
- package/docs/api/capture-raw-frame-reconstruction.md +8 -8
- package/docs/api/capture-raw-white-level.md +37 -0
- package/docs/api/capture-release-sequence.md +6 -7
- package/docs/api/capture-sensor-raw-frame.md +6 -6
- package/docs/api/capture-sensor-raw-producer.md +17 -11
- package/docs/api/capture-simulated-capture.md +15 -15
- package/docs/api/color-camera-color-matrix.md +103 -0
- package/docs/api/color-capture-color.md +22 -11
- package/docs/api/color-chromatic-adaptation.md +82 -0
- package/docs/api/color-color-difference.md +134 -0
- package/docs/api/color-color-matching-functions.md +259 -0
- package/docs/api/color-colorimetry-math.md +54 -0
- package/docs/api/color-gamut-mapping.md +72 -0
- package/docs/api/color-illuminants.md +280 -0
- package/docs/api/color-rgb-color-spaces.md +151 -0
- package/docs/api/color-sensor-color-development.md +27 -0
- package/docs/api/color-srgb-icc.md +2 -4
- package/docs/api/color-white-balance.md +95 -19
- package/docs/api/composition-image-formation-plan.md +124 -95
- package/docs/api/composition-plan-consumer.md +7 -7
- package/docs/api/core-calculation-result.md +18 -14
- package/docs/api/core-configuration-error.md +1 -1
- package/docs/api/core-image-formation.md +7 -7
- package/docs/api/core-scientific-assurance.md +12 -10
- package/docs/api/core-spectral-composition.md +14 -14
- package/docs/api/core-spectral.md +6 -6
- package/docs/api/core-validation.md +3 -3
- package/docs/api/core-version.md +7 -6
- package/docs/api/equipment-exposure-capabilities.md +11 -10
- package/docs/api/equipment-generic-tier-assets.md +7 -2
- package/docs/api/equipment-generic-tier-presets.md +6 -6
- package/docs/api/equipment-iso-capabilities.md +18 -18
- package/docs/api/equipment-metering-capabilities.md +6 -6
- package/docs/api/equipment-release-capabilities.md +4 -4
- package/docs/api/exports.json +2253 -3
- package/docs/api/exposure-exposure-duration-control.md +9 -9
- package/docs/api/exposure-exposure-mode-resolver.md +35 -31
- package/docs/api/exposure-exposure.md +10 -10
- package/docs/api/exposure-flash-ttl.md +182 -0
- package/docs/api/exposure-flash.md +183 -28
- package/docs/api/exposure-metering-scene-radiance.md +11 -10
- package/docs/api/exposure-metering-target.md +9 -8
- package/docs/api/exposure-metering-temporal.md +8 -8
- package/docs/api/exposure-metering.md +69 -9
- package/docs/api/exposure-program-line.md +6 -5
- package/docs/api/facade-chart-radiance-batch.md +96 -0
- package/docs/api/facade-chart-scenes.md +240 -0
- package/docs/api/facade-scene-radiance.md +122 -0
- package/docs/api/facade-simulate-capture.md +397 -0
- package/docs/api/gpu-image-kernel-accelerator.md +157 -0
- package/docs/api/gpu-image-kernel-execution.md +152 -0
- package/docs/api/motion-camera-rotation.md +43 -26
- package/docs/api/motion-capture-rotation-inverse-mapping.md +24 -23
- package/docs/api/motion-capture-rotation-temporal-quadrature.md +22 -22
- package/docs/api/motion-capture-rotation-trajectory.md +15 -15
- package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +15 -14
- package/docs/api/motion-extended-object-projection.md +10 -8
- package/docs/api/motion-projected-motion.md +8 -8
- package/docs/api/motion-temporal-exposure-sum.md +98 -0
- package/docs/api/motion-video-sequence.md +159 -0
- package/docs/api/optics-aperture.md +8 -8
- package/docs/api/optics-atmospheric-haze.md +104 -0
- package/docs/api/optics-brown-conrady-distortion.md +123 -0
- package/docs/api/optics-circle-of-confusion.md +5 -4
- package/docs/api/optics-complex-pupil-psf.md +57 -16
- package/docs/api/optics-depth-of-field.md +12 -6
- package/docs/api/optics-diffraction-psf-profile.md +96 -0
- package/docs/api/optics-diffraction.md +8 -7
- package/docs/api/optics-focus-breathing.md +104 -16
- package/docs/api/optics-focus-state.md +9 -10
- package/docs/api/optics-front-of-lens-filter.md +72 -14
- package/docs/api/optics-illumination-vignetting.md +10 -10
- package/docs/api/optics-irradiance-convolution.md +95 -0
- package/docs/api/optics-lateral-chromatic-aberration.md +22 -21
- package/docs/api/optics-lens-psf-kernels.md +72 -0
- package/docs/api/optics-lens-psf-profile.md +48 -26
- package/docs/api/optics-longitudinal-chromatic-aberration.md +128 -0
- package/docs/api/optics-polygon-diffraction.md +78 -13
- package/docs/api/optics-profile-contract.md +4 -4
- package/docs/api/optics-psf-foundation.md +12 -12
- package/docs/api/optics-pupil-vignetting.md +132 -0
- package/docs/api/optics-radial-distortion.md +12 -12
- package/docs/api/optics-scene-to-sensor-irradiance.md +25 -14
- package/docs/api/optics-scene-to-sensor-quadrature.md +15 -12
- package/docs/api/optics-sensor-aperture-rays.md +3 -2
- package/docs/api/optics-sensor-environment-query.md +52 -9
- package/docs/api/optics-sensor-psf-quadrature.md +13 -10
- package/docs/api/optics-stray-light.md +12 -11
- package/docs/api/optics-thin-lens.md +4 -3
- package/docs/api/optics-zernike-wavefront.md +229 -0
- package/docs/api/output-capture-corrected-sdr.md +10 -7
- package/docs/api/output-capture-geometry.md +35 -36
- package/docs/api/output-capture-sdr.md +4 -4
- package/docs/api/output-crop.md +7 -4
- package/docs/api/output-geometric-transforms.md +65 -19
- package/docs/api/output-lens-corrections.md +17 -15
- package/docs/api/output-native-capture-sdr.md +26 -13
- package/docs/api/output-png-encoder.md +105 -0
- package/docs/api/output-print-contrast-reference.md +8 -8
- package/docs/api/output-print-detail.md +14 -14
- package/docs/api/output-print-jpeg.md +22 -5
- package/docs/api/output-print-plan.md +18 -18
- package/docs/api/output-print-region-statistics.md +14 -14
- package/docs/api/output-sdr-rendering.md +52 -10
- package/docs/api/output-subject-framing-crop.md +5 -6
- package/docs/api/processing-demosaic.md +120 -0
- package/docs/api/processing-denoise.md +148 -0
- package/docs/api/processing-focus-stacking.md +41 -0
- package/docs/api/processing-hdr.md +113 -0
- package/docs/api/processing-panorama.md +82 -0
- package/docs/api/processing-processing-task.md +107 -0
- package/docs/api/processing-tone-mapping.md +142 -0
- package/docs/api/schema-camera.md +6 -4
- package/docs/api/schema-illumination-spectral.md +10 -11
- package/docs/api/schema-illumination-temporal.md +13 -15
- package/docs/api/schema-illumination.md +4 -4
- package/docs/api/schema-scene-radiance-temporal.md +10 -11
- package/docs/api/schema-scene-radiance.md +18 -17
- package/docs/api/schema-scene.md +9 -9
- package/docs/api/schema-validation.md +1 -1
- package/docs/api/sensor-accumulated-charge.md +12 -20
- package/docs/api/sensor-architecture.md +15 -16
- package/docs/api/sensor-camera-saturation-capacity.md +9 -11
- package/docs/api/sensor-capture-color-sampling-binding.md +47 -51
- package/docs/api/sensor-capture-mode-timing.md +9 -9
- package/docs/api/sensor-capture-mode.md +29 -30
- package/docs/api/sensor-color-sampling.md +31 -33
- package/docs/api/sensor-constant-rate-temporal-integration.md +10 -11
- package/docs/api/sensor-dark-current.md +30 -14
- package/docs/api/sensor-environment-photo-signal.md +13 -6
- package/docs/api/sensor-eqe-electron-rate.md +9 -8
- package/docs/api/sensor-eqe-local-exposure.md +18 -17
- package/docs/api/sensor-eqe-temporal-exposure.md +12 -11
- package/docs/api/sensor-exposure-window.md +24 -24
- package/docs/api/sensor-fixed-pattern-noise.md +104 -0
- package/docs/api/sensor-iso-gain.md +63 -0
- package/docs/api/sensor-iso-signal-chain.md +13 -22
- package/docs/api/sensor-local-exposure-binding.md +12 -13
- package/docs/api/sensor-optical-stack.md +37 -40
- package/docs/api/sensor-photon-energy.md +10 -11
- package/docs/api/sensor-physical-charge-capacity.md +8 -13
- package/docs/api/sensor-pixel-pitch.md +1 -1
- package/docs/api/sensor-radiometry-readiness.md +9 -9
- package/docs/api/sensor-raw-readout.md +118 -52
- package/docs/api/sensor-raw-reconstruction.md +97 -20
- package/docs/api/sensor-readout-exposure-linkage.md +120 -24
- package/docs/api/sensor-readout-timing.md +33 -35
- package/docs/api/sensor-response-application-compatibility.md +9 -11
- package/docs/api/sensor-response-operating-range.md +14 -18
- package/docs/api/sensor-responsivity-photocurrent.md +9 -12
- package/docs/api/sensor-sampling-aperture.md +22 -25
- package/docs/api/sensor-scene-eqe-temporal-exposure.md +9 -8
- package/docs/api/sensor-sensor-geometry.md +23 -24
- package/docs/api/sensor-signal-noise.md +10 -10
- package/docs/api/sensor-spatial-sample-reduction.md +27 -30
- package/docs/api/sensor-spatial-sampling-quadrature.md +37 -39
- package/docs/api/sensor-spatio-spectral-reduction.md +27 -29
- package/docs/api/sensor-spectral-coverage.md +5 -5
- package/docs/api/sensor-spectral-quadrature.md +33 -35
- package/docs/api/sensor-spectral-response.md +28 -16
- package/docs/api/sensor-temporal-photo-signal.md +6 -6
- package/docs/api/simulation-poc-simulation.md +17 -16
- package/docs/api/stabilization-camera-shake.md +29 -10
- package/docs/api/stabilization-system.md +25 -21
- package/docs/examples/production-request.json +3821 -2157
- package/docs/examples/simulate-capture.mjs +14 -0
- package/llms.txt +35 -0
- package/package.json +32 -11
- package/AGENTS.md +0 -674
- package/CONTRIBUTING.md +0 -76
- package/DCO +0 -33
- package/dist/camera/equivalent-focal-length.d.ts.map +0 -1
- package/dist/camera/field-of-view.d.ts.map +0 -1
- package/dist/camera/projected-object-size.d.ts.map +0 -1
- package/dist/capture/capture-export-metadata.d.ts.map +0 -1
- package/dist/capture/environment-raw-producer.d.ts.map +0 -1
- package/dist/capture/export-jpeg.d.ts.map +0 -1
- package/dist/capture/export-tiff.d.ts.map +0 -1
- package/dist/capture/focus-control.d.ts.map +0 -1
- package/dist/capture/linear-encoding.d.ts.map +0 -1
- package/dist/capture/native-environment-raw.d.ts.map +0 -1
- package/dist/capture/native-raw-development.d.ts.map +0 -1
- package/dist/capture/native-raw.d.ts.map +0 -1
- package/dist/capture/photographic-export.d.ts.map +0 -1
- package/dist/capture/raw-frame-limits.d.ts.map +0 -1
- package/dist/capture/raw-frame-reconstruction.d.ts.map +0 -1
- package/dist/capture/release-sequence.d.ts.map +0 -1
- package/dist/capture/sensor-raw-frame.d.ts.map +0 -1
- package/dist/capture/sensor-raw-producer.d.ts.map +0 -1
- package/dist/capture/simulated-capture.d.ts.map +0 -1
- package/dist/color/capture-color.d.ts.map +0 -1
- package/dist/color/sensor-color-development.d.ts.map +0 -1
- package/dist/color/srgb-icc.d.ts.map +0 -1
- package/dist/color/srgb-transfer.d.ts.map +0 -1
- package/dist/color/white-balance.d.ts.map +0 -1
- package/dist/composition/image-formation-plan.d.ts.map +0 -1
- package/dist/composition/plan-consumer.d.ts.map +0 -1
- package/dist/core/calculation-result.d.ts.map +0 -1
- package/dist/core/canonical-json.d.ts.map +0 -1
- package/dist/core/configuration-error.d.ts.map +0 -1
- package/dist/core/evidence-provenance.d.ts.map +0 -1
- package/dist/core/image-formation.d.ts.map +0 -1
- package/dist/core/owned-data.d.ts.map +0 -1
- package/dist/core/record-validation.d.ts.map +0 -1
- package/dist/core/scientific-assurance.d.ts.map +0 -1
- package/dist/core/spectral-composition.d.ts.map +0 -1
- package/dist/core/spectral.d.ts.map +0 -1
- package/dist/core/validation.d.ts.map +0 -1
- package/dist/core/version.d.ts.map +0 -1
- package/dist/equipment/exposure-capabilities.d.ts.map +0 -1
- package/dist/equipment/generic-tier-assets.d.ts.map +0 -1
- package/dist/equipment/generic-tier-presets.d.ts.map +0 -1
- package/dist/equipment/iso-capabilities.d.ts.map +0 -1
- package/dist/equipment/metering-capabilities.d.ts.map +0 -1
- package/dist/equipment/release-capabilities.d.ts.map +0 -1
- package/dist/exposure/exposure-duration-control.d.ts.map +0 -1
- package/dist/exposure/exposure-mode-resolver.d.ts.map +0 -1
- package/dist/exposure/exposure.d.ts.map +0 -1
- package/dist/exposure/flash.d.ts.map +0 -1
- package/dist/exposure/metering-scene-radiance.d.ts.map +0 -1
- package/dist/exposure/metering-target.d.ts.map +0 -1
- package/dist/exposure/metering-temporal.d.ts.map +0 -1
- package/dist/exposure/metering.d.ts.map +0 -1
- package/dist/exposure/program-line.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/motion/camera-rotation.d.ts.map +0 -1
- package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +0 -1
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +0 -1
- package/dist/motion/capture-rotation-trajectory.d.ts.map +0 -1
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts.map +0 -1
- package/dist/motion/extended-object-projection.d.ts.map +0 -1
- package/dist/motion/projected-motion.d.ts.map +0 -1
- package/dist/optics/aperture.d.ts.map +0 -1
- package/dist/optics/circle-of-confusion.d.ts.map +0 -1
- package/dist/optics/complex-pupil-psf.d.ts.map +0 -1
- package/dist/optics/depth-of-field.d.ts.map +0 -1
- package/dist/optics/diffraction.d.ts.map +0 -1
- package/dist/optics/focus-breathing.d.ts.map +0 -1
- package/dist/optics/focus-state.d.ts.map +0 -1
- package/dist/optics/front-of-lens-filter.d.ts.map +0 -1
- package/dist/optics/illumination-vignetting.d.ts.map +0 -1
- package/dist/optics/lateral-chromatic-aberration.d.ts.map +0 -1
- package/dist/optics/lens-psf-profile.d.ts.map +0 -1
- package/dist/optics/polygon-diffraction.d.ts.map +0 -1
- package/dist/optics/profile-contract.d.ts.map +0 -1
- package/dist/optics/psf-foundation.d.ts.map +0 -1
- package/dist/optics/radial-distortion.d.ts.map +0 -1
- package/dist/optics/scene-to-sensor-irradiance.d.ts.map +0 -1
- package/dist/optics/scene-to-sensor-quadrature.d.ts.map +0 -1
- package/dist/optics/sensor-aperture-rays.d.ts.map +0 -1
- package/dist/optics/sensor-environment-query.d.ts.map +0 -1
- package/dist/optics/sensor-psf-quadrature.d.ts.map +0 -1
- package/dist/optics/sensor-psf-support.d.ts.map +0 -1
- package/dist/optics/stray-light.d.ts.map +0 -1
- package/dist/optics/thin-lens.d.ts.map +0 -1
- package/dist/output/capture-corrected-sdr.d.ts.map +0 -1
- package/dist/output/capture-geometry.d.ts.map +0 -1
- package/dist/output/capture-sdr.d.ts.map +0 -1
- package/dist/output/crop.d.ts.map +0 -1
- package/dist/output/geometric-transforms.d.ts.map +0 -1
- package/dist/output/lens-corrections.d.ts.map +0 -1
- package/dist/output/native-capture-sdr.d.ts.map +0 -1
- package/dist/output/print-contrast-reference.d.ts.map +0 -1
- package/dist/output/print-detail.d.ts.map +0 -1
- package/dist/output/print-jpeg.d.ts.map +0 -1
- package/dist/output/print-plan.d.ts.map +0 -1
- package/dist/output/print-region-statistics.d.ts.map +0 -1
- package/dist/output/sdr-rendering.d.ts.map +0 -1
- package/dist/output/subject-framing-crop.d.ts.map +0 -1
- package/dist/schema/camera.d.ts.map +0 -1
- package/dist/schema/camera.js +0 -3
- package/dist/schema/camera.js.map +0 -1
- package/dist/schema/illumination-spectral.d.ts.map +0 -1
- package/dist/schema/illumination-temporal.d.ts.map +0 -1
- package/dist/schema/illumination.d.ts.map +0 -1
- package/dist/schema/scene-radiance-temporal.d.ts.map +0 -1
- package/dist/schema/scene-radiance.d.ts.map +0 -1
- package/dist/schema/scene.d.ts.map +0 -1
- package/dist/schema/scene.js +0 -3
- package/dist/schema/scene.js.map +0 -1
- package/dist/schema/validation.d.ts.map +0 -1
- package/dist/sensor/accumulated-charge.d.ts.map +0 -1
- package/dist/sensor/architecture.d.ts.map +0 -1
- package/dist/sensor/camera-saturation-capacity.d.ts.map +0 -1
- package/dist/sensor/capture-color-sampling-binding.d.ts.map +0 -1
- package/dist/sensor/capture-mode-timing.d.ts.map +0 -1
- package/dist/sensor/capture-mode.d.ts.map +0 -1
- package/dist/sensor/color-sampling.d.ts.map +0 -1
- package/dist/sensor/constant-rate-temporal-integration.d.ts.map +0 -1
- package/dist/sensor/dark-current.d.ts.map +0 -1
- package/dist/sensor/environment-photo-signal.d.ts.map +0 -1
- package/dist/sensor/eqe-electron-rate.d.ts.map +0 -1
- package/dist/sensor/eqe-local-exposure.d.ts.map +0 -1
- package/dist/sensor/eqe-temporal-exposure.d.ts.map +0 -1
- package/dist/sensor/exposure-window.d.ts.map +0 -1
- package/dist/sensor/iso-signal-chain.d.ts.map +0 -1
- package/dist/sensor/local-exposure-binding.d.ts.map +0 -1
- package/dist/sensor/optical-stack.d.ts.map +0 -1
- package/dist/sensor/photon-energy.d.ts.map +0 -1
- package/dist/sensor/physical-charge-capacity.d.ts.map +0 -1
- package/dist/sensor/pixel-pitch.d.ts.map +0 -1
- package/dist/sensor/radiometry-readiness.d.ts.map +0 -1
- package/dist/sensor/raw-readout.d.ts.map +0 -1
- package/dist/sensor/raw-reconstruction.d.ts.map +0 -1
- package/dist/sensor/readout-exposure-linkage.d.ts.map +0 -1
- package/dist/sensor/readout-timing.d.ts.map +0 -1
- package/dist/sensor/response-application-compatibility.d.ts.map +0 -1
- package/dist/sensor/response-operating-range.d.ts.map +0 -1
- package/dist/sensor/responsivity-photocurrent.d.ts.map +0 -1
- package/dist/sensor/sampling-aperture.d.ts.map +0 -1
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts.map +0 -1
- package/dist/sensor/sensor-geometry.d.ts.map +0 -1
- package/dist/sensor/signal-noise.d.ts.map +0 -1
- package/dist/sensor/spatial-sample-reduction.d.ts.map +0 -1
- package/dist/sensor/spatial-sampling-quadrature.d.ts.map +0 -1
- package/dist/sensor/spatio-spectral-reduction.d.ts.map +0 -1
- package/dist/sensor/spectral-coverage.d.ts.map +0 -1
- package/dist/sensor/spectral-quadrature.d.ts.map +0 -1
- package/dist/sensor/spectral-response.d.ts.map +0 -1
- package/dist/sensor/temporal-eqe-sum.d.ts.map +0 -1
- package/dist/sensor/temporal-photo-signal.d.ts.map +0 -1
- package/dist/sensor/temporal-sample-binding.d.ts.map +0 -1
- package/dist/simulation/poc-simulation.d.ts.map +0 -1
- package/dist/stabilization/camera-shake.d.ts.map +0 -1
- package/dist/stabilization/system.d.ts.map +0 -1
- package/docs/API_STYLE.md +0 -235
- package/docs/ARCHITECTURE.md +0 -356
- package/docs/AUTOMATION_COORDINATION.md +0 -190
- package/docs/CAPTURE_COLOR.md +0 -25
- package/docs/CAPTURE_CORRECTED_SDR.md +0 -25
- package/docs/CAPTURE_EXPORT_METADATA.md +0 -27
- package/docs/CAPTURE_SDR.md +0 -22
- package/docs/DENSE_PUPIL_QUALIFICATION.md +0 -121
- package/docs/DEVELOPERS.md +0 -68
- package/docs/DIGITAL_OPTICS_FOUNDATION.md +0 -69
- package/docs/ENVIRONMENT_RAW_CAPTURE.md +0 -208
- package/docs/EXPORT_ACCEPTANCE.md +0 -133
- package/docs/GENERIC_TIER_PRESETS.md +0 -269
- package/docs/GEOMETRIC_PREPARATION_REUSE.md +0 -141
- package/docs/IMAGE_FORMATION.md +0 -247
- package/docs/LINEAR_CAPTURE_ENCODING.md +0 -25
- package/docs/MOTION_AND_SIGNAL.md +0 -250
- package/docs/NATIVE_CAPTURE_SDR.md +0 -70
- package/docs/NATIVE_CAPTURE_SDR_REVIEW.md +0 -37
- package/docs/NATIVE_CAPTURE_SDR_VALIDATION.md +0 -34
- package/docs/NATIVE_RAW_AND_PRINT.md +0 -54
- package/docs/NUMERICAL_CORRECTNESS.md +0 -191
- package/docs/PERFORMANCE_BASELINE.md +0 -56
- package/docs/PHOTOGRAPHIC_EXPORT.md +0 -206
- package/docs/PHYSICS_FOUNDATION.md +0 -426
- package/docs/POC_API.md +0 -278
- package/docs/POC_PROJECTION_PLATFORM_REFERENCE.md +0 -12
- package/docs/POC_PROJECTION_REUSE.md +0 -124
- package/docs/PRINT_195_196_REVIEW.md +0 -93
- package/docs/PRINT_196_ENGINE_ACCEPTANCE.md +0 -45
- package/docs/PRINT_CONTRAST_REFERENCE.md +0 -43
- package/docs/PRINT_DETAIL_ASSESSMENT.md +0 -81
- package/docs/PRINT_DETAIL_JPEG_EVIDENCE.md +0 -36
- package/docs/PRINT_DETAIL_SDR_EVIDENCE.md +0 -29
- package/docs/PRINT_DETAIL_VALIDATION.md +0 -36
- package/docs/PRINT_PLANNING.md +0 -75
- package/docs/PRINT_REGION_STATISTICS.md +0 -38
- package/docs/PROCESSED_OUTPUT.md +0 -157
- package/docs/PRODUCTION_COMPOSITION.md +0 -373
- package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +0 -131
- package/docs/PROVENANCE.md +0 -115
- package/docs/PSF_FOUNDATION.md +0 -165
- package/docs/RAW_FRAME_ENVELOPE.md +0 -56
- package/docs/RAW_FRAME_RECONSTRUCTION.md +0 -30
- package/docs/RELEASE_1_0.md +0 -66
- package/docs/RELEASE_1_0_1.md +0 -61
- package/docs/RELEASE_1_1_0.md +0 -25
- package/docs/RELEASE_1_2_0.md +0 -51
- package/docs/RELEASE_1_3_0.md +0 -15
- package/docs/RELEASE_1_4_0.md +0 -23
- package/docs/RELEASE_1_5_0.md +0 -105
- package/docs/RELEASE_AUDIT.md +0 -39
- package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +0 -298
- package/docs/SCENE_SENSOR_QUADRATURE.md +0 -98
- package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +0 -86
- package/docs/SCIENTIFIC_ASSURANCE.md +0 -280
- package/docs/SCIENTIFIC_CONFORMANCE.md +0 -83
- package/docs/SDR_RENDERING.md +0 -33
- package/docs/SENSOR_APERTURE_RAYS.md +0 -23
- package/docs/SENSOR_ENVIRONMENT_QUERY.md +0 -86
- package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +0 -104
- package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +0 -74
- package/docs/SENSOR_PSF_QUADRATURE.md +0 -90
- package/docs/SENSOR_RAW_FRAME.md +0 -20
- package/docs/SENSOR_RAW_PRODUCER.md +0 -77
- package/docs/SEPARABLE_EMISSION_DRAFT.md +0 -103
- package/docs/SIGNAL_CONFORMANCE.md +0 -23
- package/docs/SIMULATED_CAPTURE.md +0 -65
- package/docs/STABILIZATION.md +0 -234
- package/docs/TEMPORAL_PHOTO_RAW.md +0 -83
- package/docs/TIER_ACCEPTANCE.md +0 -129
- package/docs/TIER_PRESET_ACCEPTANCE.md +0 -59
- package/docs/V1_COMPOSITION_MAP.md +0 -123
- package/docs/V1_HELPER_REUSE_REVIEW.md +0 -60
- package/docs/V1_PERFORMANCE_DISPOSITION.md +0 -88
- package/docs/benchmarks/2026-10-01-main-baseline.json +0 -694
- package/docs/benchmarks/2026-10-02-geometric-preparation-reuse.json +0 -2190
- package/docs/benchmarks/2026-10-02-poc-projection-reuse.json +0 -2423
- package/docs/benchmarks/2026-10-02-v1-environment-gc-profile.json +0 -210
- package/docs/benchmarks/2026-10-02-v1-environment-ordinary.json +0 -187
- package/docs/benchmarks/2026-10-02-v1-geometry-gc-profile.json +0 -756
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-1.json +0 -711
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-2.json +0 -711
- package/docs/benchmarks/2026-10-02-v1-poc-gc-profile.json +0 -885
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-1.json +0 -868
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-2.json +0 -868
- package/docs/licenses/castleCSF-MIT.txt +0 -21
- package/docs/validation/dense-pupil-2026-10-06/pilot.jsonl +0 -6
- package/docs/validation/documentation-fragments.json +0 -212
- package/docs/validation/native-capture-sdr-darwin-arm64-node26-review.jsonl +0 -4
- package/docs/validation/native-capture-sdr-darwin-arm64.jsonl +0 -3
- package/docs/validation/native-raw-print-2026-10-04/fractional-asymmetric-crop.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/gray-ramp.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/linear-area-checker.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/manifest.json +0 -218
- package/docs/validation/native-raw-print-2026-10-04/megapixel-native.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/native-color.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel-validation.json +0 -9
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json +0 -29
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.codes.u16le.gz +0 -0
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.rgb.gz +0 -0
- package/docs/validation/native-raw-print-2026-10-04/srgb.icc +0 -0
- package/docs/validation/native-raw-print-2026-10-04/validation.json +0 -41
- package/docs/validation/print-196-candidate-capabilities.json +0 -28
- package/docs/validation/print-196-candidate-evidence.json +0 -356
- package/docs/validation/print-196-engine-acceptance.json +0 -81
- package/docs/validation/print-detail-capabilities.json +0 -103
- package/docs/validation/print-detail-jpeg-evidence.json +0 -116
- package/docs/validation/print-detail-sdr-evidence.json +0 -81
- package/docs/validation/release-audit-inventory.json +0 -1306
- package/docs/validation/tier-acceptance-report-v1.json +0 -2538
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# optics/profile-contract.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/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
4
|
|
|
5
5
|
## GenericOpticalEvidence
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Evidence for a generic approximation. It never implies a measured calibration.
|
|
8
8
|
|
|
9
9
|
```ts
|
|
10
10
|
export interface GenericOpticalEvidence {
|
|
@@ -17,7 +17,7 @@ export interface GenericOpticalEvidence {
|
|
|
17
17
|
|
|
18
18
|
## OpticalProfileState
|
|
19
19
|
|
|
20
|
-
Exact, generic camera
|
|
20
|
+
Exact, generic camera, lens and acquisition state. Nothing is interpolated implicitly.
|
|
21
21
|
|
|
22
22
|
```ts
|
|
23
23
|
export interface OpticalProfileState {
|
|
@@ -38,7 +38,7 @@ export interface OpticalProfileState {
|
|
|
38
38
|
|
|
39
39
|
## parseOpticalProfileState
|
|
40
40
|
|
|
41
|
-
Parses a complete exact-state binding, including still
|
|
41
|
+
Parses a complete exact-state binding, including still, video and output settings.
|
|
42
42
|
|
|
43
43
|
```ts
|
|
44
44
|
export function parseOpticalProfileState(value: unknown): OpticalProfileState;
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
# optics/psf-foundation.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/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
4
|
|
|
5
5
|
## calculatePsfFoundationComponents
|
|
6
6
|
|
|
7
|
-
Evaluates
|
|
8
|
-
|
|
9
|
-
PSF or blur radius.
|
|
7
|
+
Evaluates today's PSF-related diagnostics in one explicit context (field
|
|
8
|
+
position, depth, wavelength and pupil). It does not combine them into a
|
|
9
|
+
synthetic PSF or blur radius.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
circular-Airy diagnostics
|
|
13
|
-
contributions can
|
|
14
|
-
primitives.
|
|
11
|
+
The field position is recorded even though the current defocus-circle and
|
|
12
|
+
circular-Airy diagnostics do not depend on it. Future field-dependent
|
|
13
|
+
contributions can use the same context without changing these primitives.
|
|
15
14
|
|
|
16
15
|
```ts
|
|
17
16
|
export function calculatePsfFoundationComponents(
|
|
@@ -37,8 +36,9 @@ export interface CalculatePsfFoundationComponentsInput {
|
|
|
37
36
|
*/
|
|
38
37
|
fieldPointMm: LensFieldPointMm;
|
|
39
38
|
/**
|
|
40
|
-
* Physical image-plane radius used only to normalize field
|
|
41
|
-
*
|
|
39
|
+
* Physical image-plane radius. It is used only to normalize the field
|
|
40
|
+
* position so diagnostics can be compared across cases. It is not a lens
|
|
41
|
+
* calibration or a validity limit.
|
|
42
42
|
*/
|
|
43
43
|
fieldNormalizationRadiusMm: number;
|
|
44
44
|
spectralBasis: {
|
|
@@ -52,8 +52,8 @@ export interface CalculatePsfFoundationComponentsInput {
|
|
|
52
52
|
|
|
53
53
|
Returns the public PSF/pupil foundation contract.
|
|
54
54
|
|
|
55
|
-
The contract
|
|
56
|
-
|
|
55
|
+
The contract lists today's diagnostics and reserves names for future
|
|
56
|
+
contributions. A reserved contribution is not implemented.
|
|
57
57
|
|
|
58
58
|
```ts
|
|
59
59
|
export function getPsfFoundationContract(): PsfFoundationContract;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# optics/pupil-vignetting.ts public contracts
|
|
2
|
+
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/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
|
+
## calculateMechanicalVignetting
|
|
6
|
+
|
|
7
|
+
Mechanical vignetting at one field angle: the open (cat's-eye) pupil from intersecting the
|
|
8
|
+
entrance pupil with displaced clipping apertures, its area ratio, and cos^4 x area ratio.
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
export function calculateMechanicalVignetting(
|
|
12
|
+
input: CalculateMechanicalVignettingInput
|
|
13
|
+
): CalculationResult<MechanicalVignetting>;
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
17
|
+
|
|
18
|
+
## CalculateMechanicalVignettingInput
|
|
19
|
+
|
|
20
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
export interface CalculateMechanicalVignettingInput {
|
|
24
|
+
/** Unclipped entrance-pupil diameter, mm. */
|
|
25
|
+
entrancePupilDiameterMm: number;
|
|
26
|
+
/** Object-space field angle from the optical axis, degrees, in [0, 90). */
|
|
27
|
+
fieldAngleDegrees: number;
|
|
28
|
+
/** Image-plane direction of the field point, degrees counter-clockwise from +X. */
|
|
29
|
+
fieldAzimuthDegrees: number;
|
|
30
|
+
/** One through eight clipping apertures. */
|
|
31
|
+
apertures: readonly MechanicalVignettingAperture[];
|
|
32
|
+
/** Boundary samples per circle for the polygon, from 16 to 4096 (default 256). */
|
|
33
|
+
boundarySamplesPerCircle?: number;
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## calculateNaturalVignetting
|
|
38
|
+
|
|
39
|
+
Natural (cos^4 or finite Lambertian pupil) relative illumination at one image point.
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
export function calculateNaturalVignetting(
|
|
43
|
+
input: CalculateNaturalVignettingInput
|
|
44
|
+
): CalculationResult<NaturalVignetting>;
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
This call is synchronous; any supplied provider must follow its explicit synchronous contract.
|
|
48
|
+
|
|
49
|
+
## CalculateNaturalVignettingInput
|
|
50
|
+
|
|
51
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
export interface CalculateNaturalVignettingInput {
|
|
55
|
+
model: NaturalVignettingModel;
|
|
56
|
+
/** Image-plane point relative to the optical axis, mm. */
|
|
57
|
+
imagePointMm: { x: number; y: number };
|
|
58
|
+
/** Axial distance from the exit pupil to the image plane, mm. */
|
|
59
|
+
exitPupilDistanceMm: number;
|
|
60
|
+
/** Exit-pupil diameter, mm; required for finite-lambertian-pupil. */
|
|
61
|
+
exitPupilDiameterMm?: number;
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## MechanicalVignetting
|
|
66
|
+
|
|
67
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
68
|
+
|
|
69
|
+
```ts
|
|
70
|
+
export interface MechanicalVignetting {
|
|
71
|
+
fieldAngleDegrees: number;
|
|
72
|
+
fieldAzimuthDegrees: number;
|
|
73
|
+
entrancePupilAreaSquareMm: number;
|
|
74
|
+
/** Open area in mm^2. Exact for a single aperture; the polygon area otherwise. */
|
|
75
|
+
openAreaSquareMm: number;
|
|
76
|
+
areaMethod: "exact-circle-circle-intersection" | "boundary-polygon";
|
|
77
|
+
/** Open area / unclipped pupil area, in [0, 1]. */
|
|
78
|
+
openAreaRatio: number;
|
|
79
|
+
/** cos^4(field angle). */
|
|
80
|
+
cosineFourthFactor: number;
|
|
81
|
+
/** cos^4(theta) x openAreaRatio. */
|
|
82
|
+
combinedRelativeIllumination: number;
|
|
83
|
+
/** Counter-clockwise convex boundary of the open pupil (empty when fully vignetted), mm. */
|
|
84
|
+
openPupilPolygonMm: readonly { x: number; y: number }[];
|
|
85
|
+
/** Area centroid of the boundary polygon, mm (null when fully vignetted). */
|
|
86
|
+
openPupilCentroidMm: { x: number; y: number } | null;
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## MechanicalVignettingAperture
|
|
91
|
+
|
|
92
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
export interface MechanicalVignettingAperture {
|
|
96
|
+
/** Aperture radius referred to the entrance-pupil plane, mm. */
|
|
97
|
+
radiusMm: number;
|
|
98
|
+
/**
|
|
99
|
+
* Signed shift of the aperture's projected centre per unit tan(field angle), in mm, along the
|
|
100
|
+
* field azimuth. Positive means toward the field point.
|
|
101
|
+
*/
|
|
102
|
+
shiftPerTanFieldMm: number;
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## NaturalVignetting
|
|
107
|
+
|
|
108
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
109
|
+
|
|
110
|
+
```ts
|
|
111
|
+
export interface NaturalVignetting {
|
|
112
|
+
model: NaturalVignettingModel;
|
|
113
|
+
/** Image-space chief-ray angle, radians. */
|
|
114
|
+
chiefRayAngleRadians: number;
|
|
115
|
+
/** Relative illumination E / E(axis), in (0, 1]. */
|
|
116
|
+
relativeIllumination: number;
|
|
117
|
+
/** Positive exposure loss, stops. */
|
|
118
|
+
attenuationStops: number;
|
|
119
|
+
/** cos^4 of the chief-ray angle, reported for comparison. */
|
|
120
|
+
cosineFourthFactor: number;
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## NaturalVignettingModel
|
|
125
|
+
|
|
126
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
127
|
+
|
|
128
|
+
```ts
|
|
129
|
+
export type NaturalVignettingModel =
|
|
130
|
+
| "cosine-fourth"
|
|
131
|
+
| "finite-lambertian-pupil";
|
|
132
|
+
```
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# optics/radial-distortion.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/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
4
|
|
|
5
5
|
## calculateInverseRadialDistortionMapping
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
bounded root
|
|
7
|
+
Inverts the declared monotonic radial field mapping inside its supported range, using the existing
|
|
8
|
+
bounded root solver. Optical coordinates are kept explicit.
|
|
9
9
|
|
|
10
10
|
```ts
|
|
11
11
|
export function calculateInverseRadialDistortionMapping(
|
|
@@ -29,11 +29,11 @@ export interface CalculateInverseRadialDistortionMappingInput {
|
|
|
29
29
|
|
|
30
30
|
## calculateInverseRadialDistortionMappings
|
|
31
31
|
|
|
32
|
-
Inverse-maps
|
|
33
|
-
|
|
32
|
+
Inverse-maps many distorted image-plane points at once. The radial profile
|
|
33
|
+
is validated and resolved only once for the whole batch.
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
Each returned mapping is numerically identical to the single-point API.
|
|
36
|
+
Provenance and profile validation are reported once for the batch.
|
|
37
37
|
|
|
38
38
|
```ts
|
|
39
39
|
export function calculateInverseRadialDistortionMappings(
|
|
@@ -66,9 +66,9 @@ The mapping is rotationally symmetric about the optical axis:
|
|
|
66
66
|
|
|
67
67
|
where r is normalized by the caller-declared physical reference radius.
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
sampling well
|
|
69
|
+
A profile is accepted only if the radial mapping is strictly monotonic over
|
|
70
|
+
its declared operating radius. That makes the inverse mapping
|
|
71
|
+
(destination-to-source sampling) well defined.
|
|
72
72
|
|
|
73
73
|
```ts
|
|
74
74
|
export function calculateRadialDistortionMapping(
|
|
@@ -185,8 +185,8 @@ export interface RadialDistortionProfile {
|
|
|
185
185
|
*/
|
|
186
186
|
normalizationRadiusMm: number;
|
|
187
187
|
/**
|
|
188
|
-
*
|
|
189
|
-
* valid
|
|
188
|
+
* Largest undistorted normalized radius for which this profile is declared
|
|
189
|
+
* valid. Within it the mapping must stay one-to-one and invertible.
|
|
190
190
|
*/
|
|
191
191
|
maximumNormalizedRadius: number;
|
|
192
192
|
coefficients: RadialDistortionCoefficients;
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
# optics/scene-to-sensor-irradiance.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/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
4
|
|
|
5
5
|
## calculateSceneRadianceToSensorIrradiance
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
radiance
|
|
7
|
+
Applies the declared pupil acceptance and exactly one transmission or field-throughput path to
|
|
8
|
+
spectral scene radiance. Returns the irradiance before the sensor stack, with conservative
|
|
9
|
+
evidence.
|
|
9
10
|
|
|
10
|
-
The optical bridge
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
The optical bridge turns outgoing scene radiance (W/m²/sr/nm) into irradiance (W/m²/nm) arriving
|
|
12
|
+
at the front of the sensor stack.
|
|
13
|
+
- Circular paraxial acceptance is pi/(4*Nworking²). At finite focus with unit pupil magnification,
|
|
14
|
+
the working f-number is N*(1+m).
|
|
15
|
+
- Spectral transmission and an effective working T-stop are alternative paths; use one.
|
|
16
|
+
- Field throughput is applied exactly once.
|
|
17
|
+
- Sensor response and PSF (point-spread function) blur happen later in the pipeline.
|
|
14
18
|
|
|
15
19
|
```ts
|
|
16
20
|
export function calculateSceneRadianceToSensorIrradiance(
|
|
@@ -196,13 +200,16 @@ export type OpticalTransmissionModel =
|
|
|
196
200
|
|
|
197
201
|
## parseSceneToSensorIrradianceProfile
|
|
198
202
|
|
|
199
|
-
|
|
200
|
-
missing required fields and incompatible scientific data
|
|
203
|
+
Validates an untrusted scene-to-sensor profile and returns the normalized typed contract. Unknown
|
|
204
|
+
enum values, missing required fields and incompatible scientific data are rejected here.
|
|
201
205
|
|
|
202
|
-
The optical bridge
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
+
The optical bridge turns outgoing scene radiance (W/m²/sr/nm) into irradiance (W/m²/nm) arriving
|
|
207
|
+
at the front of the sensor stack.
|
|
208
|
+
- Circular paraxial acceptance is pi/(4*Nworking²). At finite focus with unit pupil magnification,
|
|
209
|
+
the working f-number is N*(1+m).
|
|
210
|
+
- Spectral transmission and an effective working T-stop are alternative paths; use one.
|
|
211
|
+
- Field throughput is applied exactly once.
|
|
212
|
+
- Sensor response and PSF (point-spread function) blur happen later in the pipeline.
|
|
206
213
|
|
|
207
214
|
```ts
|
|
208
215
|
export function parseSceneToSensorIrradianceProfile(
|
|
@@ -309,8 +316,12 @@ export interface SceneToSensorIrradianceResult {
|
|
|
309
316
|
number;
|
|
310
317
|
frontOfLensFilterTransmissionAppliedExactlyOnce:
|
|
311
318
|
true;
|
|
319
|
+
/**
|
|
320
|
+
* True when a front-of-lens linear polarizer was applied. Scene radiance is unpolarized in this
|
|
321
|
+
* bridge, so a polarizer transmits (k1 + k2) / 2.
|
|
322
|
+
*/
|
|
312
323
|
frontOfLensFilterPolarizationModeled:
|
|
313
|
-
|
|
324
|
+
boolean;
|
|
314
325
|
fieldThroughputFactor: number;
|
|
315
326
|
effectiveAcceptanceAfterTransmissionAndFieldSteradians:
|
|
316
327
|
number;
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
# optics/scene-to-sensor-quadrature.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/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
4
|
|
|
5
5
|
## calculateSceneToSensorIrradianceQuadrature
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
physical W/m²/nm samples
|
|
10
|
-
|
|
7
|
+
Runs the existing paraxial optical bridge at every requested node.
|
|
8
|
+
|
|
9
|
+
Before it returns physical W/m²/nm samples, it checks that node identities,
|
|
10
|
+
grid coverage and provider bindings match exactly. Image coordinates come
|
|
11
|
+
from the spatial plan, so a caller cannot attach a field-throughput result
|
|
12
|
+
computed at a different point.
|
|
11
13
|
|
|
12
14
|
```ts
|
|
13
15
|
export function calculateSceneToSensorIrradianceQuadrature(
|
|
@@ -19,27 +21,28 @@ This call is synchronous; any supplied provider must follow its explicit synchro
|
|
|
19
21
|
|
|
20
22
|
## CalculateSceneToSensorIrradianceQuadratureInput
|
|
21
23
|
|
|
22
|
-
Static point-sample bridge
|
|
24
|
+
Static point-sample bridge. PSF blur and motion over time are handled elsewhere.
|
|
23
25
|
|
|
24
26
|
```ts
|
|
25
27
|
export interface CalculateSceneToSensorIrradianceQuadratureInput {
|
|
26
28
|
spatialQuadrature: ReduceSensorSpatioSpectralIrradianceInput["spatialQuadrature"];
|
|
27
29
|
spectralQuadrature: ReduceSensorSpatioSpectralIrradianceInput["spectralQuadrature"];
|
|
28
|
-
/**
|
|
30
|
+
/** Provider, illumination and material identities with their evidence. Parsed before use. */
|
|
29
31
|
sceneBindings: Omit<ValidateSceneRadianceEvaluationBindingsInput, "request" | "result">;
|
|
30
32
|
/** One declared lens/focus/filter state shared by every node. */
|
|
31
33
|
optics: Omit<CalculateSceneRadianceToSensorIrradianceInput,
|
|
32
34
|
"sceneRadianceRequest" | "sceneRadianceResult" | "imagePointMm" | "fieldThroughput">;
|
|
33
|
-
/**
|
|
35
|
+
/** One non-negative instant shared by all queries. This is not an integral over the exposure. */
|
|
34
36
|
timeSecondsFromExposureStart: number;
|
|
35
|
-
/**
|
|
37
|
+
/** Every combination of the grid axes, with a unique scene sampleId per node. */
|
|
36
38
|
samples: readonly SceneSensorQuadratureSample[];
|
|
37
39
|
}
|
|
38
40
|
```
|
|
39
41
|
|
|
40
42
|
## SceneSensorQuadratureSample
|
|
41
43
|
|
|
42
|
-
One declared scene query
|
|
44
|
+
One declared scene query and its result, for one exact spatial and wavelength node before the
|
|
45
|
+
anti-aliasing (AA) filter.
|
|
43
46
|
|
|
44
47
|
```ts
|
|
45
48
|
export interface SceneSensorQuadratureSample {
|
|
@@ -66,9 +69,9 @@ export interface SceneToSensorIrradianceQuadrature {
|
|
|
66
69
|
reduction: ReturnType<typeof reduceSensorSpatioSpectralIrradiance>;
|
|
67
70
|
samples: readonly {
|
|
68
71
|
node: SensorSpatioSpectralNodeIdentity;
|
|
69
|
-
/** Physical source coordinate before
|
|
72
|
+
/** Physical source coordinate, in mm, before the anti-aliasing filter spreads it. */
|
|
70
73
|
preAntiAliasingSourcePointMm: { x: number; y: number };
|
|
71
|
-
/**
|
|
74
|
+
/** The provider's declared target and time. This is not a verified ray intersection. */
|
|
72
75
|
request: SceneSensorQuadratureSample["sceneRadianceRequest"];
|
|
73
76
|
result: SceneSensorQuadratureSample["sceneRadianceResult"];
|
|
74
77
|
bindings: ReturnType<typeof validateSceneRadianceEvaluationBindings>;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
# optics/sensor-aperture-rays.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/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
4
|
|
|
5
5
|
## calculateSensorApertureRays
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Polar midpoint rule with equal-area cells. Weights are normalized as an average, so they never
|
|
8
|
+
apply the f-number a second time.
|
|
8
9
|
|
|
9
10
|
```ts
|
|
10
11
|
export function calculateSensorApertureRays(input: CalculateSensorApertureRaysInput): CalculationResult<SensorApertureRays>;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
# optics/sensor-environment-query.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/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
4
|
|
|
5
5
|
## calculateSensorEnvironmentRadianceQuery
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
the existing focus-aware ideal projection and analytic inverse
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
Builds an environment radiance request from points on the physical sensor,
|
|
8
|
+
using the existing focus-aware ideal projection and the analytic inverse
|
|
9
|
+
camera rotation.
|
|
10
|
+
|
|
11
|
+
Native Y (+Y down) is inverted explicitly. The provider direction points
|
|
12
|
+
opposite the look ray at exposure start. Nothing intersects the scene,
|
|
13
|
+
computes radiance or renders.
|
|
11
14
|
|
|
12
15
|
```ts
|
|
13
16
|
export function calculateSensorEnvironmentRadianceQuery(
|
|
@@ -23,17 +26,54 @@ The exact contract is declared below; use the domain guide for assumptions and s
|
|
|
23
26
|
|
|
24
27
|
```ts
|
|
25
28
|
export interface CalculateSensorEnvironmentRadianceQueryInput {
|
|
26
|
-
/**
|
|
29
|
+
/** Optical sample point before the anti-aliasing filter or PSF. Native +X right, +Y down, in mm from the optical axis. */
|
|
27
30
|
sourcePointNativeSensorMm: { x: number; y: number };
|
|
28
31
|
focalLengthMm: number;
|
|
29
32
|
focus: FocusPlane;
|
|
30
33
|
angularVelocityRadPerSec: CameraAngularVelocityRadPerSec;
|
|
31
|
-
/**
|
|
34
|
+
/** States that the moment the shutter opens is t=0 in the rotation model. */
|
|
32
35
|
timeReference: "first-opening-boundary-phase";
|
|
33
36
|
timeSecondsFromOpeningReference: number;
|
|
34
|
-
/**
|
|
37
|
+
/** The request uses the direction radiance travels: toward the camera, opposite the look ray. */
|
|
35
38
|
environmentDirectionConvention: "outgoing-radiance-toward-camera";
|
|
36
39
|
request: Omit<SceneRadianceEvaluationRequest, "target" | "timeSecondsFromExposureStart">;
|
|
40
|
+
/** Optional 2.0 lens field mapping. Omit it for the ideal rectilinear, distortion-free query. */
|
|
41
|
+
lensFieldMapping?: EnvironmentLensFieldMapping;
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## EnvironmentLensFieldMapping
|
|
46
|
+
|
|
47
|
+
Lens field mapping between the physical (distorted) sensor point and the scene ray (2.0).
|
|
48
|
+
`radiometricAreaCorrection` states who applies the distortion area factor. The environment
|
|
49
|
+
photo signal multiplies irradiance by 1 / det(d distorted / d ideal) exactly once. A supplied
|
|
50
|
+
field-throughput profile must therefore not include it as well.
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
export interface EnvironmentLensFieldMapping {
|
|
54
|
+
projectionModel: LensProjectionModel;
|
|
55
|
+
distortion:
|
|
56
|
+
| { kind: "none" }
|
|
57
|
+
| { kind: "radial"; profile: RadialDistortionProfile }
|
|
58
|
+
| { kind: "brown-conrady"; profile: BrownConradyDistortionProfile };
|
|
59
|
+
radiometricAreaCorrection: "inverse-distortion-jacobian";
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## SensorEnvironmentLensFieldMappingResult
|
|
64
|
+
|
|
65
|
+
The exact contract is declared below; use the domain guide for assumptions and staged integration.
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
export interface SensorEnvironmentLensFieldMappingResult {
|
|
69
|
+
projectionModel: LensProjectionModel;
|
|
70
|
+
distortionKind: "none" | "radial" | "brown-conrady";
|
|
71
|
+
/** Ideal (undistorted) image-plane point, +X right / +Y up, mm. */
|
|
72
|
+
idealImagePointMm: { x: number; y: number };
|
|
73
|
+
/** Projection scale: thin-lens image distance at finite focus, focal length at infinity, mm. */
|
|
74
|
+
projectionScaleMm: number;
|
|
75
|
+
/** 1 / det(d distorted / d ideal) at this point; 1 without distortion. */
|
|
76
|
+
distortionAreaFactor: number;
|
|
37
77
|
}
|
|
38
78
|
```
|
|
39
79
|
|
|
@@ -47,7 +87,10 @@ export interface SensorEnvironmentRadianceQuery {
|
|
|
47
87
|
sourcePointNativeSensorMm: { x: number; y: number };
|
|
48
88
|
sourcePointImagePlaneMm: { x: number; y: number };
|
|
49
89
|
referenceLookDirectionUnitVector: { x: number; y: number; z: number };
|
|
50
|
-
|
|
90
|
+
/** Rectilinear rotation mapping. Null when a non-rectilinear lens field mapping is used. */
|
|
91
|
+
projection: ReturnType<typeof calculateInverseCameraRotationImageMapping> | null;
|
|
92
|
+
/** Present only when the input declared a lens field mapping. */
|
|
93
|
+
lensFieldMapping?: SensorEnvironmentLensFieldMappingResult;
|
|
51
94
|
targetMeaning: "environment-direction-in-exposure-start-camera-axes";
|
|
52
95
|
directionConvention: "outgoing-radiance-toward-camera";
|
|
53
96
|
geometricRayProjectionCalculated: true;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
# optics/sensor-psf-quadrature.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/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
4
|
|
|
5
5
|
## calculateSensorPsfIrradianceQuadrature
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
Applies each resolved unit-energy PSF as an inverse sum of samples around
|
|
8
|
+
each destination pixel.
|
|
9
|
+
|
|
10
|
+
Support in native coordinates (+Y down) is converted explicitly to the
|
|
11
|
+
optical kernel orientation (+Y up). The edges are not extended, missing
|
|
12
|
+
support is not renormalized and no extra throughput is applied. This
|
|
13
|
+
approximation is not a field-dependent forward transport of energy.
|
|
11
14
|
|
|
12
15
|
```ts
|
|
13
16
|
export function calculateSensorPsfIrradianceQuadrature(
|
|
@@ -23,15 +26,15 @@ The exact contract is declared below; use the domain guide for assumptions and s
|
|
|
23
26
|
|
|
24
27
|
```ts
|
|
25
28
|
export interface CalculateSensorPsfIrradianceQuadratureInput {
|
|
26
|
-
/** One instant on the
|
|
29
|
+
/** One instant, measured on the declared shutter-opening time reference. */
|
|
27
30
|
timeSecondsFromOpeningReference: number;
|
|
28
31
|
spatialQuadrature: ReduceSensorSpatioSpectralIrradianceInput["spatialQuadrature"];
|
|
29
32
|
spectralQuadrature: ReduceSensorSpatioSpectralIrradianceInput["spectralQuadrature"];
|
|
30
|
-
/** The adapter
|
|
33
|
+
/** The adapter supplies the wavelength and image-plane field position for each node. */
|
|
31
34
|
psf: Omit<ResolveLensSampledPsfInput, "fieldPointMm" | "wavelengthNm">;
|
|
32
|
-
/** Schema 0.1.0 PSF profiles
|
|
35
|
+
/** Schema 0.1.0 PSF profiles have no basis field, so the caller states what the source means. */
|
|
33
36
|
psfWavelengthBasis: { value: "air" | "vacuum"; evidence: readonly EvidenceProvenance[] };
|
|
34
|
-
/** Explicit local approximation
|
|
37
|
+
/** Explicit local approximation. A PSF that varies across a grid is not a global convolution. */
|
|
35
38
|
spatialModel: { kind: "destination-local-shift-invariant-approximation";
|
|
36
39
|
evidence: readonly EvidenceProvenance[]; limitation: string };
|
|
37
40
|
inputMeaning: "pre-psf-pre-sensor-stack-pre-aa-spectral-irradiance";
|
|
@@ -74,7 +77,7 @@ export interface SensorPsfSourceSample {
|
|
|
74
77
|
timeSecondsFromOpeningReference: number;
|
|
75
78
|
kernelSampleX: number;
|
|
76
79
|
kernelSampleY: number;
|
|
77
|
-
/**
|
|
80
|
+
/** Origin on the optical axis, +X right, +Y down, in millimetres. Not clipped to the native crop. */
|
|
78
81
|
sourcePointNativeSensorMm: { x: number; y: number };
|
|
79
82
|
spectralIrradianceWattsPerSquareMeterPerNanometer: number;
|
|
80
83
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
# optics/stray-light.ts public contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The package and root API versions are recorded once in [Navigation](../API_REFERENCE.md) · [Developer guide](https://github.com/Photivra/photivra/blob/main/docs/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
4
|
|
|
5
5
|
## calculateLensStrayLightIrradiance
|
|
6
6
|
|
|
7
|
-
Adds off-path spectral irradiance before sensor
|
|
8
|
-
Source powers are integrated over profile.referenceEntranceAreaMm2 at this instant
|
|
9
|
-
Gaussian templates are independently parameterized approximations, not
|
|
7
|
+
Adds off-path spectral irradiance before the sensor integrates the exposure, never after tone mapping.
|
|
8
|
+
Source powers are integrated over profile.referenceEntranceAreaMm2 at this instant and wavelength.
|
|
9
|
+
The Gaussian templates are independently parameterized approximations, not ray tracing through a
|
|
10
|
+
lens prescription.
|
|
10
11
|
|
|
11
12
|
```ts
|
|
12
13
|
export function calculateLensStrayLightIrradiance(input: {
|
|
@@ -21,7 +22,7 @@ This call is synchronous; any supplied provider must follow its explicit synchro
|
|
|
21
22
|
|
|
22
23
|
## LensStrayLightProfile
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
One explicit wavelength and an exact generic camera state. Models clean optics only.
|
|
25
26
|
|
|
26
27
|
```ts
|
|
27
28
|
export interface LensStrayLightProfile {
|
|
@@ -42,7 +43,7 @@ export interface LensStrayLightProfile {
|
|
|
42
43
|
|
|
43
44
|
## ParametricStrayLightResponse
|
|
44
45
|
|
|
45
|
-
One
|
|
46
|
+
One ghost (reflection path) or veil (broad scatter) response. Its shape is normalized over the infinite image plane.
|
|
46
47
|
|
|
47
48
|
```ts
|
|
48
49
|
export interface ParametricStrayLightResponse {
|
|
@@ -54,14 +55,14 @@ export interface ParametricStrayLightResponse {
|
|
|
54
55
|
sigmaMm: number;
|
|
55
56
|
/** Fraction of source power entering this response at the axis. */
|
|
56
57
|
axisPowerFraction: number;
|
|
57
|
-
/** F(rho)=F(0)*(1+slope*rho²), rho=source angle/
|
|
58
|
+
/** Power fraction versus angle: F(rho) = F(0) * (1 + slope * rho²), where rho = source angle / maximum angle. */
|
|
58
59
|
angularSlope: number;
|
|
59
60
|
}
|
|
60
61
|
```
|
|
61
62
|
|
|
62
63
|
## parseLensStrayLightProfile
|
|
63
64
|
|
|
64
|
-
Strict generic profile parser
|
|
65
|
+
Strict generic profile parser. Checks that the profile adds no energy at any source angle in its range.
|
|
65
66
|
|
|
66
67
|
```ts
|
|
67
68
|
export function parseLensStrayLightProfile(value: unknown): LensStrayLightProfile;
|
|
@@ -86,7 +87,7 @@ export interface StrayLightIrradiance {
|
|
|
86
87
|
ghostSpectralIrradianceWPerM2PerNm: number;
|
|
87
88
|
veilSpectralIrradianceWPerM2PerNm: number;
|
|
88
89
|
totalSpectralIrradianceWPerM2PerNm: number;
|
|
89
|
-
/** If primary-only, the meter
|
|
90
|
+
/** If primary-only, the meter leaves these additions out. The sensor always receives the total. */
|
|
90
91
|
meterDomain: "primary-only" | "primary-plus-stray";
|
|
91
92
|
meterSpectralIrradianceWPerM2PerNm: number;
|
|
92
93
|
contributions: readonly { sourceId: string; responseId: string; kind: "ghost" | "veil"; spectralIrradianceWPerM2PerNm: number }[];
|
|
@@ -95,7 +96,7 @@ export interface StrayLightIrradiance {
|
|
|
95
96
|
|
|
96
97
|
## StrayLightSource
|
|
97
98
|
|
|
98
|
-
|
|
99
|
+
The direction can lie outside the active frame. It is not clipped to the crop.
|
|
99
100
|
|
|
100
101
|
```ts
|
|
101
102
|
export interface StrayLightSource {
|
|
@@ -103,7 +104,7 @@ export interface StrayLightSource {
|
|
|
103
104
|
fieldAngleXDegrees: number;
|
|
104
105
|
fieldAngleYDegrees: number;
|
|
105
106
|
incidentSpectralPowerWPerNm: number;
|
|
106
|
-
/**
|
|
107
|
+
/** Fraction of this source let in, for example after a flag or hood decision. Not a global hood factor. */
|
|
107
108
|
admittedFraction: number;
|
|
108
109
|
}
|
|
109
110
|
```
|