@photivra/engine 1.0.1 → 1.2.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.
Files changed (244) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/CITATION.cff +1 -1
  3. package/NOTICE +29 -0
  4. package/README.md +8 -6
  5. package/THIRD_PARTY.md +10 -0
  6. package/dist/core/version.d.ts +1 -1
  7. package/dist/core/version.js +1 -1
  8. package/dist/index.d.ts +10 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +5 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/optics/complex-pupil-psf.d.ts +6 -0
  13. package/dist/optics/complex-pupil-psf.d.ts.map +1 -1
  14. package/dist/optics/complex-pupil-psf.js +10 -7
  15. package/dist/optics/complex-pupil-psf.js.map +1 -1
  16. package/dist/output/native-capture-sdr.d.ts +78 -0
  17. package/dist/output/native-capture-sdr.d.ts.map +1 -0
  18. package/dist/output/native-capture-sdr.js +171 -0
  19. package/dist/output/native-capture-sdr.js.map +1 -0
  20. package/dist/output/print-contrast-reference.d.ts +47 -0
  21. package/dist/output/print-contrast-reference.d.ts.map +1 -0
  22. package/dist/output/print-contrast-reference.js +95 -0
  23. package/dist/output/print-contrast-reference.js.map +1 -0
  24. package/dist/output/print-detail.d.ts +113 -0
  25. package/dist/output/print-detail.d.ts.map +1 -0
  26. package/dist/output/print-detail.js +224 -0
  27. package/dist/output/print-detail.js.map +1 -0
  28. package/dist/output/print-plan.d.ts +138 -0
  29. package/dist/output/print-plan.d.ts.map +1 -0
  30. package/dist/output/print-plan.js +305 -0
  31. package/dist/output/print-plan.js.map +1 -0
  32. package/dist/output/print-region-statistics.d.ts +92 -0
  33. package/dist/output/print-region-statistics.d.ts.map +1 -0
  34. package/dist/output/print-region-statistics.js +300 -0
  35. package/dist/output/print-region-statistics.js.map +1 -0
  36. package/docs/API_REFERENCE.md +89 -1
  37. package/docs/API_STYLE.md +1 -1
  38. package/docs/ARCHITECTURE.md +1 -1
  39. package/docs/AUTOMATION_COORDINATION.md +1 -1
  40. package/docs/CAPTURE_COLOR.md +1 -1
  41. package/docs/CAPTURE_CORRECTED_SDR.md +1 -1
  42. package/docs/CAPTURE_EXPORT_METADATA.md +1 -1
  43. package/docs/CAPTURE_SDR.md +3 -1
  44. package/docs/DEVELOPERS.md +12 -4
  45. package/docs/DIGITAL_OPTICS_FOUNDATION.md +1 -1
  46. package/docs/ENVIRONMENT_RAW_CAPTURE.md +1 -1
  47. package/docs/EXPORT_ACCEPTANCE.md +1 -1
  48. package/docs/GENERIC_TIER_PRESETS.md +1 -1
  49. package/docs/GEOMETRIC_PREPARATION_REUSE.md +1 -1
  50. package/docs/IMAGE_FORMATION.md +1 -1
  51. package/docs/LINEAR_CAPTURE_ENCODING.md +1 -1
  52. package/docs/MOTION_AND_SIGNAL.md +1 -1
  53. package/docs/NATIVE_CAPTURE_SDR.md +70 -0
  54. package/docs/NATIVE_CAPTURE_SDR_REVIEW.md +37 -0
  55. package/docs/NATIVE_CAPTURE_SDR_VALIDATION.md +34 -0
  56. package/docs/NUMERICAL_CORRECTNESS.md +1 -1
  57. package/docs/PERFORMANCE_BASELINE.md +1 -1
  58. package/docs/PHOTOGRAPHIC_EXPORT.md +1 -1
  59. package/docs/PHYSICS_FOUNDATION.md +1 -1
  60. package/docs/POC_API.md +1 -1
  61. package/docs/POC_PROJECTION_PLATFORM_REFERENCE.md +12 -0
  62. package/docs/POC_PROJECTION_REUSE.md +1 -1
  63. package/docs/PRINT_195_196_REVIEW.md +93 -0
  64. package/docs/PRINT_196_ENGINE_ACCEPTANCE.md +45 -0
  65. package/docs/PRINT_CONTRAST_REFERENCE.md +43 -0
  66. package/docs/PRINT_DETAIL_ASSESSMENT.md +81 -0
  67. package/docs/PRINT_DETAIL_JPEG_EVIDENCE.md +36 -0
  68. package/docs/PRINT_DETAIL_SDR_EVIDENCE.md +29 -0
  69. package/docs/PRINT_DETAIL_VALIDATION.md +36 -0
  70. package/docs/PRINT_PLANNING.md +75 -0
  71. package/docs/PRINT_REGION_STATISTICS.md +38 -0
  72. package/docs/PROCESSED_OUTPUT.md +1 -1
  73. package/docs/PRODUCTION_COMPOSITION.md +1 -1
  74. package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +1 -1
  75. package/docs/PROVENANCE.md +1 -1
  76. package/docs/PSF_FOUNDATION.md +11 -1
  77. package/docs/RAW_FRAME_ENVELOPE.md +1 -1
  78. package/docs/RAW_FRAME_RECONSTRUCTION.md +1 -1
  79. package/docs/RELEASE_1_1_0.md +25 -0
  80. package/docs/RELEASE_1_2_0.md +51 -0
  81. package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +1 -1
  82. package/docs/SCENE_SENSOR_QUADRATURE.md +1 -1
  83. package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +1 -1
  84. package/docs/SCIENTIFIC_ASSURANCE.md +1 -1
  85. package/docs/SCIENTIFIC_CONFORMANCE.md +1 -1
  86. package/docs/SDR_RENDERING.md +1 -1
  87. package/docs/SENSOR_ENVIRONMENT_QUERY.md +1 -1
  88. package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +1 -1
  89. package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +1 -1
  90. package/docs/SENSOR_PSF_QUADRATURE.md +1 -1
  91. package/docs/SENSOR_RAW_FRAME.md +1 -1
  92. package/docs/SENSOR_RAW_PRODUCER.md +1 -1
  93. package/docs/SIGNAL_CONFORMANCE.md +1 -1
  94. package/docs/SIMULATED_CAPTURE.md +1 -1
  95. package/docs/STABILIZATION.md +1 -1
  96. package/docs/TEMPORAL_PHOTO_RAW.md +1 -1
  97. package/docs/TIER_ACCEPTANCE.md +1 -1
  98. package/docs/TIER_PRESET_ACCEPTANCE.md +1 -1
  99. package/docs/USAGE.md +9 -1
  100. package/docs/V1_COMPOSITION_MAP.md +1 -1
  101. package/docs/V1_HELPER_REUSE_REVIEW.md +1 -1
  102. package/docs/V1_PERFORMANCE_DISPOSITION.md +1 -1
  103. package/docs/api/camera-equivalent-focal-length.md +1 -1
  104. package/docs/api/camera-field-of-view.md +1 -1
  105. package/docs/api/camera-projected-object-size.md +1 -1
  106. package/docs/api/capture-capture-export-metadata.md +1 -1
  107. package/docs/api/capture-environment-raw-producer.md +1 -1
  108. package/docs/api/capture-focus-control.md +1 -1
  109. package/docs/api/capture-linear-encoding.md +1 -1
  110. package/docs/api/capture-photographic-export.md +1 -1
  111. package/docs/api/capture-raw-frame-reconstruction.md +1 -1
  112. package/docs/api/capture-release-sequence.md +1 -1
  113. package/docs/api/capture-sensor-raw-frame.md +1 -1
  114. package/docs/api/capture-sensor-raw-producer.md +1 -1
  115. package/docs/api/capture-simulated-capture.md +1 -1
  116. package/docs/api/color-capture-color.md +1 -1
  117. package/docs/api/color-white-balance.md +1 -1
  118. package/docs/api/composition-image-formation-plan.md +1 -1
  119. package/docs/api/composition-plan-consumer.md +1 -1
  120. package/docs/api/core-calculation-result.md +1 -1
  121. package/docs/api/core-configuration-error.md +1 -1
  122. package/docs/api/core-image-formation.md +1 -1
  123. package/docs/api/core-scientific-assurance.md +1 -1
  124. package/docs/api/core-spectral-composition.md +1 -1
  125. package/docs/api/core-spectral.md +1 -1
  126. package/docs/api/core-validation.md +1 -1
  127. package/docs/api/core-version.md +2 -2
  128. package/docs/api/equipment-exposure-capabilities.md +1 -1
  129. package/docs/api/equipment-generic-tier-assets.md +1 -1
  130. package/docs/api/equipment-generic-tier-presets.md +1 -1
  131. package/docs/api/equipment-iso-capabilities.md +1 -1
  132. package/docs/api/equipment-metering-capabilities.md +1 -1
  133. package/docs/api/equipment-release-capabilities.md +1 -1
  134. package/docs/api/exports.json +267 -2
  135. package/docs/api/exposure-exposure-duration-control.md +1 -1
  136. package/docs/api/exposure-exposure-mode-resolver.md +1 -1
  137. package/docs/api/exposure-exposure.md +1 -1
  138. package/docs/api/exposure-flash.md +1 -1
  139. package/docs/api/exposure-metering-scene-radiance.md +1 -1
  140. package/docs/api/exposure-metering-target.md +1 -1
  141. package/docs/api/exposure-metering-temporal.md +1 -1
  142. package/docs/api/exposure-metering.md +1 -1
  143. package/docs/api/exposure-program-line.md +1 -1
  144. package/docs/api/motion-camera-rotation.md +1 -1
  145. package/docs/api/motion-capture-rotation-inverse-mapping.md +1 -1
  146. package/docs/api/motion-capture-rotation-temporal-quadrature.md +1 -1
  147. package/docs/api/motion-capture-rotation-trajectory.md +1 -1
  148. package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +1 -1
  149. package/docs/api/motion-extended-object-projection.md +1 -1
  150. package/docs/api/motion-projected-motion.md +1 -1
  151. package/docs/api/optics-aperture.md +1 -1
  152. package/docs/api/optics-circle-of-confusion.md +1 -1
  153. package/docs/api/optics-complex-pupil-psf.md +7 -1
  154. package/docs/api/optics-depth-of-field.md +1 -1
  155. package/docs/api/optics-diffraction.md +1 -1
  156. package/docs/api/optics-focus-breathing.md +1 -1
  157. package/docs/api/optics-focus-state.md +1 -1
  158. package/docs/api/optics-front-of-lens-filter.md +1 -1
  159. package/docs/api/optics-illumination-vignetting.md +1 -1
  160. package/docs/api/optics-lateral-chromatic-aberration.md +1 -1
  161. package/docs/api/optics-lens-psf-profile.md +1 -1
  162. package/docs/api/optics-polygon-diffraction.md +1 -1
  163. package/docs/api/optics-profile-contract.md +1 -1
  164. package/docs/api/optics-psf-foundation.md +1 -1
  165. package/docs/api/optics-radial-distortion.md +1 -1
  166. package/docs/api/optics-scene-to-sensor-irradiance.md +1 -1
  167. package/docs/api/optics-scene-to-sensor-quadrature.md +1 -1
  168. package/docs/api/optics-sensor-environment-query.md +1 -1
  169. package/docs/api/optics-sensor-psf-quadrature.md +1 -1
  170. package/docs/api/optics-stray-light.md +1 -1
  171. package/docs/api/optics-thin-lens.md +1 -1
  172. package/docs/api/output-capture-corrected-sdr.md +1 -1
  173. package/docs/api/output-capture-geometry.md +1 -1
  174. package/docs/api/output-capture-sdr.md +1 -1
  175. package/docs/api/output-crop.md +1 -1
  176. package/docs/api/output-geometric-transforms.md +1 -1
  177. package/docs/api/output-lens-corrections.md +1 -1
  178. package/docs/api/output-native-capture-sdr.md +150 -0
  179. package/docs/api/output-print-contrast-reference.md +82 -0
  180. package/docs/api/output-print-detail.md +147 -0
  181. package/docs/api/output-print-plan.md +165 -0
  182. package/docs/api/output-print-region-statistics.md +165 -0
  183. package/docs/api/output-sdr-rendering.md +1 -1
  184. package/docs/api/output-subject-framing-crop.md +1 -1
  185. package/docs/api/schema-camera.md +1 -1
  186. package/docs/api/schema-illumination-spectral.md +1 -1
  187. package/docs/api/schema-illumination-temporal.md +1 -1
  188. package/docs/api/schema-illumination.md +1 -1
  189. package/docs/api/schema-scene-radiance-temporal.md +1 -1
  190. package/docs/api/schema-scene-radiance.md +1 -1
  191. package/docs/api/schema-scene.md +1 -1
  192. package/docs/api/schema-validation.md +1 -1
  193. package/docs/api/sensor-accumulated-charge.md +1 -1
  194. package/docs/api/sensor-architecture.md +1 -1
  195. package/docs/api/sensor-camera-saturation-capacity.md +1 -1
  196. package/docs/api/sensor-capture-color-sampling-binding.md +1 -1
  197. package/docs/api/sensor-capture-mode-timing.md +1 -1
  198. package/docs/api/sensor-capture-mode.md +1 -1
  199. package/docs/api/sensor-color-sampling.md +1 -1
  200. package/docs/api/sensor-constant-rate-temporal-integration.md +1 -1
  201. package/docs/api/sensor-dark-current.md +1 -1
  202. package/docs/api/sensor-environment-photo-signal.md +1 -1
  203. package/docs/api/sensor-eqe-electron-rate.md +1 -1
  204. package/docs/api/sensor-eqe-local-exposure.md +1 -1
  205. package/docs/api/sensor-eqe-temporal-exposure.md +1 -1
  206. package/docs/api/sensor-exposure-window.md +1 -1
  207. package/docs/api/sensor-iso-signal-chain.md +1 -1
  208. package/docs/api/sensor-local-exposure-binding.md +1 -1
  209. package/docs/api/sensor-optical-stack.md +1 -1
  210. package/docs/api/sensor-photon-energy.md +1 -1
  211. package/docs/api/sensor-physical-charge-capacity.md +1 -1
  212. package/docs/api/sensor-pixel-pitch.md +1 -1
  213. package/docs/api/sensor-radiometry-readiness.md +1 -1
  214. package/docs/api/sensor-raw-readout.md +1 -1
  215. package/docs/api/sensor-raw-reconstruction.md +1 -1
  216. package/docs/api/sensor-readout-exposure-linkage.md +1 -1
  217. package/docs/api/sensor-readout-timing.md +1 -1
  218. package/docs/api/sensor-response-application-compatibility.md +1 -1
  219. package/docs/api/sensor-response-operating-range.md +1 -1
  220. package/docs/api/sensor-responsivity-photocurrent.md +1 -1
  221. package/docs/api/sensor-sampling-aperture.md +1 -1
  222. package/docs/api/sensor-scene-eqe-temporal-exposure.md +1 -1
  223. package/docs/api/sensor-sensor-geometry.md +1 -1
  224. package/docs/api/sensor-signal-noise.md +1 -1
  225. package/docs/api/sensor-spatial-sample-reduction.md +1 -1
  226. package/docs/api/sensor-spatial-sampling-quadrature.md +1 -1
  227. package/docs/api/sensor-spatio-spectral-reduction.md +1 -1
  228. package/docs/api/sensor-spectral-coverage.md +1 -1
  229. package/docs/api/sensor-spectral-quadrature.md +1 -1
  230. package/docs/api/sensor-spectral-response.md +1 -1
  231. package/docs/api/sensor-temporal-photo-signal.md +1 -1
  232. package/docs/api/simulation-poc-simulation.md +1 -1
  233. package/docs/api/stabilization-camera-shake.md +1 -1
  234. package/docs/api/stabilization-system.md +1 -1
  235. package/docs/licenses/castleCSF-MIT.txt +21 -0
  236. package/docs/validation/native-capture-sdr-darwin-arm64-node26-review.jsonl +4 -0
  237. package/docs/validation/native-capture-sdr-darwin-arm64.jsonl +3 -0
  238. package/docs/validation/print-196-candidate-capabilities.json +28 -0
  239. package/docs/validation/print-196-candidate-evidence.json +356 -0
  240. package/docs/validation/print-196-engine-acceptance.json +81 -0
  241. package/docs/validation/print-detail-capabilities.json +103 -0
  242. package/docs/validation/print-detail-jpeg-evidence.json +116 -0
  243. package/docs/validation/print-detail-sdr-evidence.json +81 -0
  244. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  # optics/scene-to-sensor-irradiance.ts public contracts
2
2
 
3
- Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
3
+ Package **1.2.0**, root API **1.2.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
4
 
5
5
  ## calculateSceneRadianceToSensorIrradiance
6
6
 
@@ -1,6 +1,6 @@
1
1
  # optics/scene-to-sensor-quadrature.ts public contracts
2
2
 
3
- Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
3
+ Package **1.2.0**, root API **1.2.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
4
 
5
5
  ## calculateSceneToSensorIrradianceQuadrature
6
6
 
@@ -1,6 +1,6 @@
1
1
  # optics/sensor-environment-query.ts public contracts
2
2
 
3
- Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
3
+ Package **1.2.0**, root API **1.2.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
4
 
5
5
  ## calculateSensorEnvironmentRadianceQuery
6
6
 
@@ -1,6 +1,6 @@
1
1
  # optics/sensor-psf-quadrature.ts public contracts
2
2
 
3
- Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
3
+ Package **1.2.0**, root API **1.2.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
4
 
5
5
  ## calculateSensorPsfIrradianceQuadrature
6
6
 
@@ -1,6 +1,6 @@
1
1
  # optics/stray-light.ts public contracts
2
2
 
3
- Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
3
+ Package **1.2.0**, root API **1.2.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
4
 
5
5
  ## calculateLensStrayLightIrradiance
6
6
 
@@ -1,6 +1,6 @@
1
1
  # optics/thin-lens.ts public contracts
2
2
 
3
- Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
3
+ Package **1.2.0**, root API **1.2.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
4
 
5
5
  ## calculateThinLensImageDistance
6
6
 
@@ -1,6 +1,6 @@
1
1
  # output/capture-corrected-sdr.ts public contracts
2
2
 
3
- Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
3
+ Package **1.2.0**, root API **1.2.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
4
 
5
5
  ## calculateCaptureCorrectedSdr
6
6
 
@@ -1,6 +1,6 @@
1
1
  # output/capture-geometry.ts public contracts
2
2
 
3
- Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
3
+ Package **1.2.0**, root API **1.2.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
4
 
5
5
  ## ActiveCaptureFieldOfView
6
6
 
@@ -1,6 +1,6 @@
1
1
  # output/capture-sdr.ts public contracts
2
2
 
3
- Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
3
+ Package **1.2.0**, root API **1.2.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
4
 
5
5
  ## calculateCaptureSdr
6
6
 
@@ -1,6 +1,6 @@
1
1
  # output/crop.ts public contracts
2
2
 
3
- Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
3
+ Package **1.2.0**, root API **1.2.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
4
 
5
5
  ## calculateCenteredCrop
6
6
 
@@ -1,6 +1,6 @@
1
1
  # output/geometric-transforms.ts public contracts
2
2
 
3
- Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
3
+ Package **1.2.0**, root API **1.2.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
4
 
5
5
  ## AffineGeometricTransform
6
6
 
@@ -1,6 +1,6 @@
1
1
  # output/lens-corrections.ts public contracts
2
2
 
3
- Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
3
+ Package **1.2.0**, root API **1.2.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
4
 
5
5
  ## calculateLensCorrectedCapture
6
6
 
@@ -0,0 +1,150 @@
1
+ # output/native-capture-sdr.ts public contracts
2
+
3
+ Package **1.2.0**, root API **1.2.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
+
5
+ ## calculateNativeCaptureSdrPlan
6
+
7
+ Validates/admission-plans without reading external samples or allocating a raster.
8
+
9
+ ```ts
10
+ export function calculateNativeCaptureSdrPlan(input: NativeCaptureSdrInput): NativeCaptureSdrPlan;
11
+ ```
12
+
13
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
14
+
15
+ ## createNativeCaptureSdrTask
16
+
17
+ Creates a single-use execution owner. Admission is validated before any buffer/provider work.
18
+
19
+ ```ts
20
+ export function createNativeCaptureSdrTask(input: NativeCaptureSdrInput, provider: NativeCaptureSdrProvider): NativeCaptureSdrTask;
21
+ ```
22
+
23
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
24
+
25
+ ## NATIVE_CAPTURE_SDR_LIMITS
26
+
27
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
28
+
29
+ ```ts
30
+ NATIVE_CAPTURE_SDR_LIMITS = Object.freeze({ maximumPixels: 24_000_000,
31
+ maximumDimension: 16_384, tileWidth: 256, tileHeight: 32, maximumTileStorageSamples: 32_768 })
32
+ ```
33
+
34
+ ## NATIVE_CAPTURE_SDR_SCHEMA_VERSION
35
+
36
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
37
+
38
+ ```ts
39
+ NATIVE_CAPTURE_SDR_SCHEMA_VERSION = "0.1.0" as const
40
+ ```
41
+
42
+ ## NativeCaptureSdrInput
43
+
44
+ Metadata-only external float master. Samples must already be color/WB resolved.
45
+
46
+ ```ts
47
+ export interface NativeCaptureSdrInput {
48
+ capture: SimulatedCapture;
49
+ sourcePlaneId: string;
50
+ outputImageStateId: string;
51
+ profile: SdrRenderingProfile;
52
+ /** Admission limit for retained integer output, before allocation or provider calls. */
53
+ maximumOutputBytes: number;
54
+ }
55
+ ```
56
+
57
+ ## NativeCaptureSdrOutput
58
+
59
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
60
+
61
+ ```ts
62
+ export interface NativeCaptureSdrOutput {
63
+ plan: NativeCaptureSdrPlan;
64
+ /** Caller-owned packed row-major RGB; 16-bit codes are numeric, not serialized endian bytes. */
65
+ integerSamples: Uint8Array | Uint16Array;
66
+ diagnostics: SdrRenderingResult["diagnostics"];
67
+ outputEncoding: SdrRenderingResult["outputEncoding"];
68
+ displayAdaptation: SdrRenderingResult["displayAdaptation"];
69
+ }
70
+ ```
71
+
72
+ ## NativeCaptureSdrPlan
73
+
74
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
75
+
76
+ ```ts
77
+ export interface NativeCaptureSdrPlan {
78
+ schemaVersion: typeof NATIVE_CAPTURE_SDR_SCHEMA_VERSION;
79
+ capture: SimulatedCapture;
80
+ sourcePlaneId: string;
81
+ outputImageStateId: string;
82
+ profile: SdrRenderingProfile;
83
+ outputBytes: number;
84
+ /** Logical array payload bound, not JS heap/GPU/process peak memory or device qualification. */
85
+ maximumScratchPayloadBytes: number;
86
+ tileCount: number;
87
+ }
88
+ ```
89
+
90
+ ## NativeCaptureSdrProvider
91
+
92
+ One provider call at a time. Caller must release decoding/GPU resources on abort/settlement.
93
+
94
+ ```ts
95
+ export interface NativeCaptureSdrProvider {
96
+ readTile(request: Readonly<NativeCaptureSdrTileRequest>, signal: AbortSignal): Promise<NativeCaptureSdrTile>;
97
+ /** Must yield to the host event loop, allowing cancellation/input events between tiles. */
98
+ yieldControl(signal: AbortSignal): Promise<void>;
99
+ }
100
+ ```
101
+
102
+ ## NativeCaptureSdrTask
103
+
104
+ Single-use task: no partial output escapes; cancel/dispose prevents late publication.
105
+
106
+ ```ts
107
+ export interface NativeCaptureSdrTask {
108
+ readonly plan: NativeCaptureSdrPlan;
109
+ readonly state: NativeCaptureSdrTaskState;
110
+ readonly completedTileCount: number;
111
+ run(): Promise<void>;
112
+ cancel(): void;
113
+ dispose(): void;
114
+ /** Transfers sole retained buffer ownership once. Dispose cannot revoke a transferred buffer. */
115
+ takeOutput(): NativeCaptureSdrOutput;
116
+ }
117
+ ```
118
+
119
+ ## NativeCaptureSdrTaskState
120
+
121
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
122
+
123
+ ```ts
124
+ export type NativeCaptureSdrTaskState = "ready" | "running" | "completed" | "cancelled" | "failed" | "disposed" | "transferred";
125
+ ```
126
+
127
+ ## NativeCaptureSdrTile
128
+
129
+ Returned tile is exclusively handed to this call; do not mutate/reuse it. Padding is not image data.
130
+
131
+ ```ts
132
+ export interface NativeCaptureSdrTile extends NativeCaptureSdrTileRequest {
133
+ rowStrideSamples: number;
134
+ samples: Float32Array | Float64Array;
135
+ }
136
+ ```
137
+
138
+ ## NativeCaptureSdrTileRequest
139
+
140
+ Absolute coordinates in the selected plane's declared binding, never crop-local sensor indices.
141
+
142
+ ```ts
143
+ export interface NativeCaptureSdrTileRequest {
144
+ captureId: string;
145
+ sourcePlaneId: string;
146
+ artifactId: string;
147
+ sha256: string;
148
+ x: number; y: number; width: number; height: number;
149
+ }
150
+ ```
@@ -0,0 +1,82 @@
1
+ # output/print-contrast-reference.ts public contracts
2
+
3
+ Package **1.2.0**, root API **1.2.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
+
5
+ ## calculatePrintContrastReference
6
+
7
+ Estimate the restricted published-model threshold; no individual invisibility claim.
8
+
9
+ ```ts
10
+ export function calculatePrintContrastReference(value: PrintContrastReferenceInput): CalculationResult<PrintContrastReference>;
11
+ ```
12
+
13
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
14
+
15
+ ## parsePrintContrastReferenceInput
16
+
17
+ Strictly parse/copy explicit reference conditions; no defaults infer an observer.
18
+
19
+ ```ts
20
+ export function parsePrintContrastReferenceInput(value: unknown): PrintContrastReferenceInput;
21
+ ```
22
+
23
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
24
+
25
+ ## PRINT_CONTRAST_REFERENCE_MODEL_VERSION
26
+
27
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
28
+
29
+ ```ts
30
+ PRINT_CONTRAST_REFERENCE_MODEL_VERSION = "0.1.0" as const
31
+ ```
32
+
33
+ ## PRINT_CONTRAST_REFERENCE_UPSTREAM_REVISION
34
+
35
+ Exact MIT-licensed numerical-model source, not a local calibration identity.
36
+
37
+ ```ts
38
+ PRINT_CONTRAST_REFERENCE_UPSTREAM_REVISION = "f4b0b722af83001d7af979281e06ca642d36e4e8" as const
39
+ ```
40
+
41
+ ## PrintContrastReference
42
+
43
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
44
+
45
+ ```ts
46
+ export interface PrintContrastReference {
47
+ referenceId: string;
48
+ engineApiVersion: string;
49
+ modelVersion: typeof PRINT_CONTRAST_REFERENCE_MODEL_VERSION;
50
+ upstreamRevision: typeof PRINT_CONTRAST_REFERENCE_UPSTREAM_REVISION;
51
+ input: PrintContrastReferenceInput;
52
+ status: "model-estimate" | "unsupported";
53
+ blockers: string[];
54
+ estimate: { contrastSensitivity: number; thresholdModulationMichelson: number; suppliedModulationToModelThresholdRatio: number } | null;
55
+ observerApplicability: "population-reference-unverified-for-individual";
56
+ naturalImageVisibility: "unassessed";
57
+ printStimulusMatch: "unassessed";
58
+ uncertainty: "not-quantified";
59
+ overallPrintVerdict: "not-offered";
60
+ }
61
+ ```
62
+
63
+ ## PrintContrastReferenceInput
64
+
65
+ Narrow reference stimulus, separate from any measured photographic ROI.
66
+ Positive but out-of-domain quantities return unsupported rather than extrapolation.
67
+
68
+ ```ts
69
+ export interface PrintContrastReferenceInput {
70
+ referenceId: string;
71
+ stimulus: "static-neutral-d65-gabor";
72
+ observer: "published-binocular-natural-pupil-reference";
73
+ /** Uniform D65 background/carrier mean; not the average of a finite photographic ROI. */
74
+ meanLuminanceCdPerSquareMeter: number;
75
+ spatialFrequencyCyclesPerDegree: number;
76
+ gaussianEnvelopeSigmaDegrees: number;
77
+ temporalFrequencyHz: number;
78
+ eccentricityDegrees: number;
79
+ /** Neutral carrier fractional amplitude before the Gaussian envelope; not arbitrary ROI extrema. */
80
+ modulationMichelson: number;
81
+ }
82
+ ```
@@ -0,0 +1,147 @@
1
+ # output/print-detail.ts public contracts
2
+
3
+ Package **1.2.0**, root API **1.2.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
+
5
+ ## calculatePrintRegionDetail
6
+
7
+ Calculate one coherent regional fundamental and its print reference scale.
8
+ Acquisition remains unknown; no MTF, noise, compression or perceptual pass is produced.
9
+
10
+ ```ts
11
+ export function calculatePrintRegionDetail(value: PrintRegionDetailInput): CalculationResult<PrintRegionDetailAssessment>;
12
+ ```
13
+
14
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
15
+
16
+ ## MAX_PRINT_DETAIL_REGION_SAMPLES
17
+
18
+ Work bound for one dense ROI, not an actual-device capability claim.
19
+
20
+ ```ts
21
+ MAX_PRINT_DETAIL_REGION_SAMPLES = 65536
22
+ ```
23
+
24
+ ## parsePrintRegionDetailInput
25
+
26
+ Parse/copy bounded, untrusted region/source/target data and existing Print geometry.
27
+ Unknowns, sparse arrays and factual-reference-only numeric samples fail closed.
28
+
29
+ ```ts
30
+ export function parsePrintRegionDetailInput(value: unknown): PrintRegionDetailInput;
31
+ ```
32
+
33
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
34
+
35
+ ## PRINT_REGION_DETAIL_MODEL_VERSION
36
+
37
+ Metric/protocol identity; independent of the root creator version.
38
+
39
+ ```ts
40
+ PRINT_REGION_DETAIL_MODEL_VERSION = "0.1.0" as const
41
+ ```
42
+
43
+ ## PrintDetailRegion
44
+
45
+ Selected half-open rectangle in the represented oriented retained raster.
46
+ Depth is descriptive, in metres; null explicitly means unknown.
47
+
48
+ ```ts
49
+ export interface PrintDetailRegion {
50
+ id: string;
51
+ rect: RasterRect;
52
+ role: "selected-subject" | "field-diagnostic" | "intentional-defocus";
53
+ subjectDistanceM: number | null;
54
+ focusDistanceM: number | null;
55
+ }
56
+ ```
57
+
58
+ ## PrintDetailSource
59
+
60
+ Exact represented source; content hash and decoding are caller assertions.
61
+
62
+ ```ts
63
+ export interface PrintDetailSource {
64
+ captureId: string;
65
+ representationId: string;
66
+ contentSha256: string;
67
+ raster: RasterDimensions;
68
+ stage: "native-retained-linear" | "post-resampling-linear" | "post-encoding-decoded-linear";
69
+ domain: "relative-linear-luminance" | "transfer-encoded-luma" | "unknown";
70
+ registration: "oriented-retained-unwarped" | "correction-or-warp-unqualified";
71
+ processing: { id: string; version: string };
72
+ noiseRealizationId: string | null;
73
+ evidence: readonly EvidenceProvenance[];
74
+ }
75
+ ```
76
+
77
+ ## PrintRegionDetailAssessment
78
+
79
+ Immutable snapshot with no full-system, artifact, perception or print-quality pass.
80
+
81
+ ```ts
82
+ export interface PrintRegionDetailAssessment {
83
+ assessmentId: string;
84
+ engineApiVersion: string;
85
+ modelVersion: typeof PRINT_REGION_DETAIL_MODEL_VERSION;
86
+ input: PrintRegionDetailInput;
87
+ status: "diagnostic-only" | "blocked" | "unsupported";
88
+ blockers: string[];
89
+ print: PrintPlan;
90
+ measurement: PrintSinusoidalMeasurement | null;
91
+ projection: {
92
+ fieldPointMm: { x: number; y: number };
93
+ frequencyCyclesPerMm: { x: number; y: number };
94
+ physicalPeriodMm: number;
95
+ angularPeriodAtImageCenterDegrees: number;
96
+ } | null;
97
+ assessedRasterMatchesRecommendation: boolean;
98
+ sourceArtifactVerification: "caller-declared-unverified";
99
+ assurance: ComposedScientificAssurance;
100
+ unassessed: readonly ("captured-system-mtf" | "optical-motion-attribution" | "noise" | "aliasing" | "halos" | "compression" | "color" | "perceived-quality" | "printer-substrate")[];
101
+ overallPrintVerdict: "not-offered";
102
+ }
103
+ ```
104
+
105
+ ## PrintRegionDetailInput
106
+
107
+ Own/reusable scalar relative-linear ROI samples; no RGB/luma conversion is inferred.
108
+
109
+ ```ts
110
+ export interface PrintRegionDetailInput {
111
+ assessmentId: string;
112
+ print: PrintPlanInput;
113
+ source: PrintDetailSource;
114
+ region: PrintDetailRegion;
115
+ target: PrintSinusoidalTarget;
116
+ samples: readonly number[];
117
+ }
118
+ ```
119
+
120
+ ## PrintSinusoidalMeasurement
121
+
122
+ Calculated coefficients for one declared grating; residual is not a noise metric.
123
+
124
+ ```ts
125
+ export interface PrintSinusoidalMeasurement {
126
+ meanRelativeLuminance: number;
127
+ fundamentalAmplitudeRelativeLuminance: number;
128
+ fundamentalModulation: number;
129
+ declaredGratingTransfer: number;
130
+ unexplainedResidualRmsRelativeToMean: number;
131
+ }
132
+ ```
133
+
134
+ ## PrintSinusoidalTarget
135
+
136
+ Coherent integer Fourier mode; x right/y down, arbitrary phase at first ROI sample.
137
+ Input modulation is dimensionless, positive and at most one.
138
+
139
+ ```ts
140
+ export interface PrintSinusoidalTarget {
141
+ id: string;
142
+ version: string;
143
+ kind: "coherent-sinusoid";
144
+ cyclesAcrossRegion: { x: number; y: number };
145
+ referenceModulation: number;
146
+ }
147
+ ```
@@ -0,0 +1,165 @@
1
+ # output/print-plan.ts public contracts
2
+
3
+ Package **1.2.0**, root API **1.2.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
+
5
+ ## calculatePrintPlan
6
+
7
+ Resolve the minimum exact-native-ratio file under declared sampling/lab constraints.
8
+ Angular guidance is approximate as a usage criterion; geometry is calculated.
9
+ No source detail, perceived quality, serializer or resource availability is assessed.
10
+
11
+ ```ts
12
+ export function calculatePrintPlan(value: PrintPlanInput): CalculationResult<PrintPlan>;
13
+ ```
14
+
15
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
16
+
17
+ ## calculatePrintSizeLimit
18
+
19
+ Calculate a conditional size bound. Lab constraints require individual plans;
20
+ this first size-query contract reports them as unsupported rather than ignoring them.
21
+
22
+ ```ts
23
+ export function calculatePrintSizeLimit(value: PrintSizeLimitInput): CalculationResult<PrintSizeLimit>;
24
+ ```
25
+
26
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
27
+
28
+ ## parsePrintPlanInput
29
+
30
+ Validate and copy an untrusted Print request; never infer native authority.
31
+
32
+ ```ts
33
+ export function parsePrintPlanInput(value: unknown): PrintPlanInput;
34
+ ```
35
+
36
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
37
+
38
+ ## PrintedImageSize
39
+
40
+ Flat printed image area; excludes paper, borders and wraps.
41
+
42
+ ```ts
43
+ export interface PrintedImageSize { width: number; height: number; unit: PrintLength["unit"] }
44
+ ```
45
+
46
+ ## PrintLength
47
+
48
+ Physical length, separate from raster pixels and printer dots.
49
+
50
+ ```ts
51
+ export interface PrintLength { value: number; unit: "mm" | "cm" | "inches" | "m" }
52
+ ```
53
+
54
+ ## PrintNativeSource
55
+
56
+ Declared authoritative geometry, not a preview or resampled pixel count.
57
+
58
+ ```ts
59
+ export type PrintNativeSource =
60
+ | { kind: "native-retained"; captureId: string; geometry: ResolveCaptureGeometryInput }
61
+ | { kind: "unavailable"; reason: "missing-native-raster" | "unverified-native-identity" };
62
+ ```
63
+
64
+ ## PrintPlan
65
+
66
+ Finite conditional plan. Null recommendation never authorizes an upscale.
67
+
68
+ ```ts
69
+ export interface PrintPlan {
70
+ engineApiVersion: string;
71
+ input: PrintPlanInput;
72
+ status: "ready" | "insufficient-native-pixels" | "provider-conflict" | "crop-confirmation-required" | "cannot-assess" | "unsupported";
73
+ nativePixelSufficiency: "sufficient" | "insufficient" | "cannot-assess";
74
+ reasons: string[];
75
+ printedImageMm: { width: number; height: number } | null;
76
+ viewingDistanceMm: number | null;
77
+ guidance: CalculationResult<{ derivedPixelsPerInch: number; maximumPixelPitchMm: number; maximumArcminutesPerPixel: number | null }> | null;
78
+ relativeAspectError: number | null;
79
+ native: PrintRasterSampling | null;
80
+ minimumSamplingRaster: RasterDimensions | null;
81
+ recommended: PrintRasterSampling | null;
82
+ resamplingScale: { x: number; y: number } | null;
83
+ alternatives: { maximumImageMmAtCurrentDistance: { width: number; height: number }; minimumViewingDistanceMmAtCurrentSize: number | null } | null;
84
+ capturedDetailAssessment: "unassessed";
85
+ deliveryAssessment: "unassessed";
86
+ }
87
+ ```
88
+
89
+ ## PrintPlanInput
90
+
91
+ Exact-ratio output policy. Physical aspect tolerance is explicit and reported.
92
+
93
+ ```ts
94
+ export interface PrintPlanInput {
95
+ source: PrintNativeSource;
96
+ printedImage: PrintedImageSize;
97
+ viewingDistance: PrintLength;
98
+ sampling: PrintSamplingCriterion;
99
+ fit: { kind: "confirmed-native-aspect"; maximumRelativeAspectError: number };
100
+ provider?: PrintProviderConstraints;
101
+ }
102
+ ```
103
+
104
+ ## PrintProviderConstraints
105
+
106
+ Caller-supplied lab constraints; no vendor catalog or delivery guarantee.
107
+
108
+ ```ts
109
+ export interface PrintProviderConstraints {
110
+ minimumRaster?: RasterDimensions;
111
+ exactRaster?: RasterDimensions;
112
+ minimumPpi?: number;
113
+ exactPpi?: number;
114
+ }
115
+ ```
116
+
117
+ ## PrintRasterSampling
118
+
119
+ Per-axis density and angular pitch; angular values are geometry, not acuity.
120
+
121
+ ```ts
122
+ export interface PrintRasterSampling {
123
+ raster: RasterDimensions;
124
+ pixelsPerInch: { x: number; y: number };
125
+ angularPixelPitchArcminutes: { x: number; y: number };
126
+ }
127
+ ```
128
+
129
+ ## PrintSamplingCriterion
130
+
131
+ Explicit angular convention; manual PPI starts a different plan.
132
+
133
+ ```ts
134
+ export type PrintSamplingCriterion =
135
+ | { kind: "angular-pixel-pitch"; maximumArcminutesPerPixel: number }
136
+ | { kind: "angular-stroke"; strokeWidthArcminutes: number; samplesPerStroke: number }
137
+ | { kind: "angular-line-pair"; periodArcminutes: number; samplesPerPeriod: number }
138
+ | { kind: "manual-ppi"; pixelsPerInch: number };
139
+ ```
140
+
141
+ ## PrintSizeLimit
142
+
143
+ Semantic bounds avoid Infinity sentinels; no-positive-size differs from invalid input.
144
+
145
+ ```ts
146
+ export interface PrintSizeLimit {
147
+ engineApiVersion: string;
148
+ status: "finite" | "unbounded" | "no-positive-size" | "cannot-assess" | "unsupported";
149
+ maximumImageMm: { width: number; height: number } | null;
150
+ reasons: string[];
151
+ referencePlan: PrintPlan;
152
+ }
153
+ ```
154
+
155
+ ## PrintSizeLimitInput
156
+
157
+ Size-limit query retains the reference image aspect and criterion.
158
+ Proportional viewing scales the supplied reference distance with both image axes.
159
+
160
+ ```ts
161
+ export interface PrintSizeLimitInput {
162
+ plan: PrintPlanInput;
163
+ viewingDistancePolicy: "fixed" | "proportional-to-image-size";
164
+ }
165
+ ```