@photivra/engine 0.6.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (750) hide show
  1. package/AGENTS.md +674 -0
  2. package/CHANGELOG.md +191 -0
  3. package/CITATION.cff +1 -1
  4. package/CONTRIBUTING.md +76 -0
  5. package/DCO +33 -0
  6. package/NODE_SUPPORT.md +37 -0
  7. package/NOTICE +2 -0
  8. package/README.md +139 -72
  9. package/SECURITY.md +55 -0
  10. package/THIRD_PARTY.md +63 -0
  11. package/dist/camera/equivalent-focal-length.d.ts +9 -0
  12. package/dist/camera/equivalent-focal-length.d.ts.map +1 -1
  13. package/dist/camera/equivalent-focal-length.js +9 -0
  14. package/dist/camera/equivalent-focal-length.js.map +1 -1
  15. package/dist/camera/field-of-view.d.ts +13 -0
  16. package/dist/camera/field-of-view.d.ts.map +1 -1
  17. package/dist/camera/field-of-view.js +13 -0
  18. package/dist/camera/field-of-view.js.map +1 -1
  19. package/dist/camera/projected-object-size.d.ts +8 -0
  20. package/dist/camera/projected-object-size.d.ts.map +1 -1
  21. package/dist/camera/projected-object-size.js +8 -0
  22. package/dist/camera/projected-object-size.js.map +1 -1
  23. package/dist/capture/capture-export-metadata.d.ts +60 -0
  24. package/dist/capture/capture-export-metadata.d.ts.map +1 -0
  25. package/dist/capture/capture-export-metadata.js +62 -0
  26. package/dist/capture/capture-export-metadata.js.map +1 -0
  27. package/dist/capture/environment-raw-producer.d.ts +55 -0
  28. package/dist/capture/environment-raw-producer.d.ts.map +1 -0
  29. package/dist/capture/environment-raw-producer.js +88 -0
  30. package/dist/capture/environment-raw-producer.js.map +1 -0
  31. package/dist/capture/export-jpeg.d.ts +12 -0
  32. package/dist/capture/export-jpeg.d.ts.map +1 -0
  33. package/dist/capture/export-jpeg.js +126 -0
  34. package/dist/capture/export-jpeg.js.map +1 -0
  35. package/dist/capture/export-tiff.d.ts +45 -0
  36. package/dist/capture/export-tiff.d.ts.map +1 -0
  37. package/dist/capture/export-tiff.js +129 -0
  38. package/dist/capture/export-tiff.js.map +1 -0
  39. package/dist/capture/focus-control.d.ts +210 -0
  40. package/dist/capture/focus-control.d.ts.map +1 -0
  41. package/dist/capture/focus-control.js +664 -0
  42. package/dist/capture/focus-control.js.map +1 -0
  43. package/dist/capture/linear-encoding.d.ts +59 -0
  44. package/dist/capture/linear-encoding.d.ts.map +1 -0
  45. package/dist/capture/linear-encoding.js +98 -0
  46. package/dist/capture/linear-encoding.js.map +1 -0
  47. package/dist/capture/photographic-export.d.ts +135 -0
  48. package/dist/capture/photographic-export.d.ts.map +1 -0
  49. package/dist/capture/photographic-export.js +273 -0
  50. package/dist/capture/photographic-export.js.map +1 -0
  51. package/dist/capture/raw-frame-limits.d.ts +12 -0
  52. package/dist/capture/raw-frame-limits.d.ts.map +1 -0
  53. package/dist/capture/raw-frame-limits.js +13 -0
  54. package/dist/capture/raw-frame-limits.js.map +1 -0
  55. package/dist/capture/raw-frame-reconstruction.d.ts +48 -0
  56. package/dist/capture/raw-frame-reconstruction.d.ts.map +1 -0
  57. package/dist/capture/raw-frame-reconstruction.js +146 -0
  58. package/dist/capture/raw-frame-reconstruction.js.map +1 -0
  59. package/dist/capture/release-sequence.d.ts +120 -0
  60. package/dist/capture/release-sequence.d.ts.map +1 -0
  61. package/dist/capture/release-sequence.js +446 -0
  62. package/dist/capture/release-sequence.js.map +1 -0
  63. package/dist/capture/sensor-raw-frame.d.ts +34 -0
  64. package/dist/capture/sensor-raw-frame.d.ts.map +1 -0
  65. package/dist/capture/sensor-raw-frame.js +106 -0
  66. package/dist/capture/sensor-raw-frame.js.map +1 -0
  67. package/dist/capture/sensor-raw-producer.d.ts +51 -0
  68. package/dist/capture/sensor-raw-producer.d.ts.map +1 -0
  69. package/dist/capture/sensor-raw-producer.js +235 -0
  70. package/dist/capture/sensor-raw-producer.js.map +1 -0
  71. package/dist/capture/simulated-capture.d.ts +125 -0
  72. package/dist/capture/simulated-capture.d.ts.map +1 -0
  73. package/dist/capture/simulated-capture.js +248 -0
  74. package/dist/capture/simulated-capture.js.map +1 -0
  75. package/dist/color/capture-color.d.ts +73 -0
  76. package/dist/color/capture-color.d.ts.map +1 -0
  77. package/dist/color/capture-color.js +145 -0
  78. package/dist/color/capture-color.js.map +1 -0
  79. package/dist/color/sensor-color-development.d.ts +23 -0
  80. package/dist/color/sensor-color-development.d.ts.map +1 -0
  81. package/dist/color/sensor-color-development.js +56 -0
  82. package/dist/color/sensor-color-development.js.map +1 -0
  83. package/dist/color/white-balance.d.ts +175 -0
  84. package/dist/color/white-balance.d.ts.map +1 -0
  85. package/dist/color/white-balance.js +606 -0
  86. package/dist/color/white-balance.js.map +1 -0
  87. package/dist/composition/image-formation-plan.d.ts +481 -0
  88. package/dist/composition/image-formation-plan.d.ts.map +1 -0
  89. package/dist/composition/image-formation-plan.js +2499 -0
  90. package/dist/composition/image-formation-plan.js.map +1 -0
  91. package/dist/composition/plan-consumer.d.ts +53 -0
  92. package/dist/composition/plan-consumer.d.ts.map +1 -0
  93. package/dist/composition/plan-consumer.js +119 -0
  94. package/dist/composition/plan-consumer.js.map +1 -0
  95. package/dist/core/calculation-result.d.ts.map +1 -1
  96. package/dist/core/calculation-result.js +6 -0
  97. package/dist/core/calculation-result.js.map +1 -1
  98. package/dist/core/canonical-json.d.ts +18 -0
  99. package/dist/core/canonical-json.d.ts.map +1 -0
  100. package/dist/core/canonical-json.js +44 -0
  101. package/dist/core/canonical-json.js.map +1 -0
  102. package/dist/core/configuration-error.d.ts +6 -0
  103. package/dist/core/configuration-error.d.ts.map +1 -1
  104. package/dist/core/configuration-error.js +6 -0
  105. package/dist/core/configuration-error.js.map +1 -1
  106. package/dist/core/evidence-provenance.d.ts +6 -0
  107. package/dist/core/evidence-provenance.d.ts.map +1 -1
  108. package/dist/core/evidence-provenance.js +7 -0
  109. package/dist/core/evidence-provenance.js.map +1 -1
  110. package/dist/core/image-formation.d.ts +9 -3
  111. package/dist/core/image-formation.d.ts.map +1 -1
  112. package/dist/core/image-formation.js +29 -5
  113. package/dist/core/image-formation.js.map +1 -1
  114. package/dist/core/owned-data.d.ts +25 -0
  115. package/dist/core/owned-data.d.ts.map +1 -0
  116. package/dist/core/owned-data.js +34 -0
  117. package/dist/core/owned-data.js.map +1 -0
  118. package/dist/core/record-validation.d.ts +17 -0
  119. package/dist/core/record-validation.d.ts.map +1 -0
  120. package/dist/core/record-validation.js +44 -0
  121. package/dist/core/record-validation.js.map +1 -0
  122. package/dist/core/scientific-assurance.d.ts +101 -0
  123. package/dist/core/scientific-assurance.d.ts.map +1 -0
  124. package/dist/core/scientific-assurance.js +301 -0
  125. package/dist/core/scientific-assurance.js.map +1 -0
  126. package/dist/core/spectral-composition.d.ts +106 -0
  127. package/dist/core/spectral-composition.d.ts.map +1 -0
  128. package/dist/core/spectral-composition.js +334 -0
  129. package/dist/core/spectral-composition.js.map +1 -0
  130. package/dist/core/spectral.d.ts +34 -0
  131. package/dist/core/spectral.d.ts.map +1 -0
  132. package/dist/core/spectral.js +57 -0
  133. package/dist/core/spectral.js.map +1 -0
  134. package/dist/core/validation.d.ts +6 -0
  135. package/dist/core/validation.d.ts.map +1 -1
  136. package/dist/core/validation.js +6 -0
  137. package/dist/core/validation.js.map +1 -1
  138. package/dist/core/version.d.ts +9 -0
  139. package/dist/core/version.d.ts.map +1 -0
  140. package/dist/core/version.js +10 -0
  141. package/dist/core/version.js.map +1 -0
  142. package/dist/equipment/exposure-capabilities.d.ts +125 -0
  143. package/dist/equipment/exposure-capabilities.d.ts.map +1 -0
  144. package/dist/equipment/exposure-capabilities.js +391 -0
  145. package/dist/equipment/exposure-capabilities.js.map +1 -0
  146. package/dist/equipment/generic-tier-assets.d.ts +82 -0
  147. package/dist/equipment/generic-tier-assets.d.ts.map +1 -0
  148. package/dist/equipment/generic-tier-assets.js +119 -0
  149. package/dist/equipment/generic-tier-assets.js.map +1 -0
  150. package/dist/equipment/generic-tier-presets.d.ts +57 -0
  151. package/dist/equipment/generic-tier-presets.d.ts.map +1 -0
  152. package/dist/equipment/generic-tier-presets.js +122 -0
  153. package/dist/equipment/generic-tier-presets.js.map +1 -0
  154. package/dist/equipment/iso-capabilities.d.ts +143 -0
  155. package/dist/equipment/iso-capabilities.d.ts.map +1 -0
  156. package/dist/equipment/iso-capabilities.js +578 -0
  157. package/dist/equipment/iso-capabilities.js.map +1 -0
  158. package/dist/equipment/metering-capabilities.d.ts +58 -0
  159. package/dist/equipment/metering-capabilities.d.ts.map +1 -0
  160. package/dist/equipment/metering-capabilities.js +151 -0
  161. package/dist/equipment/metering-capabilities.js.map +1 -0
  162. package/dist/equipment/release-capabilities.d.ts +33 -0
  163. package/dist/equipment/release-capabilities.d.ts.map +1 -0
  164. package/dist/equipment/release-capabilities.js +176 -0
  165. package/dist/equipment/release-capabilities.js.map +1 -0
  166. package/dist/exposure/exposure-duration-control.d.ts +72 -0
  167. package/dist/exposure/exposure-duration-control.d.ts.map +1 -0
  168. package/dist/exposure/exposure-duration-control.js +161 -0
  169. package/dist/exposure/exposure-duration-control.js.map +1 -0
  170. package/dist/exposure/exposure-mode-resolver.d.ts +637 -0
  171. package/dist/exposure/exposure-mode-resolver.d.ts.map +1 -0
  172. package/dist/exposure/exposure-mode-resolver.js +1905 -0
  173. package/dist/exposure/exposure-mode-resolver.js.map +1 -0
  174. package/dist/exposure/exposure.d.ts +8 -0
  175. package/dist/exposure/exposure.d.ts.map +1 -1
  176. package/dist/exposure/exposure.js +8 -0
  177. package/dist/exposure/exposure.js.map +1 -1
  178. package/dist/exposure/flash.d.ts +179 -0
  179. package/dist/exposure/flash.d.ts.map +1 -0
  180. package/dist/exposure/flash.js +644 -0
  181. package/dist/exposure/flash.js.map +1 -0
  182. package/dist/exposure/metering-scene-radiance.d.ts +72 -0
  183. package/dist/exposure/metering-scene-radiance.d.ts.map +1 -0
  184. package/dist/exposure/metering-scene-radiance.js +222 -0
  185. package/dist/exposure/metering-scene-radiance.js.map +1 -0
  186. package/dist/exposure/metering-target.d.ts +67 -0
  187. package/dist/exposure/metering-target.d.ts.map +1 -0
  188. package/dist/exposure/metering-target.js +265 -0
  189. package/dist/exposure/metering-target.js.map +1 -0
  190. package/dist/exposure/metering-temporal.d.ts +76 -0
  191. package/dist/exposure/metering-temporal.d.ts.map +1 -0
  192. package/dist/exposure/metering-temporal.js +210 -0
  193. package/dist/exposure/metering-temporal.js.map +1 -0
  194. package/dist/exposure/metering.d.ts +124 -0
  195. package/dist/exposure/metering.d.ts.map +1 -0
  196. package/dist/exposure/metering.js +422 -0
  197. package/dist/exposure/metering.js.map +1 -0
  198. package/dist/exposure/program-line.d.ts +29 -0
  199. package/dist/exposure/program-line.d.ts.map +1 -0
  200. package/dist/exposure/program-line.js +126 -0
  201. package/dist/exposure/program-line.js.map +1 -0
  202. package/dist/index.d.ts +87 -6
  203. package/dist/index.d.ts.map +1 -1
  204. package/dist/index.js +85 -6
  205. package/dist/index.js.map +1 -1
  206. package/dist/motion/camera-rotation.d.ts +16 -0
  207. package/dist/motion/camera-rotation.d.ts.map +1 -1
  208. package/dist/motion/camera-rotation.js +16 -0
  209. package/dist/motion/camera-rotation.js.map +1 -1
  210. package/dist/motion/capture-rotation-inverse-mapping.d.ts +13 -0
  211. package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +1 -1
  212. package/dist/motion/capture-rotation-inverse-mapping.js +13 -0
  213. package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -1
  214. package/dist/motion/capture-rotation-temporal-quadrature.d.ts +15 -0
  215. package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +1 -1
  216. package/dist/motion/capture-rotation-temporal-quadrature.js +15 -0
  217. package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -1
  218. package/dist/motion/capture-rotation-trajectory.d.ts +15 -0
  219. package/dist/motion/capture-rotation-trajectory.d.ts.map +1 -1
  220. package/dist/motion/capture-rotation-trajectory.js +15 -0
  221. package/dist/motion/capture-rotation-trajectory.js.map +1 -1
  222. package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts +119 -0
  223. package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts.map +1 -0
  224. package/dist/motion/capture-translation-parallax-temporal-quadrature.js +263 -0
  225. package/dist/motion/capture-translation-parallax-temporal-quadrature.js.map +1 -0
  226. package/dist/motion/extended-object-projection.d.ts +175 -0
  227. package/dist/motion/extended-object-projection.d.ts.map +1 -0
  228. package/dist/motion/extended-object-projection.js +402 -0
  229. package/dist/motion/extended-object-projection.js.map +1 -0
  230. package/dist/motion/projected-motion.d.ts +11 -0
  231. package/dist/motion/projected-motion.d.ts.map +1 -1
  232. package/dist/motion/projected-motion.js +11 -0
  233. package/dist/motion/projected-motion.js.map +1 -1
  234. package/dist/optics/aperture.d.ts +9 -0
  235. package/dist/optics/aperture.d.ts.map +1 -1
  236. package/dist/optics/aperture.js +9 -0
  237. package/dist/optics/aperture.js.map +1 -1
  238. package/dist/optics/circle-of-confusion.d.ts +8 -0
  239. package/dist/optics/circle-of-confusion.d.ts.map +1 -1
  240. package/dist/optics/circle-of-confusion.js +8 -0
  241. package/dist/optics/circle-of-confusion.js.map +1 -1
  242. package/dist/optics/complex-pupil-psf.d.ts +128 -0
  243. package/dist/optics/complex-pupil-psf.d.ts.map +1 -0
  244. package/dist/optics/complex-pupil-psf.js +462 -0
  245. package/dist/optics/complex-pupil-psf.js.map +1 -0
  246. package/dist/optics/depth-of-field.d.ts +18 -0
  247. package/dist/optics/depth-of-field.d.ts.map +1 -1
  248. package/dist/optics/depth-of-field.js +29 -4
  249. package/dist/optics/depth-of-field.js.map +1 -1
  250. package/dist/optics/diffraction.d.ts +8 -0
  251. package/dist/optics/diffraction.d.ts.map +1 -1
  252. package/dist/optics/diffraction.js +8 -0
  253. package/dist/optics/diffraction.js.map +1 -1
  254. package/dist/optics/focus-breathing.d.ts +13 -0
  255. package/dist/optics/focus-breathing.d.ts.map +1 -1
  256. package/dist/optics/focus-breathing.js +13 -0
  257. package/dist/optics/focus-breathing.js.map +1 -1
  258. package/dist/optics/focus-state.d.ts +47 -0
  259. package/dist/optics/focus-state.d.ts.map +1 -0
  260. package/dist/optics/focus-state.js +78 -0
  261. package/dist/optics/focus-state.js.map +1 -0
  262. package/dist/optics/front-of-lens-filter.d.ts +114 -0
  263. package/dist/optics/front-of-lens-filter.d.ts.map +1 -0
  264. package/dist/optics/front-of-lens-filter.js +468 -0
  265. package/dist/optics/front-of-lens-filter.js.map +1 -0
  266. package/dist/optics/illumination-vignetting.d.ts +9 -0
  267. package/dist/optics/illumination-vignetting.d.ts.map +1 -1
  268. package/dist/optics/illumination-vignetting.js +9 -0
  269. package/dist/optics/illumination-vignetting.js.map +1 -1
  270. package/dist/optics/lateral-chromatic-aberration.d.ts +11 -0
  271. package/dist/optics/lateral-chromatic-aberration.d.ts.map +1 -1
  272. package/dist/optics/lateral-chromatic-aberration.js +11 -0
  273. package/dist/optics/lateral-chromatic-aberration.js.map +1 -1
  274. package/dist/optics/lens-psf-profile.d.ts +217 -0
  275. package/dist/optics/lens-psf-profile.d.ts.map +1 -0
  276. package/dist/optics/lens-psf-profile.js +823 -0
  277. package/dist/optics/lens-psf-profile.js.map +1 -0
  278. package/dist/optics/polygon-diffraction.d.ts +67 -0
  279. package/dist/optics/polygon-diffraction.d.ts.map +1 -0
  280. package/dist/optics/polygon-diffraction.js +145 -0
  281. package/dist/optics/polygon-diffraction.js.map +1 -0
  282. package/dist/optics/profile-contract.d.ts +42 -0
  283. package/dist/optics/profile-contract.d.ts.map +1 -0
  284. package/dist/optics/profile-contract.js +92 -0
  285. package/dist/optics/profile-contract.js.map +1 -0
  286. package/dist/optics/psf-foundation.d.ts +16 -3
  287. package/dist/optics/psf-foundation.d.ts.map +1 -1
  288. package/dist/optics/psf-foundation.js +28 -15
  289. package/dist/optics/psf-foundation.js.map +1 -1
  290. package/dist/optics/radial-distortion.d.ts +18 -0
  291. package/dist/optics/radial-distortion.d.ts.map +1 -1
  292. package/dist/optics/radial-distortion.js +18 -0
  293. package/dist/optics/radial-distortion.js.map +1 -1
  294. package/dist/optics/scene-to-sensor-irradiance.d.ts +213 -0
  295. package/dist/optics/scene-to-sensor-irradiance.d.ts.map +1 -0
  296. package/dist/optics/scene-to-sensor-irradiance.js +662 -0
  297. package/dist/optics/scene-to-sensor-irradiance.js.map +1 -0
  298. package/dist/optics/scene-to-sensor-quadrature.d.ts +63 -0
  299. package/dist/optics/scene-to-sensor-quadrature.d.ts.map +1 -0
  300. package/dist/optics/scene-to-sensor-quadrature.js +82 -0
  301. package/dist/optics/scene-to-sensor-quadrature.js.map +1 -0
  302. package/dist/optics/sensor-environment-query.d.ts +60 -0
  303. package/dist/optics/sensor-environment-query.d.ts.map +1 -0
  304. package/dist/optics/sensor-environment-query.js +50 -0
  305. package/dist/optics/sensor-environment-query.js.map +1 -0
  306. package/dist/optics/sensor-psf-quadrature.d.ts +70 -0
  307. package/dist/optics/sensor-psf-quadrature.d.ts.map +1 -0
  308. package/dist/optics/sensor-psf-quadrature.js +101 -0
  309. package/dist/optics/sensor-psf-quadrature.js.map +1 -0
  310. package/dist/optics/sensor-psf-support.d.ts +20 -0
  311. package/dist/optics/sensor-psf-support.d.ts.map +1 -0
  312. package/dist/optics/sensor-psf-support.js +13 -0
  313. package/dist/optics/sensor-psf-support.js.map +1 -0
  314. package/dist/optics/stray-light.d.ts +91 -0
  315. package/dist/optics/stray-light.d.ts.map +1 -0
  316. package/dist/optics/stray-light.js +110 -0
  317. package/dist/optics/stray-light.js.map +1 -0
  318. package/dist/optics/thin-lens.d.ts +8 -0
  319. package/dist/optics/thin-lens.d.ts.map +1 -1
  320. package/dist/optics/thin-lens.js +8 -0
  321. package/dist/optics/thin-lens.js.map +1 -1
  322. package/dist/output/capture-corrected-sdr.d.ts +49 -0
  323. package/dist/output/capture-corrected-sdr.d.ts.map +1 -0
  324. package/dist/output/capture-corrected-sdr.js +149 -0
  325. package/dist/output/capture-corrected-sdr.js.map +1 -0
  326. package/dist/output/capture-geometry.d.ts.map +1 -1
  327. package/dist/output/capture-geometry.js +8 -0
  328. package/dist/output/capture-geometry.js.map +1 -1
  329. package/dist/output/capture-sdr.d.ts +49 -0
  330. package/dist/output/capture-sdr.d.ts.map +1 -0
  331. package/dist/output/capture-sdr.js +90 -0
  332. package/dist/output/capture-sdr.js.map +1 -0
  333. package/dist/output/crop.d.ts +6 -0
  334. package/dist/output/crop.d.ts.map +1 -1
  335. package/dist/output/crop.js +6 -0
  336. package/dist/output/crop.js.map +1 -1
  337. package/dist/output/geometric-transforms.d.ts +137 -0
  338. package/dist/output/geometric-transforms.d.ts.map +1 -0
  339. package/dist/output/geometric-transforms.js +225 -0
  340. package/dist/output/geometric-transforms.js.map +1 -0
  341. package/dist/output/lens-corrections.d.ts +121 -0
  342. package/dist/output/lens-corrections.d.ts.map +1 -0
  343. package/dist/output/lens-corrections.js +210 -0
  344. package/dist/output/lens-corrections.js.map +1 -0
  345. package/dist/output/sdr-rendering.d.ts +81 -0
  346. package/dist/output/sdr-rendering.d.ts.map +1 -0
  347. package/dist/output/sdr-rendering.js +106 -0
  348. package/dist/output/sdr-rendering.js.map +1 -0
  349. package/dist/output/subject-framing-crop.d.ts +8 -0
  350. package/dist/output/subject-framing-crop.d.ts.map +1 -1
  351. package/dist/output/subject-framing-crop.js +8 -0
  352. package/dist/output/subject-framing-crop.js.map +1 -1
  353. package/dist/schema/camera.d.ts +6 -0
  354. package/dist/schema/camera.d.ts.map +1 -1
  355. package/dist/schema/illumination-spectral.d.ts +51 -0
  356. package/dist/schema/illumination-spectral.d.ts.map +1 -0
  357. package/dist/schema/illumination-spectral.js +132 -0
  358. package/dist/schema/illumination-spectral.js.map +1 -0
  359. package/dist/schema/illumination-temporal.d.ts +156 -0
  360. package/dist/schema/illumination-temporal.d.ts.map +1 -0
  361. package/dist/schema/illumination-temporal.js +554 -0
  362. package/dist/schema/illumination-temporal.js.map +1 -0
  363. package/dist/schema/illumination.d.ts +138 -0
  364. package/dist/schema/illumination.d.ts.map +1 -0
  365. package/dist/schema/illumination.js +483 -0
  366. package/dist/schema/illumination.js.map +1 -0
  367. package/dist/schema/scene-radiance-temporal.d.ts +107 -0
  368. package/dist/schema/scene-radiance-temporal.d.ts.map +1 -0
  369. package/dist/schema/scene-radiance-temporal.js +259 -0
  370. package/dist/schema/scene-radiance-temporal.js.map +1 -0
  371. package/dist/schema/scene-radiance.d.ts +185 -0
  372. package/dist/schema/scene-radiance.d.ts.map +1 -0
  373. package/dist/schema/scene-radiance.js +535 -0
  374. package/dist/schema/scene-radiance.js.map +1 -0
  375. package/dist/schema/scene.d.ts +7 -0
  376. package/dist/schema/scene.d.ts.map +1 -1
  377. package/dist/schema/validation.d.ts.map +1 -1
  378. package/dist/schema/validation.js +7 -0
  379. package/dist/schema/validation.js.map +1 -1
  380. package/dist/sensor/accumulated-charge.d.ts +199 -0
  381. package/dist/sensor/accumulated-charge.d.ts.map +1 -0
  382. package/dist/sensor/accumulated-charge.js +450 -0
  383. package/dist/sensor/accumulated-charge.js.map +1 -0
  384. package/dist/sensor/architecture.d.ts +48 -13
  385. package/dist/sensor/architecture.d.ts.map +1 -1
  386. package/dist/sensor/architecture.js +58 -16
  387. package/dist/sensor/architecture.js.map +1 -1
  388. package/dist/sensor/camera-saturation-capacity.d.ts +138 -0
  389. package/dist/sensor/camera-saturation-capacity.d.ts.map +1 -0
  390. package/dist/sensor/camera-saturation-capacity.js +356 -0
  391. package/dist/sensor/camera-saturation-capacity.js.map +1 -0
  392. package/dist/sensor/capture-color-sampling-binding.d.ts +1 -0
  393. package/dist/sensor/capture-color-sampling-binding.d.ts.map +1 -1
  394. package/dist/sensor/capture-color-sampling-binding.js +14 -0
  395. package/dist/sensor/capture-color-sampling-binding.js.map +1 -1
  396. package/dist/sensor/capture-mode-timing.d.ts +63 -0
  397. package/dist/sensor/capture-mode-timing.d.ts.map +1 -0
  398. package/dist/sensor/capture-mode-timing.js +270 -0
  399. package/dist/sensor/capture-mode-timing.js.map +1 -0
  400. package/dist/sensor/capture-mode.d.ts.map +1 -1
  401. package/dist/sensor/capture-mode.js +13 -0
  402. package/dist/sensor/capture-mode.js.map +1 -1
  403. package/dist/sensor/color-sampling.d.ts.map +1 -1
  404. package/dist/sensor/color-sampling.js +19 -0
  405. package/dist/sensor/color-sampling.js.map +1 -1
  406. package/dist/sensor/constant-rate-temporal-integration.d.ts +126 -0
  407. package/dist/sensor/constant-rate-temporal-integration.d.ts.map +1 -0
  408. package/dist/sensor/constant-rate-temporal-integration.js +382 -0
  409. package/dist/sensor/constant-rate-temporal-integration.js.map +1 -0
  410. package/dist/sensor/dark-current.d.ts +169 -0
  411. package/dist/sensor/dark-current.d.ts.map +1 -0
  412. package/dist/sensor/dark-current.js +427 -0
  413. package/dist/sensor/dark-current.js.map +1 -0
  414. package/dist/sensor/environment-photo-signal.d.ts +123 -0
  415. package/dist/sensor/environment-photo-signal.d.ts.map +1 -0
  416. package/dist/sensor/environment-photo-signal.js +186 -0
  417. package/dist/sensor/environment-photo-signal.js.map +1 -0
  418. package/dist/sensor/eqe-electron-rate.d.ts +107 -0
  419. package/dist/sensor/eqe-electron-rate.d.ts.map +1 -0
  420. package/dist/sensor/eqe-electron-rate.js +561 -0
  421. package/dist/sensor/eqe-electron-rate.js.map +1 -0
  422. package/dist/sensor/eqe-local-exposure.d.ts +65 -0
  423. package/dist/sensor/eqe-local-exposure.d.ts.map +1 -0
  424. package/dist/sensor/eqe-local-exposure.js +84 -0
  425. package/dist/sensor/eqe-local-exposure.js.map +1 -0
  426. package/dist/sensor/eqe-temporal-exposure.d.ts +55 -0
  427. package/dist/sensor/eqe-temporal-exposure.d.ts.map +1 -0
  428. package/dist/sensor/eqe-temporal-exposure.js +62 -0
  429. package/dist/sensor/eqe-temporal-exposure.js.map +1 -0
  430. package/dist/sensor/exposure-window.d.ts +14 -0
  431. package/dist/sensor/exposure-window.d.ts.map +1 -1
  432. package/dist/sensor/exposure-window.js +14 -0
  433. package/dist/sensor/exposure-window.js.map +1 -1
  434. package/dist/sensor/iso-signal-chain.d.ts +148 -0
  435. package/dist/sensor/iso-signal-chain.d.ts.map +1 -0
  436. package/dist/sensor/iso-signal-chain.js +411 -0
  437. package/dist/sensor/iso-signal-chain.js.map +1 -0
  438. package/dist/sensor/local-exposure-binding.d.ts +87 -0
  439. package/dist/sensor/local-exposure-binding.d.ts.map +1 -0
  440. package/dist/sensor/local-exposure-binding.js +214 -0
  441. package/dist/sensor/local-exposure-binding.js.map +1 -0
  442. package/dist/sensor/optical-stack.d.ts.map +1 -1
  443. package/dist/sensor/optical-stack.js +17 -0
  444. package/dist/sensor/optical-stack.js.map +1 -1
  445. package/dist/sensor/photon-energy.d.ts +97 -0
  446. package/dist/sensor/photon-energy.d.ts.map +1 -0
  447. package/dist/sensor/photon-energy.js +390 -0
  448. package/dist/sensor/photon-energy.js.map +1 -0
  449. package/dist/sensor/physical-charge-capacity.d.ts +130 -0
  450. package/dist/sensor/physical-charge-capacity.d.ts.map +1 -0
  451. package/dist/sensor/physical-charge-capacity.js +345 -0
  452. package/dist/sensor/physical-charge-capacity.js.map +1 -0
  453. package/dist/sensor/pixel-pitch.d.ts +6 -0
  454. package/dist/sensor/pixel-pitch.d.ts.map +1 -1
  455. package/dist/sensor/pixel-pitch.js +6 -0
  456. package/dist/sensor/pixel-pitch.js.map +1 -1
  457. package/dist/sensor/radiometry-readiness.d.ts +10 -0
  458. package/dist/sensor/radiometry-readiness.d.ts.map +1 -1
  459. package/dist/sensor/radiometry-readiness.js +10 -0
  460. package/dist/sensor/radiometry-readiness.js.map +1 -1
  461. package/dist/sensor/raw-readout.d.ts +314 -0
  462. package/dist/sensor/raw-readout.d.ts.map +1 -0
  463. package/dist/sensor/raw-readout.js +914 -0
  464. package/dist/sensor/raw-readout.js.map +1 -0
  465. package/dist/sensor/raw-reconstruction.d.ts +170 -0
  466. package/dist/sensor/raw-reconstruction.d.ts.map +1 -0
  467. package/dist/sensor/raw-reconstruction.js +424 -0
  468. package/dist/sensor/raw-reconstruction.js.map +1 -0
  469. package/dist/sensor/readout-exposure-linkage.d.ts +12 -0
  470. package/dist/sensor/readout-exposure-linkage.d.ts.map +1 -1
  471. package/dist/sensor/readout-exposure-linkage.js +12 -0
  472. package/dist/sensor/readout-exposure-linkage.js.map +1 -1
  473. package/dist/sensor/readout-timing.d.ts +13 -0
  474. package/dist/sensor/readout-timing.d.ts.map +1 -1
  475. package/dist/sensor/readout-timing.js +13 -0
  476. package/dist/sensor/readout-timing.js.map +1 -1
  477. package/dist/sensor/response-application-compatibility.d.ts +136 -0
  478. package/dist/sensor/response-application-compatibility.d.ts.map +1 -0
  479. package/dist/sensor/response-application-compatibility.js +408 -0
  480. package/dist/sensor/response-application-compatibility.js.map +1 -0
  481. package/dist/sensor/response-operating-range.d.ts +173 -0
  482. package/dist/sensor/response-operating-range.d.ts.map +1 -0
  483. package/dist/sensor/response-operating-range.js +672 -0
  484. package/dist/sensor/response-operating-range.js.map +1 -0
  485. package/dist/sensor/responsivity-photocurrent.d.ts +158 -0
  486. package/dist/sensor/responsivity-photocurrent.d.ts.map +1 -0
  487. package/dist/sensor/responsivity-photocurrent.js +644 -0
  488. package/dist/sensor/responsivity-photocurrent.js.map +1 -0
  489. package/dist/sensor/sampling-aperture.d.ts.map +1 -1
  490. package/dist/sensor/sampling-aperture.js +14 -0
  491. package/dist/sensor/sampling-aperture.js.map +1 -1
  492. package/dist/sensor/scene-eqe-temporal-exposure.d.ts +45 -0
  493. package/dist/sensor/scene-eqe-temporal-exposure.d.ts.map +1 -0
  494. package/dist/sensor/scene-eqe-temporal-exposure.js +64 -0
  495. package/dist/sensor/scene-eqe-temporal-exposure.js.map +1 -0
  496. package/dist/sensor/sensor-geometry.d.ts +12 -0
  497. package/dist/sensor/sensor-geometry.d.ts.map +1 -1
  498. package/dist/sensor/sensor-geometry.js +12 -0
  499. package/dist/sensor/sensor-geometry.js.map +1 -1
  500. package/dist/sensor/signal-noise.d.ts +10 -0
  501. package/dist/sensor/signal-noise.d.ts.map +1 -1
  502. package/dist/sensor/signal-noise.js +10 -0
  503. package/dist/sensor/signal-noise.js.map +1 -1
  504. package/dist/sensor/spatial-sample-reduction.d.ts +44 -1
  505. package/dist/sensor/spatial-sample-reduction.d.ts.map +1 -1
  506. package/dist/sensor/spatial-sample-reduction.js +51 -5
  507. package/dist/sensor/spatial-sample-reduction.js.map +1 -1
  508. package/dist/sensor/spatial-sampling-quadrature.d.ts +24 -0
  509. package/dist/sensor/spatial-sampling-quadrature.d.ts.map +1 -1
  510. package/dist/sensor/spatial-sampling-quadrature.js +27 -0
  511. package/dist/sensor/spatial-sampling-quadrature.js.map +1 -1
  512. package/dist/sensor/spatio-spectral-reduction.d.ts +187 -0
  513. package/dist/sensor/spatio-spectral-reduction.d.ts.map +1 -0
  514. package/dist/sensor/spatio-spectral-reduction.js +373 -0
  515. package/dist/sensor/spatio-spectral-reduction.js.map +1 -0
  516. package/dist/sensor/spectral-coverage.d.ts +24 -0
  517. package/dist/sensor/spectral-coverage.d.ts.map +1 -0
  518. package/dist/sensor/spectral-coverage.js +86 -0
  519. package/dist/sensor/spectral-coverage.js.map +1 -0
  520. package/dist/sensor/spectral-quadrature.d.ts +169 -0
  521. package/dist/sensor/spectral-quadrature.d.ts.map +1 -0
  522. package/dist/sensor/spectral-quadrature.js +542 -0
  523. package/dist/sensor/spectral-quadrature.js.map +1 -0
  524. package/dist/sensor/spectral-response.d.ts +192 -0
  525. package/dist/sensor/spectral-response.d.ts.map +1 -0
  526. package/dist/sensor/spectral-response.js +664 -0
  527. package/dist/sensor/spectral-response.js.map +1 -0
  528. package/dist/sensor/temporal-eqe-sum.d.ts +15 -0
  529. package/dist/sensor/temporal-eqe-sum.d.ts.map +1 -0
  530. package/dist/sensor/temporal-eqe-sum.js +30 -0
  531. package/dist/sensor/temporal-eqe-sum.js.map +1 -0
  532. package/dist/sensor/temporal-photo-signal.d.ts +38 -0
  533. package/dist/sensor/temporal-photo-signal.d.ts.map +1 -0
  534. package/dist/sensor/temporal-photo-signal.js +110 -0
  535. package/dist/sensor/temporal-photo-signal.js.map +1 -0
  536. package/dist/sensor/temporal-sample-binding.d.ts +6 -0
  537. package/dist/sensor/temporal-sample-binding.d.ts.map +1 -0
  538. package/dist/sensor/temporal-sample-binding.js +32 -0
  539. package/dist/sensor/temporal-sample-binding.js.map +1 -0
  540. package/dist/simulation/poc-simulation.d.ts.map +1 -1
  541. package/dist/simulation/poc-simulation.js +34 -11
  542. package/dist/simulation/poc-simulation.js.map +1 -1
  543. package/dist/stabilization/camera-shake.d.ts +11 -0
  544. package/dist/stabilization/camera-shake.d.ts.map +1 -1
  545. package/dist/stabilization/camera-shake.js +11 -0
  546. package/dist/stabilization/camera-shake.js.map +1 -1
  547. package/dist/stabilization/system.d.ts +218 -0
  548. package/dist/stabilization/system.d.ts.map +1 -0
  549. package/dist/stabilization/system.js +695 -0
  550. package/dist/stabilization/system.js.map +1 -0
  551. package/docs/API_REFERENCE.md +2017 -0
  552. package/docs/API_STYLE.md +139 -3
  553. package/docs/ARCHITECTURE.md +134 -24
  554. package/docs/AUTOMATION_COORDINATION.md +2 -0
  555. package/docs/CAPTURE_COLOR.md +25 -0
  556. package/docs/CAPTURE_CORRECTED_SDR.md +25 -0
  557. package/docs/CAPTURE_EXPORT_METADATA.md +27 -0
  558. package/docs/CAPTURE_SDR.md +20 -0
  559. package/docs/DEVELOPERS.md +60 -0
  560. package/docs/DIGITAL_OPTICS_FOUNDATION.md +69 -0
  561. package/docs/ENVIRONMENT_RAW_CAPTURE.md +187 -0
  562. package/docs/EXPORT_ACCEPTANCE.md +133 -0
  563. package/docs/GENERIC_TIER_PRESETS.md +269 -0
  564. package/docs/GEOMETRIC_PREPARATION_REUSE.md +141 -0
  565. package/docs/IMAGE_FORMATION.md +80 -10
  566. package/docs/LINEAR_CAPTURE_ENCODING.md +25 -0
  567. package/docs/MOTION_AND_SIGNAL.md +5 -3
  568. package/docs/NUMERICAL_CORRECTNESS.md +191 -0
  569. package/docs/PERFORMANCE_BASELINE.md +56 -0
  570. package/docs/PHOTOGRAPHIC_EXPORT.md +206 -0
  571. package/docs/PHYSICS_FOUNDATION.md +152 -5
  572. package/docs/POC_API.md +2 -0
  573. package/docs/POC_PROJECTION_REUSE.md +124 -0
  574. package/docs/PROCESSED_OUTPUT.md +157 -0
  575. package/docs/PRODUCTION_COMPOSITION.md +373 -0
  576. package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +131 -0
  577. package/docs/PROVENANCE.md +4 -0
  578. package/docs/PSF_FOUNDATION.md +110 -88
  579. package/docs/RAW_FRAME_ENVELOPE.md +56 -0
  580. package/docs/RAW_FRAME_RECONSTRUCTION.md +30 -0
  581. package/docs/RELEASE_1_0.md +66 -0
  582. package/docs/RELEASE_1_0_1.md +61 -0
  583. package/docs/RELEASE_AUDIT.md +39 -0
  584. package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +298 -0
  585. package/docs/SCENE_SENSOR_QUADRATURE.md +98 -0
  586. package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +86 -0
  587. package/docs/SCIENTIFIC_ASSURANCE.md +280 -0
  588. package/docs/SCIENTIFIC_CONFORMANCE.md +83 -0
  589. package/docs/SDR_RENDERING.md +33 -0
  590. package/docs/SENSOR_ENVIRONMENT_QUERY.md +86 -0
  591. package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +104 -0
  592. package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +74 -0
  593. package/docs/SENSOR_PSF_QUADRATURE.md +90 -0
  594. package/docs/SENSOR_RAW_FRAME.md +20 -0
  595. package/docs/SENSOR_RAW_PRODUCER.md +77 -0
  596. package/docs/SIGNAL_CONFORMANCE.md +23 -0
  597. package/docs/SIMULATED_CAPTURE.md +65 -0
  598. package/docs/STABILIZATION.md +160 -17
  599. package/docs/TEMPORAL_PHOTO_RAW.md +83 -0
  600. package/docs/TIER_ACCEPTANCE.md +129 -0
  601. package/docs/TIER_PRESET_ACCEPTANCE.md +59 -0
  602. package/docs/USAGE.md +5050 -1047
  603. package/docs/V1_COMPOSITION_MAP.md +123 -0
  604. package/docs/V1_HELPER_REUSE_REVIEW.md +60 -0
  605. package/docs/V1_PERFORMANCE_DISPOSITION.md +88 -0
  606. package/docs/api/camera-equivalent-focal-length.md +53 -0
  607. package/docs/api/camera-field-of-view.md +119 -0
  608. package/docs/api/camera-projected-object-size.md +54 -0
  609. package/docs/api/capture-capture-export-metadata.md +107 -0
  610. package/docs/api/capture-environment-raw-producer.md +56 -0
  611. package/docs/api/capture-focus-control.md +419 -0
  612. package/docs/api/capture-linear-encoding.md +99 -0
  613. package/docs/api/capture-photographic-export.md +172 -0
  614. package/docs/api/capture-raw-frame-reconstruction.md +87 -0
  615. package/docs/api/capture-release-sequence.md +252 -0
  616. package/docs/api/capture-sensor-raw-frame.md +66 -0
  617. package/docs/api/capture-sensor-raw-producer.md +98 -0
  618. package/docs/api/capture-simulated-capture.md +179 -0
  619. package/docs/api/color-capture-color.md +122 -0
  620. package/docs/api/color-white-balance.md +386 -0
  621. package/docs/api/composition-image-formation-plan.md +825 -0
  622. package/docs/api/composition-plan-consumer.md +98 -0
  623. package/docs/api/core-calculation-result.md +220 -0
  624. package/docs/api/core-configuration-error.md +19 -0
  625. package/docs/api/core-image-formation.md +204 -0
  626. package/docs/api/core-scientific-assurance.md +214 -0
  627. package/docs/api/core-spectral-composition.md +268 -0
  628. package/docs/api/core-spectral.md +78 -0
  629. package/docs/api/core-validation.md +34 -0
  630. package/docs/api/core-version.md +14 -0
  631. package/docs/api/equipment-exposure-capabilities.md +270 -0
  632. package/docs/api/equipment-generic-tier-assets.md +82 -0
  633. package/docs/api/equipment-generic-tier-presets.md +103 -0
  634. package/docs/api/equipment-iso-capabilities.md +295 -0
  635. package/docs/api/equipment-metering-capabilities.md +126 -0
  636. package/docs/api/equipment-release-capabilities.md +91 -0
  637. package/docs/api/exports.json +5656 -0
  638. package/docs/api/exposure-exposure-duration-control.md +115 -0
  639. package/docs/api/exposure-exposure-mode-resolver.md +966 -0
  640. package/docs/api/exposure-exposure.md +150 -0
  641. package/docs/api/exposure-flash.md +327 -0
  642. package/docs/api/exposure-metering-scene-radiance.md +154 -0
  643. package/docs/api/exposure-metering-target.md +134 -0
  644. package/docs/api/exposure-metering-temporal.md +77 -0
  645. package/docs/api/exposure-metering.md +172 -0
  646. package/docs/api/exposure-program-line.md +64 -0
  647. package/docs/api/motion-camera-rotation.md +215 -0
  648. package/docs/api/motion-capture-rotation-inverse-mapping.md +128 -0
  649. package/docs/api/motion-capture-rotation-temporal-quadrature.md +127 -0
  650. package/docs/api/motion-capture-rotation-trajectory.md +132 -0
  651. package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +171 -0
  652. package/docs/api/motion-extended-object-projection.md +312 -0
  653. package/docs/api/motion-projected-motion.md +60 -0
  654. package/docs/api/optics-aperture.md +69 -0
  655. package/docs/api/optics-circle-of-confusion.md +46 -0
  656. package/docs/api/optics-complex-pupil-psf.md +193 -0
  657. package/docs/api/optics-depth-of-field.md +92 -0
  658. package/docs/api/optics-diffraction.md +46 -0
  659. package/docs/api/optics-focus-breathing.md +119 -0
  660. package/docs/api/optics-focus-state.md +64 -0
  661. package/docs/api/optics-front-of-lens-filter.md +263 -0
  662. package/docs/api/optics-illumination-vignetting.md +95 -0
  663. package/docs/api/optics-lateral-chromatic-aberration.md +225 -0
  664. package/docs/api/optics-lens-psf-profile.md +380 -0
  665. package/docs/api/optics-polygon-diffraction.md +68 -0
  666. package/docs/api/optics-profile-contract.md +47 -0
  667. package/docs/api/optics-psf-foundation.md +181 -0
  668. package/docs/api/optics-radial-distortion.md +194 -0
  669. package/docs/api/optics-scene-to-sensor-irradiance.md +371 -0
  670. package/docs/api/optics-scene-to-sensor-quadrature.md +78 -0
  671. package/docs/api/optics-sensor-environment-query.md +58 -0
  672. package/docs/api/optics-sensor-psf-quadrature.md +81 -0
  673. package/docs/api/optics-stray-light.md +109 -0
  674. package/docs/api/optics-thin-lens.md +53 -0
  675. package/docs/api/output-capture-corrected-sdr.md +71 -0
  676. package/docs/api/output-capture-geometry.md +500 -0
  677. package/docs/api/output-capture-sdr.md +69 -0
  678. package/docs/api/output-crop.md +47 -0
  679. package/docs/api/output-geometric-transforms.md +199 -0
  680. package/docs/api/output-lens-corrections.md +162 -0
  681. package/docs/api/output-sdr-rendering.md +122 -0
  682. package/docs/api/output-subject-framing-crop.md +59 -0
  683. package/docs/api/schema-camera.md +84 -0
  684. package/docs/api/schema-illumination-spectral.md +77 -0
  685. package/docs/api/schema-illumination-temporal.md +289 -0
  686. package/docs/api/schema-illumination.md +246 -0
  687. package/docs/api/schema-scene-radiance-temporal.md +215 -0
  688. package/docs/api/schema-scene-radiance.md +415 -0
  689. package/docs/api/schema-scene.md +105 -0
  690. package/docs/api/schema-validation.md +25 -0
  691. package/docs/api/sensor-accumulated-charge.md +273 -0
  692. package/docs/api/sensor-architecture.md +155 -0
  693. package/docs/api/sensor-camera-saturation-capacity.md +215 -0
  694. package/docs/api/sensor-capture-color-sampling-binding.md +323 -0
  695. package/docs/api/sensor-capture-mode-timing.md +123 -0
  696. package/docs/api/sensor-capture-mode.md +321 -0
  697. package/docs/api/sensor-color-sampling.md +228 -0
  698. package/docs/api/sensor-constant-rate-temporal-integration.md +152 -0
  699. package/docs/api/sensor-dark-current.md +227 -0
  700. package/docs/api/sensor-environment-photo-signal.md +77 -0
  701. package/docs/api/sensor-eqe-electron-rate.md +166 -0
  702. package/docs/api/sensor-eqe-local-exposure.md +68 -0
  703. package/docs/api/sensor-eqe-temporal-exposure.md +73 -0
  704. package/docs/api/sensor-exposure-window.md +183 -0
  705. package/docs/api/sensor-iso-signal-chain.md +264 -0
  706. package/docs/api/sensor-local-exposure-binding.md +126 -0
  707. package/docs/api/sensor-optical-stack.md +211 -0
  708. package/docs/api/sensor-photon-energy.md +149 -0
  709. package/docs/api/sensor-physical-charge-capacity.md +196 -0
  710. package/docs/api/sensor-pixel-pitch.md +41 -0
  711. package/docs/api/sensor-radiometry-readiness.md +240 -0
  712. package/docs/api/sensor-raw-readout.md +499 -0
  713. package/docs/api/sensor-raw-reconstruction.md +260 -0
  714. package/docs/api/sensor-readout-exposure-linkage.md +172 -0
  715. package/docs/api/sensor-readout-timing.md +209 -0
  716. package/docs/api/sensor-response-application-compatibility.md +256 -0
  717. package/docs/api/sensor-response-operating-range.md +293 -0
  718. package/docs/api/sensor-responsivity-photocurrent.md +245 -0
  719. package/docs/api/sensor-sampling-aperture.md +221 -0
  720. package/docs/api/sensor-scene-eqe-temporal-exposure.md +56 -0
  721. package/docs/api/sensor-sensor-geometry.md +143 -0
  722. package/docs/api/sensor-signal-noise.md +75 -0
  723. package/docs/api/sensor-spatial-sample-reduction.md +186 -0
  724. package/docs/api/sensor-spatial-sampling-quadrature.md +188 -0
  725. package/docs/api/sensor-spatio-spectral-reduction.md +217 -0
  726. package/docs/api/sensor-spectral-coverage.md +33 -0
  727. package/docs/api/sensor-spectral-quadrature.md +183 -0
  728. package/docs/api/sensor-spectral-response.md +291 -0
  729. package/docs/api/sensor-temporal-photo-signal.md +62 -0
  730. package/docs/api/simulation-poc-simulation.md +364 -0
  731. package/docs/api/stabilization-camera-shake.md +71 -0
  732. package/docs/api/stabilization-system.md +442 -0
  733. package/docs/benchmarks/2026-10-01-main-baseline.json +694 -0
  734. package/docs/benchmarks/2026-10-02-geometric-preparation-reuse.json +2190 -0
  735. package/docs/benchmarks/2026-10-02-poc-projection-reuse.json +2423 -0
  736. package/docs/benchmarks/2026-10-02-v1-environment-gc-profile.json +210 -0
  737. package/docs/benchmarks/2026-10-02-v1-environment-ordinary.json +187 -0
  738. package/docs/benchmarks/2026-10-02-v1-geometry-gc-profile.json +756 -0
  739. package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-1.json +711 -0
  740. package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-2.json +711 -0
  741. package/docs/benchmarks/2026-10-02-v1-poc-gc-profile.json +885 -0
  742. package/docs/benchmarks/2026-10-02-v1-poc-ordinary-1.json +868 -0
  743. package/docs/benchmarks/2026-10-02-v1-poc-ordinary-2.json +868 -0
  744. package/docs/examples/production-capture.mjs +34 -0
  745. package/docs/examples/production-request.json +4613 -0
  746. package/docs/examples/quick-start.mjs +12 -0
  747. package/docs/validation/documentation-fragments.json +212 -0
  748. package/docs/validation/release-audit-inventory.json +1306 -0
  749. package/docs/validation/tier-acceptance-report-v1.json +2538 -0
  750. package/package.json +15 -3
@@ -0,0 +1,225 @@
1
+ # optics/lateral-chromatic-aberration.ts public contracts
2
+
3
+ Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
+
5
+ ## calculateInverseLateralChromaticAberrationMapping
6
+
7
+ Inverse-maps one distorted output destination independently for the
8
+ representative red/green/blue channels.
9
+
10
+ Renderers can use the returned per-channel ideal source coordinates for
11
+ inverse sampling without inventing chromatic-aberration equations.
12
+
13
+ ```ts
14
+ export function calculateInverseLateralChromaticAberrationMapping(
15
+ input: CalculateInverseLateralChromaticAberrationMappingInput
16
+ ): CalculationResult<InverseLateralChromaticAberrationMapping>;
17
+ ```
18
+
19
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
20
+
21
+ ## CalculateInverseLateralChromaticAberrationMappingInput
22
+
23
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
24
+
25
+ ```ts
26
+ export interface CalculateInverseLateralChromaticAberrationMappingInput {
27
+ /**
28
+ * Distorted output image-plane destination. Each output channel is inverse-
29
+ * mapped independently to its ideal source coordinate.
30
+ */
31
+ distortedImagePointMm: LensFieldPointMm;
32
+ profile: LateralChromaticAberrationProfile;
33
+ }
34
+ ```
35
+
36
+ ## calculateInverseLateralChromaticAberrationMappings
37
+
38
+ Inverse-maps multiple distorted destinations while resolving the shared CA
39
+ profile once and validating each combined channel profile once for the
40
+ complete batch.
41
+
42
+ Per-point values match calculateInverseLateralChromaticAberrationMapping();
43
+ provenance is shared once at the batch boundary.
44
+
45
+ ```ts
46
+ export function calculateInverseLateralChromaticAberrationMappings(
47
+ input: CalculateInverseLateralChromaticAberrationMappingsInput
48
+ ): CalculationResult<InverseLateralChromaticAberrationMappings>;
49
+ ```
50
+
51
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
52
+
53
+ ## CalculateInverseLateralChromaticAberrationMappingsInput
54
+
55
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
56
+
57
+ ```ts
58
+ export interface CalculateInverseLateralChromaticAberrationMappingsInput {
59
+ /**
60
+ * Distorted output image-plane destinations. Each destination is inverse-
61
+ * mapped independently for red, green, and blue after one profile-resolution
62
+ * step for the batch.
63
+ */
64
+ distortedImagePointsMm: readonly LensFieldPointMm[];
65
+ profile: LateralChromaticAberrationProfile;
66
+ }
67
+ ```
68
+
69
+ ## calculateLateralChromaticAberrationMapping
70
+
71
+ Calculates generic lateral chromatic-aberration field separation by mapping
72
+ one ideal image-plane point through a shared green-reference base distortion
73
+ and red/blue radial coefficient offsets.
74
+
75
+ This is channel-dependent field mapping, not a blur kernel.
76
+
77
+ ```ts
78
+ export function calculateLateralChromaticAberrationMapping(
79
+ input: CalculateLateralChromaticAberrationMappingInput
80
+ ): CalculationResult<LateralChromaticAberrationMapping>;
81
+ ```
82
+
83
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
84
+
85
+ ## CalculateLateralChromaticAberrationMappingInput
86
+
87
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
88
+
89
+ ```ts
90
+ export interface CalculateLateralChromaticAberrationMappingInput {
91
+ /** Ideal/undistorted image-plane point shared by all channels. */
92
+ imagePointMm: LensFieldPointMm;
93
+ profile: LateralChromaticAberrationProfile;
94
+ }
95
+ ```
96
+
97
+ ## ChannelSeparationVectorMm
98
+
99
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
100
+
101
+ ```ts
102
+ export interface ChannelSeparationVectorMm {
103
+ x: number;
104
+ y: number;
105
+ distance: number;
106
+ }
107
+ ```
108
+
109
+ ## InverseLateralChromaticAberrationChannelMapping
110
+
111
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
112
+
113
+ ```ts
114
+ export interface InverseLateralChromaticAberrationChannelMapping {
115
+ sourceImagePointMm: LensFieldPointMm;
116
+ radialScaleAtSource: number;
117
+ combinedCoefficients: RadialDistortionCoefficients;
118
+ }
119
+ ```
120
+
121
+ ## InverseLateralChromaticAberrationMapping
122
+
123
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
124
+
125
+ ```ts
126
+ export interface InverseLateralChromaticAberrationMapping {
127
+ direction: "distorted-output-to-channel-sources";
128
+ referenceChannel: "green";
129
+ distortedImagePointMm: LensFieldPointMm;
130
+ channels: {
131
+ red: InverseLateralChromaticAberrationChannelMapping;
132
+ green: InverseLateralChromaticAberrationChannelMapping;
133
+ blue: InverseLateralChromaticAberrationChannelMapping;
134
+ };
135
+ sourceSeparation: LateralChromaticAberrationSeparation;
136
+ }
137
+ ```
138
+
139
+ ## InverseLateralChromaticAberrationMappings
140
+
141
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
142
+
143
+ ```ts
144
+ export interface InverseLateralChromaticAberrationMappings {
145
+ direction: "distorted-output-to-channel-sources-batch";
146
+ referenceChannel: "green";
147
+ mappings: readonly InverseLateralChromaticAberrationMapping[];
148
+ pointCount: number;
149
+ }
150
+ ```
151
+
152
+ ## LateralChromaticAberrationChannel
153
+
154
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
155
+
156
+ ```ts
157
+ export type LateralChromaticAberrationChannel = "red" | "green" | "blue";
158
+ ```
159
+
160
+ ## LateralChromaticAberrationChannelMapping
161
+
162
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
163
+
164
+ ```ts
165
+ export interface LateralChromaticAberrationChannelMapping {
166
+ mappedImagePointMm: LensFieldPointMm;
167
+ radialScale: number;
168
+ combinedCoefficients: RadialDistortionCoefficients;
169
+ }
170
+ ```
171
+
172
+ ## LateralChromaticAberrationMapping
173
+
174
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
175
+
176
+ ```ts
177
+ export interface LateralChromaticAberrationMapping {
178
+ direction: "undistorted-to-channel-distorted";
179
+ referenceChannel: "green";
180
+ sourceImagePointMm: LensFieldPointMm;
181
+ channels: {
182
+ red: LateralChromaticAberrationChannelMapping;
183
+ green: LateralChromaticAberrationChannelMapping;
184
+ blue: LateralChromaticAberrationChannelMapping;
185
+ };
186
+ separation: LateralChromaticAberrationSeparation;
187
+ }
188
+ ```
189
+
190
+ ## LateralChromaticAberrationProfile
191
+
192
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
193
+
194
+ ```ts
195
+ export interface LateralChromaticAberrationProfile {
196
+ /** Shared physical image-plane normalization radius in millimetres. */
197
+ normalizationRadiusMm: number;
198
+ /** Shared undistorted normalized-radius operating envelope. */
199
+ maximumNormalizedRadius: number;
200
+ /**
201
+ * Green-reference base geometric distortion.
202
+ *
203
+ * This common mapping is included in every channel. Red/blue CA terms are
204
+ * added to this base, so callers should not apply a second distortion pass.
205
+ */
206
+ baseDistortionCoefficients: RadialDistortionCoefficients;
207
+ /** Additional red-channel radial coefficients relative to green. */
208
+ redCoefficientOffset: RadialDistortionCoefficients;
209
+ /** Additional blue-channel radial coefficients relative to green. */
210
+ blueCoefficientOffset: RadialDistortionCoefficients;
211
+ }
212
+ ```
213
+
214
+ ## LateralChromaticAberrationSeparation
215
+
216
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
217
+
218
+ ```ts
219
+ export interface LateralChromaticAberrationSeparation {
220
+ redGreen: ChannelSeparationVectorMm;
221
+ blueGreen: ChannelSeparationVectorMm;
222
+ redBlue: ChannelSeparationVectorMm;
223
+ maximumPairDistanceMm: number;
224
+ }
225
+ ```
@@ -0,0 +1,380 @@
1
+ # optics/lens-psf-profile.ts public contracts
2
+
3
+ Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
+
5
+ ## assessMtfOnlyPsfRenderability
6
+
7
+ Explain why MTF-only evidence cannot determine a unique renderable PSF; return blockers instead of
8
+ fabricating phase information.
9
+
10
+ Sampled lens PSF shapes bind exact generic optical state, field, wavelength and signed defocus
11
+ support. Interpolation stays within declared applicability and preserves normalized shape separately
12
+ from throughput. MTF-only data lacks phase/spatial information and does not authorize rendering a
13
+ unique PSF.
14
+
15
+ ```ts
16
+ export function assessMtfOnlyPsfRenderability(
17
+ profile:
18
+ LensMtfDiagnosticProfile
19
+ ): MtfOnlyPsfRenderabilityAssessment;
20
+ ```
21
+
22
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
23
+
24
+ ## LENS_MTF_DIAGNOSTIC_PROFILE_SCHEMA_VERSION
25
+
26
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
27
+
28
+ ```ts
29
+ LENS_MTF_DIAGNOSTIC_PROFILE_SCHEMA_VERSION =
30
+ "0.1.0" as const
31
+ ```
32
+
33
+ ## LENS_SAMPLED_PSF_PROFILE_SCHEMA_VERSION
34
+
35
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
36
+
37
+ ```ts
38
+ LENS_SAMPLED_PSF_PROFILE_SCHEMA_VERSION =
39
+ "0.1.0" as const
40
+ ```
41
+
42
+ ## LensMtfDiagnosticProfile
43
+
44
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
45
+
46
+ ```ts
47
+ export interface LensMtfDiagnosticProfile {
48
+ schemaVersion:
49
+ typeof LENS_MTF_DIAGNOSTIC_PROFILE_SCHEMA_VERSION;
50
+ profileId: string;
51
+ profileVersion: string;
52
+ opticalDomain:
53
+ "lens-primary-optical-path-only";
54
+ phaseInformationAvailable:
55
+ false;
56
+ magnitudeMeaning:
57
+ "mtf-magnitude-only";
58
+ fieldPointMm: {
59
+ x: number;
60
+ y: number;
61
+ };
62
+ focalLengthMm: number;
63
+ focus: FocusPlane;
64
+ apertureFNumber: number;
65
+ wavelengthNm: number | null;
66
+ samples:
67
+ readonly LensMtfDiagnosticSample[];
68
+ evidence:
69
+ readonly EvidenceProvenance[];
70
+ limitations: readonly string[];
71
+ }
72
+ ```
73
+
74
+ ## LensMtfDiagnosticSample
75
+
76
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
77
+
78
+ ```ts
79
+ export interface LensMtfDiagnosticSample {
80
+ spatialFrequencyCyclesPerMm:
81
+ number;
82
+ sagittalMagnitude: number;
83
+ tangentialMagnitude: number;
84
+ }
85
+ ```
86
+
87
+ ## LensPsfGridAxes
88
+
89
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
90
+
91
+ ```ts
92
+ export interface LensPsfGridAxes {
93
+ focalLengthMm:
94
+ readonly number[];
95
+ focusDiopters:
96
+ readonly number[];
97
+ apertureFNumber:
98
+ readonly number[];
99
+ fieldXmm:
100
+ readonly number[];
101
+ fieldYmm:
102
+ readonly number[];
103
+ wavelengthNm:
104
+ readonly number[];
105
+ signedDefocusImagePlaneMicrometers:
106
+ readonly number[];
107
+ }
108
+ ```
109
+
110
+ ## LensPsfKernel
111
+
112
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
113
+
114
+ ```ts
115
+ export interface LensPsfKernel {
116
+ widthSamples: number;
117
+ heightSamples: number;
118
+ samplePitchMicrometersX: number;
119
+ samplePitchMicrometersY: number;
120
+ centerSampleX: number;
121
+ centerSampleY: number;
122
+ normalizedIntensity:
123
+ readonly number[];
124
+ }
125
+ ```
126
+
127
+ ## LensPsfScientificStatus
128
+
129
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
130
+
131
+ ```ts
132
+ export type LensPsfScientificStatus =
133
+ | "calibrated"
134
+ | "approximation";
135
+ ```
136
+
137
+ ## LensPsfUncertainty
138
+
139
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
140
+
141
+ ```ts
142
+ export type LensPsfUncertainty =
143
+ | {
144
+ kind: "relative";
145
+ fraction: number;
146
+ basis: string;
147
+ }
148
+ | {
149
+ kind: "not-quantified";
150
+ limitation: string;
151
+ };
152
+ ```
153
+
154
+ ## LensSampledPsfGridCoordinate
155
+
156
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
157
+
158
+ ```ts
159
+ export interface LensSampledPsfGridCoordinate {
160
+ focalLengthMm: number;
161
+ focusDiopters: number;
162
+ apertureFNumber: number;
163
+ fieldXmm: number;
164
+ fieldYmm: number;
165
+ wavelengthNm: number;
166
+ signedDefocusImagePlaneMicrometers:
167
+ number;
168
+ }
169
+ ```
170
+
171
+ ## LensSampledPsfGridNode
172
+
173
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
174
+
175
+ ```ts
176
+ export interface LensSampledPsfGridNode {
177
+ nodeId: string;
178
+ coordinate:
179
+ LensSampledPsfGridCoordinate;
180
+ kernel: LensPsfKernel;
181
+ bestFocusImagePlaneOffsetMicrometers:
182
+ number;
183
+ relativePupilThroughputFactor:
184
+ number;
185
+ evidence:
186
+ readonly EvidenceProvenance[];
187
+ uncertainty:
188
+ LensPsfUncertainty;
189
+ }
190
+ ```
191
+
192
+ ## LensSampledPsfProfile
193
+
194
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
195
+
196
+ ```ts
197
+ export interface LensSampledPsfProfile {
198
+ schemaVersion:
199
+ typeof LENS_SAMPLED_PSF_PROFILE_SCHEMA_VERSION;
200
+ profileId: string;
201
+ profileVersion: string;
202
+ scientificStatus:
203
+ LensPsfScientificStatus;
204
+ opticalDomain:
205
+ "lens-primary-optical-path-only";
206
+ coordinateSystem:
207
+ "image-plane-metric";
208
+ fieldAxes:
209
+ "+X right, +Y up";
210
+ kernelEnergyNormalization:
211
+ "unit-energy-shape";
212
+ interpolation:
213
+ "bounded-regular-grid-multilinear";
214
+ throughputOwnership:
215
+ "separate-relative-pupil-throughput-factor";
216
+ responseIncludes: {
217
+ diffraction: boolean;
218
+ aberration: boolean;
219
+ defocus: boolean;
220
+ pupilClippingShape:
221
+ boolean;
222
+ };
223
+ sensorOpticalStackIncluded:
224
+ false;
225
+ sensorSamplingIncluded:
226
+ false;
227
+ reconstructionIncluded:
228
+ false;
229
+ strayLightIncluded: false;
230
+ axes: LensPsfGridAxes;
231
+ nodes:
232
+ readonly LensSampledPsfGridNode[];
233
+ evidence:
234
+ readonly EvidenceProvenance[];
235
+ limitations: readonly string[];
236
+ }
237
+ ```
238
+
239
+ ## MtfOnlyPsfRenderabilityAssessment
240
+
241
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
242
+
243
+ ```ts
244
+ export interface MtfOnlyPsfRenderabilityAssessment {
245
+ profileId: string;
246
+ psfReconstructionAuthorized:
247
+ false;
248
+ reason:
249
+ "mtf-magnitude-lacks-phase-and-does-not-uniquely-determine-psf";
250
+ diagnosticUseAuthorized: true;
251
+ }
252
+ ```
253
+
254
+ ## parseLensMtfDiagnosticProfile
255
+
256
+ Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
257
+ missing required fields and incompatible scientific data fail at this boundary.
258
+
259
+ Sampled lens PSF shapes bind exact generic optical state, field, wavelength and signed defocus
260
+ support. Interpolation stays within declared applicability and preserves normalized shape separately
261
+ from throughput. MTF-only data lacks phase/spatial information and does not authorize rendering a
262
+ unique PSF.
263
+
264
+ ```ts
265
+ export function parseLensMtfDiagnosticProfile(
266
+ value: unknown
267
+ ): LensMtfDiagnosticProfile;
268
+ ```
269
+
270
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
271
+
272
+ ## parseLensSampledPsfProfile
273
+
274
+ Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
275
+ missing required fields and incompatible scientific data fail at this boundary.
276
+
277
+ Sampled lens PSF shapes bind exact generic optical state, field, wavelength and signed defocus
278
+ support. Interpolation stays within declared applicability and preserves normalized shape separately
279
+ from throughput. MTF-only data lacks phase/spatial information and does not authorize rendering a
280
+ unique PSF.
281
+
282
+ ```ts
283
+ export function parseLensSampledPsfProfile(
284
+ value: unknown
285
+ ): LensSampledPsfProfile;
286
+ ```
287
+
288
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
289
+
290
+ ## ResolvedLensSampledPsf
291
+
292
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
293
+
294
+ ```ts
295
+ export interface ResolvedLensSampledPsf {
296
+ profileId: string;
297
+ profileVersion: string;
298
+ scientificStatus:
299
+ LensPsfScientificStatus;
300
+ resolutionStatus:
301
+ | "exact-grid-sample"
302
+ | "interpolated";
303
+ coordinate:
304
+ LensSampledPsfGridCoordinate;
305
+ focus: FocusPlane;
306
+ kernel: LensPsfKernel;
307
+ bestFocusImagePlaneOffsetMicrometers:
308
+ number;
309
+ relativePupilThroughputFactor:
310
+ number;
311
+ sourceNodes:
312
+ readonly {
313
+ nodeId: string;
314
+ weight: number;
315
+ evidence:
316
+ readonly EvidenceProvenance[];
317
+ uncertainty:
318
+ LensPsfUncertainty;
319
+ }[];
320
+ responseIncludes:
321
+ LensSampledPsfProfile["responseIncludes"];
322
+ throughputOwnership:
323
+ "separate-relative-pupil-throughput-factor";
324
+ longitudinalChromaticFocusMayVaryWithWavelength:
325
+ true;
326
+ fieldCurvatureMayVaryWithFieldPosition:
327
+ true;
328
+ geometricDistortionModified:
329
+ false;
330
+ lateralChromaticPositionShiftApplied:
331
+ false;
332
+ sensorOpticalStackIncluded:
333
+ false;
334
+ sensorSamplingIncluded: false;
335
+ reconstructionIncluded: false;
336
+ strayLightIncluded: false;
337
+ scalarSharpnessScoreProduced:
338
+ false;
339
+ }
340
+ ```
341
+
342
+ ## resolveLensSampledPsf
343
+
344
+ Resolve the bounded sampled PSF for a declared optical state and support point without extrapolation
345
+ or silently inventing missing dimensions.
346
+
347
+ Sampled lens PSF shapes bind exact generic optical state, field, wavelength and signed defocus
348
+ support. Interpolation stays within declared applicability and preserves normalized shape separately
349
+ from throughput. MTF-only data lacks phase/spatial information and does not authorize rendering a
350
+ unique PSF.
351
+
352
+ ```ts
353
+ export function resolveLensSampledPsf(
354
+ input:
355
+ ResolveLensSampledPsfInput
356
+ ): CalculationResult<ResolvedLensSampledPsf>;
357
+ ```
358
+
359
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
360
+
361
+ ## ResolveLensSampledPsfInput
362
+
363
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
364
+
365
+ ```ts
366
+ export interface ResolveLensSampledPsfInput {
367
+ profile:
368
+ LensSampledPsfProfile;
369
+ focalLengthMm: number;
370
+ focus: FocusPlane;
371
+ apertureFNumber: number;
372
+ fieldPointMm: {
373
+ x: number;
374
+ y: number;
375
+ };
376
+ wavelengthNm: number;
377
+ signedDefocusImagePlaneMicrometers:
378
+ number;
379
+ }
380
+ ```
@@ -0,0 +1,68 @@
1
+ # optics/polygon-diffraction.ts public contracts
2
+
3
+ Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
+
5
+ ## CalculateIdealPolygonDiffractionInput
6
+
7
+ On-axis, in-focus scalar diffraction of one ideal regular polygon pupil.
8
+
9
+ ```ts
10
+ export interface CalculateIdealPolygonDiffractionInput extends CalculateIdealApertureInput {
11
+ /** Diameter of a circle with the SAME AREA as the physical polygon opening. */
12
+ equivalentAreaPupilDiameterMm: number;
13
+ /** Paraxial pupil-to-image propagation scale; not silently inferred from focus. */
14
+ pupilToImageDistanceMm: number;
15
+ /** Wavelength in the declared propagation medium; no air/vacuum conversion. */
16
+ wavelengthNm: number;
17
+ wavelengthBasis: Exclude<SpectralWavelengthBasis, "unspecified">;
18
+ /** Displacements from the on-axis PSF center, +X right / +Y up; at most 4096. */
19
+ imagePointsMicrometers: readonly { x: number; y: number }[];
20
+ }
21
+ ```
22
+
23
+ ## calculateIdealPolygonDiffractionPsf
24
+
25
+ Calculates continuous monochromatic Fraunhofer PSF density for a uniformly
26
+ illuminated, zero-phase, on-axis ideal straight-edged regular polygon.
27
+ Physical area is explicit; f/N may supply the equal-area diameter only under
28
+ a declared nominal-area convention. No phase aberration, clipping, field
29
+ dependence, curved blades, defocus or polychromatic behavior is inferred.
30
+
31
+ Density = A |F/A|² / (lambda * propagationDistance)². Parseval normalization
32
+ is over the infinite plane, NOT over the supplied point list. Downstream
33
+ quadrature must preserve density × area and report truncation/convergence.
34
+
35
+ ```ts
36
+ export function calculateIdealPolygonDiffractionPsf(
37
+ input: CalculateIdealPolygonDiffractionInput
38
+ ): CalculationResult<IdealPolygonDiffraction>;
39
+ ```
40
+
41
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
42
+
43
+ ## IdealPolygonDiffraction
44
+
45
+ Continuous unit-energy PSF samples, not a normalized finite convolution kernel.
46
+
47
+ ```ts
48
+ export interface IdealPolygonDiffraction {
49
+ bladeCount: number;
50
+ firstBladeEdgeAngleDegrees: number;
51
+ pupilToImageDistanceMm: number;
52
+ wavelengthNm: number;
53
+ wavelengthBasis: Exclude<SpectralWavelengthBasis, "unspecified">;
54
+ pupilAreaSquareMm: number;
55
+ pupilCircumradiusMm: number;
56
+ pupilNormalization: "equal-area-circle";
57
+ fieldAxes: "+X right, +Y up";
58
+ energyNormalization: "unit-integral-over-infinite-image-plane";
59
+ throughputApplied: false;
60
+ samples: readonly {
61
+ imagePointMicrometers: { x: number; y: number };
62
+ /** |F/A|²; unity at the origin. Not an energy/probability weight. */
63
+ peakNormalizedIntensity: number;
64
+ /** Density integrating to unity over the full image plane, in 1/µm². */
65
+ intensityDensityPerSquareMicrometer: number;
66
+ }[];
67
+ }
68
+ ```