@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
package/docs/RELEASE_1_5_0.md
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
# 1.5.0 release candidate
|
|
2
|
-
|
|
3
|
-
Review snapshot: 2026-10-05. This document records the 1.5.0 engine release candidate. It does not tag, publish or activate a downstream application.
|
|
4
|
-
|
|
5
|
-
**Proposed version:** `@photivra/engine@1.5.0`, with `ENGINE_API_VERSION = "1.5.0"`. The backward-compatible public `NativeRawInput.tileWidth` option warrants a minor release rather than describing the entire change as a patch-only fix. This is an engine release identity, not the separate application's public Beta label.
|
|
6
|
-
|
|
7
|
-
**Candidate metadata is aligned to 1.5.0 on the release branch.** Generated references, exact-candidate CI/package validation, final review and owner publication authorization remain gates below.
|
|
8
|
-
|
|
9
|
-
## Current integration and owner review — 2026-10-06
|
|
10
|
-
|
|
11
|
-
The owner substantively reviewed and approved PRs #230 and #232, certified DCO 1.1 for those contributions and authorized contributor sign-off and merge after remaining checks. #232 merged with authorized sign-off as `7106fb90d8351cb769c2c01b0f10ebf1a437aea8`; its reviewed head `0d414b3f942c65f42a1a86f26c073a83093cd004` passed exact-head CI. The 1.5.0 candidate includes that bounded qualification checkpoint and preserves the reviewed #230 release changes at `7f33e4e39f94893ee93f87d90e7153d80ebd6f08`.
|
|
12
|
-
|
|
13
|
-
The checkpoint adds independent SI photon/electron tests and complete 2×2 resource pilots, not complete native Focus qualification or a public experimental API. #224 remains open. Historical draft/input-review statements below describe the October 5 preparation snapshot; they do not reopen completed contribution review/DCO. Generated API references were regenerated on the combined candidate with no file drift. Combined-candidate local validation passed: 2,184 tests / one existing skip, existing coverage thresholds, build, docs, packed consumers, package surface and configured image-formation benchmark. The actual 1.5.0 archive was inspected: 867 entries, root-only export, matching emitted version declarations and no repository-only API implementation/test/source/script/workflow tree. Final combined-candidate GitHub CI remains required before merge; publication remains separately authorized.
|
|
14
|
-
|
|
15
|
-
## Published baseline and exact candidate inputs
|
|
16
|
-
|
|
17
|
-
- Published GitHub release: [v1.4.0](https://github.com/Photivra/photivra/releases/tag/v1.4.0), published on 2026-10-04.
|
|
18
|
-
- At this review, `main` and `v1.4.0` both identify commit `240340ec9e23ef79b6a0d729f494b2a531dd6df4`; their comparison contains no new commits or changed files.
|
|
19
|
-
- [PR #223](https://github.com/Photivra/photivra/pull/223), head `04baece1a8d1a133db3e7a2f0c9daa0d662bb826`: optional native RAW execution chunks and preservation of the exact acquisition plan during same-RAW development.
|
|
20
|
-
- [PR #225](https://github.com/Photivra/photivra/pull/225), head `70f55f5e27795d2fa51d112fbee1b14ee097b6ce`: experimental separable ideal-emission work, stacked on #223.
|
|
21
|
-
- This preparation branch starts at the #225 snapshot so neither draft is silently omitted from the review. That ancestry is not approval to ship either change. Reconcile this document whenever a source PR changes, is excluded, or is rebased.
|
|
22
|
-
|
|
23
|
-
The v1.4.0 GitHub release is verified here. A fresh direct npm-registry check was unavailable in this review; do not infer current registry dist-tags or integrity values from the GitHub release alone.
|
|
24
|
-
|
|
25
|
-
## Proposed release notes, subject to the gates below
|
|
26
|
-
|
|
27
|
-
### Bounded native RAW execution and development
|
|
28
|
-
|
|
29
|
-
Add an explicit integer `NativeRawInput.tileWidth` from 1 through 256 native sites. Omission preserves the existing 256-site execution and the original plan shape. The option controls provider request width, tile count and host-yield frequency; it is not a physical sampling or quality control.
|
|
30
|
-
|
|
31
|
-
Preserve that acquisition width when validating and developing an owned native RAW result. Reject invalid widths, inconsistent tile counts and stale plans rather than silently reconstructing the default-width plan. Existing CFA coordinates, absolute-index noise seeds, shutter timing and RAW/developed values remain the intended invariant.
|
|
32
|
-
|
|
33
|
-
The existing 100,000 logical-query tile bound, two-billion arbitrary-provider event bound and native raster/output-byte limits remain in force. Smaller chunks can solve a tile-admission problem; they do not solve an over-budget whole event or establish optical convergence.
|
|
34
|
-
|
|
35
|
-
### Experimental source work is not a supported release feature
|
|
36
|
-
|
|
37
|
-
#225 explores an explicit uniform-spectrum, achromatic ideal-emission factorization with separately counted geometry evaluations and spectral compositions. It does not establish that an external source satisfies separability, that a full native fixture is qualified, or that a device meets time/memory requirements. See [the draft contract](SEPARABLE_EMISSION_DRAFT.md).
|
|
38
|
-
|
|
39
|
-
Do not advertise or expose this as a supported public API. At the current #225 head the prototype lives under `src/api/`, which is built for repository checks but excluded by the npm package manifest and unreachable from the root browser/package graph. Promotion out of that repository-only boundary would be a separate reviewed public-contract change. A successful test suite alone remains insufficient for scientific or production qualification.
|
|
40
|
-
|
|
41
|
-
## Blocking findings
|
|
42
|
-
|
|
43
|
-
### Resolved prerequisite: experimental distribution boundary
|
|
44
|
-
|
|
45
|
-
#225 now restores the published `src/capture/native-environment-raw.ts` implementation unchanged and moves the separable-emission prototype under `src/api/`. The repository's existing package-surface check excludes `dist/api/`, and the browser/root reachability check does not traverse the prototype. The 128-ray correctness regression also carries an explicit 15-second test budget so Node 24 timing variance is not misreported as a scientific failure.
|
|
46
|
-
|
|
47
|
-
This boundary must remain verified on the final candidate. Moving the prototype into a published module or root dependency graph would reopen the release blocker.
|
|
48
|
-
|
|
49
|
-
### 1. Scientific/source and resource qualification remain unresolved
|
|
50
|
-
|
|
51
|
-
[Issue #224](https://github.com/Photivra/photivra/issues/224) requires bounded full-event evidence and no hidden source assumption or raised safety ceiling. #225 proposes a distinct, four-billion scalar spectral-composition ceiling while preserving the two-billion legacy provider ceiling. Review whether this new source/work domain satisfies the approved scope; do not treat preserving the old ceiling as automatic approval of the new one.
|
|
52
|
-
|
|
53
|
-
Full-native depth/visibility/refinement results, independently checked output and measured resource evidence remain prerequisites for any newly claimed full-native capability. Keep source separability and transport unverified until evidence establishes them. Excluding the prototype from this release is valid; silently presenting partial-tile or synthetic controls as full-event qualification is not.
|
|
54
|
-
|
|
55
|
-
### 2. Substantive human review and contribution-specific DCO
|
|
56
|
-
|
|
57
|
-
The input PRs #223/#225/#226 received substantive human review and DCO approval before candidate preparation. The owner subsequently reviewed and certified #230/#232 on 2026-10-06, as recorded above. Follow [CONTRIBUTING](../CONTRIBUTING.md); use the authorized contributor sign-off for inclusion. This review does not establish the unresolved full-native/source/resource qualification under #224 or authorize public promotion of the experimental API.
|
|
58
|
-
|
|
59
|
-
## Validation already available for the code snapshots
|
|
60
|
-
|
|
61
|
-
- #223 records 2,151 passing tests and one existing skip at `04baece`, with CI [37216829043](https://github.com/Photivra/photivra/actions/runs/37216829043).
|
|
62
|
-
- #225's corrected package-isolated head `70f55f5` passed CI [37384286949](https://github.com/Photivra/photivra/actions/runs/37384286949). The prior Node 24 timeout was addressed by an explicit correctness-test budget rather than changing scientific assertions or resource limits.
|
|
63
|
-
- The test counts above are taken from the source PR records, not a new local test execution. The inspected CI job outcomes establish those jobs' success, not review approval or scientific qualification.
|
|
64
|
-
- Neither snapshot is the final version-bumped release candidate. These results must not be reported as final 1.5.0 release verification. This preparation branch must rerun the matrix after every stacked-base or release-document change.
|
|
65
|
-
|
|
66
|
-
## Remaining release checklist
|
|
67
|
-
|
|
68
|
-
- [x] Isolate the experimental implementation from the published package/root dependency graph; keep package/browser-surface checks green on the final candidate.
|
|
69
|
-
- [x] Keep #225 experimental source/work-budget behavior repository-only and outside the public 1.5.0 package/API; #224 retains scientific qualification ownership.
|
|
70
|
-
- [x] #223/#225/#226 inclusion, substantive human review and DCO are recorded complete on engine main before this candidate branch; release-candidate changes still require final owner review.
|
|
71
|
-
- [x] Reconcile included stacked PRs in dependency order on engine main; retain any branches still needed by open work.
|
|
72
|
-
- [x] Set `package.json`, both root version fields in `package-lock.json`, `src/core/version.ts` and `CITATION.cff` to 1.5.0. No citation release date is asserted before publication.
|
|
73
|
-
- [x] Add the 1.5.0 changelog/release-context entry while preserving historical release records and independently versioned POC/schema/model identities.
|
|
74
|
-
- [x] Regenerate API documentation/`docs/api/exports.json` on the combined candidate; no generated drift.
|
|
75
|
-
- [x] Run local checks/coverage/build/docs/packed consumers/package gate/image-formation benchmark on the combined candidate and inspect the actual npm tarball and emitted root/declaration import graph. Final remote CI and final-main CI remain separate gates.
|
|
76
|
-
- [x] Owner scientific/source review and contribution-specific DCO certification cover the included contributions; final integration diff preserves the approved scope.
|
|
77
|
-
- [ ] Require green final-candidate CI before the signed merge and verify final-main CI before separate publication authorization.
|
|
78
|
-
- [ ] Verify protected main/tag configuration and trusted publishing, confirm the next npm version is absent, then authorize the separate tag/publish step. Never move v1.4.0 or attempt to overwrite its package.
|
|
79
|
-
- [ ] After publication, independently verify the npm version, dist-tag, tarball integrity and provenance, and publish matching GitHub release notes. Downstream dependency adoption and application qualification remain separate.
|
|
80
|
-
|
|
81
|
-
## Candidate preparation and verification
|
|
82
|
-
|
|
83
|
-
After resolving the inclusion/review decisions, use a clean checkout of the approved candidate. The existing release contract remains authoritative for guarded owner publication; see [release procedure](RELEASE_1_0_1.md#owner-release-procedure). The commands below perform preparation and checks only, not a tag or publication:
|
|
84
|
-
|
|
85
|
-
```sh
|
|
86
|
-
npm version 1.5.0 --no-git-tag-version --ignore-scripts
|
|
87
|
-
# Align src/core/version.ts and CITATION.cff, finalize CHANGELOG.md and
|
|
88
|
-
# current release-context prose; do not rewrite historical evidence.
|
|
89
|
-
npm ci --ignore-scripts
|
|
90
|
-
node scripts/generate-api-reference.mjs
|
|
91
|
-
node --test .github/test-node-lts-policy.mjs
|
|
92
|
-
node .github/node-lts-policy.mjs
|
|
93
|
-
npm run check
|
|
94
|
-
npm run coverage
|
|
95
|
-
npm run build
|
|
96
|
-
npm run docs:check
|
|
97
|
-
npm run release:consumer-check
|
|
98
|
-
npm run pack:check
|
|
99
|
-
npm run bench:image-formation:built
|
|
100
|
-
npm pack --ignore-scripts --json
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
Inspect the resulting tarball, its emitted declarations/imports and its recorded hashes. Keep temporary archives/build evidence untracked unless an existing evidence policy explicitly requires them. Review current [Node support](../NODE_SUPPORT.md); do not reuse a dated runtime snapshot as proof of future support. Any source, version, documentation, exclusion or generated-file change requires checks against that changed candidate.
|
|
104
|
-
|
|
105
|
-
**Stop before tagging or publishing until exact-candidate CI/package/tarball verification and owner authorization are complete.** No release tag, npm publication, GitHub release, application dependency change, automation or safety-cap change is performed by this preparation.
|
package/docs/RELEASE_AUDIT.md
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# Final 1.0.0 preparation audit
|
|
2
|
-
|
|
3
|
-
**Historical 1.0.0 record.** The 1.0.0 release is published. This document preserves its preparation evidence and original policy snapshot. For current Node support, aligned package/root versions and the next owner release procedure, use [1.0.1 release preparation](RELEASE_1_0_1.md) and [NODE_SUPPORT.md](../NODE_SUPPORT.md).
|
|
4
|
-
Package **1.0.0 candidate**, root API **0.116.0**, based on reviewed/signed main **34c6d9aca1c2e365b253c1562734d11bc8e0235f**. No tag, npm publication or GitHub release is performed by this contribution. The review PR and exact-head CI identify the candidate; the final signed squash commit/tree and post-merge CI belong in the issue/PR handoff after owner approval. [Owner release steps](RELEASE_1_0.md) specify that boundary.
|
|
5
|
-
|
|
6
|
-
## Inventory and corrections
|
|
7
|
-
|
|
8
|
-
[The audit inventory](validation/release-audit-inventory.json) records all **62 pre-existing human/agent Markdown documents** and **141 source modules**. It includes document hashes and normalized source-syntax hashes, not private filesystem paths. All source syntax is identical to the feature/science baseline when comments are removed. Source JSDoc grows from 814 to 1,060 blocks, including module integration notes, previously undocumented exported operations, central state records and non-obvious internal execution algorithms. Existing member unit/coordinate documentation is retained. [The generated reference](API_REFERENCE.md) resolves **1,130 root symbols across 126 modules**, including exact accepted unions, fields, signatures and independent constants; it is regenerated/checked against the compiler's actual root exports.
|
|
9
|
-
|
|
10
|
-
| Reviewed surface | Findings and disposition |
|
|
11
|
-
| --- | --- |
|
|
12
|
-
| README, usage and onboarding | Corrected pending SDR integration, closed editor acceptance, extended-motion/stabilization scope and obsolete package/stability statements. Added one developer entry point with capabilities, qualified models/runtime and executable packed examples. |
|
|
13
|
-
| Architecture, physics, stage/production contracts | Reconciled static broad foundation/reserved metadata versus route-specific plan 0.7.0 execution; preserved sample/attached-RAW blockers and all source/area/wavelength/time/calibration limits. No broader capability is inferred. |
|
|
14
|
-
| Capture, RAW, processing, export, color | Corrected unmerged-draft/old issue status; preserved same native RAW lineage, signed shadows, separate ideal virtual-camera versus sensor-channel interpretation, one-time WB, correction/order and bounded export envelope. |
|
|
15
|
-
| Tier/conformance/performance evidence | Reconciled reviewed/merged #116/#119/#43/#45/#131 and 32/32 status. Introduction IDs and measured commits remain historical; no fixture/golden/benchmark data is relabeled as new measurements. |
|
|
16
|
-
| External export evidence | Carried forward PR #201 owner Lightroom orientation/as-shot/exposure/WB and landscape Photoshop/Chrome screenshots. User-Mac hashes/builds and JPEG-variant coverage remain explicitly limited; templates remain templates. No new commercial tool installation or external result is claimed. |
|
|
17
|
-
| Source public/internal contracts | Added plain-language purpose/input/return/stage-limit explanations and non-obvious RNG/Poisson/normal, signed readout, compensated temporal sums, provider preflight, evidence composition, color conditioning and TIFF/JPEG encoding notes. 141-module comment-free syntax comparison confirms no runtime changes. |
|
|
18
|
-
| AGENTS/contributing/security/support | Removed obsolete pending integration ownership, aligned 1.0 compatibility and maintained Node policy, retained human review/DCO/science/provenance/private-data boundaries and loopback-only contributor transport. |
|
|
19
|
-
| Distribution/legal/provenance | Coordinated package/lock/citation 1.0.0, retained every independent contract version, kept no runtime dependencies and Apache/DNG notices, completed pinned artifact-action inventory, shipped readable policies and npm-safe README links. Existing license/SPDX/package/browser gates remain unchanged. |
|
|
20
|
-
| Automation/publishing/discovery | Added docs/packed-consumer verification to existing CI/publish verification jobs; retained separate minimal OIDC publish job, protected exact-main tag and tarball checksum controls. Confirmed public protected main and active v* tag ruleset. Account-side npm trusted publisher remains an owner publication prerequisite. |
|
|
21
|
-
| Site handoff | Engine repository/package/docs are public navigation destinations. Site-side discovery #45/navigation #298/environments #300 own hosting and links; no unpublished route/deployment is invented. Site content was not verified after HTTP 403. |
|
|
22
|
-
|
|
23
|
-
## Examples, paths and package verification
|
|
24
|
-
|
|
25
|
-
The automated documentation checker validates **2,096 repository/local links** in the current Markdown tree and generated reference synchronization. It verifies every importing snippet's actual root symbols. **63 complete importing snippets** typecheck strictly and execute in an isolated ESM consumer installed from the real packed candidate, plus quick-start and production/paired-export examples. The latter uses the existing final-conformance fixture through the actual public package, not copied runtime algorithms or test-helper imports.
|
|
26
|
-
|
|
27
|
-
**26 composition fragments** have explicit prior-binding captions and [a dependency inventory](validation/documentation-fragments.json). These illustrate joining previously validated domain values; they are not claimed to run without those inputs. The public complete production example supplies actual owned synthetic data without inventing calibration or implicit defaults. Repository/local navigation is verified against actual paths/anchors, including public main-source links; external standards and archived references are citations rather than runtime fetches.
|
|
28
|
-
|
|
29
|
-
Pack checks retain root-only ESM/declaration surface and exclude `src/api`, source, tests and tooling. The package includes README, docs, examples, LICENSE/NOTICE and the referenced policy files so consumer links do not require a checkout. Documentation hosting and application implementation remain outside the package license boundary.
|
|
30
|
-
|
|
31
|
-
## Validation and exact candidate evidence
|
|
32
|
-
|
|
33
|
-
- Exact locked dependencies; maintained Node policy unchanged, official lifecycle reviewed 2026-10-02 (22 Maintenance LTS / 24 Active LTS; 26 still Current).
|
|
34
|
-
- Static/type/lint, license allowlist, SPDX, identity and browser graph pass; 138 browser-reachable modules.
|
|
35
|
-
- Local full check and coverage: **1,597 passing / 1 known unchanged-main Mac `equivalence-38` exact hash failure**, 142 files. No golden, assertion, threshold, scientific tolerance or seed schedule is changed. Exact-head Linux CI on Node 22.13/24 remains the required passing full-suite authority; attach its outcome to the review PR before merge.
|
|
36
|
-
- Build, root/package-content check, documentation/reference check and real packed-consumer declaration/runtime checks pass. The informational existing image-formation benchmark completes. Recorded tier/performance/independent-reader/editor acceptance remains applicable within its prior explicit limits because runtime syntax and model identities are unchanged.
|
|
37
|
-
- Final diff preserves scientific execution syntax across all 141 modules. Source comments, distribution metadata, docs and release-verification tooling are the changes.
|
|
38
|
-
|
|
39
|
-
Substantive owner review and contribution-specific DCO 1.1 certification are still required for this release-preparation contribution. After signed merge, final-main CI and tested-tree equality must be recorded before #180 closes and the owner tags `v1.0.0`. This audit does not certify an untested later commit or publish any artifact.
|
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
# Scene Radiance and Illumination
|
|
2
|
-
|
|
3
|
-
Release context: **package 1.2.0 candidate / root API 1.2.0**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_2_0.md).
|
|
4
|
-
|
|
5
|
-
Photivra separates **illumination-source metadata** from **outgoing scene spectral radiance**.
|
|
6
|
-
|
|
7
|
-
The public image-formation contract owns a `scene-radiance-evaluation` stage between scene projection and lens/pupil evaluation:
|
|
8
|
-
|
|
9
|
-
```text
|
|
10
|
-
scene geometry + illumination + material response + visibility + emission + time
|
|
11
|
-
-> outgoing scene spectral radiance
|
|
12
|
-
-> lens / pupil / PSF / transmission
|
|
13
|
-
-> sensor-plane spectral irradiance
|
|
14
|
-
-> sensor sampling and signal formation
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
This boundary prevents light-source controls, RGB renderer values, or photometric scene anchors from being treated as sensor input.
|
|
18
|
-
|
|
19
|
-
## Shared spectral primitives
|
|
20
|
-
|
|
21
|
-
Fundamental wavelength semantics live in the renderer-neutral core rather than the sensor layer.
|
|
22
|
-
|
|
23
|
-
`SpectralWavelengthBasis` supports:
|
|
24
|
-
|
|
25
|
-
- `air`;
|
|
26
|
-
- `vacuum`;
|
|
27
|
-
- `unspecified`.
|
|
28
|
-
|
|
29
|
-
The shared parsers also expose a positive wavelength sample and a positive non-empty wavelength range in nanometres. They do not convert between air and vacuum wavelength coordinates.
|
|
30
|
-
|
|
31
|
-
Existing sensor APIs continue to export/use the same root `SpectralWavelengthBasis` name. Moving ownership does not change its public values or meaning.
|
|
32
|
-
|
|
33
|
-
## Scene radiometry versus scene radiance
|
|
34
|
-
|
|
35
|
-
The existing `SceneRadiometry` contract remains valid.
|
|
36
|
-
|
|
37
|
-
- `relative-linear` says scene-linear values preserve ratios without absolute photon calibration.
|
|
38
|
-
- `absolute-luminance` provides a photometric luminance anchor in cd/m².
|
|
39
|
-
|
|
40
|
-
Neither form is, by itself, an outgoing spectral-radiance field. Absolute luminance is a photometric anchor and must not be substituted for W/(m²·sr·nm), source irradiance, or sensor-plane spectral irradiance.
|
|
41
|
-
|
|
42
|
-
The new illumination profile complements `SceneRadiometry`; it does not replace it.
|
|
43
|
-
|
|
44
|
-
## Illumination profile
|
|
45
|
-
|
|
46
|
-
Use `parseSceneIlluminationProfile()` for renderer-independent source metadata.
|
|
47
|
-
|
|
48
|
-
Schema `0.1.0` supports these source families:
|
|
49
|
-
|
|
50
|
-
- `point`;
|
|
51
|
-
- `spot`;
|
|
52
|
-
- `area`;
|
|
53
|
-
- `directional`;
|
|
54
|
-
- `environment`.
|
|
55
|
-
|
|
56
|
-
Every source has a stable `sourceId`, explicit enabled state, geometry/binding, magnitude representation, spectrum representation, time behavior, and evidence.
|
|
57
|
-
|
|
58
|
-
A visible/emissive source may bind to a stable scene object instead of duplicating its transform. Area-source geometry must use a scene-object binding in the first schema.
|
|
59
|
-
|
|
60
|
-
## Magnitude semantics
|
|
61
|
-
|
|
62
|
-
There is no generic unitless `intensity` field.
|
|
63
|
-
|
|
64
|
-
All source families may use a clearly labeled relative linear scale for approximate/reference rendering. The first physical magnitude subset is deliberately narrow:
|
|
65
|
-
|
|
66
|
-
- point: radiant intensity, W/sr;
|
|
67
|
-
- area: surface radiance, W/(m²·sr);
|
|
68
|
-
- directional: irradiance at an explicit reference plane, W/m².
|
|
69
|
-
|
|
70
|
-
Physical spot magnitude is not yet represented because a defensible model needs an angular distribution. Absolute environment illumination is not yet represented because it needs a direction-dependent radiance field.
|
|
71
|
-
|
|
72
|
-
Photometric quantities such as lumens, candela, lux, and luminance are not silently converted into radiometric quantities.
|
|
73
|
-
|
|
74
|
-
## Spectrum representations
|
|
75
|
-
|
|
76
|
-
Schema `0.1.0` supports:
|
|
77
|
-
|
|
78
|
-
- unresolved spectrum with an explicit limitation;
|
|
79
|
-
- linear-sRGB preview approximation;
|
|
80
|
-
- explicit blackbody-temperature approximation;
|
|
81
|
-
- continuous relative spectral shape with wavelength coordinates, interpolation semantics, uncertainty, and reusable-data provenance;
|
|
82
|
-
- normalized discrete relative lines with explicit wavelengths and wavelength-integrated line fractions.
|
|
83
|
-
|
|
84
|
-
A blackbody temperature is an explicit approximation. It is not a universal CCT/color control and must not be used to give arbitrary colored, LED, narrowband, UV, or other non-Planckian sources a fictitious Kelvin meaning.
|
|
85
|
-
|
|
86
|
-
Embedded continuous numeric spectra require `reusable-data` or `photivra-owned` evidence. A calibrated relative spectral shape must use an explicit air/vacuum wavelength basis and quantified relative uncertainty.
|
|
87
|
-
|
|
88
|
-
The continuous relative spectrum uses arbitrary relative normalization. Combining it with a broadband physical magnitude into an absolute spectral source distribution remains a later explicit composition step; the parser does not silently normalize or integrate it.
|
|
89
|
-
|
|
90
|
-
Discrete line spectra use the separate `discrete-relative-lines` representation. Each line has an explicit wavelength and a normalized **wavelength-integrated** line weight; weights must sum to one. These are not per-nanometre density samples and are never broadened into synthetic continuous bumps. A calibrated relative line distribution requires reusable-data provenance, a resolved air/vacuum wavelength basis, and quantified relative uncertainty.
|
|
91
|
-
|
|
92
|
-
`resolveSceneIlluminationDiscreteLineMeasure()` may distribute the source's wavelength-integrated magnitude across those normalized line fractions. Point radiant intensity becomes per-line W/sr, area radiance becomes per-line W/(m²·sr), directional reference-plane irradiance becomes per-line W/m², and relative source magnitude stays relative. Disabled sources resolve to zero contribution.
|
|
93
|
-
|
|
94
|
-
This source-level line measure still does not authorize a calibrated outgoing scene-radiance claim because material/visibility/transport fidelity and combined uncertainty remain separate.
|
|
95
|
-
|
|
96
|
-
## Shared spectral composition
|
|
97
|
-
|
|
98
|
-
`composeSpectralCoverage()` defines the common continuous-spectral planning seam across scene, optics, materials, sensor response, or other wavelength-dependent factors.
|
|
99
|
-
|
|
100
|
-
Each participant declares:
|
|
101
|
-
|
|
102
|
-
- stable participant ID and role;
|
|
103
|
-
- one resolved air or vacuum wavelength basis;
|
|
104
|
-
- finite wavelength support;
|
|
105
|
-
- strictly ordered internal interpolation breakpoints.
|
|
106
|
-
|
|
107
|
-
Composition intersects all participant wavelength ranges and unions every breakpoint that lies inside the common overlap. It does **not** apply response/transmission/radiance values and does not integrate a spectral density. Air/vacuum conversion is never implicit.
|
|
108
|
-
|
|
109
|
-
The existing sensor spectral response can participate through `createSensorSpectralCoverageParticipant()`, which exposes the channel response's usable overlap and interpolation knots without applying QE or A/W responsivity.
|
|
110
|
-
|
|
111
|
-
Continuous scene-illumination data can participate through `createSceneIlluminationSpectralCoverageParticipant()`. RGB, blackbody approximations, unresolved spectra, and discrete line spectra are rejected by that adapter rather than being silently converted into a continuous curve.
|
|
112
|
-
|
|
113
|
-
### Continuous versus discrete integration
|
|
114
|
-
|
|
115
|
-
The mathematical distinction is hard:
|
|
116
|
-
|
|
117
|
-
```text
|
|
118
|
-
continuous density: integral f(lambda) d-lambda
|
|
119
|
-
discrete line measure: sum line_i
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
`integrateDiscreteSpectralLineMeasure()` therefore sums already wavelength-integrated line quantities. It never multiplies a line by a fabricated `dλ` and never invokes continuous quadrature.
|
|
123
|
-
|
|
124
|
-
A continuous composition plan and a discrete-line measure may coexist in a future mixed-spectrum transport model, but schema/API 0.1.0 keeps them separate rather than pretending one representation is the other.
|
|
125
|
-
|
|
126
|
-
## Temporal boundary
|
|
127
|
-
|
|
128
|
-
Schema `0.1.0` supports time-invariant source emission only.
|
|
129
|
-
|
|
130
|
-
Flash pulses, mains/LED flicker, and other time-varying source waveforms must later consume the existing seconds-based exposure-time contract. They must not invent a second time coordinate.
|
|
131
|
-
|
|
132
|
-
## What this foundation does not calculate
|
|
133
|
-
|
|
134
|
-
A parsed illumination profile explicitly reports that it has not:
|
|
135
|
-
|
|
136
|
-
- calculated outgoing scene radiance;
|
|
137
|
-
- applied material optical response;
|
|
138
|
-
- evaluated visibility/occlusion;
|
|
139
|
-
- evaluated indirect light transport;
|
|
140
|
-
- modeled fluorescence;
|
|
141
|
-
- modeled participating-media/volumetric spectral transport;
|
|
142
|
-
- modeled polarization.
|
|
143
|
-
|
|
144
|
-
Those are scientific boundaries, not renderer implementation preferences.
|
|
145
|
-
|
|
146
|
-
RGB/PBR textures and RGB HDR environments can still be useful preview/reference inputs, but they are approximation paths unless compatible spectral and absolute-radiometric calibration is actually available.
|
|
147
|
-
|
|
148
|
-
## Renderer boundary
|
|
149
|
-
|
|
150
|
-
Photivra owns the semantic inputs and scene-radiance stage. It does not require one renderer implementation.
|
|
151
|
-
|
|
152
|
-
A browser/WebGPU preview, Blender reference render, or future spectral renderer may use different bounded approximations while consuming the same source identities and declared meanings. Approximate backends must not inherit calibrated spectral/radiometric claims merely because they consume an engine-owned profile.
|
|
153
|
-
|
|
154
|
-
## Scene-radiance provider and material-response boundary
|
|
155
|
-
|
|
156
|
-
The engine now exposes a renderer-neutral provider boundary without becoming a renderer.
|
|
157
|
-
|
|
158
|
-
`parseSceneMaterialResponseProfile()` describes stable material-response inputs. Schema `0.1.0` deliberately distinguishes:
|
|
159
|
-
|
|
160
|
-
- unresolved material response;
|
|
161
|
-
- `rgb-pbr-approximation`, with linear-sRGB base color plus bounded metallic/roughness parameters and an explicit limitation;
|
|
162
|
-
- `spectral-wavelength-preserving-data`, bound to a SHA-256 identified data artifact, explicit wavelength basis/range, uncertainty and a provider-defined wavelength-preserving scattering model.
|
|
163
|
-
|
|
164
|
-
RGB/PBR input is always approximation data. Spectral material data may itself be calibrated, but schema 0.1.0 does not model wavelength-changing behavior, fluorescence, material emission, volumetric material transport or polarization.
|
|
165
|
-
|
|
166
|
-
`assessSceneMaterialResponseFidelity()` reports the conservative profile-level state: `spectral-data`, `rgb-pbr-approximation`, `mixed`, or `unresolved`.
|
|
167
|
-
|
|
168
|
-
`parseSceneRadianceProviderProfile()` declares the provider's bindings and fidelity independently across:
|
|
169
|
-
|
|
170
|
-
- spectral evaluation;
|
|
171
|
-
- material response;
|
|
172
|
-
- visibility;
|
|
173
|
-
- direct transport;
|
|
174
|
-
- indirect transport.
|
|
175
|
-
|
|
176
|
-
Its output quantity is fixed to outgoing spectral radiance in `W/m^2/sr/nm`. Provider schema `0.1.0` is intentionally `approximation` only. Calibrated input artifacts therefore cannot automatically promote an incomplete renderer/transport path into a calibrated outgoing-radiance claim.
|
|
177
|
-
|
|
178
|
-
### Evaluation request
|
|
179
|
-
|
|
180
|
-
`parseSceneRadianceEvaluationRequest()` identifies one exact sample by:
|
|
181
|
-
|
|
182
|
-
- provider/scene/illumination/material profile IDs;
|
|
183
|
-
- surface point + scene object + material response, or an environment direction;
|
|
184
|
-
- unit-length outgoing direction;
|
|
185
|
-
- seconds from exposure start;
|
|
186
|
-
- positive wavelength in an explicit air or vacuum basis.
|
|
187
|
-
|
|
188
|
-
`unspecified` wavelength basis is rejected for physical outgoing spectral-radiance evaluation.
|
|
189
|
-
|
|
190
|
-
### Evaluation result
|
|
191
|
-
|
|
192
|
-
`parseSceneRadianceEvaluationResult()` validates provider-produced output with:
|
|
193
|
-
|
|
194
|
-
- exact sample/provider/scene/wavelength identity;
|
|
195
|
-
- `outgoing-spectral-radiance` quantity;
|
|
196
|
-
- `W/m^2/sr/nm` units;
|
|
197
|
-
- finite nonnegative spectral radiance;
|
|
198
|
-
- approximation status, uncertainty, evidence and limitations.
|
|
199
|
-
|
|
200
|
-
Parsing does **not** prove that the renderer's numeric radiance value is physically correct.
|
|
201
|
-
|
|
202
|
-
`validateSceneRadianceEvaluationBindings()` then verifies the exact scene/profile/material/request/result relationships. A surface request must reference a declared material response, and the provider's declared material fidelity must agree with the supplied material-response profile.
|
|
203
|
-
|
|
204
|
-
The validation result explicitly reports that calibrated radiance is not authorized and that optics, sensor-plane irradiance and photons have not been calculated.
|
|
205
|
-
|
|
206
|
-
This means a browser preview, Blender reference path, or future spectral renderer can plug into one stable scientific seam without the engine prescribing its rendering algorithm.
|
|
207
|
-
|
|
208
|
-
## Temporal illumination
|
|
209
|
-
|
|
210
|
-
Time-varying source emission is represented as an additive temporal overlay on the existing illumination profile. The base source keeps its authoritative identity, enabled state, magnitude, geometry and spectrum; the temporal layer supplies a **relative multiplier over physical time**.
|
|
211
|
-
|
|
212
|
-
Use `parseSceneIlluminationTemporalProfile()` to declare:
|
|
213
|
-
|
|
214
|
-
- aperiodic piecewise-linear multiplier waveforms for flash/pulse-like behavior;
|
|
215
|
-
- periodic piecewise-linear multiplier waveforms for flicker/repeating emission;
|
|
216
|
-
- reusable numeric waveform evidence and scientific status;
|
|
217
|
-
- one explicit source↔waveform binding per time-varying source;
|
|
218
|
-
- exact registration of waveform-local `t=0` to the capture reference `first-opening-boundary-phase`.
|
|
219
|
-
|
|
220
|
-
The registration equation is:
|
|
221
|
-
|
|
222
|
-
```text
|
|
223
|
-
waveform time =
|
|
224
|
-
capture time from first opening-boundary phase
|
|
225
|
-
- waveform t=0 offset from that capture reference
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
A calibrated waveform requires quantified relative uncertainty. A calibrated time registration requires quantified absolute timing uncertainty in seconds. Numeric waveform samples require reusable-data or Photivra-owned provenance.
|
|
229
|
-
|
|
230
|
-
`evaluateSceneIlluminationTemporalMultiplier()` evaluates one registered source at one physical capture time. It supports times before or after the capture reference; periodic waveforms wrap deterministically, while aperiodic waveforms return zero outside their declared support.
|
|
231
|
-
|
|
232
|
-
`integrateSceneIlluminationTemporalMultiplierOverExposureWindow()` consumes an authoritative `CaptureExposureWindows` sample from the existing shutter/exposure timing foundation. It uses deterministic uniform-midpoint quadrature over that local exposure interval and reports both:
|
|
233
|
-
|
|
234
|
-
- a dimensionless average relative multiplier; and
|
|
235
|
-
- a seconds-valued integrated relative multiplier.
|
|
236
|
-
|
|
237
|
-
The integration does **not** use sensor data-readout duration as a timing proxy. Readout and exposure remain independent.
|
|
238
|
-
|
|
239
|
-
The result also keeps source `enabled` state separate: a disabled source can retain a non-zero raw waveform value while its effective contribution is zero.
|
|
240
|
-
|
|
241
|
-
### Scene-radiance provider binding
|
|
242
|
-
|
|
243
|
-
`SceneRadianceProviderProfile` may now optionally declare `illuminationTemporalProfileId`. When it does, `validateSceneRadianceEvaluationBindings()` requires the matching temporal profile and verifies that it binds the same scene and base illumination profile.
|
|
244
|
-
|
|
245
|
-
This is semantic binding only. The validator does not prove that the provider numerically applied the waveform correctly, and temporal illumination does not promote provider output beyond the existing approximation-only scene-radiance contract.
|
|
246
|
-
|
|
247
|
-
### Metering and automatic-exposure boundary
|
|
248
|
-
|
|
249
|
-
Temporal illumination is upstream input to future metering/automatic-exposure consumers. This foundation never chooses ISO, aperture, shutter duration, compensation, or a target exposure.
|
|
250
|
-
|
|
251
|
-
That separation allows a future meter to observe changed pre-exposure radiance after a source changes without feeding final display/tone-mapped brightness back into source or exposure selection.
|
|
252
|
-
|
|
253
|
-
## Downstream optical-radiometry bridge
|
|
254
|
-
|
|
255
|
-
#110 now provides the first primary-optics consumer of a validated scene-radiance request/result pair.
|
|
256
|
-
|
|
257
|
-
`calculateSceneRadianceToSensorIrradiance()` preserves the scene sample's:
|
|
258
|
-
|
|
259
|
-
- sample/provider/scene identity;
|
|
260
|
-
- physical time from exposure start;
|
|
261
|
-
- wavelength coordinate and air/vacuum basis;
|
|
262
|
-
- outgoing spectral-radiance value and provenance.
|
|
263
|
-
|
|
264
|
-
It then applies an explicit lens-throughput profile to produce pre-sensor-stack spectral irradiance in `W/m^2/nm`.
|
|
265
|
-
|
|
266
|
-
The first bridge is intentionally limited to:
|
|
267
|
-
|
|
268
|
-
- paraxial circular-pupil acceptance;
|
|
269
|
-
- explicit nominal/working f-number semantics;
|
|
270
|
-
- one mutually exclusive transmission path:
|
|
271
|
-
- wavelength-resolved fractional transmission; or
|
|
272
|
-
- effective working T-stop approximation;
|
|
273
|
-
- one optional field-throughput result applied exactly once.
|
|
274
|
-
|
|
275
|
-
This downstream bridge does **not** change #85 scene-radiance semantics. In particular, the current provider/result schema remains approximation-only, so even calibrated optical-transmission data cannot promote the combined result to calibrated sensor-plane irradiance.
|
|
276
|
-
|
|
277
|
-
The bridge also stops before:
|
|
278
|
-
|
|
279
|
-
- PSF/diffraction redistribution;
|
|
280
|
-
- distortion area-density correction;
|
|
281
|
-
- sensor cover glass / OLPF / microlens;
|
|
282
|
-
- CFA/filter response;
|
|
283
|
-
- QE/responsivity;
|
|
284
|
-
- photon/electron conversion;
|
|
285
|
-
- stray-light contributions.
|
|
286
|
-
|
|
287
|
-
Those remain separately owned stages.
|
|
288
|
-
|
|
289
|
-
## Still outside this slice
|
|
290
|
-
|
|
291
|
-
The following remain later work beyond the completed A–E foundation sequence:
|
|
292
|
-
|
|
293
|
-
- fluorescence/excitation-emission;
|
|
294
|
-
- participating-media spectral transport;
|
|
295
|
-
- polarization;
|
|
296
|
-
- a future calibrated scene-radiance provider contract with sufficient completeness evidence.
|
|
297
|
-
|
|
298
|
-
The staged #85A–#85E foundation sequence is now represented in the engine. Remaining #85 work should be limited to explicitly approved later extensions or closure/hardening rather than widening the renderer contract by default.
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
# Declared scene radiance to sensor irradiance nodes
|
|
2
|
-
|
|
3
|
-
Release context: **package 1.2.0 candidate / root API 1.2.0**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_2_0.md).
|
|
4
|
-
|
|
5
|
-
`calculateSceneToSensorIrradianceQuadrature()` connects the existing #85 scene
|
|
6
|
-
request/result boundary and #110 paraxial optical bridge to the Cartesian nodes
|
|
7
|
-
of sensor spatial/spectral quadrature. Its output is physical **W/m²/nm** at the
|
|
8
|
-
**sensor-package-incident, pre-sensor-stack, pre-AA** plane. It remains a bounded
|
|
9
|
-
static sample calculation, not complete production scene-to-file execution.
|
|
10
|
-
|
|
11
|
-
## Bindings and calculation
|
|
12
|
-
|
|
13
|
-
Inputs are existing `spatialQuadrature` and `spectralQuadrature` values,
|
|
14
|
-
`sceneBindings` (provider, illumination, material and optional temporal
|
|
15
|
-
illumination profiles), shared `optics`, explicit `timeSecondsFromExposureStart`,
|
|
16
|
-
and a `samples` array. Each sample contains its exact spatio-spectral `node`,
|
|
17
|
-
`sceneRadianceRequest`, `sceneRadianceResult` and `fieldThroughput` declaration.
|
|
18
|
-
|
|
19
|
-
The adapter shares the irradiance reducer's internal Cartesian binding code:
|
|
20
|
-
profile/channel/plan semantics, the existing 100,000 combined-node budget,
|
|
21
|
-
complete coverage, safe integer indices, exact wavelength and duplicate checks
|
|
22
|
-
are identical. Sparse arrays now receive an explicit scientific-input error;
|
|
23
|
-
valid reduction arithmetic and prior ordinary invalid-input diagnostics are
|
|
24
|
-
unchanged. The internal binder is not exported from the public package root.
|
|
25
|
-
|
|
26
|
-
Provider/profile payloads are parsed, then every request/result is matched to
|
|
27
|
-
those profiles. This adapter requires wavelength-resolved provider fidelity;
|
|
28
|
-
RGB-derived and unresolved fidelity cannot enter this physical node path.
|
|
29
|
-
Requests must match the node wavelength and basis and the common explicit time.
|
|
30
|
-
Each node needs a distinct `sampleId`; identical values are allowed for an
|
|
31
|
-
explicitly declared uniform field but do not prove that field is uniform.
|
|
32
|
-
|
|
33
|
-
For each node the existing optical bridge computes
|
|
34
|
-
`L_lambda * pi/(4*N_working²) * transmission * fieldThroughput`, with the
|
|
35
|
-
existing mutually exclusive spectral-transmission/working-T-stop rules and
|
|
36
|
-
optional front-of-lens filters. The adapter owns `imagePointMm`: it comes from
|
|
37
|
-
the spatial node's **preAntiAliasingSourcePointMm**, never the destination
|
|
38
|
-
aperture point or a caller substitution. Non-unity vignetting results must match
|
|
39
|
-
that source point. Existing bridge validation retains finite-focus assumptions,
|
|
40
|
-
wavelength support, passive transmission, units and separate uncertainties.
|
|
41
|
-
|
|
42
|
-
No aperture area, spectral measure, AA weight, QE or exposure duration is folded
|
|
43
|
-
into the per-node irradiance value. The returned `reduction` delegates those
|
|
44
|
-
spatial/continuous-wavelength measures to the existing reducer once. Passing
|
|
45
|
-
`irradianceSamples` to the EQE adapter recomputes that reduction for its own
|
|
46
|
-
validated execution; **do not add or multiply the diagnostic reductions**.
|
|
47
|
-
|
|
48
|
-
## Explicit EQE handoff
|
|
49
|
-
|
|
50
|
-
```ts
|
|
51
|
-
const optical = calculateSceneToSensorIrradianceQuadrature(sceneInput);
|
|
52
|
-
const photo = calculateSensorEqeLocalExposure({
|
|
53
|
-
...sensorInput,
|
|
54
|
-
irradianceSamples: optical.value.irradianceSamples,
|
|
55
|
-
responseApplication: {
|
|
56
|
-
...sensorInput.responseApplication,
|
|
57
|
-
sourcePlane: { value: optical.value.sourcePlane, evidence: sourcePlaneEvidence }
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
The sensor parameters must produce the same spatial/spectral nodes. The response
|
|
63
|
-
must explicitly support **sensor-package-incident-effective-channel-response**.
|
|
64
|
-
Do not relabel package-incident light as site-incident light, assume an absent AA
|
|
65
|
-
kernel means the entire stack has unit transmission, or apply stack attenuation
|
|
66
|
-
already included in effective package EQE. Site-incident/separable response needs
|
|
67
|
-
an additional correctly modeled stack handoff. The separate stationarity profile
|
|
68
|
-
still authorizes rate × local duration; one evaluated instant establishes no
|
|
69
|
-
stationarity. Dark/completeness/capacity/readout remain explicit downstream data.
|
|
70
|
-
|
|
71
|
-
## Result and limits
|
|
72
|
-
|
|
73
|
-
The result retains canonical plan-order samples with owned request/result copies,
|
|
74
|
-
pre-AA coordinates, provider binding assessments and child optical envelopes,
|
|
75
|
-
plus `irradianceSamples` and the reduction envelope. Aggregate provenance is
|
|
76
|
-
approximation. `sourceTargetProjectionVerified` and `sceneProviderExecutionVerified`
|
|
77
|
-
remain false: a caller-declared environment/surface target is not an engine
|
|
78
|
-
intersection/visibility/transport proof. The provider remains external; no
|
|
79
|
-
callback, renderer, transport or network execution is added.
|
|
80
|
-
|
|
81
|
-
`psfRedistributionApplied` and `temporalIntegrationApplied` remain false. This
|
|
82
|
-
slice does not authorize skipping requested diffraction, defocus, aberration,
|
|
83
|
-
visibility, motion, stray light or temporal transport. Production graph/gates
|
|
84
|
-
are unchanged. Projection/PSF/temporal sampling and committed capture origin are
|
|
85
|
-
remaining #16/#178 work, coordinated with #112; no feature is closed here.
|
|
86
|
-
|
|
87
|
-
Tests independently predict optical irradiance, radiant power and photoelectron
|
|
88
|
-
expectations using SI constants and declared synthetic curves. Split-AA tests
|
|
89
|
-
check source-point vignetting and one-time area/weight/transmission arithmetic.
|
|
90
|
-
Identity/time/basis/coverage/profile/plane failures reject; declared radiance
|
|
91
|
-
passes through optics/EQE into deterministic four-site RAW and paired DNG/JPEG,
|
|
92
|
-
with exact native DNG code preservation. All data is Photivra-owned synthetic
|
|
93
|
-
fixture evidence, not physical camera calibration or source-truth validation.
|
|
94
|
-
|
|
95
|
-
This additive public adapter advances root API **0.107.0 → 0.108.0**; its model
|
|
96
|
-
version is 0.1.0. Package, POC, production, capture/RAW schemas and noise identities
|
|
97
|
-
are unchanged. Newly created captures use the new root API stamp; historical
|
|
98
|
-
replay keeps its stored stamp and pinned file hashes. No new dependency or cost.
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
# Declared temporal scene radiance to sensor EQE
|
|
2
|
-
|
|
3
|
-
Release context: **package 1.2.0 candidate / root API 1.2.0**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_2_0.md).
|
|
4
|
-
|
|
5
|
-
`calculateSceneSensorEqeTemporalExposure()` composes the existing scene-to-sensor
|
|
6
|
-
optical quadrature and temporal EQE calculation. It evaluates optics, response
|
|
7
|
-
compatibility, per-bin operating range and EQE **at every local shutter midpoint**
|
|
8
|
-
before integrating rates with seconds-valued measures. It never averages light
|
|
9
|
-
first and uses that average to hide an invalid bright instant.
|
|
10
|
-
|
|
11
|
-
## Input and binding
|
|
12
|
-
|
|
13
|
-
`sensor` is `CalculateSensorEqeTemporalExposureInput` without `samples`. Its
|
|
14
|
-
aperture/AA, CFA/site/native registration and spectral response inputs own both
|
|
15
|
-
quadrature plans. There is no independent caller-supplied optical plan that can
|
|
16
|
-
drift from the sensor plan. `sceneBindings` and `optics` retain the static
|
|
17
|
-
optical bridge's provider/material/illumination, working-f-number, transmission,
|
|
18
|
-
filter and field-throughput validation.
|
|
19
|
-
|
|
20
|
-
`timeReference` must explicitly be `first-opening-boundary-phase`. Each temporal
|
|
21
|
-
sample has `temporalSampleIndex`, `timeSecondsFromOpeningReference` and complete
|
|
22
|
-
`sceneSamples` in the existing optical quadrature shape. Every scene request
|
|
23
|
-
timestamp must equal this local midpoint on the same declared reference. Scene
|
|
24
|
-
query seconds are explicitly bound to that opening boundary by this composition;
|
|
25
|
-
readout time or renderer frame time is not substituted. The temporal sensor
|
|
26
|
-
calculator verifies the exact midpoint against the resolved local shutter window,
|
|
27
|
-
including rolling offsets, with its existing representability checks.
|
|
28
|
-
|
|
29
|
-
Indices must uniquely cover 1–256 temporal samples. Array order is not identity.
|
|
30
|
-
The shared internal temporal preflight checks the aggregate 100,000 declared
|
|
31
|
-
spatial × spectral × temporal node budget before optical calculations. The
|
|
32
|
-
existing optical binder separately checks exact Cartesian coverage. Scene
|
|
33
|
-
`sampleId` values must be unique across all instants as well as within an instant;
|
|
34
|
-
reusing an earlier query identity for a new time is rejected.
|
|
35
|
-
|
|
36
|
-
Output from optics remains **sensor-package-incident, pre-stack/pre-AA W/m²/nm**.
|
|
37
|
-
The response application must explicitly declare that plane and the selected
|
|
38
|
-
effective response must support it. This API cannot relabel light as site-incident
|
|
39
|
-
or silently add stack attenuation already included in package-effective EQE.
|
|
40
|
-
|
|
41
|
-
## Output and downstream handoff
|
|
42
|
-
|
|
43
|
-
The approximation envelope retains canonical `opticalSamples` with child optical
|
|
44
|
-
and provider binding evidence, and an `exposure` temporal EQE envelope with
|
|
45
|
-
independent instantaneous sensor evidence. Child diagnostic reductions are not
|
|
46
|
-
extra signal contributions: do not add them or multiply their measures twice.
|
|
47
|
-
|
|
48
|
-
For compact RAW photo commitment, pass the retained irradiance samples to the
|
|
49
|
-
existing creator, which independently revalidates the temporal physical input:
|
|
50
|
-
|
|
51
|
-
```ts
|
|
52
|
-
const scene = calculateSceneSensorEqeTemporalExposure(input);
|
|
53
|
-
const photo = createSensorEqeTemporalPhotoSignal({
|
|
54
|
-
temporalIntegrationId: "capture-site-temporal-001",
|
|
55
|
-
exposure: {
|
|
56
|
-
...input.sensor,
|
|
57
|
-
samples: scene.value.opticalSamples.map(sample => ({
|
|
58
|
-
temporalSampleIndex: sample.temporalSampleIndex,
|
|
59
|
-
timeSecondsFromOpeningReference: sample.timeSecondsFromOpeningReference,
|
|
60
|
-
irradianceSamples: sample.optics.value.irradianceSamples
|
|
61
|
-
}))
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Use `photo.value.photoSignal` with separately calculated exact-event dark charge,
|
|
67
|
-
charge completeness/capacity evidence and existing RAW/noise/readout inputs.
|
|
68
|
-
Revalidation is not a second exposure contribution; use only one photo signal.
|
|
69
|
-
The paired exporter continues to derive JPEG from the exact attached native RAW.
|
|
70
|
-
|
|
71
|
-
## Limits and compatibility
|
|
72
|
-
|
|
73
|
-
Provider results, targets and visibility remain declared approximations. The
|
|
74
|
-
engine does not invoke a renderer, intersect scene geometry or redistribute PSF
|
|
75
|
-
energy here. `sourceTargetProjectionVerified`, `sceneProviderExecutionVerified`
|
|
76
|
-
and `psfRedistributionApplied` remain false. No calibration, combined uncertainty,
|
|
77
|
-
convergence bound, physical accuracy, full-resolution/editor acceptance or
|
|
78
|
-
production-stage activation is inferred. Requested missing capabilities still
|
|
79
|
-
block in the production graph. The historical introduction left #16/#178/#112 open. They are now merged for their bounded scope; the full feature/science checklist is 32/32.
|
|
80
|
-
|
|
81
|
-
This additive public API advances root API **0.110.0 → 0.111.0**, model 0.1.0.
|
|
82
|
-
Package, POC, production, capture/RAW and noise/readout versions stay unchanged.
|
|
83
|
-
Existing temporal validation diagnostics/arithmetic and historical file replay
|
|
84
|
-
remain unchanged. New capture commitments receive the new root API stamp.
|
|
85
|
-
Tests use Photivra-owned synthetic evidence, not third-party calibration. No new
|
|
86
|
-
dependency, asset, network operation or cost is introduced.
|