@photivra/engine 0.5.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (753) hide show
  1. package/AGENTS.md +674 -0
  2. package/CHANGELOG.md +218 -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 +157 -56
  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 +14 -0
  139. package/dist/core/version.d.ts.map +1 -0
  140. package/dist/core/version.js +15 -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 +101 -7
  203. package/dist/index.d.ts.map +1 -1
  204. package/dist/index.js +99 -7
  205. package/dist/index.js.map +1 -1
  206. package/dist/motion/camera-rotation.d.ts +76 -0
  207. package/dist/motion/camera-rotation.d.ts.map +1 -1
  208. package/dist/motion/camera-rotation.js +111 -0
  209. package/dist/motion/camera-rotation.js.map +1 -1
  210. package/dist/motion/capture-rotation-inverse-mapping.d.ts +113 -0
  211. package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +1 -0
  212. package/dist/motion/capture-rotation-inverse-mapping.js +184 -0
  213. package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -0
  214. package/dist/motion/capture-rotation-temporal-quadrature.d.ts +104 -0
  215. package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +1 -0
  216. package/dist/motion/capture-rotation-temporal-quadrature.js +131 -0
  217. package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -0
  218. package/dist/motion/capture-rotation-trajectory.d.ts +113 -0
  219. package/dist/motion/capture-rotation-trajectory.d.ts.map +1 -0
  220. package/dist/motion/capture-rotation-trajectory.js +168 -0
  221. package/dist/motion/capture-rotation-trajectory.js.map +1 -0
  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 +23 -4
  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 +22 -2
  291. package/dist/optics/radial-distortion.d.ts.map +1 -1
  292. package/dist/optics/radial-distortion.js +101 -23
  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 +32 -11
  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 +212 -0
  393. package/dist/sensor/capture-color-sampling-binding.d.ts.map +1 -0
  394. package/dist/sensor/capture-color-sampling-binding.js +437 -0
  395. package/dist/sensor/capture-color-sampling-binding.js.map +1 -0
  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 +157 -0
  401. package/dist/sensor/capture-mode.d.ts.map +1 -0
  402. package/dist/sensor/capture-mode.js +447 -0
  403. package/dist/sensor/capture-mode.js.map +1 -0
  404. package/dist/sensor/color-sampling.d.ts +133 -0
  405. package/dist/sensor/color-sampling.d.ts.map +1 -0
  406. package/dist/sensor/color-sampling.js +245 -0
  407. package/dist/sensor/color-sampling.js.map +1 -0
  408. package/dist/sensor/constant-rate-temporal-integration.d.ts +126 -0
  409. package/dist/sensor/constant-rate-temporal-integration.d.ts.map +1 -0
  410. package/dist/sensor/constant-rate-temporal-integration.js +382 -0
  411. package/dist/sensor/constant-rate-temporal-integration.js.map +1 -0
  412. package/dist/sensor/dark-current.d.ts +169 -0
  413. package/dist/sensor/dark-current.d.ts.map +1 -0
  414. package/dist/sensor/dark-current.js +427 -0
  415. package/dist/sensor/dark-current.js.map +1 -0
  416. package/dist/sensor/environment-photo-signal.d.ts +123 -0
  417. package/dist/sensor/environment-photo-signal.d.ts.map +1 -0
  418. package/dist/sensor/environment-photo-signal.js +186 -0
  419. package/dist/sensor/environment-photo-signal.js.map +1 -0
  420. package/dist/sensor/eqe-electron-rate.d.ts +107 -0
  421. package/dist/sensor/eqe-electron-rate.d.ts.map +1 -0
  422. package/dist/sensor/eqe-electron-rate.js +561 -0
  423. package/dist/sensor/eqe-electron-rate.js.map +1 -0
  424. package/dist/sensor/eqe-local-exposure.d.ts +65 -0
  425. package/dist/sensor/eqe-local-exposure.d.ts.map +1 -0
  426. package/dist/sensor/eqe-local-exposure.js +84 -0
  427. package/dist/sensor/eqe-local-exposure.js.map +1 -0
  428. package/dist/sensor/eqe-temporal-exposure.d.ts +55 -0
  429. package/dist/sensor/eqe-temporal-exposure.d.ts.map +1 -0
  430. package/dist/sensor/eqe-temporal-exposure.js +62 -0
  431. package/dist/sensor/eqe-temporal-exposure.js.map +1 -0
  432. package/dist/sensor/exposure-window.d.ts +117 -0
  433. package/dist/sensor/exposure-window.d.ts.map +1 -0
  434. package/dist/sensor/exposure-window.js +305 -0
  435. package/dist/sensor/exposure-window.js.map +1 -0
  436. package/dist/sensor/iso-signal-chain.d.ts +148 -0
  437. package/dist/sensor/iso-signal-chain.d.ts.map +1 -0
  438. package/dist/sensor/iso-signal-chain.js +411 -0
  439. package/dist/sensor/iso-signal-chain.js.map +1 -0
  440. package/dist/sensor/local-exposure-binding.d.ts +87 -0
  441. package/dist/sensor/local-exposure-binding.d.ts.map +1 -0
  442. package/dist/sensor/local-exposure-binding.js +214 -0
  443. package/dist/sensor/local-exposure-binding.js.map +1 -0
  444. package/dist/sensor/optical-stack.d.ts +132 -0
  445. package/dist/sensor/optical-stack.d.ts.map +1 -0
  446. package/dist/sensor/optical-stack.js +303 -0
  447. package/dist/sensor/optical-stack.js.map +1 -0
  448. package/dist/sensor/photon-energy.d.ts +97 -0
  449. package/dist/sensor/photon-energy.d.ts.map +1 -0
  450. package/dist/sensor/photon-energy.js +390 -0
  451. package/dist/sensor/photon-energy.js.map +1 -0
  452. package/dist/sensor/physical-charge-capacity.d.ts +130 -0
  453. package/dist/sensor/physical-charge-capacity.d.ts.map +1 -0
  454. package/dist/sensor/physical-charge-capacity.js +345 -0
  455. package/dist/sensor/physical-charge-capacity.js.map +1 -0
  456. package/dist/sensor/pixel-pitch.d.ts +6 -0
  457. package/dist/sensor/pixel-pitch.d.ts.map +1 -1
  458. package/dist/sensor/pixel-pitch.js +6 -0
  459. package/dist/sensor/pixel-pitch.js.map +1 -1
  460. package/dist/sensor/radiometry-readiness.d.ts +10 -0
  461. package/dist/sensor/radiometry-readiness.d.ts.map +1 -1
  462. package/dist/sensor/radiometry-readiness.js +10 -0
  463. package/dist/sensor/radiometry-readiness.js.map +1 -1
  464. package/dist/sensor/raw-readout.d.ts +314 -0
  465. package/dist/sensor/raw-readout.d.ts.map +1 -0
  466. package/dist/sensor/raw-readout.js +914 -0
  467. package/dist/sensor/raw-readout.js.map +1 -0
  468. package/dist/sensor/raw-reconstruction.d.ts +170 -0
  469. package/dist/sensor/raw-reconstruction.d.ts.map +1 -0
  470. package/dist/sensor/raw-reconstruction.js +424 -0
  471. package/dist/sensor/raw-reconstruction.js.map +1 -0
  472. package/dist/sensor/readout-exposure-linkage.d.ts +123 -0
  473. package/dist/sensor/readout-exposure-linkage.d.ts.map +1 -0
  474. package/dist/sensor/readout-exposure-linkage.js +222 -0
  475. package/dist/sensor/readout-exposure-linkage.js.map +1 -0
  476. package/dist/sensor/readout-timing.d.ts +137 -0
  477. package/dist/sensor/readout-timing.d.ts.map +1 -0
  478. package/dist/sensor/readout-timing.js +243 -0
  479. package/dist/sensor/readout-timing.js.map +1 -0
  480. package/dist/sensor/response-application-compatibility.d.ts +136 -0
  481. package/dist/sensor/response-application-compatibility.d.ts.map +1 -0
  482. package/dist/sensor/response-application-compatibility.js +408 -0
  483. package/dist/sensor/response-application-compatibility.js.map +1 -0
  484. package/dist/sensor/response-operating-range.d.ts +173 -0
  485. package/dist/sensor/response-operating-range.d.ts.map +1 -0
  486. package/dist/sensor/response-operating-range.js +672 -0
  487. package/dist/sensor/response-operating-range.js.map +1 -0
  488. package/dist/sensor/responsivity-photocurrent.d.ts +158 -0
  489. package/dist/sensor/responsivity-photocurrent.d.ts.map +1 -0
  490. package/dist/sensor/responsivity-photocurrent.js +644 -0
  491. package/dist/sensor/responsivity-photocurrent.js.map +1 -0
  492. package/dist/sensor/sampling-aperture.d.ts +154 -0
  493. package/dist/sensor/sampling-aperture.d.ts.map +1 -0
  494. package/dist/sensor/sampling-aperture.js +388 -0
  495. package/dist/sensor/sampling-aperture.js.map +1 -0
  496. package/dist/sensor/scene-eqe-temporal-exposure.d.ts +45 -0
  497. package/dist/sensor/scene-eqe-temporal-exposure.d.ts.map +1 -0
  498. package/dist/sensor/scene-eqe-temporal-exposure.js +64 -0
  499. package/dist/sensor/scene-eqe-temporal-exposure.js.map +1 -0
  500. package/dist/sensor/sensor-geometry.d.ts +12 -0
  501. package/dist/sensor/sensor-geometry.d.ts.map +1 -1
  502. package/dist/sensor/sensor-geometry.js +12 -0
  503. package/dist/sensor/sensor-geometry.js.map +1 -1
  504. package/dist/sensor/signal-noise.d.ts +10 -0
  505. package/dist/sensor/signal-noise.d.ts.map +1 -1
  506. package/dist/sensor/signal-noise.js +10 -0
  507. package/dist/sensor/signal-noise.js.map +1 -1
  508. package/dist/sensor/spatial-sample-reduction.d.ts +171 -0
  509. package/dist/sensor/spatial-sample-reduction.d.ts.map +1 -0
  510. package/dist/sensor/spatial-sample-reduction.js +345 -0
  511. package/dist/sensor/spatial-sample-reduction.js.map +1 -0
  512. package/dist/sensor/spatial-sampling-quadrature.d.ts +179 -0
  513. package/dist/sensor/spatial-sampling-quadrature.d.ts.map +1 -0
  514. package/dist/sensor/spatial-sampling-quadrature.js +224 -0
  515. package/dist/sensor/spatial-sampling-quadrature.js.map +1 -0
  516. package/dist/sensor/spatio-spectral-reduction.d.ts +187 -0
  517. package/dist/sensor/spatio-spectral-reduction.d.ts.map +1 -0
  518. package/dist/sensor/spatio-spectral-reduction.js +373 -0
  519. package/dist/sensor/spatio-spectral-reduction.js.map +1 -0
  520. package/dist/sensor/spectral-coverage.d.ts +24 -0
  521. package/dist/sensor/spectral-coverage.d.ts.map +1 -0
  522. package/dist/sensor/spectral-coverage.js +86 -0
  523. package/dist/sensor/spectral-coverage.js.map +1 -0
  524. package/dist/sensor/spectral-quadrature.d.ts +169 -0
  525. package/dist/sensor/spectral-quadrature.d.ts.map +1 -0
  526. package/dist/sensor/spectral-quadrature.js +542 -0
  527. package/dist/sensor/spectral-quadrature.js.map +1 -0
  528. package/dist/sensor/spectral-response.d.ts +192 -0
  529. package/dist/sensor/spectral-response.d.ts.map +1 -0
  530. package/dist/sensor/spectral-response.js +664 -0
  531. package/dist/sensor/spectral-response.js.map +1 -0
  532. package/dist/sensor/temporal-eqe-sum.d.ts +15 -0
  533. package/dist/sensor/temporal-eqe-sum.d.ts.map +1 -0
  534. package/dist/sensor/temporal-eqe-sum.js +30 -0
  535. package/dist/sensor/temporal-eqe-sum.js.map +1 -0
  536. package/dist/sensor/temporal-photo-signal.d.ts +38 -0
  537. package/dist/sensor/temporal-photo-signal.d.ts.map +1 -0
  538. package/dist/sensor/temporal-photo-signal.js +110 -0
  539. package/dist/sensor/temporal-photo-signal.js.map +1 -0
  540. package/dist/sensor/temporal-sample-binding.d.ts +6 -0
  541. package/dist/sensor/temporal-sample-binding.d.ts.map +1 -0
  542. package/dist/sensor/temporal-sample-binding.js +32 -0
  543. package/dist/sensor/temporal-sample-binding.js.map +1 -0
  544. package/dist/simulation/poc-simulation.d.ts.map +1 -1
  545. package/dist/simulation/poc-simulation.js +34 -11
  546. package/dist/simulation/poc-simulation.js.map +1 -1
  547. package/dist/stabilization/camera-shake.d.ts +11 -0
  548. package/dist/stabilization/camera-shake.d.ts.map +1 -1
  549. package/dist/stabilization/camera-shake.js +11 -0
  550. package/dist/stabilization/camera-shake.js.map +1 -1
  551. package/dist/stabilization/system.d.ts +218 -0
  552. package/dist/stabilization/system.d.ts.map +1 -0
  553. package/dist/stabilization/system.js +695 -0
  554. package/dist/stabilization/system.js.map +1 -0
  555. package/docs/API_REFERENCE.md +2017 -0
  556. package/docs/API_STYLE.md +132 -0
  557. package/docs/ARCHITECTURE.md +150 -23
  558. package/docs/AUTOMATION_COORDINATION.md +190 -0
  559. package/docs/CAPTURE_COLOR.md +25 -0
  560. package/docs/CAPTURE_CORRECTED_SDR.md +25 -0
  561. package/docs/CAPTURE_EXPORT_METADATA.md +27 -0
  562. package/docs/CAPTURE_SDR.md +20 -0
  563. package/docs/DEVELOPERS.md +60 -0
  564. package/docs/DIGITAL_OPTICS_FOUNDATION.md +69 -0
  565. package/docs/ENVIRONMENT_RAW_CAPTURE.md +187 -0
  566. package/docs/EXPORT_ACCEPTANCE.md +133 -0
  567. package/docs/GENERIC_TIER_PRESETS.md +269 -0
  568. package/docs/GEOMETRIC_PREPARATION_REUSE.md +141 -0
  569. package/docs/IMAGE_FORMATION.md +105 -9
  570. package/docs/LINEAR_CAPTURE_ENCODING.md +25 -0
  571. package/docs/MOTION_AND_SIGNAL.md +145 -1
  572. package/docs/NUMERICAL_CORRECTNESS.md +191 -0
  573. package/docs/PERFORMANCE_BASELINE.md +56 -0
  574. package/docs/PHOTOGRAPHIC_EXPORT.md +206 -0
  575. package/docs/PHYSICS_FOUNDATION.md +152 -5
  576. package/docs/POC_API.md +2 -0
  577. package/docs/POC_PROJECTION_REUSE.md +124 -0
  578. package/docs/PROCESSED_OUTPUT.md +157 -0
  579. package/docs/PRODUCTION_COMPOSITION.md +373 -0
  580. package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +131 -0
  581. package/docs/PROVENANCE.md +4 -0
  582. package/docs/PSF_FOUNDATION.md +110 -88
  583. package/docs/RAW_FRAME_ENVELOPE.md +56 -0
  584. package/docs/RAW_FRAME_RECONSTRUCTION.md +30 -0
  585. package/docs/RELEASE_1_0.md +65 -0
  586. package/docs/RELEASE_AUDIT.md +38 -0
  587. package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +298 -0
  588. package/docs/SCENE_SENSOR_QUADRATURE.md +98 -0
  589. package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +86 -0
  590. package/docs/SCIENTIFIC_ASSURANCE.md +280 -0
  591. package/docs/SCIENTIFIC_CONFORMANCE.md +83 -0
  592. package/docs/SDR_RENDERING.md +33 -0
  593. package/docs/SENSOR_ENVIRONMENT_QUERY.md +86 -0
  594. package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +104 -0
  595. package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +74 -0
  596. package/docs/SENSOR_PSF_QUADRATURE.md +90 -0
  597. package/docs/SENSOR_RAW_FRAME.md +20 -0
  598. package/docs/SENSOR_RAW_PRODUCER.md +77 -0
  599. package/docs/SIGNAL_CONFORMANCE.md +23 -0
  600. package/docs/SIMULATED_CAPTURE.md +65 -0
  601. package/docs/STABILIZATION.md +160 -17
  602. package/docs/TEMPORAL_PHOTO_RAW.md +83 -0
  603. package/docs/TIER_ACCEPTANCE.md +129 -0
  604. package/docs/TIER_PRESET_ACCEPTANCE.md +59 -0
  605. package/docs/USAGE.md +5604 -331
  606. package/docs/V1_COMPOSITION_MAP.md +123 -0
  607. package/docs/V1_HELPER_REUSE_REVIEW.md +60 -0
  608. package/docs/V1_PERFORMANCE_DISPOSITION.md +88 -0
  609. package/docs/api/camera-equivalent-focal-length.md +53 -0
  610. package/docs/api/camera-field-of-view.md +119 -0
  611. package/docs/api/camera-projected-object-size.md +54 -0
  612. package/docs/api/capture-capture-export-metadata.md +107 -0
  613. package/docs/api/capture-environment-raw-producer.md +56 -0
  614. package/docs/api/capture-focus-control.md +419 -0
  615. package/docs/api/capture-linear-encoding.md +99 -0
  616. package/docs/api/capture-photographic-export.md +172 -0
  617. package/docs/api/capture-raw-frame-reconstruction.md +87 -0
  618. package/docs/api/capture-release-sequence.md +252 -0
  619. package/docs/api/capture-sensor-raw-frame.md +66 -0
  620. package/docs/api/capture-sensor-raw-producer.md +98 -0
  621. package/docs/api/capture-simulated-capture.md +179 -0
  622. package/docs/api/color-capture-color.md +122 -0
  623. package/docs/api/color-white-balance.md +386 -0
  624. package/docs/api/composition-image-formation-plan.md +825 -0
  625. package/docs/api/composition-plan-consumer.md +98 -0
  626. package/docs/api/core-calculation-result.md +220 -0
  627. package/docs/api/core-configuration-error.md +19 -0
  628. package/docs/api/core-image-formation.md +204 -0
  629. package/docs/api/core-scientific-assurance.md +214 -0
  630. package/docs/api/core-spectral-composition.md +268 -0
  631. package/docs/api/core-spectral.md +78 -0
  632. package/docs/api/core-validation.md +34 -0
  633. package/docs/api/core-version.md +14 -0
  634. package/docs/api/equipment-exposure-capabilities.md +270 -0
  635. package/docs/api/equipment-generic-tier-assets.md +82 -0
  636. package/docs/api/equipment-generic-tier-presets.md +103 -0
  637. package/docs/api/equipment-iso-capabilities.md +295 -0
  638. package/docs/api/equipment-metering-capabilities.md +126 -0
  639. package/docs/api/equipment-release-capabilities.md +91 -0
  640. package/docs/api/exports.json +5656 -0
  641. package/docs/api/exposure-exposure-duration-control.md +115 -0
  642. package/docs/api/exposure-exposure-mode-resolver.md +966 -0
  643. package/docs/api/exposure-exposure.md +150 -0
  644. package/docs/api/exposure-flash.md +327 -0
  645. package/docs/api/exposure-metering-scene-radiance.md +154 -0
  646. package/docs/api/exposure-metering-target.md +134 -0
  647. package/docs/api/exposure-metering-temporal.md +77 -0
  648. package/docs/api/exposure-metering.md +172 -0
  649. package/docs/api/exposure-program-line.md +64 -0
  650. package/docs/api/motion-camera-rotation.md +215 -0
  651. package/docs/api/motion-capture-rotation-inverse-mapping.md +128 -0
  652. package/docs/api/motion-capture-rotation-temporal-quadrature.md +127 -0
  653. package/docs/api/motion-capture-rotation-trajectory.md +132 -0
  654. package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +171 -0
  655. package/docs/api/motion-extended-object-projection.md +312 -0
  656. package/docs/api/motion-projected-motion.md +60 -0
  657. package/docs/api/optics-aperture.md +69 -0
  658. package/docs/api/optics-circle-of-confusion.md +46 -0
  659. package/docs/api/optics-complex-pupil-psf.md +193 -0
  660. package/docs/api/optics-depth-of-field.md +92 -0
  661. package/docs/api/optics-diffraction.md +46 -0
  662. package/docs/api/optics-focus-breathing.md +119 -0
  663. package/docs/api/optics-focus-state.md +64 -0
  664. package/docs/api/optics-front-of-lens-filter.md +263 -0
  665. package/docs/api/optics-illumination-vignetting.md +95 -0
  666. package/docs/api/optics-lateral-chromatic-aberration.md +225 -0
  667. package/docs/api/optics-lens-psf-profile.md +380 -0
  668. package/docs/api/optics-polygon-diffraction.md +68 -0
  669. package/docs/api/optics-profile-contract.md +47 -0
  670. package/docs/api/optics-psf-foundation.md +181 -0
  671. package/docs/api/optics-radial-distortion.md +194 -0
  672. package/docs/api/optics-scene-to-sensor-irradiance.md +371 -0
  673. package/docs/api/optics-scene-to-sensor-quadrature.md +78 -0
  674. package/docs/api/optics-sensor-environment-query.md +58 -0
  675. package/docs/api/optics-sensor-psf-quadrature.md +81 -0
  676. package/docs/api/optics-stray-light.md +109 -0
  677. package/docs/api/optics-thin-lens.md +53 -0
  678. package/docs/api/output-capture-corrected-sdr.md +71 -0
  679. package/docs/api/output-capture-geometry.md +500 -0
  680. package/docs/api/output-capture-sdr.md +69 -0
  681. package/docs/api/output-crop.md +47 -0
  682. package/docs/api/output-geometric-transforms.md +199 -0
  683. package/docs/api/output-lens-corrections.md +162 -0
  684. package/docs/api/output-sdr-rendering.md +122 -0
  685. package/docs/api/output-subject-framing-crop.md +59 -0
  686. package/docs/api/schema-camera.md +84 -0
  687. package/docs/api/schema-illumination-spectral.md +77 -0
  688. package/docs/api/schema-illumination-temporal.md +289 -0
  689. package/docs/api/schema-illumination.md +246 -0
  690. package/docs/api/schema-scene-radiance-temporal.md +215 -0
  691. package/docs/api/schema-scene-radiance.md +415 -0
  692. package/docs/api/schema-scene.md +105 -0
  693. package/docs/api/schema-validation.md +25 -0
  694. package/docs/api/sensor-accumulated-charge.md +273 -0
  695. package/docs/api/sensor-architecture.md +155 -0
  696. package/docs/api/sensor-camera-saturation-capacity.md +215 -0
  697. package/docs/api/sensor-capture-color-sampling-binding.md +323 -0
  698. package/docs/api/sensor-capture-mode-timing.md +123 -0
  699. package/docs/api/sensor-capture-mode.md +321 -0
  700. package/docs/api/sensor-color-sampling.md +228 -0
  701. package/docs/api/sensor-constant-rate-temporal-integration.md +152 -0
  702. package/docs/api/sensor-dark-current.md +227 -0
  703. package/docs/api/sensor-environment-photo-signal.md +77 -0
  704. package/docs/api/sensor-eqe-electron-rate.md +166 -0
  705. package/docs/api/sensor-eqe-local-exposure.md +68 -0
  706. package/docs/api/sensor-eqe-temporal-exposure.md +73 -0
  707. package/docs/api/sensor-exposure-window.md +183 -0
  708. package/docs/api/sensor-iso-signal-chain.md +264 -0
  709. package/docs/api/sensor-local-exposure-binding.md +126 -0
  710. package/docs/api/sensor-optical-stack.md +211 -0
  711. package/docs/api/sensor-photon-energy.md +149 -0
  712. package/docs/api/sensor-physical-charge-capacity.md +196 -0
  713. package/docs/api/sensor-pixel-pitch.md +41 -0
  714. package/docs/api/sensor-radiometry-readiness.md +240 -0
  715. package/docs/api/sensor-raw-readout.md +499 -0
  716. package/docs/api/sensor-raw-reconstruction.md +260 -0
  717. package/docs/api/sensor-readout-exposure-linkage.md +172 -0
  718. package/docs/api/sensor-readout-timing.md +209 -0
  719. package/docs/api/sensor-response-application-compatibility.md +256 -0
  720. package/docs/api/sensor-response-operating-range.md +293 -0
  721. package/docs/api/sensor-responsivity-photocurrent.md +245 -0
  722. package/docs/api/sensor-sampling-aperture.md +221 -0
  723. package/docs/api/sensor-scene-eqe-temporal-exposure.md +56 -0
  724. package/docs/api/sensor-sensor-geometry.md +143 -0
  725. package/docs/api/sensor-signal-noise.md +75 -0
  726. package/docs/api/sensor-spatial-sample-reduction.md +186 -0
  727. package/docs/api/sensor-spatial-sampling-quadrature.md +188 -0
  728. package/docs/api/sensor-spatio-spectral-reduction.md +217 -0
  729. package/docs/api/sensor-spectral-coverage.md +33 -0
  730. package/docs/api/sensor-spectral-quadrature.md +183 -0
  731. package/docs/api/sensor-spectral-response.md +291 -0
  732. package/docs/api/sensor-temporal-photo-signal.md +62 -0
  733. package/docs/api/simulation-poc-simulation.md +364 -0
  734. package/docs/api/stabilization-camera-shake.md +71 -0
  735. package/docs/api/stabilization-system.md +442 -0
  736. package/docs/benchmarks/2026-10-01-main-baseline.json +694 -0
  737. package/docs/benchmarks/2026-10-02-geometric-preparation-reuse.json +2190 -0
  738. package/docs/benchmarks/2026-10-02-poc-projection-reuse.json +2423 -0
  739. package/docs/benchmarks/2026-10-02-v1-environment-gc-profile.json +210 -0
  740. package/docs/benchmarks/2026-10-02-v1-environment-ordinary.json +187 -0
  741. package/docs/benchmarks/2026-10-02-v1-geometry-gc-profile.json +756 -0
  742. package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-1.json +711 -0
  743. package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-2.json +711 -0
  744. package/docs/benchmarks/2026-10-02-v1-poc-gc-profile.json +885 -0
  745. package/docs/benchmarks/2026-10-02-v1-poc-ordinary-1.json +868 -0
  746. package/docs/benchmarks/2026-10-02-v1-poc-ordinary-2.json +868 -0
  747. package/docs/examples/production-capture.mjs +34 -0
  748. package/docs/examples/production-request.json +4613 -0
  749. package/docs/examples/quick-start.mjs +12 -0
  750. package/docs/validation/documentation-fragments.json +212 -0
  751. package/docs/validation/release-audit-inventory.json +1306 -0
  752. package/docs/validation/tier-acceptance-report-v1.json +2538 -0
  753. package/package.json +18 -4
@@ -0,0 +1,75 @@
1
+ # sensor/signal-noise.ts public contracts
2
+
3
+ Package **1.0.0**, root API **0.116.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
+
5
+ ## calculatePhotoelectrons
6
+
7
+ Converts mean incident photon count to mean photoelectron count.
8
+
9
+ This is an expectation value; the stochastic shot-noise realization is not
10
+ generated by this deterministic calculation.
11
+
12
+ ```ts
13
+ export function calculatePhotoelectrons(
14
+ input: CalculatePhotoelectronsInput
15
+ ): CalculationResult<number>;
16
+ ```
17
+
18
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
19
+
20
+ ## CalculatePhotoelectronsInput
21
+
22
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
23
+
24
+ ```ts
25
+ export interface CalculatePhotoelectronsInput {
26
+ /** Mean photons incident on the photosite/measurement region. */
27
+ incidentPhotons: number;
28
+ /** Quantum efficiency from 0 to 1 inclusive. */
29
+ quantumEfficiency: number;
30
+ }
31
+ ```
32
+
33
+ ## calculateSignalToNoise
34
+
35
+ Calculates expected SNR from Poisson shot noise and independent RMS read
36
+ noise.
37
+
38
+ Variances are combined as signalElectrons + readNoiseElectrons^2.
39
+ Dark current, fixed-pattern noise, quantization, clipping, and downstream
40
+ processing are intentionally outside this primitive.
41
+
42
+ ```ts
43
+ export function calculateSignalToNoise(
44
+ input: CalculateSignalToNoiseInput
45
+ ): CalculationResult<SignalToNoise>;
46
+ ```
47
+
48
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
49
+
50
+ ## CalculateSignalToNoiseInput
51
+
52
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
53
+
54
+ ```ts
55
+ export interface CalculateSignalToNoiseInput {
56
+ /** Mean signal in electrons. */
57
+ signalElectrons: number;
58
+ /** RMS read noise in electrons. */
59
+ readNoiseElectrons: number;
60
+ }
61
+ ```
62
+
63
+ ## SignalToNoise
64
+
65
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
66
+
67
+ ```ts
68
+ export interface SignalToNoise {
69
+ shotNoiseStdElectrons: number;
70
+ combinedNoiseStdElectrons: number;
71
+ snrLinear: number;
72
+ /** Null when the signal is zero because -Infinity dB is not JSON-safe. */
73
+ snrDb: number | null;
74
+ }
75
+ ```
@@ -0,0 +1,186 @@
1
+ # sensor/spatial-sample-reduction.ts public contracts
2
+
3
+ Package **1.0.0**, root API **0.116.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
+
5
+ ## reduceSensorSpatialSamplingQuadrature
6
+
7
+ Reduces explicitly identified nonnegative linear scalar values over a
8
+ validated sensor spatial quadrature.
9
+
10
+ This function does not sample a renderer or optical model itself. Callers
11
+ evaluate one value at every quadrature node's preAntiAliasingSourcePointMm
12
+ and provide those values with exact node identity. Ordering is deliberately
13
+ irrelevant.
14
+
15
+ Two domains are supported:
16
+
17
+ - relative-linear: dimensionless nonnegative irradiance-like proxy for
18
+ deterministic renderer/science regression;
19
+ - radiometric-irradiance: physical sensor-plane irradiance in W/m^2.
20
+
21
+ The destination site's channelId is metadata only. No CFA spectral
22
+ transmittance/sensitivity is applied, so the output must not be called a
23
+ physically color-filtered mosaic sample or RAW value.
24
+
25
+ ```ts
26
+ export function reduceSensorSpatialSamplingQuadrature(
27
+ input: ReduceSensorSpatialSamplingQuadratureInput
28
+ ): CalculationResult<SensorSpatialSampleReduction>;
29
+ ```
30
+
31
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
32
+
33
+ ## ReduceSensorSpatialSamplingQuadratureInput
34
+
35
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
36
+
37
+ ```ts
38
+ export interface ReduceSensorSpatialSamplingQuadratureInput {
39
+ quadrature: SensorSpatialSamplingQuadrature;
40
+ valueDomain: SensorSpatialSampleValueDomain;
41
+ /**
42
+ * Exactly one explicitly identified value per quadrature node.
43
+ *
44
+ * Ordering is not significant; node identity is.
45
+ */
46
+ nodeValues: readonly SensorSpatialQuadratureNodeValue[];
47
+ }
48
+ ```
49
+
50
+ ## SensorSpatialQuadratureNodeIdentity
51
+
52
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
53
+
54
+ ```ts
55
+ export interface SensorSpatialQuadratureNodeIdentity {
56
+ antiAliasingComponentIndex: number;
57
+ apertureSampleXIndex: number;
58
+ apertureSampleYIndex: number;
59
+ }
60
+ ```
61
+
62
+ ## SensorSpatialQuadratureNodeValue
63
+
64
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
65
+
66
+ ```ts
67
+ export interface SensorSpatialQuadratureNodeValue {
68
+ node: SensorSpatialQuadratureNodeIdentity;
69
+ /**
70
+ * Nonnegative finite scalar in the declared value domain.
71
+ *
72
+ * Values are evaluated at the corresponding quadrature node's
73
+ * preAntiAliasingSourcePointMm.
74
+ */
75
+ value: number;
76
+ }
77
+ ```
78
+
79
+ ## SensorSpatialSampleReduction
80
+
81
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
82
+
83
+ ```ts
84
+ export interface SensorSpatialSampleReduction {
85
+ site: {
86
+ x: number;
87
+ y: number;
88
+ };
89
+ /**
90
+ * Semantic destination CFA/color-site label only.
91
+ *
92
+ * No spectral filter response is applied by this reducer.
93
+ */
94
+ channelId: string;
95
+ outputMeaning:
96
+ "channel-tagged-pre-response-spatial-sample";
97
+ valueDomain: SensorSpatialSampleValueDomain;
98
+ nodeCount: number;
99
+ sourceValuesMatchedBy:
100
+ "quadrature-node-identity";
101
+ sourceValuesSuppliedForAllNodes: true;
102
+ outsideImagingAreaSourceValuesRequired: boolean;
103
+ normalizedSpatialWeightSum: number;
104
+ geometricApertureAreaSquareMicrometers: number;
105
+ reducedValue: SensorSpatialSampleReductionValue;
106
+ cfaSpectralFilteringApplied: false;
107
+ channelIdIsSpectralResponse: false;
108
+ temporalIntegrationApplied: false;
109
+ exposureDurationApplied: false;
110
+ quantumEfficiencyApplied: false;
111
+ microlensResponseApplied: false;
112
+ opticalThroughputAppliedByReducer: false;
113
+ photonsCalculated: false;
114
+ electronsCalculated: false;
115
+ shotNoiseApplied: false;
116
+ readNoiseApplied: false;
117
+ adcQuantizationApplied: false;
118
+ blackLevelApplied: false;
119
+ saturationApplied: false;
120
+ rawCodeValueProduced: false;
121
+ demosaicOrReconstructionApplied: false;
122
+ }
123
+ ```
124
+
125
+ ## SensorSpatialSampleReductionValue
126
+
127
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
128
+
129
+ ```ts
130
+ export type SensorSpatialSampleReductionValue =
131
+ | {
132
+ kind: "relative-linear";
133
+ unit: "relative";
134
+ semantic:
135
+ "nonnegative-sensor-plane-irradiance-proxy";
136
+ /**
137
+ * Dimensionless weighted spatial average in the same relative domain.
138
+ */
139
+ normalizedSpatialAverageRelative: number;
140
+ /**
141
+ * Relative value × square micrometres.
142
+ *
143
+ * This is a geometric area-weighted diagnostic, not radiometric power.
144
+ */
145
+ geometricAreaIntegralRelativeSquareMicrometers: number;
146
+ }
147
+ | {
148
+ kind: "radiometric-irradiance";
149
+ unit: "W/m^2";
150
+ semantic: "sensor-plane-irradiance";
151
+ /**
152
+ * Weighted mean irradiance over the geometric aperture after applying
153
+ * the declared normalized AA spatial redistribution.
154
+ */
155
+ normalizedSpatialAverageIrradianceWattsPerSquareMeter: number;
156
+ /**
157
+ * Incident radiant flux represented by integrating the supplied
158
+ * irradiance over the geometric aperture under the declared normalized
159
+ * AA redistribution. Units: watts.
160
+ *
161
+ * This remains pre-CFA-response, pre-QE, pre-microlens-response and
162
+ * excludes any optical-stack throughput not already present in the
163
+ * caller-supplied irradiance values.
164
+ */
165
+ geometricApertureIncidentFluxWatts: number;
166
+ };
167
+ ```
168
+
169
+ ## SensorSpatialSampleValueDomain
170
+
171
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
172
+
173
+ ```ts
174
+ export type SensorSpatialSampleValueDomain =
175
+ | {
176
+ kind: "relative-linear";
177
+ unit: "relative";
178
+ semantic:
179
+ "nonnegative-sensor-plane-irradiance-proxy";
180
+ }
181
+ | {
182
+ kind: "radiometric-irradiance";
183
+ unit: "W/m^2";
184
+ semantic: "sensor-plane-irradiance";
185
+ };
186
+ ```
@@ -0,0 +1,188 @@
1
+ # sensor/spatial-sampling-quadrature.ts public contracts
2
+
3
+ Package **1.0.0**, root API **0.116.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
+
5
+ ## calculateSensorSpatialSamplingQuadrature
6
+
7
+ Builds deterministic spatial quadrature nodes for one CFA/color-sampling site.
8
+
9
+ The quadrature composes:
10
+
11
+ 1. the resolved geometric sensitive aperture from the sampling-aperture
12
+ foundation; and
13
+ 2. the resolved effective AA point-splitting kernel from the optical-stack
14
+ foundation.
15
+
16
+ The first aperture integration uses a tensor-product uniform midpoint rule.
17
+ For an AA component that moves optical energy by +delta on the sensor plane,
18
+ a destination aperture point samples the pre-AA optical field at
19
+ destination - delta. This inverse-source convention prevents applying the AA
20
+ shift twice.
21
+
22
+ The destination sensor site's CFA channel applies to every node. The
23
+ pre-AA source coordinate is an optical-field location, not another CFA site;
24
+ therefore shifted source coordinates never reassign the destination channel.
25
+
26
+ Nodes whose pre-AA source coordinates fall outside the active imaging area
27
+ are retained. They are neither clamped nor dropped/renormalized. A renderer
28
+ or optical-field provider owns source-coverage policy.
29
+
30
+ normalized weights approximate a spatial average. Square-micrometre measures
31
+ approximate a geometric area integral. Neither includes radiometric
32
+ throughput, QE, photon conversion, microlenses, diffusion/crosstalk, or
33
+ temporal integration.
34
+
35
+ ```ts
36
+ export function calculateSensorSpatialSamplingQuadrature(
37
+ input: CalculateSensorSpatialSamplingQuadratureInput
38
+ ): CalculationResult<SensorSpatialSamplingQuadrature>;
39
+ ```
40
+
41
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
42
+
43
+ ## CalculateSensorSpatialSamplingQuadratureInput
44
+
45
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
46
+
47
+ ```ts
48
+ export interface CalculateSensorSpatialSamplingQuadratureInput {
49
+ imagingArea: SensorImagingArea;
50
+ nativeRaster: NativeImageRaster;
51
+ colorSamplingProfile: SensorColorSamplingProfile;
52
+ colorSamplingBindingProfile: NativeEffectiveRasterColorSamplingBindingProfile;
53
+ samplingApertureProfile: SensorSamplingApertureProfile;
54
+ opticalStackProfile: SensorOpticalStackProfile;
55
+ site: NativeColorSamplingSiteIndex;
56
+ /** Number of midpoint cells across the geometric aperture width. */
57
+ spatialSampleCountX: number;
58
+ /** Number of midpoint cells across the geometric aperture height. */
59
+ spatialSampleCountY: number;
60
+ }
61
+ ```
62
+
63
+ ## SensorSpatialSamplingQuadrature
64
+
65
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
66
+
67
+ ```ts
68
+ export interface SensorSpatialSamplingQuadrature {
69
+ coordinateSystem: "native-sensor-physical";
70
+ colorSamplingProfileId?: string;
71
+ samplingApertureProfileId?: string;
72
+ opticalStackProfileId?: string;
73
+ site: NativeColorSamplingSiteIndex;
74
+ channelId: string;
75
+ quadratureScheme:
76
+ "tensor-product-uniform-midpoint";
77
+ outputMeaning:
78
+ "pre-aa-optical-field-spatial-quadrature-nodes";
79
+ spatialSampleCountX: number;
80
+ spatialSampleCountY: number;
81
+ antiAliasingComponentCount: number;
82
+ totalNodeCount: number;
83
+ geometricApertureAreaSquareMicrometers: number;
84
+ nominalSiteCellAreaSquareMicrometers?: number;
85
+ geometricSensitiveAreaFractionOfLatticeCell?: number;
86
+ normalizedSpatialWeightSum: number;
87
+ combinedAreaMeasureSumSquareMicrometers: number;
88
+ preAntiAliasingSourceOutsideImagingAreaNodeCount: number;
89
+ sourcePointRule:
90
+ "pre-aa-source-equals-destination-minus-aa-offset";
91
+ destinationCfaChannelAppliesToAllNodes: true;
92
+ cfaReassignmentBySourceCoordinate: false;
93
+ sourceCoveragePolicy: "not-applied";
94
+ nodes: readonly SensorSpatialSamplingQuadratureNode[];
95
+ /**
96
+ * Hard scientific boundaries.
97
+ */
98
+ opticalFieldValuesIncluded: false;
99
+ radianceIncluded: false;
100
+ photonsIncluded: false;
101
+ electronsIncluded: false;
102
+ spectralResponseIncluded: false;
103
+ quantumEfficiencyIncluded: false;
104
+ opticalThroughputIncluded: false;
105
+ microlensResponseIncluded: false;
106
+ chargeDiffusionIncluded: false;
107
+ electricalCrosstalkIncluded: false;
108
+ temporalIntegrationIncluded: false;
109
+ rawSampleValueIncluded: false;
110
+ reconstructedPixelValueIncluded: false;
111
+ geometricAreaMeasureIsRadiometricCollectionArea: false;
112
+ componentEvidence: {
113
+ samplingApertureProfile: readonly import("../core/evidence-provenance.js").EvidenceProvenance[];
114
+ samplingApertureLattice: readonly import("../core/evidence-provenance.js").EvidenceProvenance[];
115
+ geometricSensitiveAperture: readonly import("../core/evidence-provenance.js").EvidenceProvenance[];
116
+ opticalStackProfile: readonly import("../core/evidence-provenance.js").EvidenceProvenance[];
117
+ antiAliasingResponse: readonly import("../core/evidence-provenance.js").EvidenceProvenance[];
118
+ };
119
+ }
120
+ ```
121
+
122
+ ## SensorSpatialSamplingQuadratureNode
123
+
124
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
125
+
126
+ ```ts
127
+ export interface SensorSpatialSamplingQuadratureNode {
128
+ antiAliasingComponentIndex: number;
129
+ apertureSampleXIndex: number;
130
+ apertureSampleYIndex: number;
131
+ /**
132
+ * Destination point inside the geometric sensitive aperture after the
133
+ * declared AA point-splitting response.
134
+ *
135
+ * Native sensor physical coordinates, millimetres from the optical axis.
136
+ */
137
+ destinationAperturePointMm: {
138
+ x: number;
139
+ y: number;
140
+ };
141
+ /**
142
+ * Declared AA displacement of optical energy on the sensor plane.
143
+ *
144
+ * +X right, +Y down; micrometres.
145
+ */
146
+ antiAliasingOffsetMicrometers: {
147
+ x: number;
148
+ y: number;
149
+ };
150
+ /**
151
+ * Pre-AA source point that maps to destinationAperturePointMm under the
152
+ * declared split component:
153
+ *
154
+ * source = destination - AA offset
155
+ */
156
+ preAntiAliasingSourcePointMm: {
157
+ x: number;
158
+ y: number;
159
+ };
160
+ /**
161
+ * Whether the pre-AA source point lies inside the active physical imaging
162
+ * area. False is not an error; downstream source-coverage policy decides how
163
+ * to handle valid optical support outside the active sampling area.
164
+ */
165
+ preAntiAliasingSourceInsideImagingArea: boolean;
166
+ /** Dimensionless midpoint weight for the aperture-area average. */
167
+ normalizedApertureWeight: number;
168
+ /** Dimensionless normalized weight from the AA split component. */
169
+ normalizedAntiAliasingWeight: number;
170
+ /**
171
+ * Dimensionless product used for a spatial average of a downstream optical
172
+ * field under this quadrature approximation.
173
+ */
174
+ combinedNormalizedSpatialWeight: number;
175
+ /**
176
+ * Geometric area measure represented by this aperture midpoint before the
177
+ * AA component weight is applied. Units: square micrometres.
178
+ */
179
+ apertureAreaMeasureSquareMicrometers: number;
180
+ /**
181
+ * Geometric area measure multiplied by the dimensionless AA component
182
+ * weight. Units remain square micrometres.
183
+ *
184
+ * This is not an effective radiometric collection area.
185
+ */
186
+ combinedAreaMeasureSquareMicrometers: number;
187
+ }
188
+ ```
@@ -0,0 +1,217 @@
1
+ # sensor/spatio-spectral-reduction.ts public contracts
2
+
3
+ Package **1.0.0**, root API **0.116.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
+
5
+ ## reduceSensorSpatioSpectralIrradiance
6
+
7
+ Reduces explicitly supplied sensor-plane spectral irradiance E_lambda(x,y)
8
+ over the Cartesian product of an existing spatial quadrature and spectral
9
+ quadrature.
10
+
11
+ The supplied density unit is W/m^2/nm and wavelengthMeasureNanometers is
12
+ d-lambda in nm, so their direct product has units W/m^2. Do not convert
13
+ d-lambda to metres unless the spectral-density denominator is converted
14
+ consistently.
15
+
16
+ Spatial area integration uses the spatial quadrature's geometric area
17
+ measures converted from square micrometres to square metres. The result is
18
+ geometric-aperture incident radiant flux only; geometric area is not upgraded
19
+ to an effective radiometric collection area.
20
+
21
+ This reducer deliberately stops before sensor response. The spectral plan was
22
+ derived from a specific response channel so its support/knots are useful, but
23
+ QE, A/W responsivity and channel-filter transmission are not applied here.
24
+ Response-scope/source-plane matching therefore remains an explicit later
25
+ composition step.
26
+
27
+ ```ts
28
+ export function reduceSensorSpatioSpectralIrradiance(
29
+ input:
30
+ ReduceSensorSpatioSpectralIrradianceInput
31
+ ): CalculationResult<SensorSpatioSpectralIrradianceReduction>;
32
+ ```
33
+
34
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
35
+
36
+ ## ReduceSensorSpatioSpectralIrradianceInput
37
+
38
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
39
+
40
+ ```ts
41
+ export interface ReduceSensorSpatioSpectralIrradianceInput {
42
+ spatialQuadrature: SensorSpatialSamplingQuadrature;
43
+ spectralQuadrature: SensorSpectralQuadrature;
44
+ /**
45
+ * Exactly one explicitly identified E_lambda(x,y) value for every Cartesian
46
+ * product of spatial and spectral quadrature nodes.
47
+ *
48
+ * Ordering is not significant; node identity is.
49
+ */
50
+ sampleValues: readonly SensorSpatioSpectralIrradianceSample[];
51
+ }
52
+ ```
53
+
54
+ ## SensorSpatioSpectralIrradianceReduction
55
+
56
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
57
+
58
+ ```ts
59
+ export interface SensorSpatioSpectralIrradianceReduction {
60
+ colorSamplingProfileId: string;
61
+ samplingApertureProfileId?: string;
62
+ opticalStackProfileId?: string;
63
+ site: {
64
+ x: number;
65
+ y: number;
66
+ };
67
+ channelId: string;
68
+ responseProfileId: string;
69
+ sourceResponseKind:
70
+ SensorSpectralQuadrature["sourceResponseKind"];
71
+ responseScope:
72
+ SensorSpectralQuadrature["responseScope"];
73
+ responseScientificStatus:
74
+ SensorSpectralQuadrature["responseScientificStatus"];
75
+ responseUncertainty:
76
+ SensorSpectralQuadrature["responseUncertainty"];
77
+ responseChannelBinding?:
78
+ SensorSpectralQuadrature["responseChannelBinding"];
79
+ responseReferenceConditions?:
80
+ SensorSpectralQuadrature["responseReferenceConditions"];
81
+ wavelengthBasis:
82
+ SensorSpectralQuadrature["wavelengthBasis"];
83
+ wavelengthBasisResolved: boolean;
84
+ wavelengthRangeNanometers:
85
+ SensorSpectralQuadrature["wavelengthRangeNanometers"];
86
+ responseDeclaredWavelengthRangeNanometers:
87
+ SensorSpectralQuadrature["responseDeclaredWavelengthRangeNanometers"];
88
+ outputMeaning:
89
+ "pre-response-spatio-spectral-radiometric-reduction";
90
+ inputValueDomain: {
91
+ kind: "radiometric-spectral-irradiance";
92
+ unit: "W/m^2/nm";
93
+ semantic:
94
+ "pre-aa-pre-response-sensor-plane-spectral-irradiance";
95
+ };
96
+ spatialNodeCount: number;
97
+ spectralNodeCount: number;
98
+ combinedSampleCount: number;
99
+ sourceValuesMatchedBy:
100
+ "spatial-node-identity-plus-spectral-sample-index-and-wavelength";
101
+ sourceValuesSuppliedForAllCombinedNodes: true;
102
+ outsideImagingAreaSourceValuesRequired: boolean;
103
+ geometricApertureAreaSquareMicrometers?: number;
104
+ nominalSiteCellAreaSquareMicrometers?: number;
105
+ geometricSensitiveAreaFractionOfLatticeCell?: number;
106
+ perWavelength:
107
+ readonly SensorSpatioSpectralWavelengthReduction[];
108
+ /**
109
+ * Integral over the requested wavelength interval of the spatially averaged
110
+ * spectral irradiance. Units: W/m^2.
111
+ */
112
+ wavelengthIntegratedSpatialAverageIrradianceWattsPerSquareMeter:
113
+ number;
114
+ /**
115
+ * Integral over the requested wavelength interval and geometric aperture
116
+ * area. Units: W.
117
+ *
118
+ * This is pre-sensor-response incident radiant flux over the declared
119
+ * wavelength interval, not collected optical power or generated charge.
120
+ */
121
+ wavelengthIntegratedGeometricApertureIncidentFluxWatts:
122
+ number;
123
+ spatialIntegrationApplied: true;
124
+ wavelengthIntegrationApplied: true;
125
+ spectralResponsePlanUsedForWavelengthSupport: true;
126
+ spectralResponseApplicationPerformed: false;
127
+ responseScopeMatchedToSourcePlane: false;
128
+ quantumEfficiencyApplied: false;
129
+ spectralResponsivityApplied: false;
130
+ channelFilterTransmissionApplied: false;
131
+ opticalTransmissionAppliedByReducer: false;
132
+ radiometricCollectionAreaEstablished: false;
133
+ temporalIntegrationApplied: false;
134
+ exposureDurationApplied: false;
135
+ photonsCalculated: false;
136
+ electronsCalculated: false;
137
+ currentCalculated: false;
138
+ shotNoiseApplied: false;
139
+ readNoiseApplied: false;
140
+ adcQuantizationApplied: false;
141
+ rawCodeValueProduced: false;
142
+ demosaicOrReconstructionApplied: false;
143
+ convergenceErrorEstimated: false;
144
+ componentEvidence: {
145
+ spatial:
146
+ SensorSpatialSamplingQuadrature["componentEvidence"];
147
+ spectral:
148
+ SensorSpectralQuadrature["componentEvidence"];
149
+ };
150
+ }
151
+ ```
152
+
153
+ ## SensorSpatioSpectralIrradianceSample
154
+
155
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
156
+
157
+ ```ts
158
+ export interface SensorSpatioSpectralIrradianceSample {
159
+ node: SensorSpatioSpectralNodeIdentity;
160
+ /**
161
+ * Spectral irradiance evaluated at the spatial quadrature node's
162
+ * preAntiAliasingSourcePointMm and this spectral node's wavelength.
163
+ *
164
+ * Units: W/m^2/nm.
165
+ */
166
+ spectralIrradianceWattsPerSquareMeterPerNanometer: number;
167
+ }
168
+ ```
169
+
170
+ ## SensorSpatioSpectralNodeIdentity
171
+
172
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
173
+
174
+ ```ts
175
+ export interface SensorSpatioSpectralNodeIdentity {
176
+ spatialNode: SensorSpatialQuadratureNodeIdentity;
177
+ spectralSampleIndex: number;
178
+ wavelengthNanometers: number;
179
+ }
180
+ ```
181
+
182
+ ## SensorSpatioSpectralWavelengthReduction
183
+
184
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
185
+
186
+ ```ts
187
+ export interface SensorSpatioSpectralWavelengthReduction {
188
+ spectralSampleIndex: number;
189
+ wavelengthNanometers: number;
190
+ wavelengthMeasureNanometers: number;
191
+ normalizedWavelengthWeight: number;
192
+ /**
193
+ * Spatially reduced spectral irradiance at this wavelength.
194
+ * Units: W/m^2/nm.
195
+ */
196
+ normalizedSpatialAverageSpectralIrradianceWattsPerSquareMeterPerNanometer:
197
+ number;
198
+ /**
199
+ * Spectral radiant flux density incident over the geometric sensitive
200
+ * aperture after the declared normalized AA redistribution.
201
+ * Units: W/nm.
202
+ *
203
+ * This uses geometric area, not an established radiometric collection area.
204
+ */
205
+ geometricApertureIncidentSpectralFluxWattsPerNanometer: number;
206
+ /**
207
+ * Contribution to the wavelength-integrated spatial average.
208
+ * Units: W/m^2.
209
+ */
210
+ wavelengthIntegratedSpatialAverageContributionWattsPerSquareMeter: number;
211
+ /**
212
+ * Contribution to wavelength-integrated geometric-aperture incident flux.
213
+ * Units: W.
214
+ */
215
+ wavelengthIntegratedGeometricApertureIncidentFluxContributionWatts: number;
216
+ }
217
+ ```
@@ -0,0 +1,33 @@
1
+ # sensor/spectral-coverage.ts public contracts
2
+
3
+ Package **1.0.0**, root API **0.116.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
+
5
+ ## createSensorSpectralCoverageParticipant
6
+
7
+ Adapts one parsed sensor response channel into the shared continuous
8
+ spectral-coverage contract.
9
+
10
+ This exposes support and interpolation knots only. It does not apply QE or
11
+ A/W responsivity and does not establish scene/optics coverage.
12
+
13
+ ```ts
14
+ export function createSensorSpectralCoverageParticipant(
15
+ input:
16
+ CreateSensorSpectralCoverageParticipantInput
17
+ ): SpectralCoverageParticipant;
18
+ ```
19
+
20
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
21
+
22
+ ## CreateSensorSpectralCoverageParticipantInput
23
+
24
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
25
+
26
+ ```ts
27
+ export interface CreateSensorSpectralCoverageParticipantInput {
28
+ spectralResponseProfile:
29
+ SensorSpectralResponseProfile;
30
+ channelId: string;
31
+ participantId?: string;
32
+ }
33
+ ```