@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,172 @@
1
+ # capture/photographic-export.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
+ ## calculateProcessedSensorRaw
6
+
7
+ Reconstruct exact attached RAW, develop color/WB once, correct, orient/crop and encode SDR; no file/display IO.
8
+
9
+ ```ts
10
+ export function calculateProcessedSensorRaw(input: ProcessedSensorRawInput): CalculationResult<ProcessedSensorRawResult>;
11
+ ```
12
+
13
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
14
+
15
+ ## createPhotographicExportPair
16
+
17
+ Serialize one authoritative RAW capture to a lossless uncompressed CFA DNG and an independently
18
+ packed baseline JPEG. Shared metadata comes from the committed capture; orientation/WB/rendering
19
+ never rewrite native RAW codes.
20
+
21
+ Paired export preserves one revalidated native post-ADC RAW frame for DNG and develops that same
22
+ frame through explicit reconstruction, approximate sensor-channel color/WB and SDR policy for JPEG.
23
+ File identity and RAW data identity are distinct. Hashing is asynchronous; input data is copied
24
+ before the first await. Full-native execution is limited to 4096 sites.
25
+
26
+ ```ts
27
+ export async function createPhotographicExportPair(input: PhotographicExportInput): Promise<PhotographicExportPair>;
28
+ ```
29
+
30
+ This call is asynchronous; byte hashing uses the caller runtime's Web Crypto.
31
+
32
+ ## ExportSensorColorProfile
33
+
34
+ Explicit approximation of normalized camera-channel -> scene XYZ/D65, never inferred from RGB/CFA names.
35
+
36
+ ```ts
37
+ export interface ExportSensorColorProfile {
38
+ schemaVersion: "0.1.0";
39
+ profileId: string;
40
+ profileVersion: string;
41
+ colorSamplingProfileId: string;
42
+ channelIds: readonly ["red", "green", "blue"];
43
+ scientificStatus: "approximation";
44
+ referenceIlluminant: "D65";
45
+ normalizedCameraChannelsToXyz: Matrix;
46
+ evidence: readonly EvidenceProvenance[];
47
+ limitations: readonly string[];
48
+ }
49
+ ```
50
+
51
+ ## parseExportSensorColorProfile
52
+
53
+ Validates independently supplied numeric profile evidence and binds the approximation to the exact CFA profile.
54
+
55
+ ```ts
56
+ export function parseExportSensorColorProfile(value: unknown): ExportSensorColorProfile;
57
+ ```
58
+
59
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
60
+
61
+ ## parsePhotographicExportInput
62
+
63
+ Adds file metadata/encoding validation to the shared processed RAW policy.
64
+
65
+ ```ts
66
+ export function parsePhotographicExportInput(value: unknown): PhotographicExportInput;
67
+ ```
68
+
69
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
70
+
71
+ ## parseProcessedSensorRawInput
72
+
73
+ Revalidates one attached RAW snapshot and explicit processing policy.
74
+ Crop sampling and reconstruction coverage fail here before
75
+ per-pixel execution. Successful parsing does not establish kernel edge support,
76
+ correction support or container encoding readiness; those retain execution
77
+ checks. Input is copied; no file or display backend runs.
78
+
79
+ ```ts
80
+ export function parseProcessedSensorRawInput(value: unknown): ProcessedSensorRawInput;
81
+ ```
82
+
83
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
84
+
85
+ ## PHOTOGRAPHIC_EXPORT_SCHEMA_VERSION
86
+
87
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
88
+
89
+ ```ts
90
+ PHOTOGRAPHIC_EXPORT_SCHEMA_VERSION = "0.1.0" as const
91
+ ```
92
+
93
+ ## PhotographicExportInput
94
+
95
+ Optional explicit exporter boundary; no files, clocks, randomness, network or encoder dependency.
96
+
97
+ ```ts
98
+ export interface PhotographicExportInput {
99
+ reconstruction: RawFrameReconstructionInput;
100
+ colorProfile: ExportSensorColorProfile;
101
+ whiteBalance: "not-required" | "apply-resolved-sensor-gains";
102
+ rendering: SdrRenderingProfile;
103
+ metadata: Omit<CaptureExportMetadataInput, "capture">;
104
+ /** Caller-declared public scene/version, explicitly bound to the committed scene state. */
105
+ sceneProfile: { id: string; version: string; sceneStateId: string };
106
+ /** JPEG constant quantization step 1..255, not an emulated manufacturer's 'quality' scale. */
107
+ jpegQuantizationStep: number;
108
+ /** Optional native-optical post-color correction; JPEG only, RAW records informational intent. */
109
+ correction?: CaptureCorrectedSdrInput["correction"];
110
+ }
111
+ ```
112
+
113
+ ## PhotographicExportPair
114
+
115
+ Owned byte arrays are mutable; identities/hashes refer to the exact bytes returned at creation.
116
+
117
+ ```ts
118
+ export interface PhotographicExportPair {
119
+ schemaVersion: typeof PHOTOGRAPHIC_EXPORT_SCHEMA_VERSION;
120
+ metadata: CaptureExportMetadataPair;
121
+ simulationHashAlgorithm: "sha-256";
122
+ simulationHash: string;
123
+ rawDataUniqueId: string;
124
+ uniqueCameraModel: string;
125
+ source: CalculationResult<RawFrameReconstruction>;
126
+ rendering: CalculationResult<SdrRenderingResult>;
127
+ nativeDefaultCrop: RasterRect;
128
+ /** Derived JPEG rectangle in the declared oriented output; never replaces the RAW default crop. */
129
+ processedOutputView: { rect: RasterRect; pixelWidth: number; pixelHeight: number };
130
+ correction: CalculationResult<CaptureCorrectedSdrResult> | null;
131
+ rawCorrectionIntent: CalculationResult<ResolvedLensCorrectionPlan> | null;
132
+ imageDataPairing: "jpeg-generated-from-exact-attached-raw";
133
+ dng: { mediaType: "image/dng"; bytes: Uint8Array; sha256: string };
134
+ jpeg: { mediaType: "image/jpeg"; bytes: Uint8Array; sha256: string };
135
+ interoperability: "independent-decode-required-editor-validation-pending";
136
+ }
137
+ ```
138
+
139
+ ## ProcessedSensorRawInput
140
+
141
+ Explicit post-ADC RAW development policy shared by preview and file output.
142
+
143
+ ```ts
144
+ export type ProcessedSensorRawInput = Pick<PhotographicExportInput,
145
+ "reconstruction" | "colorProfile" | "whiteBalance" | "rendering" | "correction">;
146
+ ```
147
+
148
+ ## ProcessedSensorRawResult
149
+
150
+ Owned derived preview/JPEG processing record for the exact attached native RAW.
151
+ Child reconstruction/color/WB/correction/rendering results expose their input
152
+ and output domains and independent clipping/cost diagnostics. The output view is
153
+ oriented/cropped SDR, while the native default crop and physical capture history
154
+ remain unchanged. Returned arrays are pre-file pixels, not a lossy JPEG decode.
155
+
156
+ ```ts
157
+ export interface ProcessedSensorRawResult {
158
+ inputDomain: "post-adc-native-sensor-raw";
159
+ colorProfile: ExportSensorColorProfile;
160
+ whiteBalancePolicy: ProcessedSensorRawInput["whiteBalance"];
161
+ outputDomain: "output-referred-srgb-d65-sdr";
162
+ physicalCaptureModified: false;
163
+ displayAdaptationApplied: false;
164
+ whiteBalance: "applied-here" | "not-required";
165
+ source: CalculationResult<RawFrameReconstruction>;
166
+ rendering: CalculationResult<SdrRenderingResult>;
167
+ nativeDefaultCrop: RasterRect;
168
+ processedOutputView: PhotographicExportPair["processedOutputView"];
169
+ correction: CalculationResult<CaptureCorrectedSdrResult> | null;
170
+ rawCorrectionIntent: CalculationResult<ResolvedLensCorrectionPlan> | null;
171
+ }
172
+ ```
@@ -0,0 +1,87 @@
1
+ # capture/raw-frame-reconstruction.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
+ ## parseRawFrameReconstructionInput
6
+
7
+ Revalidates committed RAW codes/geometry and complete phase dispatch; no external plane may supply output values.
8
+
9
+ ```ts
10
+ export function parseRawFrameReconstructionInput(value: unknown): RawFrameReconstructionInput;
11
+ ```
12
+
13
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
14
+
15
+ ## RAW_FRAME_RECONSTRUCTION_SCHEMA_VERSION
16
+
17
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
18
+
19
+ ```ts
20
+ RAW_FRAME_RECONSTRUCTION_SCHEMA_VERSION = "0.1.0" as const
21
+ ```
22
+
23
+ ## RawFrameReconstruction
24
+
25
+ Traceable virtual sensor-channel values, not colorimetric RGB or a rendered photograph.
26
+
27
+ ```ts
28
+ export interface RawFrameReconstruction {
29
+ schemaVersion: typeof RAW_FRAME_RECONSTRUCTION_SCHEMA_VERSION;
30
+ rawFrame: SensorRawFrame;
31
+ phaseProfiles: readonly RawFrameReconstructionPhaseProfile[];
32
+ region: RasterRect;
33
+ linearPlane: {
34
+ imageState: "virtual-sensor-channels";
35
+ rasterBinding: "native-reconstruction-region";
36
+ pixelWidth: number;
37
+ pixelHeight: number;
38
+ channelIds: readonly string[];
39
+ /** Interleaved native-region row-major values; black-subtracted normalization, signed. */
40
+ samples: readonly number[];
41
+ };
42
+ /** Child envelopes and exact weighted RAW contributions, in matching native-region row-major order. */
43
+ pixels: readonly CalculationResult<SensorRawReconstructedPixel>[];
44
+ lineage: "engine-reconstructed-from-attached-raw";
45
+ producerOriginVerified: false;
46
+ whiteBalanceApplied: false;
47
+ colorTransformApplied: false;
48
+ physicalOrientationApplied: false;
49
+ outputCropApplied: false;
50
+ sharpeningApplied: false;
51
+ denoisingApplied: false;
52
+ }
53
+ ```
54
+
55
+ ## RawFrameReconstructionInput
56
+
57
+ Bounded reference handoff; region coordinates stay in the full native sensor frame.
58
+
59
+ ```ts
60
+ export interface RawFrameReconstructionInput {
61
+ rawFrame: SensorRawFrame;
62
+ region: RasterRect;
63
+ phaseProfiles: readonly RawFrameReconstructionPhaseProfile[];
64
+ }
65
+ ```
66
+
67
+ ## RawFrameReconstructionPhaseProfile
68
+
69
+ Kernel selection is explicit per absolute native CFA repeat phase, not guessed from channel names.
70
+
71
+ ```ts
72
+ export interface RawFrameReconstructionPhaseProfile {
73
+ phaseX: number;
74
+ phaseY: number;
75
+ profile: SensorRawReconstructionProfile;
76
+ }
77
+ ```
78
+
79
+ ## resolveRawFrameReconstruction
80
+
81
+ Delegates each pixel to #14's explicit linear reconstruction using only the attached native RAW samples.
82
+
83
+ ```ts
84
+ export function resolveRawFrameReconstruction(input: RawFrameReconstructionInput): CalculationResult<RawFrameReconstruction>;
85
+ ```
86
+
87
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
@@ -0,0 +1,252 @@
1
+ # capture/release-sequence.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
+ ## CancelledReleaseSequence
6
+
7
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
8
+
9
+ ```ts
10
+ export interface CancelledReleaseSequence {
11
+ version:
12
+ typeof RELEASE_SEQUENCE_VERSION;
13
+ sequenceId: string;
14
+ status: "cancelled";
15
+ cancelledAtSeconds: number;
16
+ completedFrameCount: number;
17
+ omittedFrameCount: number;
18
+ completedFrames:
19
+ readonly ResolvedReleaseFrame[];
20
+ sourceSequenceFrameCount: number;
21
+ sourceSequenceUnmodified: true;
22
+ }
23
+ ```
24
+
25
+ ## CancelReleaseSequenceInput
26
+
27
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
28
+
29
+ ```ts
30
+ export interface CancelReleaseSequenceInput {
31
+ sequence:
32
+ ResolvedReleaseSequence;
33
+ completedFrameCount: number;
34
+ cancelledAtSeconds: number;
35
+ }
36
+ ```
37
+
38
+ ## createCancelledReleaseSequence
39
+
40
+ Produces an explicit cancelled sequence state without mutating the scheduled
41
+ source sequence or leaving the completed/omitted frame boundary ambiguous.
42
+
43
+ ```ts
44
+ export function createCancelledReleaseSequence(
45
+ input:
46
+ CancelReleaseSequenceInput
47
+ ): CancelledReleaseSequence;
48
+ ```
49
+
50
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
51
+
52
+ ## RELEASE_SEQUENCE_VERSION
53
+
54
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
55
+
56
+ ```ts
57
+ RELEASE_SEQUENCE_VERSION =
58
+ "0.1.0" as const
59
+ ```
60
+
61
+ ## ReleaseAutomationState
62
+
63
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
64
+
65
+ ```ts
66
+ export type ReleaseAutomationState =
67
+ | "manual"
68
+ | "locked"
69
+ | "continuous";
70
+ ```
71
+
72
+ ## ReleaseBaseCaptureState
73
+
74
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
75
+
76
+ ```ts
77
+ export interface ReleaseBaseCaptureState {
78
+ exposure: {
79
+ aperture: number;
80
+ shutterSeconds: number;
81
+ iso: number;
82
+ };
83
+ focus: FocusPlane;
84
+ whiteBalanceStateId?: string;
85
+ automation: {
86
+ ae: ReleaseAutomationState;
87
+ af: ReleaseAutomationState;
88
+ awb: ReleaseAutomationState;
89
+ };
90
+ }
91
+ ```
92
+
93
+ ## ReleaseBracketPolicy
94
+
95
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
96
+
97
+ ```ts
98
+ export type ReleaseBracketPolicy =
99
+ | {
100
+ kind: "none";
101
+ }
102
+ | {
103
+ kind: "exposure";
104
+ axis:
105
+ GenericExposureBracketAxis;
106
+ offsetsStops:
107
+ readonly number[];
108
+ }
109
+ | {
110
+ kind: "focus";
111
+ focusStates:
112
+ readonly FocusPlane[];
113
+ };
114
+ ```
115
+
116
+ ## ReleaseDrivePolicy
117
+
118
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
119
+
120
+ ```ts
121
+ export type ReleaseDrivePolicy =
122
+ | {
123
+ kind: "single";
124
+ }
125
+ | {
126
+ kind: "burst";
127
+ frameCount: number;
128
+ }
129
+ | {
130
+ kind: "self-timer";
131
+ delaySeconds: number;
132
+ frameCount: number;
133
+ };
134
+ ```
135
+
136
+ ## ReleaseTimingConstraint
137
+
138
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
139
+
140
+ ```ts
141
+ export type ReleaseTimingConstraint =
142
+ | "requested-cadence"
143
+ | "body-maximum-cadence"
144
+ | "exposure-duration"
145
+ | "minimum-inter-frame-gap";
146
+ ```
147
+
148
+ ## ResolvedReleaseFrame
149
+
150
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
151
+
152
+ ```ts
153
+ export interface ResolvedReleaseFrame {
154
+ sequenceId: string;
155
+ frameIndex: number;
156
+ releaseFrameId: string;
157
+ exposureStartTimeSeconds: number;
158
+ exposureEndTimeSeconds: number;
159
+ sceneTimeSecondsFromSequenceStart:
160
+ number;
161
+ startIntervalFromPreviousSeconds:
162
+ number | null;
163
+ timingConstraints:
164
+ readonly ReleaseTimingConstraint[];
165
+ stochasticSeedUint32: number;
166
+ exposure: {
167
+ aperture: number;
168
+ shutterSeconds: number;
169
+ iso: number;
170
+ };
171
+ focus: FocusPlane;
172
+ exposureBracketOffsetStops?:
173
+ number;
174
+ automation:
175
+ ReleaseBaseCaptureState["automation"];
176
+ whiteBalanceStateId?: string;
177
+ }
178
+ ```
179
+
180
+ ## ResolvedReleaseSequence
181
+
182
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
183
+
184
+ ```ts
185
+ export interface ResolvedReleaseSequence {
186
+ version:
187
+ typeof RELEASE_SEQUENCE_VERSION;
188
+ sequenceId: string;
189
+ status: "scheduled";
190
+ releaseRequestTimeSeconds: number;
191
+ selfTimerDelaySeconds: number;
192
+ requestedCadenceFps:
193
+ number | null;
194
+ capabilityMaximumCadenceFps:
195
+ number;
196
+ minimumInterFrameGapSeconds:
197
+ number;
198
+ requestedFrameCount: number;
199
+ actualFrameCount: number;
200
+ sequenceSeedUint32: number;
201
+ baseStateSnapshot:
202
+ ReleaseBaseCaptureState;
203
+ frames:
204
+ readonly ResolvedReleaseFrame[];
205
+ sensorCaptureModeOwnership:
206
+ "separate-logical-capture-contract";
207
+ whiteBalanceBracketingPhysicalCaptures:
208
+ false;
209
+ preReleaseCaptureModeled:
210
+ false;
211
+ bufferMediaThermalSlowdownModeled:
212
+ false;
213
+ }
214
+ ```
215
+
216
+ ## resolveReleaseSequence
217
+
218
+ Resolves one deterministic logical still-release sequence.
219
+
220
+ Sensor capture-mode internals remain separate. This function schedules
221
+ logical exposures only and never uses render speed/frame rate as capture
222
+ timing.
223
+
224
+ ```ts
225
+ export function resolveReleaseSequence(
226
+ input:
227
+ ResolveReleaseSequenceInput
228
+ ): ResolvedReleaseSequence;
229
+ ```
230
+
231
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
232
+
233
+ ## ResolveReleaseSequenceInput
234
+
235
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
236
+
237
+ ```ts
238
+ export interface ResolveReleaseSequenceInput {
239
+ sequenceId: string;
240
+ releaseRequestTimeSeconds: number;
241
+ sequenceSeedUint32: number;
242
+ drive: ReleaseDrivePolicy;
243
+ bracket: ReleaseBracketPolicy;
244
+ requestedCadenceFps?: number;
245
+ baseState:
246
+ ReleaseBaseCaptureState;
247
+ releaseCapabilities:
248
+ GenericReleaseCapabilityProfile;
249
+ exposureCapabilities:
250
+ ResolvedGenericEquipmentExposureCapabilities;
251
+ }
252
+ ```
@@ -0,0 +1,66 @@
1
+ # capture/sensor-raw-frame.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
+ ## createSensorRawFrame
6
+
7
+ Commits native RAW samples and capture metadata; no demosaic, WB, tone or format packing.
8
+
9
+ ```ts
10
+ export function createSensorRawFrame(input: SensorRawFrameInput): SensorRawFrame;
11
+ ```
12
+
13
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
14
+
15
+ ## parseSensorRawFrameInput
16
+
17
+ Validates dense bounded native coverage and exact CFA/mode/site/code identity, without IO.
18
+
19
+ ```ts
20
+ export function parseSensorRawFrameInput(value: unknown): SensorRawFrameInput;
21
+ ```
22
+
23
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
24
+
25
+ ## SENSOR_RAW_FRAME_SCHEMA_VERSION
26
+
27
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
28
+
29
+ ```ts
30
+ SENSOR_RAW_FRAME_SCHEMA_VERSION = "0.1.0" as const
31
+ ```
32
+
33
+ ## SensorRawFrame
34
+
35
+ Immutable RAW attachment. Structural validation does not prove producer truth or DNG compatibility.
36
+
37
+ ```ts
38
+ export interface SensorRawFrame extends SensorRawFrameInput {
39
+ schemaVersion: typeof SENSOR_RAW_FRAME_SCHEMA_VERSION;
40
+ sampleDomain: "native-cfa-raw-code";
41
+ sampleOrder: "native-row-major";
42
+ producerBinding: "caller-declared-capture-attachment";
43
+ reconstructionApplied: false;
44
+ renderingApplied: false;
45
+ nativePixelWidth: number;
46
+ nativePixelHeight: number;
47
+ }
48
+ ```
49
+
50
+ ## SensorRawFrameInput
51
+
52
+ Declared attachment of #14 native CFA samples to a committed photographic capture.
53
+
54
+ ```ts
55
+ export interface SensorRawFrameInput {
56
+ frameId: string;
57
+ capture: SimulatedCapture;
58
+ modeId: string;
59
+ captureModeProfile: CaptureModeProfile;
60
+ colorSamplingProfile: SensorColorSamplingProfile;
61
+ bindingProfile: NativeEffectiveRasterColorSamplingBindingProfile;
62
+ containerBitDepth: 16;
63
+ /** Exactly one sample per full native site, row-major; no processed RGB masking. */
64
+ samples: readonly SensorRawCaptureSample[];
65
+ }
66
+ ```
@@ -0,0 +1,98 @@
1
+ # capture/sensor-raw-producer.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
+ ## parseSensorRawProducerInput
6
+
7
+ Validates complete native exposure inputs; no charge/noise/RAW code is accepted as a shortcut.
8
+
9
+ ```ts
10
+ export function parseSensorRawProducerInput(value: unknown): SensorRawProducerInput;
11
+ ```
12
+
13
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
14
+
15
+ ## SENSOR_RAW_PRODUCER_NOISE_MODEL
16
+
17
+ Capture noise model identity binds the seed schedule and signed electronic readout behavior.
18
+
19
+ ```ts
20
+ SENSOR_RAW_PRODUCER_NOISE_MODEL = Object.freeze({ id: "photivra-native-raw-noise", version: "0.2.0" } as const)
21
+ ```
22
+
23
+ ## SENSOR_RAW_PRODUCER_SCHEMA_VERSION
24
+
25
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
26
+
27
+ ```ts
28
+ SENSOR_RAW_PRODUCER_SCHEMA_VERSION = "0.3.0" as const
29
+ ```
30
+
31
+ ## SensorRawProducerExposureWindowInput
32
+
33
+ Full-native exposure schedule; sampling coordinates belong to the producer.
34
+
35
+ ```ts
36
+ export type SensorRawProducerExposureWindowInput = Omit<CalculateCaptureExposureWindowsInput,
37
+ "nativeRaster" | "activeCaptureRect" | "samplePointsNative">;
38
+ ```
39
+
40
+ ## SensorRawProducerInput
41
+
42
+ Bounded single-frame handoff, never a conversion from independent RGB pixels.
43
+
44
+ ```ts
45
+ export interface SensorRawProducerInput {
46
+ frame: Omit<SensorRawFrameInput, "samples">;
47
+ sites: readonly SensorRawProducerSiteInput[];
48
+ /** Omission preserves the existing global 0..shutterSeconds event contract. */
49
+ exposureWindow?: SensorRawProducerExposureWindowInput;
50
+ }
51
+ ```
52
+
53
+ ## SensorRawProducerResult
54
+
55
+ Engine-produced codes and child diagnostics; upstream radiance/response truth remains declared.
56
+
57
+ ```ts
58
+ export interface SensorRawProducerResult {
59
+ schemaVersion: typeof SENSOR_RAW_PRODUCER_SCHEMA_VERSION;
60
+ codeProducer: "engine-charge-capacity-noise-adc";
61
+ upstreamOrigin: "declared-eqe-and-dark-exposure-results";
62
+ upstreamRadiometryVerified: false;
63
+ seedSchedule: "capture-seed-plus-two-native-index-modulo-2-to-32-v1";
64
+ frame: SensorRawFrame;
65
+ localExposureWindows?: CalculationResult<CaptureExposureWindows>;
66
+ sites: readonly {
67
+ accumulatedCharge: ReturnType<typeof composeSensorAccumulatedCharge>;
68
+ capacity: ReturnType<typeof assessSensorPhysicalChargeCapacity>;
69
+ realization: ReturnType<typeof simulateSensorChargeRealization>;
70
+ readout: ReturnType<typeof simulateSensorRawCode>;
71
+ }[];
72
+ }
73
+ ```
74
+
75
+ ## SensorRawProducerSiteInput
76
+
77
+ One declared EQE/dark/completeness event and explicit readout state per native site.
78
+
79
+ ```ts
80
+ export interface SensorRawProducerSiteInput {
81
+ charge: ComposeSensorAccumulatedChargeInput;
82
+ samplingProfile: SensorChargeSamplingProfile;
83
+ capacityProfile: SensorPhysicalChargeCapacityProfile;
84
+ operatingStateId: string;
85
+ readoutProfile: SensorReadoutConversionProfile;
86
+ regimeId: string;
87
+ }
88
+ ```
89
+
90
+ ## simulateSensorRawFrame
91
+
92
+ Composes existing accumulated-charge → capacity → Poisson → read noise/ADC → native sample → immutable frame contracts.
93
+
94
+ ```ts
95
+ export function simulateSensorRawFrame(input: SensorRawProducerInput): CalculationResult<SensorRawProducerResult>;
96
+ ```
97
+
98
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.