@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,227 @@
1
+ # sensor/dark-current.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
+ ## calculateSensorDarkCurrentCharge
6
+
7
+ Evaluate the declared temperature-dependent dark electron rate and integrate over the exact
8
+ photo-signal local exposure event.
9
+
10
+ Dark current is an independently declared pre-compensation thermal electron rate. Exact-temperature
11
+ or sampled linear interpolation is supported only within declared applicability; no universal
12
+ doubling-temperature law is inferred. Population means remain approximations and do not model
13
+ hot-pixel/DCNU structure.
14
+
15
+ ```ts
16
+ export function calculateSensorDarkCurrentCharge(
17
+ input: Omit<CalculateSensorDarkCurrentChargeInput, "exposure"> & { exposure: SensorEqeExposureIntegration }
18
+ ): CalculationResult<SensorDarkCurrentCharge>;
19
+ ```
20
+
21
+ ```ts
22
+ export function calculateSensorDarkCurrentCharge(
23
+ input: Omit<CalculateSensorDarkCurrentChargeInput, "exposure"> & { exposure: SensorEqeTemporalPhotoSignal }
24
+ ): CalculationResult<SensorTemporalDarkCurrentCharge>;
25
+ ```
26
+
27
+ ```ts
28
+ export function calculateSensorDarkCurrentCharge(
29
+ input: CalculateSensorDarkCurrentChargeInput<SensorEqePhotoExposure>
30
+ ): CalculationResult<SensorPhotoDarkCurrentCharge>;
31
+ ```
32
+
33
+ ```ts
34
+ export function calculateSensorDarkCurrentCharge(
35
+ input:
36
+ CalculateSensorDarkCurrentChargeInput<SensorEqePhotoExposure>
37
+ ): CalculationResult<SensorPhotoDarkCurrentCharge>;
38
+ ```
39
+
40
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
41
+
42
+ ## CalculateSensorDarkCurrentChargeInput
43
+
44
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
45
+
46
+ ```ts
47
+ export interface CalculateSensorDarkCurrentChargeInput<Exposure extends SensorEqePhotoExposure = SensorEqeExposureIntegration> {
48
+ exposure:
49
+ Exposure;
50
+ darkCurrentProfile:
51
+ SensorDarkCurrentProfile;
52
+ operatingTemperatureC: number;
53
+ }
54
+ ```
55
+
56
+ ## parseSensorDarkCurrentProfile
57
+
58
+ Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
59
+ missing required fields and incompatible scientific data fail at this boundary.
60
+
61
+ Dark current is an independently declared pre-compensation thermal electron rate. Exact-temperature
62
+ or sampled linear interpolation is supported only within declared applicability; no universal
63
+ doubling-temperature law is inferred. Population means remain approximations and do not model
64
+ hot-pixel/DCNU structure.
65
+
66
+ ```ts
67
+ export function parseSensorDarkCurrentProfile(
68
+ value: unknown
69
+ ): SensorDarkCurrentProfile;
70
+ ```
71
+
72
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
73
+
74
+ ## SensorDarkCurrentCharge
75
+
76
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
77
+
78
+ ```ts
79
+ export interface SensorDarkCurrentCharge {
80
+ darkCurrentProfileId: string;
81
+ colorSamplingProfileId: string;
82
+ channelId: string;
83
+ site: {
84
+ x: number;
85
+ y: number;
86
+ };
87
+ bindingId: string;
88
+ stationarityProfileId: string;
89
+ temporalIntegrationId?: never;
90
+ timeReference:
91
+ "first-opening-boundary-phase";
92
+ startOffsetSecondsFromOpeningReference:
93
+ number;
94
+ endOffsetSecondsFromOpeningReference:
95
+ number;
96
+ operatingTemperatureC: number;
97
+ temperatureModel:
98
+ SensorDarkCurrentTemperatureModel["kind"];
99
+ temperatureInterpolationUsed:
100
+ boolean;
101
+ darkCurrentElectronsPerSecond:
102
+ number;
103
+ localExposureDurationSeconds:
104
+ number;
105
+ expectedDarkElectronCount:
106
+ number;
107
+ countMeaning:
108
+ "expected-thermally-generated-electrons";
109
+ expectationValueOnly: true;
110
+ integerDarkElectronCountSampled:
111
+ false;
112
+ darkShotNoiseApplied: false;
113
+ darkCurrentCompensationApplied:
114
+ false;
115
+ spatialDarkCurrentNonuniformityModeled:
116
+ boolean;
117
+ photoSignalIncluded: false;
118
+ otherChargeIncluded: false;
119
+ physicalFullWellAssessmentAuthorized:
120
+ false;
121
+ saturationAssessed: false;
122
+ componentEvidence: {
123
+ darkCurrent:
124
+ readonly EvidenceProvenance[];
125
+ siteApproximation:
126
+ readonly EvidenceProvenance[];
127
+ exposure:
128
+ SensorEqeExposureIntegration["componentEvidence"];
129
+ };
130
+ }
131
+ ```
132
+
133
+ ## SensorDarkCurrentProfile
134
+
135
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
136
+
137
+ ```ts
138
+ export interface SensorDarkCurrentProfile {
139
+ schemaVersion: "0.1.0";
140
+ profileId: string;
141
+ colorSamplingProfileId: string;
142
+ channelId: string;
143
+ scientificStatus:
144
+ SensorSpectralResponseScientificStatus;
145
+ uncertainty:
146
+ SensorSpectralResponseUncertainty;
147
+ evidence: readonly EvidenceProvenance[];
148
+ chargeMeaning:
149
+ "pre-compensation-thermally-generated-electrons";
150
+ siteApplicability:
151
+ SensorDarkCurrentSiteApplicability;
152
+ temperatureModel:
153
+ SensorDarkCurrentTemperatureModel;
154
+ darkCurrentCompensationIncluded: false;
155
+ spatialDarkCurrentNonuniformityModeled:
156
+ boolean;
157
+ }
158
+ ```
159
+
160
+ ## SensorDarkCurrentSiteApplicability
161
+
162
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
163
+
164
+ ```ts
165
+ export type SensorDarkCurrentSiteApplicability =
166
+ | {
167
+ kind: "exact-site";
168
+ site: {
169
+ x: number;
170
+ y: number;
171
+ };
172
+ }
173
+ | {
174
+ kind:
175
+ "uniform-site-mean-approximation";
176
+ limitation: string;
177
+ evidence:
178
+ readonly EvidenceProvenance[];
179
+ };
180
+ ```
181
+
182
+ ## SensorDarkCurrentTemperatureModel
183
+
184
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
185
+
186
+ ```ts
187
+ export type SensorDarkCurrentTemperatureModel =
188
+ | {
189
+ kind:
190
+ "fixed-reference-temperature";
191
+ referenceTemperatureC: number;
192
+ darkCurrentElectronsPerSecond:
193
+ number;
194
+ }
195
+ | {
196
+ kind:
197
+ "piecewise-linear-temperature-table";
198
+ interpolation: "piecewise-linear";
199
+ outsideRangeBehavior:
200
+ "fail-closed";
201
+ samples: readonly {
202
+ temperatureC: number;
203
+ darkCurrentElectronsPerSecond:
204
+ number;
205
+ }[];
206
+ };
207
+ ```
208
+
209
+ ## SensorPhotoDarkCurrentCharge
210
+
211
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
212
+
213
+ ```ts
214
+ export type SensorPhotoDarkCurrentCharge = SensorDarkCurrentCharge | SensorTemporalDarkCurrentCharge;
215
+ ```
216
+
217
+ ## SensorTemporalDarkCurrentCharge
218
+
219
+ Dark charge shares the exact temporal photo event, without a stationarity ID.
220
+
221
+ ```ts
222
+ export type SensorTemporalDarkCurrentCharge = Omit<SensorDarkCurrentCharge, "stationarityProfileId" | "temporalIntegrationId" | "componentEvidence"> & {
223
+ stationarityProfileId?: never;
224
+ temporalIntegrationId: string;
225
+ componentEvidence: Omit<SensorDarkCurrentCharge["componentEvidence"], "exposure"> & { exposure: SensorEqeTemporalPhotoSignal["componentEvidence"] };
226
+ };
227
+ ```
@@ -0,0 +1,77 @@
1
+ # sensor/environment-photo-signal.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
+ ## calculateEnvironmentSensorPhotoSignal
6
+
7
+ Generate, evaluate and integrate one site's actual local midpoint environment support.
8
+
9
+ ```ts
10
+ export function calculateEnvironmentSensorPhotoSignal(input: CalculateEnvironmentSensorPhotoSignalInput): CalculationResult<EnvironmentSensorPhotoSignal>;
11
+ ```
12
+
13
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
14
+
15
+ ## CalculateEnvironmentSensorPhotoSignalInput
16
+
17
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
18
+
19
+ ```ts
20
+ export interface CalculateEnvironmentSensorPhotoSignalInput {
21
+ temporalIntegrationId: string;
22
+ sensor: Omit<CalculateSensorEqeTemporalExposureInput, "samples">;
23
+ sceneBindings: CalculateSceneToSensorIrradianceQuadratureInput["sceneBindings"];
24
+ optics: Omit<CalculateSceneRadianceToSensorIrradianceInput,
25
+ "sceneRadianceRequest" | "sceneRadianceResult" | "imagePointMm" | "fieldThroughput">;
26
+ motion: Pick<CalculateSensorEnvironmentRadianceQueryInput,
27
+ "angularVelocityRadPerSec" | "timeReference" | "environmentDirectionConvention">;
28
+ temporalSampleCount: number;
29
+ /** Explicit unity field throughput; spatial vignetting is not inferred or applied. */
30
+ fieldThroughput: { kind: "unity"; evidence: readonly EvidenceProvenance[]; limitation: string };
31
+ psf: { kind: "not-applied"; evidence: readonly EvidenceProvenance[]; limitation: string } | {
32
+ kind: "sampled-local";
33
+ configuration: Pick<CalculateSensorPsfIrradianceQuadratureInput, "psf" | "psfWavelengthBasis" | "spatialModel">;
34
+ };
35
+ evaluateRadiance: EnvironmentRadianceEvaluator;
36
+ }
37
+ ```
38
+
39
+ ## EnvironmentRadianceEvaluator
40
+
41
+ Supplied synchronous code executes locally. Invocation does not prove physical transport.
42
+
43
+ ```ts
44
+ export type EnvironmentRadianceEvaluator = (request: Readonly<SceneRadianceEvaluationRequest>) => SceneRadianceEvaluationResult;
45
+ ```
46
+
47
+ ## EnvironmentSensorPhotoSignal
48
+
49
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
50
+
51
+ ```ts
52
+ export interface EnvironmentSensorPhotoSignal {
53
+ sourceTargetProjectionCalculated: true;
54
+ providerCallbackExecuted: true;
55
+ providerTransportVerified: false;
56
+ sceneVisibilityCalculated: false;
57
+ productionPlanActivated: false;
58
+ providerEvaluationCount: number;
59
+ sourcePlane: "sensor-package-incident";
60
+ fieldThroughputEvidence: readonly EvidenceProvenance[];
61
+ fieldThroughputLimitation: string;
62
+ psfOmission: { evidence: readonly EvidenceProvenance[]; limitation: string } | null;
63
+ psfRedistributionApplied: boolean;
64
+ photo: ReturnType<typeof createSensorEqeTemporalPhotoSignal>;
65
+ instants: readonly {
66
+ temporalSampleIndex: number;
67
+ timeSecondsFromOpeningReference: number;
68
+ psf: ReturnType<typeof calculateSensorPsfIrradianceQuadrature> | null;
69
+ evaluations: readonly {
70
+ query: ReturnType<typeof calculateSensorEnvironmentRadianceQuery>;
71
+ result: SceneRadianceEvaluationResult;
72
+ bindings: ReturnType<typeof validateSceneRadianceEvaluationBindings>;
73
+ optics: ReturnType<typeof calculateSceneRadianceToSensorIrradiance>;
74
+ }[];
75
+ }[];
76
+ }
77
+ ```
@@ -0,0 +1,166 @@
1
+ # sensor/eqe-electron-rate.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
+ ## calculateSensorEqeElectronRate
6
+
7
+ Converts pre-response geometric-aperture spectral radiant power into
8
+ incident-photon rate and expected generated-electron rate.
9
+
10
+ This function applies response per wavelength node. It never applies one
11
+ broadband-average QE to total radiant power.
12
+
13
+ Temporal exposure integration remains downstream, so all outputs are rates
14
+ (per second), not photon/electron counts.
15
+
16
+ ```ts
17
+ export function calculateSensorEqeElectronRate(
18
+ input:
19
+ CalculateSensorEqeElectronRateInput
20
+ ): CalculationResult<SensorEqeElectronRate>;
21
+ ```
22
+
23
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
24
+
25
+ ## CalculateSensorEqeElectronRateInput
26
+
27
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
28
+
29
+ ```ts
30
+ export interface CalculateSensorEqeElectronRateInput {
31
+ reduction:
32
+ SensorSpatioSpectralIrradianceReduction;
33
+ compatibility:
34
+ SensorResponseApplicationCompatibilityAssessment;
35
+ operatingRange:
36
+ SensorResponseOperatingRangeAssessment;
37
+ colorSamplingProfile:
38
+ SensorColorSamplingProfile;
39
+ spectralResponseProfile:
40
+ SensorSpectralResponseProfile;
41
+ airPhotonEnergyContext?:
42
+ SensorEqeAirPhotonEnergyContext;
43
+ }
44
+ ```
45
+
46
+ ## SensorEqeAirPhotonEnergyContext
47
+
48
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
49
+
50
+ ```ts
51
+ export interface SensorEqeAirPhotonEnergyContext {
52
+ samples:
53
+ readonly SensorEqeAirRefractiveIndexSample[];
54
+ operatingConditions?:
55
+ AirRefractiveIndexReferenceConditions;
56
+ conditionPolicy:
57
+ AirRefractiveIndexConditionPolicy;
58
+ }
59
+ ```
60
+
61
+ ## SensorEqeAirRefractiveIndexSample
62
+
63
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
64
+
65
+ ```ts
66
+ export interface SensorEqeAirRefractiveIndexSample {
67
+ spectralSampleIndex: number;
68
+ refractiveIndex:
69
+ SourcedAirPhaseRefractiveIndex;
70
+ }
71
+ ```
72
+
73
+ ## SensorEqeElectronRate
74
+
75
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
76
+
77
+ ```ts
78
+ export interface SensorEqeElectronRate {
79
+ colorSamplingProfileId: string;
80
+ responseProfileId: string;
81
+ responseApplicationProfileId: string;
82
+ operatingRangeProfileId: string;
83
+ /** Engine-produced results populate the exact source color site. */
84
+ site?: {
85
+ x: number;
86
+ y: number;
87
+ };
88
+ channelId: string;
89
+ sourceResponseKind:
90
+ | "effective-external-quantum-efficiency"
91
+ | "separable-channel-filter-and-detector-eqe";
92
+ responseScope:
93
+ SensorSpatioSpectralIrradianceReduction["responseScope"];
94
+ responseReferencePlane:
95
+ SensorResponseApplicationCompatibilityAssessment["requiredSourcePlane"];
96
+ wavelengthBasis:
97
+ SensorSpatioSpectralIrradianceReduction["wavelengthBasis"];
98
+ wavelengthRangeNanometers:
99
+ SensorSpatioSpectralIrradianceReduction["wavelengthRangeNanometers"];
100
+ spectralNodeCount: number;
101
+ perWavelength:
102
+ readonly SensorEqeWavelengthRateContribution[];
103
+ incidentPhotonRatePerSecond: number;
104
+ expectedGeneratedElectronRatePerSecond:
105
+ number;
106
+ summationMethod:
107
+ "kahan-compensated";
108
+ responseApplicationPerformed: true;
109
+ quantumEfficiencyApplied: true;
110
+ spectralResponsivityApplied: false;
111
+ channelFilterTransmissionApplied:
112
+ boolean;
113
+ photonRateCalculated: true;
114
+ electronRateCalculated: true;
115
+ photonCountCalculated: false;
116
+ electronCountCalculated: false;
117
+ currentCalculated: false;
118
+ temporalIntegrationApplied: false;
119
+ exposureDurationApplied: false;
120
+ saturationAssessed: false;
121
+ shotNoiseApplied: false;
122
+ readNoiseApplied: false;
123
+ adcQuantizationApplied: false;
124
+ rawCodeValueProduced: false;
125
+ responseUncertaintyPropagated: false;
126
+ photonEnergyUncertaintyPropagated: false;
127
+ quadratureConvergenceErrorEstimated:
128
+ false;
129
+ }
130
+ ```
131
+
132
+ ## SensorEqeWavelengthRateContribution
133
+
134
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
135
+
136
+ ```ts
137
+ export interface SensorEqeWavelengthRateContribution {
138
+ spectralSampleIndex: number;
139
+ wavelengthNanometers: number;
140
+ wavelengthMeasureNanometers: number;
141
+ geometricApertureIncidentSpectralFluxWattsPerNanometer:
142
+ number;
143
+ radiantPowerContributionWatts: number;
144
+ vacuumWavelengthNanometers: number;
145
+ photonEnergyJoules: number;
146
+ wavelengthConversion:
147
+ | "vacuum-identity"
148
+ | "air-to-vacuum-via-phase-refractive-index";
149
+ phaseRefractiveIndexUsed?: number;
150
+ airConditionCompatibility?:
151
+ | "exact-match"
152
+ | "assumed-compatible";
153
+ airRefractiveIndexEvidence?:
154
+ readonly EvidenceProvenance[];
155
+ incidentPhotonRatePerSecond: number;
156
+ effectiveExternalQuantumEfficiency: number;
157
+ responseComposition:
158
+ | "direct-effective-response"
159
+ | "channel-filter-transmittance-times-detector-eqe";
160
+ channelFilterTransmittance?: number;
161
+ detectorExternalQuantumEfficiency?: number;
162
+ responseInterpolationUsed: boolean;
163
+ expectedGeneratedElectronRatePerSecond:
164
+ number;
165
+ }
166
+ ```
@@ -0,0 +1,68 @@
1
+ # sensor/eqe-local-exposure.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
+ ## calculateSensorEqeLocalExposure
6
+
7
+ Compose validated irradiance reduction, response applicability/range, EQE
8
+ conversion and stationary local integration. The exposure value is suitable
9
+ for accumulated-charge photoSignal; dark/completeness/capacity/readout remain
10
+ explicit downstream inputs. Invalid or unsupported evidence fails closed.
11
+
12
+ ```ts
13
+ export function calculateSensorEqeLocalExposure(
14
+ input: CalculateSensorEqeLocalExposureInput
15
+ ): CalculationResult<SensorEqeLocalExposure>;
16
+ ```
17
+
18
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
19
+
20
+ ## CalculateSensorEqeLocalExposureInput
21
+
22
+ Explicit post-optics irradiance samples and evidence; no renderer or RGB conversion.
23
+
24
+ ```ts
25
+ export interface CalculateSensorEqeLocalExposureInput {
26
+ /** Physical area, registered aperture/lattice, AA support and destination site. */
27
+ spatialSampling: Omit<CalculateSensorSpatialSamplingQuadratureInput,
28
+ "colorSamplingProfile" | "colorSamplingBindingProfile" | "nativeRaster">;
29
+ /** Explicit wavelength basis/range, channel and midpoint subdivision budget. */
30
+ spectralSampling: Omit<CalculateSensorSpectralQuadratureInput,
31
+ "colorSamplingProfile" | "spectralResponseProfile">;
32
+ /** One W/m²/nm value per identified pre-AA spatial/spectral node. */
33
+ irradianceSamples: ReduceSensorSpatioSpectralIrradianceInput["sampleValues"];
34
+ /** Source-plane, collection-area and reference-condition evidence. */
35
+ responseApplication: Omit<AssessSensorResponseApplicationCompatibilityInput, "reduction">;
36
+ /** Evidence-backed linear response domain; no extrapolation is authorized. */
37
+ operatingRangeProfile: AssessSensorResponseOperatingRangeInput["operatingRangeProfile"];
38
+ /** Destination CFA/channel identity shared by every composed step. */
39
+ colorSamplingProfile: CalculateSensorEqeElectronRateInput["colorSamplingProfile"];
40
+ /** Direct or separable EQE response; A/W responsivity is unsupported here. */
41
+ spectralResponseProfile: CalculateSensorEqeElectronRateInput["spectralResponseProfile"];
42
+ /** Required explicit photon-energy conversion context for air wavelengths. */
43
+ airPhotonEnergyContext?: CalculateSensorEqeElectronRateInput["airPhotonEnergyContext"];
44
+ /** Native one-to-one site binding and one opening/closing shutter event. */
45
+ localExposure: Omit<BindSensorRateToLocalExposureInput, "rate" | "colorSamplingProfile">;
46
+ /** Separate declaration authorizing a constant rate across this exact window. */
47
+ stationarityProfile: SensorRateTemporalStationarityProfile;
48
+ }
49
+ ```
50
+
51
+ ## SensorEqeLocalExposure
52
+
53
+ Child envelopes retain separate provenance, validity and unpropagated uncertainty.
54
+
55
+ ```ts
56
+ export interface SensorEqeLocalExposure {
57
+ upstreamOrigin: "declared-spatio-spectral-irradiance-samples";
58
+ upstreamSceneAndOpticsVerified: false;
59
+ spatialQuadrature: ReturnType<typeof calculateSensorSpatialSamplingQuadrature>;
60
+ spectralQuadrature: ReturnType<typeof calculateSensorSpectralQuadrature>;
61
+ reduction: ReturnType<typeof reduceSensorSpatioSpectralIrradiance>;
62
+ compatibility: ReturnType<typeof assessSensorResponseApplicationCompatibility>;
63
+ operatingRange: ReturnType<typeof assessSensorResponseOperatingRange>;
64
+ electronRate: ReturnType<typeof calculateSensorEqeElectronRate>;
65
+ exposureBinding: ReturnType<typeof bindSensorRateToLocalExposure>;
66
+ exposure: CalculationResult<SensorEqeExposureIntegration>;
67
+ }
68
+ ```
@@ -0,0 +1,73 @@
1
+ # sensor/eqe-temporal-exposure.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
+ ## calculateSensorEqeTemporalExposure
6
+
7
+ Evaluate response validity and EQE independently at each declared shutter
8
+ midpoint, then sum rates times seconds. This is quadrature, not a stationarity
9
+ claim or convergence proof. Shared profile/geometry state prevents combining
10
+ rates from different sites or shutter events. No renderer executes here.
11
+
12
+ ```ts
13
+ export function calculateSensorEqeTemporalExposure(
14
+ input: CalculateSensorEqeTemporalExposureInput
15
+ ): CalculationResult<SensorEqeTemporalExposure>;
16
+ ```
17
+
18
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
19
+
20
+ ## CalculateSensorEqeTemporalExposureInput
21
+
22
+ Shared response/site/shutter state, with separately evaluated physical light at each time.
23
+
24
+ ```ts
25
+ export interface CalculateSensorEqeTemporalExposureInput
26
+ extends Omit<CalculateSensorEqeLocalExposureInput, "irradianceSamples" | "stationarityProfile"> {
27
+ /** Complete uniform-midpoint coverage; array order is not temporal identity. */
28
+ samples: readonly {
29
+ temporalSampleIndex: number;
30
+ /** Seconds on the shutter's first-opening-boundary-phase reference. */
31
+ timeSecondsFromOpeningReference: number;
32
+ /** Complete W/m²/nm Cartesian irradiance coverage for this instant. */
33
+ irradianceSamples: CalculateSensorEqeLocalExposureInput["irradianceSamples"];
34
+ }[];
35
+ }
36
+ ```
37
+
38
+ ## SensorEqeTemporalExposure
39
+
40
+ Nonstationary photo expectation, deliberately distinct from stationary RAW producer inputs.
41
+
42
+ ```ts
43
+ export interface SensorEqeTemporalExposure {
44
+ kind: "eqe-temporal-quadrature-expected-counts";
45
+ colorSamplingProfileId: string;
46
+ channelId: string;
47
+ site: { x: number; y: number };
48
+ bindingId: string;
49
+ timeReference: "first-opening-boundary-phase";
50
+ startOffsetSecondsFromOpeningReference: number;
51
+ endOffsetSecondsFromOpeningReference: number;
52
+ localExposureDurationSeconds: number;
53
+ expectedIncidentPhotonCount: number;
54
+ expectedGeneratedElectronCount: number;
55
+ integrationMethod: "uniform-midpoint-rate-quadrature";
56
+ timeStationarityEstablished: false;
57
+ timeVaryingSignalIntegrated: true;
58
+ temporalIntegrationApplied: true;
59
+ upstreamSceneAndOpticsVerified: false;
60
+ accumulatedSignalCompleteness: "photo-signal-only";
61
+ physicalFullWellAssessmentAuthorized: false;
62
+ shotNoiseApplied: false;
63
+ rawCodeValueProduced: false;
64
+ /** Canonical order, seconds-valued integration measures and independent child evidence. */
65
+ samples: readonly {
66
+ temporalSampleIndex: number;
67
+ timeSecondsFromOpeningReference: number;
68
+ integrationMeasureSeconds: number;
69
+ timeAverageWeight: number;
70
+ stages: ReturnType<typeof calculateSensorEqeLocalRate>;
71
+ }[];
72
+ }
73
+ ```