@photivra/engine 1.5.0 → 2.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 (1078) hide show
  1. package/CHANGELOG.md +393 -6
  2. package/CITATION.cff +1 -1
  3. package/NODE_SUPPORT.md +64 -12
  4. package/README.md +301 -182
  5. package/SECURITY.md +37 -28
  6. package/THIRD_PARTY.md +148 -4
  7. package/dist/camera/equivalent-focal-length.d.ts +13 -14
  8. package/dist/camera/equivalent-focal-length.js +15 -13
  9. package/dist/camera/equivalent-focal-length.js.map +1 -1
  10. package/dist/camera/field-of-view.d.ts +30 -19
  11. package/dist/camera/field-of-view.js +67 -18
  12. package/dist/camera/field-of-view.js.map +1 -1
  13. package/dist/camera/lens-projection.d.ts +170 -0
  14. package/dist/camera/lens-projection.js +444 -0
  15. package/dist/camera/lens-projection.js.map +1 -0
  16. package/dist/camera/projected-object-size.d.ts +10 -11
  17. package/dist/camera/projected-object-size.js +12 -10
  18. package/dist/camera/projected-object-size.js.map +1 -1
  19. package/dist/capture/capture-export-metadata.d.ts +9 -10
  20. package/dist/capture/capture-export-metadata.js +8 -5
  21. package/dist/capture/capture-export-metadata.js.map +1 -1
  22. package/dist/capture/dng-import.d.ts +91 -0
  23. package/dist/capture/dng-import.js +343 -0
  24. package/dist/capture/dng-import.js.map +1 -0
  25. package/dist/capture/environment-raw-producer.d.ts +37 -17
  26. package/dist/capture/environment-raw-producer.js +43 -19
  27. package/dist/capture/environment-raw-producer.js.map +1 -1
  28. package/dist/capture/export-jpeg.d.ts +35 -4
  29. package/dist/capture/export-jpeg.js +133 -47
  30. package/dist/capture/export-jpeg.js.map +1 -1
  31. package/dist/capture/export-tiff.d.ts +48 -24
  32. package/dist/capture/export-tiff.js +91 -31
  33. package/dist/capture/export-tiff.js.map +1 -1
  34. package/dist/capture/focus-control.d.ts +42 -65
  35. package/dist/capture/focus-control.js +56 -75
  36. package/dist/capture/focus-control.js.map +1 -1
  37. package/dist/capture/host-yield-cadence.d.ts +25 -0
  38. package/dist/capture/host-yield-cadence.js +25 -0
  39. package/dist/capture/host-yield-cadence.js.map +1 -0
  40. package/dist/capture/linear-encoding.d.ts +14 -12
  41. package/dist/capture/linear-encoding.js +14 -13
  42. package/dist/capture/linear-encoding.js.map +1 -1
  43. package/dist/capture/lossless-jpeg.d.ts +27 -0
  44. package/dist/capture/lossless-jpeg.js +237 -0
  45. package/dist/capture/lossless-jpeg.js.map +1 -0
  46. package/dist/capture/native-environment-lean.d.ts +227 -0
  47. package/dist/capture/native-environment-lean.js +974 -0
  48. package/dist/capture/native-environment-lean.js.map +1 -0
  49. package/dist/capture/native-environment-optical-stage.d.ts +97 -0
  50. package/dist/capture/native-environment-optical-stage.js +340 -0
  51. package/dist/capture/native-environment-optical-stage.js.map +1 -0
  52. package/dist/capture/native-environment-raw.d.ts +140 -6
  53. package/dist/capture/native-environment-raw.js +435 -34
  54. package/dist/capture/native-environment-raw.js.map +1 -1
  55. package/dist/capture/native-raw-development.d.ts +116 -9
  56. package/dist/capture/native-raw-development.js +221 -62
  57. package/dist/capture/native-raw-development.js.map +1 -1
  58. package/dist/capture/native-raw-dng.d.ts +60 -0
  59. package/dist/capture/native-raw-dng.js +167 -0
  60. package/dist/capture/native-raw-dng.js.map +1 -0
  61. package/dist/capture/native-raw.d.ts +65 -12
  62. package/dist/capture/native-raw.js +81 -19
  63. package/dist/capture/native-raw.js.map +1 -1
  64. package/dist/capture/packed-sensor-raw.d.ts +160 -0
  65. package/dist/capture/packed-sensor-raw.js +221 -0
  66. package/dist/capture/packed-sensor-raw.js.map +1 -0
  67. package/dist/capture/photographic-export.d.ts +58 -35
  68. package/dist/capture/photographic-export.js +177 -70
  69. package/dist/capture/photographic-export.js.map +1 -1
  70. package/dist/capture/raw-development-kernel.d.ts +52 -0
  71. package/dist/capture/raw-development-kernel.js +88 -0
  72. package/dist/capture/raw-development-kernel.js.map +1 -0
  73. package/dist/capture/raw-frame-limits.d.ts +7 -7
  74. package/dist/capture/raw-frame-limits.js +7 -6
  75. package/dist/capture/raw-frame-limits.js.map +1 -1
  76. package/dist/capture/raw-frame-reconstruction.d.ts +8 -9
  77. package/dist/capture/raw-frame-reconstruction.js +9 -8
  78. package/dist/capture/raw-frame-reconstruction.js.map +1 -1
  79. package/dist/capture/raw-white-level.d.ts +55 -0
  80. package/dist/capture/raw-white-level.js +165 -0
  81. package/dist/capture/raw-white-level.js.map +1 -0
  82. package/dist/capture/release-sequence.d.ts +5 -7
  83. package/dist/capture/release-sequence.js +15 -13
  84. package/dist/capture/release-sequence.js.map +1 -1
  85. package/dist/capture/sensor-raw-frame.d.ts +5 -6
  86. package/dist/capture/sensor-raw-frame.js +26 -9
  87. package/dist/capture/sensor-raw-frame.js.map +1 -1
  88. package/dist/capture/sensor-raw-producer.d.ts +21 -13
  89. package/dist/capture/sensor-raw-producer.js +86 -25
  90. package/dist/capture/sensor-raw-producer.js.map +1 -1
  91. package/dist/capture/simulated-capture.d.ts +15 -16
  92. package/dist/capture/simulated-capture.js +22 -12
  93. package/dist/capture/simulated-capture.js.map +1 -1
  94. package/dist/color/camera-color-matrix.d.ts +69 -0
  95. package/dist/color/camera-color-matrix.js +132 -0
  96. package/dist/color/camera-color-matrix.js.map +1 -0
  97. package/dist/color/capture-color.d.ts +17 -10
  98. package/dist/color/capture-color.js +50 -17
  99. package/dist/color/capture-color.js.map +1 -1
  100. package/dist/color/chromatic-adaptation.d.ts +63 -0
  101. package/dist/color/chromatic-adaptation.js +91 -0
  102. package/dist/color/chromatic-adaptation.js.map +1 -0
  103. package/dist/color/color-difference.d.ts +104 -0
  104. package/dist/color/color-difference.js +205 -0
  105. package/dist/color/color-difference.js.map +1 -0
  106. package/dist/color/color-matching-functions.d.ts +168 -0
  107. package/dist/color/color-matching-functions.js +309 -0
  108. package/dist/color/color-matching-functions.js.map +1 -0
  109. package/dist/color/colorimetry-math.d.ts +52 -0
  110. package/dist/color/colorimetry-math.js +144 -0
  111. package/dist/color/colorimetry-math.js.map +1 -0
  112. package/dist/color/gamut-mapping.d.ts +54 -0
  113. package/dist/color/gamut-mapping.js +107 -0
  114. package/dist/color/gamut-mapping.js.map +1 -0
  115. package/dist/color/illuminants.d.ts +182 -0
  116. package/dist/color/illuminants.js +434 -0
  117. package/dist/color/illuminants.js.map +1 -0
  118. package/dist/color/rgb-color-spaces.d.ts +79 -0
  119. package/dist/color/rgb-color-spaces.js +115 -0
  120. package/dist/color/rgb-color-spaces.js.map +1 -0
  121. package/dist/color/sensor-color-development.d.ts +33 -11
  122. package/dist/color/sensor-color-development.js +104 -30
  123. package/dist/color/sensor-color-development.js.map +1 -1
  124. package/dist/color/srgb-icc.d.ts +9 -2
  125. package/dist/color/srgb-icc.js +16 -5
  126. package/dist/color/srgb-icc.js.map +1 -1
  127. package/dist/color/srgb-transfer.d.ts +1 -2
  128. package/dist/color/srgb-transfer.js +1 -1
  129. package/dist/color/srgb-transfer.js.map +1 -1
  130. package/dist/color/white-balance.d.ts +68 -19
  131. package/dist/color/white-balance.js +168 -35
  132. package/dist/color/white-balance.js.map +1 -1
  133. package/dist/composition/image-formation-plan.d.ts +152 -128
  134. package/dist/composition/image-formation-plan.js +292 -138
  135. package/dist/composition/image-formation-plan.js.map +1 -1
  136. package/dist/composition/plan-consumer.d.ts +6 -7
  137. package/dist/composition/plan-consumer.js +14 -11
  138. package/dist/composition/plan-consumer.js.map +1 -1
  139. package/dist/core/calculation-result.d.ts +21 -14
  140. package/dist/core/calculation-result.js +209 -11
  141. package/dist/core/calculation-result.js.map +1 -1
  142. package/dist/core/canonical-json.d.ts +13 -8
  143. package/dist/core/canonical-json.js +34 -15
  144. package/dist/core/canonical-json.js.map +1 -1
  145. package/dist/core/configuration-error.d.ts +5 -4
  146. package/dist/core/configuration-error.js +5 -3
  147. package/dist/core/configuration-error.js.map +1 -1
  148. package/dist/core/evidence-provenance.d.ts +12 -12
  149. package/dist/core/evidence-provenance.js +10 -9
  150. package/dist/core/evidence-provenance.js.map +1 -1
  151. package/dist/core/image-formation.d.ts +11 -10
  152. package/dist/core/image-formation.js +11 -9
  153. package/dist/core/image-formation.js.map +1 -1
  154. package/dist/core/owned-data.d.ts +9 -17
  155. package/dist/core/owned-data.js +9 -16
  156. package/dist/core/owned-data.js.map +1 -1
  157. package/dist/core/portable-math.d.ts +15 -0
  158. package/dist/core/portable-math.js +56 -0
  159. package/dist/core/portable-math.js.map +1 -0
  160. package/dist/core/record-validation.d.ts +48 -9
  161. package/dist/core/record-validation.js +93 -19
  162. package/dist/core/record-validation.js.map +1 -1
  163. package/dist/core/scientific-assurance.d.ts +16 -14
  164. package/dist/core/scientific-assurance.js +22 -18
  165. package/dist/core/scientific-assurance.js.map +1 -1
  166. package/dist/core/spectral-composition.d.ts +13 -14
  167. package/dist/core/spectral-composition.js +30 -27
  168. package/dist/core/spectral-composition.js.map +1 -1
  169. package/dist/core/spectral.d.ts +5 -6
  170. package/dist/core/spectral.js +9 -7
  171. package/dist/core/spectral.js.map +1 -1
  172. package/dist/core/validation.d.ts +3 -6
  173. package/dist/core/validation.js +3 -5
  174. package/dist/core/validation.js.map +1 -1
  175. package/dist/core/version.d.ts +6 -6
  176. package/dist/core/version.js +6 -5
  177. package/dist/core/version.js.map +1 -1
  178. package/dist/equipment/exposure-capabilities.d.ts +10 -10
  179. package/dist/equipment/exposure-capabilities.js +40 -30
  180. package/dist/equipment/exposure-capabilities.js.map +1 -1
  181. package/dist/equipment/generic-tier-assets.d.ts +13 -6
  182. package/dist/equipment/generic-tier-assets.js +34 -15
  183. package/dist/equipment/generic-tier-assets.js.map +1 -1
  184. package/dist/equipment/generic-tier-presets.d.ts +5 -6
  185. package/dist/equipment/generic-tier-presets.js +15 -13
  186. package/dist/equipment/generic-tier-presets.js.map +1 -1
  187. package/dist/equipment/iso-capabilities.d.ts +21 -22
  188. package/dist/equipment/iso-capabilities.js +49 -44
  189. package/dist/equipment/iso-capabilities.js.map +1 -1
  190. package/dist/equipment/metering-capabilities.d.ts +5 -6
  191. package/dist/equipment/metering-capabilities.js +22 -19
  192. package/dist/equipment/metering-capabilities.js.map +1 -1
  193. package/dist/equipment/release-capabilities.d.ts +3 -4
  194. package/dist/equipment/release-capabilities.js +18 -14
  195. package/dist/equipment/release-capabilities.js.map +1 -1
  196. package/dist/exposure/exposure-duration-control.d.ts +19 -17
  197. package/dist/exposure/exposure-duration-control.js +27 -23
  198. package/dist/exposure/exposure-duration-control.js.map +1 -1
  199. package/dist/exposure/exposure-mode-resolver.d.ts +42 -39
  200. package/dist/exposure/exposure-mode-resolver.js +127 -82
  201. package/dist/exposure/exposure-mode-resolver.js.map +1 -1
  202. package/dist/exposure/exposure.d.ts +17 -16
  203. package/dist/exposure/exposure.js +22 -15
  204. package/dist/exposure/exposure.js.map +1 -1
  205. package/dist/exposure/flash-ttl.d.ts +135 -0
  206. package/dist/exposure/flash-ttl.js +193 -0
  207. package/dist/exposure/flash-ttl.js.map +1 -0
  208. package/dist/exposure/flash.d.ts +144 -36
  209. package/dist/exposure/flash.js +259 -59
  210. package/dist/exposure/flash.js.map +1 -1
  211. package/dist/exposure/metering-scene-radiance.d.ts +10 -10
  212. package/dist/exposure/metering-scene-radiance.js +42 -23
  213. package/dist/exposure/metering-scene-radiance.js.map +1 -1
  214. package/dist/exposure/metering-target.d.ts +8 -8
  215. package/dist/exposure/metering-target.js +30 -20
  216. package/dist/exposure/metering-target.js.map +1 -1
  217. package/dist/exposure/metering-temporal.d.ts +16 -15
  218. package/dist/exposure/metering-temporal.js +41 -19
  219. package/dist/exposure/metering-temporal.js.map +1 -1
  220. package/dist/exposure/metering.d.ts +64 -17
  221. package/dist/exposure/metering.js +159 -30
  222. package/dist/exposure/metering.js.map +1 -1
  223. package/dist/exposure/program-line.d.ts +5 -5
  224. package/dist/exposure/program-line.js +20 -13
  225. package/dist/exposure/program-line.js.map +1 -1
  226. package/dist/facade/camera-preset.d.ts +8 -0
  227. package/dist/facade/camera-preset.js +102 -0
  228. package/dist/facade/camera-preset.js.map +1 -0
  229. package/dist/facade/chart-radiance-batch.d.ts +57 -0
  230. package/dist/facade/chart-radiance-batch.js +121 -0
  231. package/dist/facade/chart-radiance-batch.js.map +1 -0
  232. package/dist/facade/chart-scenes.d.ts +177 -0
  233. package/dist/facade/chart-scenes.js +232 -0
  234. package/dist/facade/chart-scenes.js.map +1 -0
  235. package/dist/facade/host-yield.d.ts +7 -0
  236. package/dist/facade/host-yield.js +23 -0
  237. package/dist/facade/host-yield.js.map +1 -0
  238. package/dist/facade/scene-radiance.d.ts +117 -0
  239. package/dist/facade/scene-radiance.js +205 -0
  240. package/dist/facade/scene-radiance.js.map +1 -0
  241. package/dist/facade/simulate-capture.d.ts +284 -0
  242. package/dist/facade/simulate-capture.js +1026 -0
  243. package/dist/facade/simulate-capture.js.map +1 -0
  244. package/dist/gpu/chart-radiance-gpu.d.ts +17 -0
  245. package/dist/gpu/chart-radiance-gpu.js +176 -0
  246. package/dist/gpu/chart-radiance-gpu.js.map +1 -0
  247. package/dist/gpu/image-kernel-accelerator.d.ts +132 -0
  248. package/dist/gpu/image-kernel-accelerator.js +720 -0
  249. package/dist/gpu/image-kernel-accelerator.js.map +1 -0
  250. package/dist/gpu/image-kernel-execution.d.ts +92 -0
  251. package/dist/gpu/image-kernel-execution.js +84 -0
  252. package/dist/gpu/image-kernel-execution.js.map +1 -0
  253. package/dist/gpu/sensor-stage-gpu.d.ts +44 -0
  254. package/dist/gpu/sensor-stage-gpu.js +317 -0
  255. package/dist/gpu/sensor-stage-gpu.js.map +1 -0
  256. package/dist/gpu/temporal-sum-gpu.d.ts +23 -0
  257. package/dist/gpu/temporal-sum-gpu.js +150 -0
  258. package/dist/gpu/temporal-sum-gpu.js.map +1 -0
  259. package/dist/gpu/webgpu-runtime.d.ts +63 -0
  260. package/dist/gpu/webgpu-runtime.js +215 -0
  261. package/dist/gpu/webgpu-runtime.js.map +1 -0
  262. package/dist/gpu/wgsl-chart-kernel.d.ts +30 -0
  263. package/dist/gpu/wgsl-chart-kernel.js +165 -0
  264. package/dist/gpu/wgsl-chart-kernel.js.map +1 -0
  265. package/dist/gpu/wgsl-kernels.d.ts +53 -0
  266. package/dist/gpu/wgsl-kernels.js +365 -0
  267. package/dist/gpu/wgsl-kernels.js.map +1 -0
  268. package/dist/gpu/wgsl-sensor-kernel.d.ts +64 -0
  269. package/dist/gpu/wgsl-sensor-kernel.js +409 -0
  270. package/dist/gpu/wgsl-sensor-kernel.js.map +1 -0
  271. package/dist/index.d.ts +89 -25
  272. package/dist/index.js +59 -15
  273. package/dist/index.js.map +1 -1
  274. package/dist/motion/camera-rotation.d.ts +92 -40
  275. package/dist/motion/camera-rotation.js +84 -47
  276. package/dist/motion/camera-rotation.js.map +1 -1
  277. package/dist/motion/capture-rotation-inverse-mapping.d.ts +37 -34
  278. package/dist/motion/capture-rotation-inverse-mapping.js +32 -24
  279. package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -1
  280. package/dist/motion/capture-rotation-temporal-quadrature.d.ts +39 -35
  281. package/dist/motion/capture-rotation-temporal-quadrature.js +37 -28
  282. package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -1
  283. package/dist/motion/capture-rotation-trajectory.d.ts +32 -28
  284. package/dist/motion/capture-rotation-trajectory.js +36 -26
  285. package/dist/motion/capture-rotation-trajectory.js.map +1 -1
  286. package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts +23 -21
  287. package/dist/motion/capture-translation-parallax-temporal-quadrature.js +33 -14
  288. package/dist/motion/capture-translation-parallax-temporal-quadrature.js.map +1 -1
  289. package/dist/motion/extended-object-projection.d.ts +19 -16
  290. package/dist/motion/extended-object-projection.js +38 -18
  291. package/dist/motion/extended-object-projection.js.map +1 -1
  292. package/dist/motion/projected-motion.d.ts +18 -17
  293. package/dist/motion/projected-motion.js +25 -17
  294. package/dist/motion/projected-motion.js.map +1 -1
  295. package/dist/motion/temporal-exposure-sum.d.ts +55 -0
  296. package/dist/motion/temporal-exposure-sum.js +141 -0
  297. package/dist/motion/temporal-exposure-sum.js.map +1 -0
  298. package/dist/motion/video-sequence.d.ts +111 -0
  299. package/dist/motion/video-sequence.js +179 -0
  300. package/dist/motion/video-sequence.js.map +1 -0
  301. package/dist/optics/aperture.d.ts +14 -15
  302. package/dist/optics/aperture.js +13 -11
  303. package/dist/optics/aperture.js.map +1 -1
  304. package/dist/optics/atmospheric-haze.d.ts +83 -0
  305. package/dist/optics/atmospheric-haze.js +113 -0
  306. package/dist/optics/atmospheric-haze.js.map +1 -0
  307. package/dist/optics/brown-conrady-distortion.d.ts +116 -0
  308. package/dist/optics/brown-conrady-distortion.js +291 -0
  309. package/dist/optics/brown-conrady-distortion.js.map +1 -0
  310. package/dist/optics/circle-of-confusion.d.ts +10 -10
  311. package/dist/optics/circle-of-confusion.js +15 -11
  312. package/dist/optics/circle-of-confusion.js.map +1 -1
  313. package/dist/optics/complex-pupil-psf.d.ts +64 -33
  314. package/dist/optics/complex-pupil-psf.js +190 -98
  315. package/dist/optics/complex-pupil-psf.js.map +1 -1
  316. package/dist/optics/depth-of-field.d.ts +25 -15
  317. package/dist/optics/depth-of-field.js +67 -27
  318. package/dist/optics/depth-of-field.js.map +1 -1
  319. package/dist/optics/diffraction.d.ts +14 -13
  320. package/dist/optics/diffraction.js +14 -10
  321. package/dist/optics/diffraction.js.map +1 -1
  322. package/dist/optics/focus-breathing.d.ts +88 -27
  323. package/dist/optics/focus-breathing.js +114 -23
  324. package/dist/optics/focus-breathing.js.map +1 -1
  325. package/dist/optics/focus-state.d.ts +18 -18
  326. package/dist/optics/focus-state.js +21 -15
  327. package/dist/optics/focus-state.js.map +1 -1
  328. package/dist/optics/front-of-lens-filter.d.ts +45 -14
  329. package/dist/optics/front-of-lens-filter.js +259 -88
  330. package/dist/optics/front-of-lens-filter.js.map +1 -1
  331. package/dist/optics/illumination-vignetting.d.ts +16 -17
  332. package/dist/optics/illumination-vignetting.js +40 -17
  333. package/dist/optics/illumination-vignetting.js.map +1 -1
  334. package/dist/optics/irradiance-convolution.d.ts +59 -0
  335. package/dist/optics/irradiance-convolution.js +138 -0
  336. package/dist/optics/irradiance-convolution.js.map +1 -0
  337. package/dist/optics/lateral-chromatic-aberration.d.ts +33 -30
  338. package/dist/optics/lateral-chromatic-aberration.js +33 -23
  339. package/dist/optics/lateral-chromatic-aberration.js.map +1 -1
  340. package/dist/optics/lens-psf-kernels.d.ts +89 -0
  341. package/dist/optics/lens-psf-kernels.js +175 -0
  342. package/dist/optics/lens-psf-kernels.js.map +1 -0
  343. package/dist/optics/lens-psf-profile.d.ts +78 -46
  344. package/dist/optics/lens-psf-profile.js +335 -124
  345. package/dist/optics/lens-psf-profile.js.map +1 -1
  346. package/dist/optics/longitudinal-chromatic-aberration.d.ts +102 -0
  347. package/dist/optics/longitudinal-chromatic-aberration.js +210 -0
  348. package/dist/optics/longitudinal-chromatic-aberration.js.map +1 -0
  349. package/dist/optics/polygon-diffraction.d.ts +80 -23
  350. package/dist/optics/polygon-diffraction.js +130 -25
  351. package/dist/optics/polygon-diffraction.js.map +1 -1
  352. package/dist/optics/profile-contract.d.ts +5 -6
  353. package/dist/optics/profile-contract.js +14 -11
  354. package/dist/optics/profile-contract.js.map +1 -1
  355. package/dist/optics/psf-foundation.d.ts +23 -23
  356. package/dist/optics/psf-foundation.js +24 -21
  357. package/dist/optics/psf-foundation.js.map +1 -1
  358. package/dist/optics/pupil-vignetting.d.ts +118 -0
  359. package/dist/optics/pupil-vignetting.js +264 -0
  360. package/dist/optics/pupil-vignetting.js.map +1 -0
  361. package/dist/optics/radial-distortion.d.ts +34 -33
  362. package/dist/optics/radial-distortion.js +37 -30
  363. package/dist/optics/radial-distortion.js.map +1 -1
  364. package/dist/optics/scene-to-sensor-irradiance.d.ts +47 -33
  365. package/dist/optics/scene-to-sensor-irradiance.js +73 -45
  366. package/dist/optics/scene-to-sensor-irradiance.js.map +1 -1
  367. package/dist/optics/scene-to-sensor-quadrature.d.ts +23 -18
  368. package/dist/optics/scene-to-sensor-quadrature.js +16 -11
  369. package/dist/optics/scene-to-sensor-quadrature.js.map +1 -1
  370. package/dist/optics/sensor-aperture-rays.d.ts +20 -4
  371. package/dist/optics/sensor-aperture-rays.js +32 -14
  372. package/dist/optics/sensor-aperture-rays.js.map +1 -1
  373. package/dist/optics/sensor-environment-query.d.ts +81 -16
  374. package/dist/optics/sensor-environment-query.js +145 -12
  375. package/dist/optics/sensor-environment-query.js.map +1 -1
  376. package/dist/optics/sensor-psf-quadrature.d.ts +12 -10
  377. package/dist/optics/sensor-psf-quadrature.js +18 -11
  378. package/dist/optics/sensor-psf-quadrature.js.map +1 -1
  379. package/dist/optics/sensor-psf-support.d.ts +8 -6
  380. package/dist/optics/sensor-psf-support.js +8 -5
  381. package/dist/optics/sensor-psf-support.js.map +1 -1
  382. package/dist/optics/stray-light.d.ts +22 -19
  383. package/dist/optics/stray-light.js +18 -12
  384. package/dist/optics/stray-light.js.map +1 -1
  385. package/dist/optics/thin-lens.d.ts +10 -9
  386. package/dist/optics/thin-lens.js +12 -8
  387. package/dist/optics/thin-lens.js.map +1 -1
  388. package/dist/optics/zernike-wavefront.d.ts +154 -0
  389. package/dist/optics/zernike-wavefront.js +352 -0
  390. package/dist/optics/zernike-wavefront.js.map +1 -0
  391. package/dist/output/capture-corrected-sdr.d.ts +16 -8
  392. package/dist/output/capture-corrected-sdr.js +16 -8
  393. package/dist/output/capture-corrected-sdr.js.map +1 -1
  394. package/dist/output/capture-geometry.d.ts +34 -36
  395. package/dist/output/capture-geometry.js +52 -32
  396. package/dist/output/capture-geometry.js.map +1 -1
  397. package/dist/output/capture-sdr.d.ts +7 -6
  398. package/dist/output/capture-sdr.js +11 -8
  399. package/dist/output/capture-sdr.js.map +1 -1
  400. package/dist/output/crop.d.ts +22 -6
  401. package/dist/output/crop.js +40 -6
  402. package/dist/output/crop.js.map +1 -1
  403. package/dist/output/geometric-transforms.d.ts +60 -23
  404. package/dist/output/geometric-transforms.js +111 -24
  405. package/dist/output/geometric-transforms.js.map +1 -1
  406. package/dist/output/lens-corrections.d.ts +27 -19
  407. package/dist/output/lens-corrections.js +29 -13
  408. package/dist/output/lens-corrections.js.map +1 -1
  409. package/dist/output/native-capture-sdr.d.ts +71 -16
  410. package/dist/output/native-capture-sdr.js +190 -33
  411. package/dist/output/native-capture-sdr.js.map +1 -1
  412. package/dist/output/png-encoder.d.ts +65 -0
  413. package/dist/output/png-encoder.js +461 -0
  414. package/dist/output/png-encoder.js.map +1 -0
  415. package/dist/output/print-contrast-reference.d.ts +10 -9
  416. package/dist/output/print-contrast-reference.js +10 -8
  417. package/dist/output/print-contrast-reference.js.map +1 -1
  418. package/dist/output/print-detail.d.ts +18 -17
  419. package/dist/output/print-detail.js +12 -10
  420. package/dist/output/print-detail.js.map +1 -1
  421. package/dist/output/print-jpeg.d.ts +26 -5
  422. package/dist/output/print-jpeg.js +117 -50
  423. package/dist/output/print-jpeg.js.map +1 -1
  424. package/dist/output/print-plan.d.ts +19 -19
  425. package/dist/output/print-plan.js +11 -10
  426. package/dist/output/print-plan.js.map +1 -1
  427. package/dist/output/print-region-statistics.d.ts +14 -15
  428. package/dist/output/print-region-statistics.js +11 -11
  429. package/dist/output/print-region-statistics.js.map +1 -1
  430. package/dist/output/sdr-rendering.d.ts +48 -10
  431. package/dist/output/sdr-rendering.js +114 -25
  432. package/dist/output/sdr-rendering.js.map +1 -1
  433. package/dist/output/subject-framing-crop.d.ts +6 -10
  434. package/dist/output/subject-framing-crop.js +23 -13
  435. package/dist/output/subject-framing-crop.js.map +1 -1
  436. package/dist/processing/demosaic.d.ts +90 -0
  437. package/dist/processing/demosaic.js +275 -0
  438. package/dist/processing/demosaic.js.map +1 -0
  439. package/dist/processing/denoise.d.ts +68 -0
  440. package/dist/processing/denoise.js +214 -0
  441. package/dist/processing/denoise.js.map +1 -0
  442. package/dist/processing/focus-stacking.d.ts +17 -0
  443. package/dist/processing/focus-stacking.js +80 -0
  444. package/dist/processing/focus-stacking.js.map +1 -0
  445. package/dist/processing/hdr.d.ts +54 -0
  446. package/dist/processing/hdr.js +172 -0
  447. package/dist/processing/hdr.js.map +1 -0
  448. package/dist/processing/image-ops.d.ts +66 -0
  449. package/dist/processing/image-ops.js +192 -0
  450. package/dist/processing/image-ops.js.map +1 -0
  451. package/dist/processing/panorama.d.ts +51 -0
  452. package/dist/processing/panorama.js +305 -0
  453. package/dist/processing/panorama.js.map +1 -0
  454. package/dist/processing/processing-task.d.ts +85 -0
  455. package/dist/processing/processing-task.js +164 -0
  456. package/dist/processing/processing-task.js.map +1 -0
  457. package/dist/processing/tone-mapping.d.ts +69 -0
  458. package/dist/processing/tone-mapping.js +310 -0
  459. package/dist/processing/tone-mapping.js.map +1 -0
  460. package/dist/schema/camera.d.ts +5 -4
  461. package/dist/schema/illumination-spectral.d.ts +13 -19
  462. package/dist/schema/illumination-spectral.js +23 -19
  463. package/dist/schema/illumination-spectral.js.map +1 -1
  464. package/dist/schema/illumination-temporal.d.ts +12 -15
  465. package/dist/schema/illumination-temporal.js +43 -28
  466. package/dist/schema/illumination-temporal.js.map +1 -1
  467. package/dist/schema/illumination.d.ts +5 -4
  468. package/dist/schema/illumination.js +55 -20
  469. package/dist/schema/illumination.js.map +1 -1
  470. package/dist/schema/scene-radiance-temporal.d.ts +9 -11
  471. package/dist/schema/scene-radiance-temporal.js +26 -23
  472. package/dist/schema/scene-radiance-temporal.js.map +1 -1
  473. package/dist/schema/scene-radiance.d.ts +17 -17
  474. package/dist/schema/scene-radiance.js +56 -34
  475. package/dist/schema/scene-radiance.js.map +1 -1
  476. package/dist/schema/scene.d.ts +14 -13
  477. package/dist/schema/validation.d.ts +0 -1
  478. package/dist/schema/validation.js +17 -15
  479. package/dist/schema/validation.js.map +1 -1
  480. package/dist/sensor/accumulated-charge.d.ts +45 -64
  481. package/dist/sensor/accumulated-charge.js +41 -47
  482. package/dist/sensor/accumulated-charge.js.map +1 -1
  483. package/dist/sensor/architecture.d.ts +22 -25
  484. package/dist/sensor/architecture.js +17 -16
  485. package/dist/sensor/architecture.js.map +1 -1
  486. package/dist/sensor/camera-saturation-capacity.d.ts +21 -28
  487. package/dist/sensor/camera-saturation-capacity.js +36 -34
  488. package/dist/sensor/camera-saturation-capacity.js.map +1 -1
  489. package/dist/sensor/capture-color-sampling-binding.d.ts +46 -51
  490. package/dist/sensor/capture-color-sampling-binding.js +39 -41
  491. package/dist/sensor/capture-color-sampling-binding.js.map +1 -1
  492. package/dist/sensor/capture-mode-timing.d.ts +8 -9
  493. package/dist/sensor/capture-mode-timing.js +24 -21
  494. package/dist/sensor/capture-mode-timing.js.map +1 -1
  495. package/dist/sensor/capture-mode.d.ts +28 -30
  496. package/dist/sensor/capture-mode.js +33 -31
  497. package/dist/sensor/capture-mode.js.map +1 -1
  498. package/dist/sensor/color-sampling.d.ts +30 -33
  499. package/dist/sensor/color-sampling.js +32 -37
  500. package/dist/sensor/color-sampling.js.map +1 -1
  501. package/dist/sensor/constant-rate-temporal-integration.d.ts +19 -23
  502. package/dist/sensor/constant-rate-temporal-integration.js +28 -26
  503. package/dist/sensor/constant-rate-temporal-integration.js.map +1 -1
  504. package/dist/sensor/dark-current.d.ts +53 -49
  505. package/dist/sensor/dark-current.js +87 -46
  506. package/dist/sensor/dark-current.js.map +1 -1
  507. package/dist/sensor/environment-photo-signal.d.ts +71 -30
  508. package/dist/sensor/environment-photo-signal.js +127 -46
  509. package/dist/sensor/environment-photo-signal.js.map +1 -1
  510. package/dist/sensor/eqe-electron-rate.d.ts +14 -13
  511. package/dist/sensor/eqe-electron-rate.js +34 -14
  512. package/dist/sensor/eqe-electron-rate.js.map +1 -1
  513. package/dist/sensor/eqe-local-exposure.d.ts +24 -24
  514. package/dist/sensor/eqe-local-exposure.js +15 -11
  515. package/dist/sensor/eqe-local-exposure.js.map +1 -1
  516. package/dist/sensor/eqe-temporal-exposure.d.ts +11 -11
  517. package/dist/sensor/eqe-temporal-exposure.js +15 -10
  518. package/dist/sensor/eqe-temporal-exposure.js.map +1 -1
  519. package/dist/sensor/exposure-window.d.ts +48 -34
  520. package/dist/sensor/exposure-window.js +77 -36
  521. package/dist/sensor/exposure-window.js.map +1 -1
  522. package/dist/sensor/fixed-pattern-noise.d.ts +108 -0
  523. package/dist/sensor/fixed-pattern-noise.js +166 -0
  524. package/dist/sensor/fixed-pattern-noise.js.map +1 -0
  525. package/dist/sensor/iso-gain.d.ts +44 -0
  526. package/dist/sensor/iso-gain.js +119 -0
  527. package/dist/sensor/iso-gain.js.map +1 -0
  528. package/dist/sensor/iso-signal-chain.d.ts +25 -48
  529. package/dist/sensor/iso-signal-chain.js +52 -66
  530. package/dist/sensor/iso-signal-chain.js.map +1 -1
  531. package/dist/sensor/local-exposure-binding.d.ts +21 -21
  532. package/dist/sensor/local-exposure-binding.js +22 -18
  533. package/dist/sensor/local-exposure-binding.js.map +1 -1
  534. package/dist/sensor/optical-stack.d.ts +36 -40
  535. package/dist/sensor/optical-stack.js +34 -37
  536. package/dist/sensor/optical-stack.js.map +1 -1
  537. package/dist/sensor/photon-energy.d.ts +22 -28
  538. package/dist/sensor/photon-energy.js +42 -34
  539. package/dist/sensor/photon-energy.js.map +1 -1
  540. package/dist/sensor/physical-charge-capacity.d.ts +20 -30
  541. package/dist/sensor/physical-charge-capacity.js +35 -36
  542. package/dist/sensor/physical-charge-capacity.js.map +1 -1
  543. package/dist/sensor/pixel-pitch.d.ts +2 -3
  544. package/dist/sensor/pixel-pitch.js +4 -2
  545. package/dist/sensor/pixel-pitch.js.map +1 -1
  546. package/dist/sensor/radiometry-readiness.d.ts +13 -15
  547. package/dist/sensor/radiometry-readiness.js +20 -17
  548. package/dist/sensor/radiometry-readiness.js.map +1 -1
  549. package/dist/sensor/raw-readout.d.ts +173 -83
  550. package/dist/sensor/raw-readout.js +425 -160
  551. package/dist/sensor/raw-readout.js.map +1 -1
  552. package/dist/sensor/raw-reconstruction.d.ts +112 -44
  553. package/dist/sensor/raw-reconstruction.js +200 -47
  554. package/dist/sensor/raw-reconstruction.js.map +1 -1
  555. package/dist/sensor/readout-exposure-linkage.d.ts +103 -34
  556. package/dist/sensor/readout-exposure-linkage.js +125 -27
  557. package/dist/sensor/readout-exposure-linkage.js.map +1 -1
  558. package/dist/sensor/readout-timing.d.ts +43 -44
  559. package/dist/sensor/readout-timing.js +38 -30
  560. package/dist/sensor/readout-timing.js.map +1 -1
  561. package/dist/sensor/response-application-compatibility.d.ts +21 -28
  562. package/dist/sensor/response-application-compatibility.js +35 -34
  563. package/dist/sensor/response-application-compatibility.js.map +1 -1
  564. package/dist/sensor/response-operating-range.d.ts +26 -35
  565. package/dist/sensor/response-operating-range.js +40 -39
  566. package/dist/sensor/response-operating-range.js.map +1 -1
  567. package/dist/sensor/responsivity-photocurrent.d.ts +21 -29
  568. package/dist/sensor/responsivity-photocurrent.js +57 -40
  569. package/dist/sensor/responsivity-photocurrent.js.map +1 -1
  570. package/dist/sensor/sampling-aperture.d.ts +21 -25
  571. package/dist/sensor/sampling-aperture.js +29 -28
  572. package/dist/sensor/sampling-aperture.js.map +1 -1
  573. package/dist/sensor/scene-eqe-temporal-exposure.d.ts +14 -12
  574. package/dist/sensor/scene-eqe-temporal-exposure.js +13 -8
  575. package/dist/sensor/scene-eqe-temporal-exposure.js.map +1 -1
  576. package/dist/sensor/sensor-geometry.d.ts +28 -32
  577. package/dist/sensor/sensor-geometry.js +35 -20
  578. package/dist/sensor/sensor-geometry.js.map +1 -1
  579. package/dist/sensor/signal-noise.d.ts +14 -16
  580. package/dist/sensor/signal-noise.js +15 -13
  581. package/dist/sensor/signal-noise.js.map +1 -1
  582. package/dist/sensor/spatial-sample-reduction.d.ts +45 -60
  583. package/dist/sensor/spatial-sample-reduction.js +39 -48
  584. package/dist/sensor/spatial-sample-reduction.js.map +1 -1
  585. package/dist/sensor/spatial-sampling-quadrature.d.ts +46 -54
  586. package/dist/sensor/spatial-sampling-quadrature.js +31 -36
  587. package/dist/sensor/spatial-sampling-quadrature.js.map +1 -1
  588. package/dist/sensor/spatio-spectral-reduction.d.ts +32 -42
  589. package/dist/sensor/spatio-spectral-reduction.js +24 -29
  590. package/dist/sensor/spatio-spectral-reduction.js.map +1 -1
  591. package/dist/sensor/spectral-coverage.d.ts +6 -9
  592. package/dist/sensor/spectral-coverage.js +9 -6
  593. package/dist/sensor/spectral-coverage.js.map +1 -1
  594. package/dist/sensor/spectral-quadrature.d.ts +46 -60
  595. package/dist/sensor/spectral-quadrature.js +38 -48
  596. package/dist/sensor/spectral-quadrature.js.map +1 -1
  597. package/dist/sensor/spectral-response.d.ts +53 -41
  598. package/dist/sensor/spectral-response.js +80 -47
  599. package/dist/sensor/spectral-response.js.map +1 -1
  600. package/dist/sensor/stochastic-seed.d.ts +50 -0
  601. package/dist/sensor/stochastic-seed.js +123 -0
  602. package/dist/sensor/stochastic-seed.js.map +1 -0
  603. package/dist/sensor/temporal-eqe-sum.d.ts +2 -4
  604. package/dist/sensor/temporal-eqe-sum.js +5 -6
  605. package/dist/sensor/temporal-eqe-sum.js.map +1 -1
  606. package/dist/sensor/temporal-photo-signal.d.ts +5 -6
  607. package/dist/sensor/temporal-photo-signal.js +11 -10
  608. package/dist/sensor/temporal-photo-signal.js.map +1 -1
  609. package/dist/sensor/temporal-sample-binding.d.ts +1 -2
  610. package/dist/sensor/temporal-sample-binding.js +3 -3
  611. package/dist/sensor/temporal-sample-binding.js.map +1 -1
  612. package/dist/simulation/poc-simulation.d.ts +16 -16
  613. package/dist/simulation/poc-simulation.js +20 -15
  614. package/dist/simulation/poc-simulation.js.map +1 -1
  615. package/dist/stabilization/camera-shake.d.ts +42 -18
  616. package/dist/stabilization/camera-shake.js +43 -20
  617. package/dist/stabilization/camera-shake.js.map +1 -1
  618. package/dist/stabilization/system.d.ts +44 -41
  619. package/dist/stabilization/system.js +196 -108
  620. package/dist/stabilization/system.js.map +1 -1
  621. package/docs/AGENT_GUIDE.md +183 -0
  622. package/docs/API_REFERENCE.md +761 -2
  623. package/docs/QUICK_START.md +495 -0
  624. package/docs/USAGE.md +1719 -714
  625. package/docs/api/camera-equivalent-focal-length.md +6 -7
  626. package/docs/api/camera-field-of-view.md +16 -8
  627. package/docs/api/camera-lens-projection.md +246 -0
  628. package/docs/api/camera-projected-object-size.md +6 -5
  629. package/docs/api/capture-capture-export-metadata.md +10 -10
  630. package/docs/api/capture-dng-import.md +134 -0
  631. package/docs/api/capture-environment-raw-producer.md +17 -11
  632. package/docs/api/capture-export-jpeg.md +16 -0
  633. package/docs/api/capture-focus-control.md +25 -47
  634. package/docs/api/capture-linear-encoding.md +21 -12
  635. package/docs/api/capture-lossless-jpeg.md +49 -0
  636. package/docs/api/capture-native-environment-optical-stage.md +75 -0
  637. package/docs/api/capture-native-environment-raw.md +161 -4
  638. package/docs/api/capture-native-raw-development.md +69 -8
  639. package/docs/api/capture-native-raw-dng.md +84 -0
  640. package/docs/api/capture-native-raw.md +21 -10
  641. package/docs/api/capture-packed-sensor-raw.md +156 -0
  642. package/docs/api/capture-photographic-export.md +69 -31
  643. package/docs/api/capture-raw-frame-reconstruction.md +8 -8
  644. package/docs/api/capture-raw-white-level.md +37 -0
  645. package/docs/api/capture-release-sequence.md +6 -7
  646. package/docs/api/capture-sensor-raw-frame.md +6 -6
  647. package/docs/api/capture-sensor-raw-producer.md +17 -11
  648. package/docs/api/capture-simulated-capture.md +15 -15
  649. package/docs/api/color-camera-color-matrix.md +103 -0
  650. package/docs/api/color-capture-color.md +22 -11
  651. package/docs/api/color-chromatic-adaptation.md +82 -0
  652. package/docs/api/color-color-difference.md +134 -0
  653. package/docs/api/color-color-matching-functions.md +259 -0
  654. package/docs/api/color-colorimetry-math.md +54 -0
  655. package/docs/api/color-gamut-mapping.md +72 -0
  656. package/docs/api/color-illuminants.md +280 -0
  657. package/docs/api/color-rgb-color-spaces.md +151 -0
  658. package/docs/api/color-sensor-color-development.md +27 -0
  659. package/docs/api/color-srgb-icc.md +2 -4
  660. package/docs/api/color-white-balance.md +95 -19
  661. package/docs/api/composition-image-formation-plan.md +124 -95
  662. package/docs/api/composition-plan-consumer.md +7 -7
  663. package/docs/api/core-calculation-result.md +18 -14
  664. package/docs/api/core-configuration-error.md +1 -1
  665. package/docs/api/core-image-formation.md +7 -7
  666. package/docs/api/core-scientific-assurance.md +12 -10
  667. package/docs/api/core-spectral-composition.md +14 -14
  668. package/docs/api/core-spectral.md +6 -6
  669. package/docs/api/core-validation.md +3 -3
  670. package/docs/api/core-version.md +7 -6
  671. package/docs/api/equipment-exposure-capabilities.md +11 -10
  672. package/docs/api/equipment-generic-tier-assets.md +7 -2
  673. package/docs/api/equipment-generic-tier-presets.md +6 -6
  674. package/docs/api/equipment-iso-capabilities.md +18 -18
  675. package/docs/api/equipment-metering-capabilities.md +6 -6
  676. package/docs/api/equipment-release-capabilities.md +4 -4
  677. package/docs/api/exports.json +2213 -8
  678. package/docs/api/exposure-exposure-duration-control.md +9 -9
  679. package/docs/api/exposure-exposure-mode-resolver.md +35 -31
  680. package/docs/api/exposure-exposure.md +10 -10
  681. package/docs/api/exposure-flash-ttl.md +182 -0
  682. package/docs/api/exposure-flash.md +183 -28
  683. package/docs/api/exposure-metering-scene-radiance.md +11 -10
  684. package/docs/api/exposure-metering-target.md +9 -8
  685. package/docs/api/exposure-metering-temporal.md +8 -8
  686. package/docs/api/exposure-metering.md +69 -9
  687. package/docs/api/exposure-program-line.md +6 -5
  688. package/docs/api/facade-chart-radiance-batch.md +96 -0
  689. package/docs/api/facade-chart-scenes.md +240 -0
  690. package/docs/api/facade-scene-radiance.md +122 -0
  691. package/docs/api/facade-simulate-capture.md +324 -0
  692. package/docs/api/gpu-image-kernel-accelerator.md +157 -0
  693. package/docs/api/gpu-image-kernel-execution.md +152 -0
  694. package/docs/api/motion-camera-rotation.md +43 -26
  695. package/docs/api/motion-capture-rotation-inverse-mapping.md +24 -23
  696. package/docs/api/motion-capture-rotation-temporal-quadrature.md +22 -22
  697. package/docs/api/motion-capture-rotation-trajectory.md +15 -15
  698. package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +15 -14
  699. package/docs/api/motion-extended-object-projection.md +10 -8
  700. package/docs/api/motion-projected-motion.md +8 -8
  701. package/docs/api/motion-temporal-exposure-sum.md +98 -0
  702. package/docs/api/motion-video-sequence.md +159 -0
  703. package/docs/api/optics-aperture.md +8 -8
  704. package/docs/api/optics-atmospheric-haze.md +104 -0
  705. package/docs/api/optics-brown-conrady-distortion.md +123 -0
  706. package/docs/api/optics-circle-of-confusion.md +5 -4
  707. package/docs/api/optics-complex-pupil-psf.md +57 -16
  708. package/docs/api/optics-depth-of-field.md +12 -6
  709. package/docs/api/optics-diffraction.md +8 -7
  710. package/docs/api/optics-focus-breathing.md +104 -16
  711. package/docs/api/optics-focus-state.md +9 -10
  712. package/docs/api/optics-front-of-lens-filter.md +72 -14
  713. package/docs/api/optics-illumination-vignetting.md +10 -10
  714. package/docs/api/optics-irradiance-convolution.md +95 -0
  715. package/docs/api/optics-lateral-chromatic-aberration.md +22 -21
  716. package/docs/api/optics-lens-psf-kernels.md +72 -0
  717. package/docs/api/optics-lens-psf-profile.md +48 -26
  718. package/docs/api/optics-longitudinal-chromatic-aberration.md +128 -0
  719. package/docs/api/optics-polygon-diffraction.md +78 -13
  720. package/docs/api/optics-profile-contract.md +4 -4
  721. package/docs/api/optics-psf-foundation.md +12 -12
  722. package/docs/api/optics-pupil-vignetting.md +132 -0
  723. package/docs/api/optics-radial-distortion.md +12 -12
  724. package/docs/api/optics-scene-to-sensor-irradiance.md +25 -14
  725. package/docs/api/optics-scene-to-sensor-quadrature.md +15 -12
  726. package/docs/api/optics-sensor-aperture-rays.md +3 -2
  727. package/docs/api/optics-sensor-environment-query.md +52 -9
  728. package/docs/api/optics-sensor-psf-quadrature.md +13 -10
  729. package/docs/api/optics-stray-light.md +12 -11
  730. package/docs/api/optics-thin-lens.md +4 -3
  731. package/docs/api/optics-zernike-wavefront.md +229 -0
  732. package/docs/api/output-capture-corrected-sdr.md +10 -7
  733. package/docs/api/output-capture-geometry.md +35 -36
  734. package/docs/api/output-capture-sdr.md +4 -4
  735. package/docs/api/output-crop.md +7 -4
  736. package/docs/api/output-geometric-transforms.md +65 -19
  737. package/docs/api/output-lens-corrections.md +17 -15
  738. package/docs/api/output-native-capture-sdr.md +26 -13
  739. package/docs/api/output-png-encoder.md +105 -0
  740. package/docs/api/output-print-contrast-reference.md +8 -8
  741. package/docs/api/output-print-detail.md +14 -14
  742. package/docs/api/output-print-jpeg.md +22 -5
  743. package/docs/api/output-print-plan.md +18 -18
  744. package/docs/api/output-print-region-statistics.md +14 -14
  745. package/docs/api/output-sdr-rendering.md +52 -10
  746. package/docs/api/output-subject-framing-crop.md +5 -6
  747. package/docs/api/processing-demosaic.md +120 -0
  748. package/docs/api/processing-denoise.md +148 -0
  749. package/docs/api/processing-focus-stacking.md +41 -0
  750. package/docs/api/processing-hdr.md +113 -0
  751. package/docs/api/processing-panorama.md +82 -0
  752. package/docs/api/processing-processing-task.md +107 -0
  753. package/docs/api/processing-tone-mapping.md +142 -0
  754. package/docs/api/schema-camera.md +6 -4
  755. package/docs/api/schema-illumination-spectral.md +10 -11
  756. package/docs/api/schema-illumination-temporal.md +13 -15
  757. package/docs/api/schema-illumination.md +4 -4
  758. package/docs/api/schema-scene-radiance-temporal.md +10 -11
  759. package/docs/api/schema-scene-radiance.md +18 -17
  760. package/docs/api/schema-scene.md +9 -9
  761. package/docs/api/schema-validation.md +1 -1
  762. package/docs/api/sensor-accumulated-charge.md +12 -20
  763. package/docs/api/sensor-architecture.md +15 -16
  764. package/docs/api/sensor-camera-saturation-capacity.md +9 -11
  765. package/docs/api/sensor-capture-color-sampling-binding.md +47 -51
  766. package/docs/api/sensor-capture-mode-timing.md +9 -9
  767. package/docs/api/sensor-capture-mode.md +29 -30
  768. package/docs/api/sensor-color-sampling.md +31 -33
  769. package/docs/api/sensor-constant-rate-temporal-integration.md +10 -11
  770. package/docs/api/sensor-dark-current.md +30 -14
  771. package/docs/api/sensor-environment-photo-signal.md +13 -6
  772. package/docs/api/sensor-eqe-electron-rate.md +9 -8
  773. package/docs/api/sensor-eqe-local-exposure.md +18 -17
  774. package/docs/api/sensor-eqe-temporal-exposure.md +12 -11
  775. package/docs/api/sensor-exposure-window.md +24 -24
  776. package/docs/api/sensor-fixed-pattern-noise.md +104 -0
  777. package/docs/api/sensor-iso-gain.md +63 -0
  778. package/docs/api/sensor-iso-signal-chain.md +13 -22
  779. package/docs/api/sensor-local-exposure-binding.md +12 -13
  780. package/docs/api/sensor-optical-stack.md +37 -40
  781. package/docs/api/sensor-photon-energy.md +10 -11
  782. package/docs/api/sensor-physical-charge-capacity.md +8 -13
  783. package/docs/api/sensor-pixel-pitch.md +1 -1
  784. package/docs/api/sensor-radiometry-readiness.md +9 -9
  785. package/docs/api/sensor-raw-readout.md +118 -52
  786. package/docs/api/sensor-raw-reconstruction.md +97 -20
  787. package/docs/api/sensor-readout-exposure-linkage.md +120 -24
  788. package/docs/api/sensor-readout-timing.md +33 -35
  789. package/docs/api/sensor-response-application-compatibility.md +9 -11
  790. package/docs/api/sensor-response-operating-range.md +14 -18
  791. package/docs/api/sensor-responsivity-photocurrent.md +9 -12
  792. package/docs/api/sensor-sampling-aperture.md +22 -25
  793. package/docs/api/sensor-scene-eqe-temporal-exposure.md +9 -8
  794. package/docs/api/sensor-sensor-geometry.md +23 -24
  795. package/docs/api/sensor-signal-noise.md +10 -10
  796. package/docs/api/sensor-spatial-sample-reduction.md +27 -30
  797. package/docs/api/sensor-spatial-sampling-quadrature.md +37 -39
  798. package/docs/api/sensor-spatio-spectral-reduction.md +27 -29
  799. package/docs/api/sensor-spectral-coverage.md +5 -5
  800. package/docs/api/sensor-spectral-quadrature.md +33 -35
  801. package/docs/api/sensor-spectral-response.md +28 -16
  802. package/docs/api/sensor-temporal-photo-signal.md +6 -6
  803. package/docs/api/simulation-poc-simulation.md +17 -16
  804. package/docs/api/stabilization-camera-shake.md +29 -10
  805. package/docs/api/stabilization-system.md +25 -21
  806. package/docs/examples/production-request.json +3821 -2157
  807. package/docs/examples/simulate-capture.mjs +14 -0
  808. package/llms.txt +35 -0
  809. package/package.json +32 -12
  810. package/AGENTS.md +0 -674
  811. package/CONTRIBUTING.md +0 -76
  812. package/DCO +0 -33
  813. package/dist/camera/equivalent-focal-length.d.ts.map +0 -1
  814. package/dist/camera/field-of-view.d.ts.map +0 -1
  815. package/dist/camera/projected-object-size.d.ts.map +0 -1
  816. package/dist/capture/capture-export-metadata.d.ts.map +0 -1
  817. package/dist/capture/environment-raw-producer.d.ts.map +0 -1
  818. package/dist/capture/export-jpeg.d.ts.map +0 -1
  819. package/dist/capture/export-tiff.d.ts.map +0 -1
  820. package/dist/capture/focus-control.d.ts.map +0 -1
  821. package/dist/capture/linear-encoding.d.ts.map +0 -1
  822. package/dist/capture/native-environment-raw.d.ts.map +0 -1
  823. package/dist/capture/native-raw-development.d.ts.map +0 -1
  824. package/dist/capture/native-raw.d.ts.map +0 -1
  825. package/dist/capture/photographic-export.d.ts.map +0 -1
  826. package/dist/capture/raw-frame-limits.d.ts.map +0 -1
  827. package/dist/capture/raw-frame-reconstruction.d.ts.map +0 -1
  828. package/dist/capture/release-sequence.d.ts.map +0 -1
  829. package/dist/capture/sensor-raw-frame.d.ts.map +0 -1
  830. package/dist/capture/sensor-raw-producer.d.ts.map +0 -1
  831. package/dist/capture/simulated-capture.d.ts.map +0 -1
  832. package/dist/color/capture-color.d.ts.map +0 -1
  833. package/dist/color/sensor-color-development.d.ts.map +0 -1
  834. package/dist/color/srgb-icc.d.ts.map +0 -1
  835. package/dist/color/srgb-transfer.d.ts.map +0 -1
  836. package/dist/color/white-balance.d.ts.map +0 -1
  837. package/dist/composition/image-formation-plan.d.ts.map +0 -1
  838. package/dist/composition/plan-consumer.d.ts.map +0 -1
  839. package/dist/core/calculation-result.d.ts.map +0 -1
  840. package/dist/core/canonical-json.d.ts.map +0 -1
  841. package/dist/core/configuration-error.d.ts.map +0 -1
  842. package/dist/core/evidence-provenance.d.ts.map +0 -1
  843. package/dist/core/image-formation.d.ts.map +0 -1
  844. package/dist/core/owned-data.d.ts.map +0 -1
  845. package/dist/core/record-validation.d.ts.map +0 -1
  846. package/dist/core/scientific-assurance.d.ts.map +0 -1
  847. package/dist/core/spectral-composition.d.ts.map +0 -1
  848. package/dist/core/spectral.d.ts.map +0 -1
  849. package/dist/core/validation.d.ts.map +0 -1
  850. package/dist/core/version.d.ts.map +0 -1
  851. package/dist/equipment/exposure-capabilities.d.ts.map +0 -1
  852. package/dist/equipment/generic-tier-assets.d.ts.map +0 -1
  853. package/dist/equipment/generic-tier-presets.d.ts.map +0 -1
  854. package/dist/equipment/iso-capabilities.d.ts.map +0 -1
  855. package/dist/equipment/metering-capabilities.d.ts.map +0 -1
  856. package/dist/equipment/release-capabilities.d.ts.map +0 -1
  857. package/dist/exposure/exposure-duration-control.d.ts.map +0 -1
  858. package/dist/exposure/exposure-mode-resolver.d.ts.map +0 -1
  859. package/dist/exposure/exposure.d.ts.map +0 -1
  860. package/dist/exposure/flash.d.ts.map +0 -1
  861. package/dist/exposure/metering-scene-radiance.d.ts.map +0 -1
  862. package/dist/exposure/metering-target.d.ts.map +0 -1
  863. package/dist/exposure/metering-temporal.d.ts.map +0 -1
  864. package/dist/exposure/metering.d.ts.map +0 -1
  865. package/dist/exposure/program-line.d.ts.map +0 -1
  866. package/dist/index.d.ts.map +0 -1
  867. package/dist/motion/camera-rotation.d.ts.map +0 -1
  868. package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +0 -1
  869. package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +0 -1
  870. package/dist/motion/capture-rotation-trajectory.d.ts.map +0 -1
  871. package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts.map +0 -1
  872. package/dist/motion/extended-object-projection.d.ts.map +0 -1
  873. package/dist/motion/projected-motion.d.ts.map +0 -1
  874. package/dist/optics/aperture.d.ts.map +0 -1
  875. package/dist/optics/circle-of-confusion.d.ts.map +0 -1
  876. package/dist/optics/complex-pupil-psf.d.ts.map +0 -1
  877. package/dist/optics/depth-of-field.d.ts.map +0 -1
  878. package/dist/optics/diffraction.d.ts.map +0 -1
  879. package/dist/optics/focus-breathing.d.ts.map +0 -1
  880. package/dist/optics/focus-state.d.ts.map +0 -1
  881. package/dist/optics/front-of-lens-filter.d.ts.map +0 -1
  882. package/dist/optics/illumination-vignetting.d.ts.map +0 -1
  883. package/dist/optics/lateral-chromatic-aberration.d.ts.map +0 -1
  884. package/dist/optics/lens-psf-profile.d.ts.map +0 -1
  885. package/dist/optics/polygon-diffraction.d.ts.map +0 -1
  886. package/dist/optics/profile-contract.d.ts.map +0 -1
  887. package/dist/optics/psf-foundation.d.ts.map +0 -1
  888. package/dist/optics/radial-distortion.d.ts.map +0 -1
  889. package/dist/optics/scene-to-sensor-irradiance.d.ts.map +0 -1
  890. package/dist/optics/scene-to-sensor-quadrature.d.ts.map +0 -1
  891. package/dist/optics/sensor-aperture-rays.d.ts.map +0 -1
  892. package/dist/optics/sensor-environment-query.d.ts.map +0 -1
  893. package/dist/optics/sensor-psf-quadrature.d.ts.map +0 -1
  894. package/dist/optics/sensor-psf-support.d.ts.map +0 -1
  895. package/dist/optics/stray-light.d.ts.map +0 -1
  896. package/dist/optics/thin-lens.d.ts.map +0 -1
  897. package/dist/output/capture-corrected-sdr.d.ts.map +0 -1
  898. package/dist/output/capture-geometry.d.ts.map +0 -1
  899. package/dist/output/capture-sdr.d.ts.map +0 -1
  900. package/dist/output/crop.d.ts.map +0 -1
  901. package/dist/output/geometric-transforms.d.ts.map +0 -1
  902. package/dist/output/lens-corrections.d.ts.map +0 -1
  903. package/dist/output/native-capture-sdr.d.ts.map +0 -1
  904. package/dist/output/print-contrast-reference.d.ts.map +0 -1
  905. package/dist/output/print-detail.d.ts.map +0 -1
  906. package/dist/output/print-jpeg.d.ts.map +0 -1
  907. package/dist/output/print-plan.d.ts.map +0 -1
  908. package/dist/output/print-region-statistics.d.ts.map +0 -1
  909. package/dist/output/sdr-rendering.d.ts.map +0 -1
  910. package/dist/output/subject-framing-crop.d.ts.map +0 -1
  911. package/dist/schema/camera.d.ts.map +0 -1
  912. package/dist/schema/camera.js +0 -3
  913. package/dist/schema/camera.js.map +0 -1
  914. package/dist/schema/illumination-spectral.d.ts.map +0 -1
  915. package/dist/schema/illumination-temporal.d.ts.map +0 -1
  916. package/dist/schema/illumination.d.ts.map +0 -1
  917. package/dist/schema/scene-radiance-temporal.d.ts.map +0 -1
  918. package/dist/schema/scene-radiance.d.ts.map +0 -1
  919. package/dist/schema/scene.d.ts.map +0 -1
  920. package/dist/schema/scene.js +0 -3
  921. package/dist/schema/scene.js.map +0 -1
  922. package/dist/schema/validation.d.ts.map +0 -1
  923. package/dist/sensor/accumulated-charge.d.ts.map +0 -1
  924. package/dist/sensor/architecture.d.ts.map +0 -1
  925. package/dist/sensor/camera-saturation-capacity.d.ts.map +0 -1
  926. package/dist/sensor/capture-color-sampling-binding.d.ts.map +0 -1
  927. package/dist/sensor/capture-mode-timing.d.ts.map +0 -1
  928. package/dist/sensor/capture-mode.d.ts.map +0 -1
  929. package/dist/sensor/color-sampling.d.ts.map +0 -1
  930. package/dist/sensor/constant-rate-temporal-integration.d.ts.map +0 -1
  931. package/dist/sensor/dark-current.d.ts.map +0 -1
  932. package/dist/sensor/environment-photo-signal.d.ts.map +0 -1
  933. package/dist/sensor/eqe-electron-rate.d.ts.map +0 -1
  934. package/dist/sensor/eqe-local-exposure.d.ts.map +0 -1
  935. package/dist/sensor/eqe-temporal-exposure.d.ts.map +0 -1
  936. package/dist/sensor/exposure-window.d.ts.map +0 -1
  937. package/dist/sensor/iso-signal-chain.d.ts.map +0 -1
  938. package/dist/sensor/local-exposure-binding.d.ts.map +0 -1
  939. package/dist/sensor/optical-stack.d.ts.map +0 -1
  940. package/dist/sensor/photon-energy.d.ts.map +0 -1
  941. package/dist/sensor/physical-charge-capacity.d.ts.map +0 -1
  942. package/dist/sensor/pixel-pitch.d.ts.map +0 -1
  943. package/dist/sensor/radiometry-readiness.d.ts.map +0 -1
  944. package/dist/sensor/raw-readout.d.ts.map +0 -1
  945. package/dist/sensor/raw-reconstruction.d.ts.map +0 -1
  946. package/dist/sensor/readout-exposure-linkage.d.ts.map +0 -1
  947. package/dist/sensor/readout-timing.d.ts.map +0 -1
  948. package/dist/sensor/response-application-compatibility.d.ts.map +0 -1
  949. package/dist/sensor/response-operating-range.d.ts.map +0 -1
  950. package/dist/sensor/responsivity-photocurrent.d.ts.map +0 -1
  951. package/dist/sensor/sampling-aperture.d.ts.map +0 -1
  952. package/dist/sensor/scene-eqe-temporal-exposure.d.ts.map +0 -1
  953. package/dist/sensor/sensor-geometry.d.ts.map +0 -1
  954. package/dist/sensor/signal-noise.d.ts.map +0 -1
  955. package/dist/sensor/spatial-sample-reduction.d.ts.map +0 -1
  956. package/dist/sensor/spatial-sampling-quadrature.d.ts.map +0 -1
  957. package/dist/sensor/spatio-spectral-reduction.d.ts.map +0 -1
  958. package/dist/sensor/spectral-coverage.d.ts.map +0 -1
  959. package/dist/sensor/spectral-quadrature.d.ts.map +0 -1
  960. package/dist/sensor/spectral-response.d.ts.map +0 -1
  961. package/dist/sensor/temporal-eqe-sum.d.ts.map +0 -1
  962. package/dist/sensor/temporal-photo-signal.d.ts.map +0 -1
  963. package/dist/sensor/temporal-sample-binding.d.ts.map +0 -1
  964. package/dist/simulation/poc-simulation.d.ts.map +0 -1
  965. package/dist/stabilization/camera-shake.d.ts.map +0 -1
  966. package/dist/stabilization/system.d.ts.map +0 -1
  967. package/docs/API_STYLE.md +0 -235
  968. package/docs/ARCHITECTURE.md +0 -356
  969. package/docs/AUTOMATION_COORDINATION.md +0 -190
  970. package/docs/CAPTURE_COLOR.md +0 -25
  971. package/docs/CAPTURE_CORRECTED_SDR.md +0 -25
  972. package/docs/CAPTURE_EXPORT_METADATA.md +0 -27
  973. package/docs/CAPTURE_SDR.md +0 -22
  974. package/docs/DENSE_PUPIL_QUALIFICATION.md +0 -121
  975. package/docs/DEVELOPERS.md +0 -68
  976. package/docs/DIGITAL_OPTICS_FOUNDATION.md +0 -69
  977. package/docs/ENVIRONMENT_RAW_CAPTURE.md +0 -208
  978. package/docs/EXPORT_ACCEPTANCE.md +0 -133
  979. package/docs/GENERIC_TIER_PRESETS.md +0 -269
  980. package/docs/GEOMETRIC_PREPARATION_REUSE.md +0 -141
  981. package/docs/IMAGE_FORMATION.md +0 -247
  982. package/docs/LINEAR_CAPTURE_ENCODING.md +0 -25
  983. package/docs/MOTION_AND_SIGNAL.md +0 -250
  984. package/docs/NATIVE_CAPTURE_SDR.md +0 -70
  985. package/docs/NATIVE_CAPTURE_SDR_REVIEW.md +0 -37
  986. package/docs/NATIVE_CAPTURE_SDR_VALIDATION.md +0 -34
  987. package/docs/NATIVE_RAW_AND_PRINT.md +0 -54
  988. package/docs/NUMERICAL_CORRECTNESS.md +0 -191
  989. package/docs/PERFORMANCE_BASELINE.md +0 -56
  990. package/docs/PHOTOGRAPHIC_EXPORT.md +0 -206
  991. package/docs/PHYSICS_FOUNDATION.md +0 -426
  992. package/docs/POC_API.md +0 -278
  993. package/docs/POC_PROJECTION_PLATFORM_REFERENCE.md +0 -12
  994. package/docs/POC_PROJECTION_REUSE.md +0 -124
  995. package/docs/PRINT_195_196_REVIEW.md +0 -93
  996. package/docs/PRINT_196_ENGINE_ACCEPTANCE.md +0 -45
  997. package/docs/PRINT_CONTRAST_REFERENCE.md +0 -43
  998. package/docs/PRINT_DETAIL_ASSESSMENT.md +0 -81
  999. package/docs/PRINT_DETAIL_JPEG_EVIDENCE.md +0 -36
  1000. package/docs/PRINT_DETAIL_SDR_EVIDENCE.md +0 -29
  1001. package/docs/PRINT_DETAIL_VALIDATION.md +0 -36
  1002. package/docs/PRINT_PLANNING.md +0 -75
  1003. package/docs/PRINT_REGION_STATISTICS.md +0 -38
  1004. package/docs/PROCESSED_OUTPUT.md +0 -157
  1005. package/docs/PRODUCTION_COMPOSITION.md +0 -373
  1006. package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +0 -131
  1007. package/docs/PROVENANCE.md +0 -115
  1008. package/docs/PSF_FOUNDATION.md +0 -165
  1009. package/docs/RAW_FRAME_ENVELOPE.md +0 -56
  1010. package/docs/RAW_FRAME_RECONSTRUCTION.md +0 -30
  1011. package/docs/RELEASE_1_0.md +0 -66
  1012. package/docs/RELEASE_1_0_1.md +0 -61
  1013. package/docs/RELEASE_1_1_0.md +0 -25
  1014. package/docs/RELEASE_1_2_0.md +0 -51
  1015. package/docs/RELEASE_1_3_0.md +0 -15
  1016. package/docs/RELEASE_1_4_0.md +0 -23
  1017. package/docs/RELEASE_1_5_0.md +0 -105
  1018. package/docs/RELEASE_AUDIT.md +0 -39
  1019. package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +0 -298
  1020. package/docs/SCENE_SENSOR_QUADRATURE.md +0 -98
  1021. package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +0 -86
  1022. package/docs/SCIENTIFIC_ASSURANCE.md +0 -280
  1023. package/docs/SCIENTIFIC_CONFORMANCE.md +0 -83
  1024. package/docs/SDR_RENDERING.md +0 -33
  1025. package/docs/SENSOR_APERTURE_RAYS.md +0 -23
  1026. package/docs/SENSOR_ENVIRONMENT_QUERY.md +0 -86
  1027. package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +0 -104
  1028. package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +0 -74
  1029. package/docs/SENSOR_PSF_QUADRATURE.md +0 -90
  1030. package/docs/SENSOR_RAW_FRAME.md +0 -20
  1031. package/docs/SENSOR_RAW_PRODUCER.md +0 -77
  1032. package/docs/SEPARABLE_EMISSION_DRAFT.md +0 -103
  1033. package/docs/SIGNAL_CONFORMANCE.md +0 -23
  1034. package/docs/SIMULATED_CAPTURE.md +0 -65
  1035. package/docs/STABILIZATION.md +0 -234
  1036. package/docs/TEMPORAL_PHOTO_RAW.md +0 -83
  1037. package/docs/TIER_ACCEPTANCE.md +0 -129
  1038. package/docs/TIER_PRESET_ACCEPTANCE.md +0 -59
  1039. package/docs/V1_COMPOSITION_MAP.md +0 -123
  1040. package/docs/V1_HELPER_REUSE_REVIEW.md +0 -60
  1041. package/docs/V1_PERFORMANCE_DISPOSITION.md +0 -88
  1042. package/docs/benchmarks/2026-10-01-main-baseline.json +0 -694
  1043. package/docs/benchmarks/2026-10-02-geometric-preparation-reuse.json +0 -2190
  1044. package/docs/benchmarks/2026-10-02-poc-projection-reuse.json +0 -2423
  1045. package/docs/benchmarks/2026-10-02-v1-environment-gc-profile.json +0 -210
  1046. package/docs/benchmarks/2026-10-02-v1-environment-ordinary.json +0 -187
  1047. package/docs/benchmarks/2026-10-02-v1-geometry-gc-profile.json +0 -756
  1048. package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-1.json +0 -711
  1049. package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-2.json +0 -711
  1050. package/docs/benchmarks/2026-10-02-v1-poc-gc-profile.json +0 -885
  1051. package/docs/benchmarks/2026-10-02-v1-poc-ordinary-1.json +0 -868
  1052. package/docs/benchmarks/2026-10-02-v1-poc-ordinary-2.json +0 -868
  1053. package/docs/licenses/castleCSF-MIT.txt +0 -21
  1054. package/docs/validation/dense-pupil-2026-10-06/pilot.jsonl +0 -6
  1055. package/docs/validation/documentation-fragments.json +0 -212
  1056. package/docs/validation/native-capture-sdr-darwin-arm64-node26-review.jsonl +0 -4
  1057. package/docs/validation/native-capture-sdr-darwin-arm64.jsonl +0 -3
  1058. package/docs/validation/native-raw-print-2026-10-04/fractional-asymmetric-crop.jpg +0 -0
  1059. package/docs/validation/native-raw-print-2026-10-04/gray-ramp.jpg +0 -0
  1060. package/docs/validation/native-raw-print-2026-10-04/linear-area-checker.jpg +0 -0
  1061. package/docs/validation/native-raw-print-2026-10-04/manifest.json +0 -218
  1062. package/docs/validation/native-raw-print-2026-10-04/megapixel-native.jpg +0 -0
  1063. package/docs/validation/native-raw-print-2026-10-04/native-color.jpg +0 -0
  1064. package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel-validation.json +0 -9
  1065. package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json +0 -29
  1066. package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.codes.u16le.gz +0 -0
  1067. package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.jpg +0 -0
  1068. package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.rgb.gz +0 -0
  1069. package/docs/validation/native-raw-print-2026-10-04/srgb.icc +0 -0
  1070. package/docs/validation/native-raw-print-2026-10-04/validation.json +0 -41
  1071. package/docs/validation/print-196-candidate-capabilities.json +0 -28
  1072. package/docs/validation/print-196-candidate-evidence.json +0 -356
  1073. package/docs/validation/print-196-engine-acceptance.json +0 -81
  1074. package/docs/validation/print-detail-capabilities.json +0 -103
  1075. package/docs/validation/print-detail-jpeg-evidence.json +0 -116
  1076. package/docs/validation/print-detail-sdr-evidence.json +0 -81
  1077. package/docs/validation/release-audit-inventory.json +0 -1306
  1078. package/docs/validation/tier-acceptance-report-v1.json +0 -2538
@@ -1,2423 +0,0 @@
1
- {
2
- "schemaVersion": "0.1.0",
3
- "evidenceId": "poc-projection-reuse-2026-10-02",
4
- "provenance": {
5
- "sourceOrigin": "photivra",
6
- "sourceReference": "photivra:poc-projection-reuse-experiment",
7
- "reuseStatus": "photivra-owned"
8
- },
9
- "ordinaryRuns": [
10
- {
11
- "benchmark": "poc-request-local-defocus-projection-reuse",
12
- "benchmarkVersion": 2,
13
- "referenceCommit": "c1374c31473f893310d1ce4f0d5a737aaba43ab5",
14
- "candidateBaseCommit": "c1374c31473f893310d1ce4f0d5a737aaba43ab5",
15
- "candidateSources": [
16
- {
17
- "path": "src/optics/depth-of-field.ts",
18
- "sha256": "5a947cac46215281bde539333879f9411e2c8cdafaaae04b471a4b3bbe676f06"
19
- },
20
- {
21
- "path": "src/simulation/poc-simulation.ts",
22
- "sha256": "7d6f1a8bc7fe954744009965f53d9bf1ff39c08a184a13cc6983b59d99bd73cd"
23
- }
24
- ],
25
- "buildMethod": "tsc",
26
- "engineApiVersion": "0.103.0",
27
- "pocApiVersion": "0.20.0",
28
- "nodeVersion": "v24.19.0",
29
- "v8Version": "13.6.233.17-node.51",
30
- "platform": "linux",
31
- "arch": "x64",
32
- "cpuModel": "AMD EPYC 9V74 80-Core Processor",
33
- "logicalCpuCount": 9,
34
- "forcedGc": false,
35
- "results": [
36
- {
37
- "scenario": "24mp-base",
38
- "requestsPerRepeat": 1000,
39
- "repeats": 9,
40
- "warmupRequestsPerPath": 500,
41
- "paths": [
42
- {
43
- "name": "reference",
44
- "medianMicrosecondsPerRequest": 11.107495,
45
- "measurements": [
46
- {
47
- "durationMs": 18.830893,
48
- "retainedHeapDeltaBytes": -4152952
49
- },
50
- {
51
- "durationMs": 13.659234,
52
- "retainedHeapDeltaBytes": -4731648
53
- },
54
- {
55
- "durationMs": 11.614752,
56
- "retainedHeapDeltaBytes": -5693608
57
- },
58
- {
59
- "durationMs": 11.048358,
60
- "retainedHeapDeltaBytes": 2665736
61
- },
62
- {
63
- "durationMs": 10.903534,
64
- "retainedHeapDeltaBytes": 2641168
65
- },
66
- {
67
- "durationMs": 11.107495,
68
- "retainedHeapDeltaBytes": 2641232
69
- },
70
- {
71
- "durationMs": 10.830687,
72
- "retainedHeapDeltaBytes": 2640904
73
- },
74
- {
75
- "durationMs": 10.69022,
76
- "retainedHeapDeltaBytes": 2643112
77
- },
78
- {
79
- "durationMs": 11.928244,
80
- "retainedHeapDeltaBytes": 2643056
81
- }
82
- ]
83
- },
84
- {
85
- "name": "candidate",
86
- "medianMicrosecondsPerRequest": 11.291296,
87
- "measurements": [
88
- {
89
- "durationMs": 14.791883,
90
- "retainedHeapDeltaBytes": 4296064
91
- },
92
- {
93
- "durationMs": 15.037234,
94
- "retainedHeapDeltaBytes": 3735520
95
- },
96
- {
97
- "durationMs": 12.224179,
98
- "retainedHeapDeltaBytes": 2699472
99
- },
100
- {
101
- "durationMs": 11.212339,
102
- "retainedHeapDeltaBytes": 2651984
103
- },
104
- {
105
- "durationMs": 10.923853,
106
- "retainedHeapDeltaBytes": 2650168
107
- },
108
- {
109
- "durationMs": 11.251767,
110
- "retainedHeapDeltaBytes": 2649712
111
- },
112
- {
113
- "durationMs": 10.81274,
114
- "retainedHeapDeltaBytes": 2652600
115
- },
116
- {
117
- "durationMs": 11.291296,
118
- "retainedHeapDeltaBytes": 2651832
119
- },
120
- {
121
- "durationMs": 11.513594,
122
- "retainedHeapDeltaBytes": 2651616
123
- }
124
- ]
125
- }
126
- ],
127
- "candidateToReferenceMedianRatio": 1.0165474753758612
128
- },
129
- {
130
- "scenario": "24mp-defocus-1",
131
- "requestsPerRepeat": 1000,
132
- "repeats": 9,
133
- "warmupRequestsPerPath": 500,
134
- "paths": [
135
- {
136
- "name": "reference",
137
- "medianMicrosecondsPerRequest": 12.159526,
138
- "measurements": [
139
- {
140
- "durationMs": 12.91702,
141
- "retainedHeapDeltaBytes": -1953688
142
- },
143
- {
144
- "durationMs": 12.453357,
145
- "retainedHeapDeltaBytes": 6108288
146
- },
147
- {
148
- "durationMs": 12.793078,
149
- "retainedHeapDeltaBytes": -2272536
150
- },
151
- {
152
- "durationMs": 12.257659,
153
- "retainedHeapDeltaBytes": 6059024
154
- },
155
- {
156
- "durationMs": 11.766496,
157
- "retainedHeapDeltaBytes": -10714048
158
- },
159
- {
160
- "durationMs": 11.565399,
161
- "retainedHeapDeltaBytes": 6057184
162
- },
163
- {
164
- "durationMs": 11.917358,
165
- "retainedHeapDeltaBytes": 6059600
166
- },
167
- {
168
- "durationMs": 11.800375,
169
- "retainedHeapDeltaBytes": -10714416
170
- },
171
- {
172
- "durationMs": 12.159526,
173
- "retainedHeapDeltaBytes": 6058608
174
- }
175
- ]
176
- },
177
- {
178
- "name": "candidate",
179
- "medianMicrosecondsPerRequest": 11.893682,
180
- "measurements": [
181
- {
182
- "durationMs": 12.055361,
183
- "retainedHeapDeltaBytes": -4460648
184
- },
185
- {
186
- "durationMs": 12.549619,
187
- "retainedHeapDeltaBytes": -4535984
188
- },
189
- {
190
- "durationMs": 13.18807,
191
- "retainedHeapDeltaBytes": 3847016
192
- },
193
- {
194
- "durationMs": 11.33584,
195
- "retainedHeapDeltaBytes": -12940112
196
- },
197
- {
198
- "durationMs": 11.876047,
199
- "retainedHeapDeltaBytes": 3792720
200
- },
201
- {
202
- "durationMs": 11.386415,
203
- "retainedHeapDeltaBytes": 3794176
204
- },
205
- {
206
- "durationMs": 11.893682,
207
- "retainedHeapDeltaBytes": -12978608
208
- },
209
- {
210
- "durationMs": 11.660019,
211
- "retainedHeapDeltaBytes": 3791272
212
- },
213
- {
214
- "durationMs": 12.266654,
215
- "retainedHeapDeltaBytes": -12980664
216
- }
217
- ]
218
- }
219
- ],
220
- "candidateToReferenceMedianRatio": 0.9781369767209677
221
- },
222
- {
223
- "scenario": "24mp-defocus-2",
224
- "requestsPerRepeat": 1000,
225
- "repeats": 9,
226
- "warmupRequestsPerPath": 500,
227
- "paths": [
228
- {
229
- "name": "reference",
230
- "medianMicrosecondsPerRequest": 13.203783,
231
- "measurements": [
232
- {
233
- "durationMs": 13.600186,
234
- "retainedHeapDeltaBytes": 996408
235
- },
236
- {
237
- "durationMs": 13.216322,
238
- "retainedHeapDeltaBytes": 908728
239
- },
240
- {
241
- "durationMs": 13.182031,
242
- "retainedHeapDeltaBytes": 908520
243
- },
244
- {
245
- "durationMs": 13.203783,
246
- "retainedHeapDeltaBytes": -7526112
247
- },
248
- {
249
- "durationMs": 12.637769,
250
- "retainedHeapDeltaBytes": 9239552
251
- },
252
- {
253
- "durationMs": 12.837924,
254
- "retainedHeapDeltaBytes": 9243040
255
- },
256
- {
257
- "durationMs": 12.40112,
258
- "retainedHeapDeltaBytes": 9244392
259
- },
260
- {
261
- "durationMs": 18.583148,
262
- "retainedHeapDeltaBytes": -7528048
263
- },
264
- {
265
- "durationMs": 13.627037,
266
- "retainedHeapDeltaBytes": 9246288
267
- }
268
- ]
269
- },
270
- {
271
- "name": "candidate",
272
- "medianMicrosecondsPerRequest": 11.850128,
273
- "measurements": [
274
- {
275
- "durationMs": 12.788401,
276
- "retainedHeapDeltaBytes": -2435136
277
- },
278
- {
279
- "durationMs": 12.426176,
280
- "retainedHeapDeltaBytes": -2523112
281
- },
282
- {
283
- "durationMs": 13.102444,
284
- "retainedHeapDeltaBytes": -2524040
285
- },
286
- {
287
- "durationMs": 11.850128,
288
- "retainedHeapDeltaBytes": 5809488
289
- },
290
- {
291
- "durationMs": 11.683824,
292
- "retainedHeapDeltaBytes": -10964792
293
- },
294
- {
295
- "durationMs": 11.786014,
296
- "retainedHeapDeltaBytes": -10964688
297
- },
298
- {
299
- "durationMs": 11.588934,
300
- "retainedHeapDeltaBytes": 5810032
301
- },
302
- {
303
- "durationMs": 11.573121,
304
- "retainedHeapDeltaBytes": 5809320
305
- },
306
- {
307
- "durationMs": 12.076734,
308
- "retainedHeapDeltaBytes": 5810040
309
- }
310
- ]
311
- }
312
- ],
313
- "candidateToReferenceMedianRatio": 0.8974797601566157
314
- },
315
- {
316
- "scenario": "24mp-defocus-4",
317
- "requestsPerRepeat": 1000,
318
- "repeats": 9,
319
- "warmupRequestsPerPath": 500,
320
- "paths": [
321
- {
322
- "name": "reference",
323
- "medianMicrosecondsPerRequest": 14.689030999999998,
324
- "measurements": [
325
- {
326
- "durationMs": 15.227794,
327
- "retainedHeapDeltaBytes": 7388392
328
- },
329
- {
330
- "durationMs": 14.689031,
331
- "retainedHeapDeltaBytes": -1103232
332
- },
333
- {
334
- "durationMs": 14.964176,
335
- "retainedHeapDeltaBytes": 7279664
336
- },
337
- {
338
- "durationMs": 17.809754,
339
- "retainedHeapDeltaBytes": -1105224
340
- },
341
- {
342
- "durationMs": 16.039912,
343
- "retainedHeapDeltaBytes": -1159856
344
- },
345
- {
346
- "durationMs": 14.533773,
347
- "retainedHeapDeltaBytes": -1160944
348
- },
349
- {
350
- "durationMs": 14.552289,
351
- "retainedHeapDeltaBytes": -1159320
352
- },
353
- {
354
- "durationMs": 14.521094,
355
- "retainedHeapDeltaBytes": -1161480
356
- },
357
- {
358
- "durationMs": 14.349423,
359
- "retainedHeapDeltaBytes": -1159168
360
- }
361
- ]
362
- },
363
- {
364
- "name": "candidate",
365
- "medianMicrosecondsPerRequest": 13.497667,
366
- "measurements": [
367
- {
368
- "durationMs": 13.827522,
369
- "retainedHeapDeltaBytes": -6795488
370
- },
371
- {
372
- "durationMs": 13.596922,
373
- "retainedHeapDeltaBytes": 1511352
374
- },
375
- {
376
- "durationMs": 13.497667,
377
- "retainedHeapDeltaBytes": -6869176
378
- },
379
- {
380
- "durationMs": 14.62007,
381
- "retainedHeapDeltaBytes": 1511176
382
- },
383
- {
384
- "durationMs": 12.741862,
385
- "retainedHeapDeltaBytes": 9842352
386
- },
387
- {
388
- "durationMs": 13.196512,
389
- "retainedHeapDeltaBytes": -6931248
390
- },
391
- {
392
- "durationMs": 13.606387,
393
- "retainedHeapDeltaBytes": -6930304
394
- },
395
- {
396
- "durationMs": 13.426221,
397
- "retainedHeapDeltaBytes": 9842680
398
- },
399
- {
400
- "durationMs": 12.913657,
401
- "retainedHeapDeltaBytes": -6932240
402
- }
403
- ]
404
- }
405
- ],
406
- "candidateToReferenceMedianRatio": 0.91889430963826
407
- },
408
- {
409
- "scenario": "24mp-defocus-8",
410
- "requestsPerRepeat": 1000,
411
- "repeats": 9,
412
- "warmupRequestsPerPath": 500,
413
- "paths": [
414
- {
415
- "name": "reference",
416
- "medianMicrosecondsPerRequest": 18.370317,
417
- "measurements": [
418
- {
419
- "durationMs": 18.927325,
420
- "retainedHeapDeltaBytes": 3531408
421
- },
422
- {
423
- "durationMs": 20.942575,
424
- "retainedHeapDeltaBytes": -4657448
425
- },
426
- {
427
- "durationMs": 18.290026,
428
- "retainedHeapDeltaBytes": 3444968
429
- },
430
- {
431
- "durationMs": 20.558619,
432
- "retainedHeapDeltaBytes": 3447680
433
- },
434
- {
435
- "durationMs": 17.895074,
436
- "retainedHeapDeltaBytes": -4996040
437
- },
438
- {
439
- "durationMs": 18.188096,
440
- "retainedHeapDeltaBytes": -4992680
441
- },
442
- {
443
- "durationMs": 18.065566,
444
- "retainedHeapDeltaBytes": -4989152
445
- },
446
- {
447
- "durationMs": 21.467377,
448
- "retainedHeapDeltaBytes": -4994328
449
- },
450
- {
451
- "durationMs": 18.370317,
452
- "retainedHeapDeltaBytes": -4990648
453
- }
454
- ]
455
- },
456
- {
457
- "name": "candidate",
458
- "medianMicrosecondsPerRequest": 16.666133,
459
- "measurements": [
460
- {
461
- "durationMs": 16.916073,
462
- "retainedHeapDeltaBytes": 1482840
463
- },
464
- {
465
- "durationMs": 16.666133,
466
- "retainedHeapDeltaBytes": 1390632
467
- },
468
- {
469
- "durationMs": 18.331893,
470
- "retainedHeapDeltaBytes": 1391984
471
- },
472
- {
473
- "durationMs": 17.286788,
474
- "retainedHeapDeltaBytes": -6996168
475
- },
476
- {
477
- "durationMs": 15.037265,
478
- "retainedHeapDeltaBytes": 1338016
479
- },
480
- {
481
- "durationMs": 15.787589,
482
- "retainedHeapDeltaBytes": 1337808
483
- },
484
- {
485
- "durationMs": 15.103661,
486
- "retainedHeapDeltaBytes": 1336592
487
- },
488
- {
489
- "durationMs": 21.737155,
490
- "retainedHeapDeltaBytes": 1336168
491
- },
492
- {
493
- "durationMs": 16.552558,
494
- "retainedHeapDeltaBytes": 1340264
495
- }
496
- ]
497
- }
498
- ],
499
- "candidateToReferenceMedianRatio": 0.9072316498403374
500
- },
501
- {
502
- "scenario": "24mp-defocus-16",
503
- "requestsPerRepeat": 1000,
504
- "repeats": 9,
505
- "warmupRequestsPerPath": 500,
506
- "paths": [
507
- {
508
- "name": "reference",
509
- "medianMicrosecondsPerRequest": 27.096401,
510
- "measurements": [
511
- {
512
- "durationMs": 27.114557,
513
- "retainedHeapDeltaBytes": -4170632
514
- },
515
- {
516
- "durationMs": 25.192265,
517
- "retainedHeapDeltaBytes": 4089528
518
- },
519
- {
520
- "durationMs": 29.443529,
521
- "retainedHeapDeltaBytes": -4230632
522
- },
523
- {
524
- "durationMs": 27.528317,
525
- "retainedHeapDeltaBytes": 4104496
526
- },
527
- {
528
- "durationMs": 25.557433,
529
- "retainedHeapDeltaBytes": 4068968
530
- },
531
- {
532
- "durationMs": 27.096401,
533
- "retainedHeapDeltaBytes": -12701176
534
- },
535
- {
536
- "durationMs": 26.41002,
537
- "retainedHeapDeltaBytes": 4071120
538
- },
539
- {
540
- "durationMs": 29.629001,
541
- "retainedHeapDeltaBytes": 4071568
542
- },
543
- {
544
- "durationMs": 25.936835,
545
- "retainedHeapDeltaBytes": 4071304
546
- }
547
- ]
548
- },
549
- {
550
- "name": "candidate",
551
- "medianMicrosecondsPerRequest": 19.973136,
552
- "measurements": [
553
- {
554
- "durationMs": 22.01228,
555
- "retainedHeapDeltaBytes": 1192928
556
- },
557
- {
558
- "durationMs": 19.849774,
559
- "retainedHeapDeltaBytes": 1066424
560
- },
561
- {
562
- "durationMs": 21.860016,
563
- "retainedHeapDeltaBytes": 1101376
564
- },
565
- {
566
- "durationMs": 34.639023,
567
- "retainedHeapDeltaBytes": 1235664
568
- },
569
- {
570
- "durationMs": 19.893277,
571
- "retainedHeapDeltaBytes": 1053624
572
- },
573
- {
574
- "durationMs": 19.437276,
575
- "retainedHeapDeltaBytes": 1059608
576
- },
577
- {
578
- "durationMs": 19.973136,
579
- "retainedHeapDeltaBytes": 1061992
580
- },
581
- {
582
- "durationMs": 23.053004,
583
- "retainedHeapDeltaBytes": 1054848
584
- },
585
- {
586
- "durationMs": 19.80444,
587
- "retainedHeapDeltaBytes": 1060528
588
- }
589
- ]
590
- }
591
- ],
592
- "candidateToReferenceMedianRatio": 0.7371139805614775
593
- },
594
- {
595
- "scenario": "24mp-mixed-16-per-kind",
596
- "requestsPerRepeat": 1000,
597
- "repeats": 9,
598
- "warmupRequestsPerPath": 500,
599
- "paths": [
600
- {
601
- "name": "reference",
602
- "medianMicrosecondsPerRequest": 56.327622,
603
- "measurements": [
604
- {
605
- "durationMs": 58.830554,
606
- "retainedHeapDeltaBytes": 4881432
607
- },
608
- {
609
- "durationMs": 64.257038,
610
- "retainedHeapDeltaBytes": 5399880
611
- },
612
- {
613
- "durationMs": 56.328788,
614
- "retainedHeapDeltaBytes": 4755560
615
- },
616
- {
617
- "durationMs": 61.712549,
618
- "retainedHeapDeltaBytes": 5325584
619
- },
620
- {
621
- "durationMs": 54.532611,
622
- "retainedHeapDeltaBytes": 5326312
623
- },
624
- {
625
- "durationMs": 53.219007,
626
- "retainedHeapDeltaBytes": 5318312
627
- },
628
- {
629
- "durationMs": 54.444913,
630
- "retainedHeapDeltaBytes": 5324248
631
- },
632
- {
633
- "durationMs": 56.327622,
634
- "retainedHeapDeltaBytes": -11440616
635
- },
636
- {
637
- "durationMs": 56.154697,
638
- "retainedHeapDeltaBytes": 5326392
639
- }
640
- ]
641
- },
642
- {
643
- "name": "candidate",
644
- "medianMicrosecondsPerRequest": 50.522093,
645
- "measurements": [
646
- {
647
- "durationMs": 53.441334,
648
- "retainedHeapDeltaBytes": -6497568
649
- },
650
- {
651
- "durationMs": 50.365282,
652
- "retainedHeapDeltaBytes": -6009280
653
- },
654
- {
655
- "durationMs": 55.812737,
656
- "retainedHeapDeltaBytes": -6687184
657
- },
658
- {
659
- "durationMs": 50.522093,
660
- "retainedHeapDeltaBytes": 2308216
661
- },
662
- {
663
- "durationMs": 48.35492,
664
- "retainedHeapDeltaBytes": 2314472
665
- },
666
- {
667
- "durationMs": 49.427241,
668
- "retainedHeapDeltaBytes": 2298568
669
- },
670
- {
671
- "durationMs": 49.353051,
672
- "retainedHeapDeltaBytes": 2306504
673
- },
674
- {
675
- "durationMs": 51.731685,
676
- "retainedHeapDeltaBytes": 2308968
677
- },
678
- {
679
- "durationMs": 51.21525,
680
- "retainedHeapDeltaBytes": -14464088
681
- }
682
- ]
683
- }
684
- ],
685
- "candidateToReferenceMedianRatio": 0.8969328227632262
686
- },
687
- {
688
- "scenario": "24mp-staged-portrait-mixed",
689
- "requestsPerRepeat": 1000,
690
- "repeats": 9,
691
- "warmupRequestsPerPath": 500,
692
- "paths": [
693
- {
694
- "name": "reference",
695
- "medianMicrosecondsPerRequest": 95.53569,
696
- "measurements": [
697
- {
698
- "durationMs": 95.475772,
699
- "retainedHeapDeltaBytes": -633016
700
- },
701
- {
702
- "durationMs": 99.127984,
703
- "retainedHeapDeltaBytes": -306576
704
- },
705
- {
706
- "durationMs": 101.124105,
707
- "retainedHeapDeltaBytes": 5511432
708
- },
709
- {
710
- "durationMs": 93.851569,
711
- "retainedHeapDeltaBytes": 6629528
712
- },
713
- {
714
- "durationMs": 92.543482,
715
- "retainedHeapDeltaBytes": -10533960
716
- },
717
- {
718
- "durationMs": 94.11033,
719
- "retainedHeapDeltaBytes": -11119416
720
- },
721
- {
722
- "durationMs": 95.859388,
723
- "retainedHeapDeltaBytes": 6241904
724
- },
725
- {
726
- "durationMs": 95.53569,
727
- "retainedHeapDeltaBytes": -9217232
728
- },
729
- {
730
- "durationMs": 97.065774,
731
- "retainedHeapDeltaBytes": 7559704
732
- }
733
- ]
734
- },
735
- {
736
- "name": "candidate",
737
- "medianMicrosecondsPerRequest": 90.790789,
738
- "measurements": [
739
- {
740
- "durationMs": 93.601021,
741
- "retainedHeapDeltaBytes": 4781560
742
- },
743
- {
744
- "durationMs": 96.979908,
745
- "retainedHeapDeltaBytes": -3305144
746
- },
747
- {
748
- "durationMs": 99.651354,
749
- "retainedHeapDeltaBytes": 2358848
750
- },
751
- {
752
- "durationMs": 100.823131,
753
- "retainedHeapDeltaBytes": -13080880
754
- },
755
- {
756
- "durationMs": 87.649533,
757
- "retainedHeapDeltaBytes": 3239752
758
- },
759
- {
760
- "durationMs": 86.902512,
761
- "retainedHeapDeltaBytes": 2607960
762
- },
763
- {
764
- "durationMs": 88.779847,
765
- "retainedHeapDeltaBytes": -13496160
766
- },
767
- {
768
- "durationMs": 87.969012,
769
- "retainedHeapDeltaBytes": 4525688
770
- },
771
- {
772
- "durationMs": 90.790789,
773
- "retainedHeapDeltaBytes": 4538720
774
- }
775
- ]
776
- }
777
- ],
778
- "candidateToReferenceMedianRatio": 0.9503337339166128
779
- }
780
- ],
781
- "allocationProfiles": [],
782
- "preparationProbe": {
783
- "kind": "isolated-three-scalar-object-freeze",
784
- "preparationsPerRepeat": 100000,
785
- "nanosecondsPerPreparation": [
786
- 51.71038,
787
- 54.82237,
788
- 43.47615,
789
- 64.82201,
790
- 48.21754,
791
- 44.24308,
792
- 41.8074,
793
- 41.00201,
794
- 40.97146
795
- ],
796
- "medianNanosecondsPerPreparation": 44.24308,
797
- "limitation": "Synthetic isolated probe; JIT/escape behavior can differ inside the whole request."
798
- },
799
- "sink": 53131313.13083108,
800
- "limitations": [
801
- "Paired developer POC request shapes on shared infrastructure; not observed product call frequency or browser latency",
802
- "POC is analytical; 24 MP dimensions do not execute 24 million image samples",
803
- "Net retained heap is not allocation count; separately instrumented heap sampling is statistical, not an exact allocation counter",
804
- "Source SHA context is operator-attested; source fingerprints identify the candidate change",
805
- "No full production radiometry/serialization or browser performance claim"
806
- ]
807
- },
808
- {
809
- "benchmark": "poc-request-local-defocus-projection-reuse",
810
- "benchmarkVersion": 2,
811
- "referenceCommit": "c1374c31473f893310d1ce4f0d5a737aaba43ab5",
812
- "candidateBaseCommit": "c1374c31473f893310d1ce4f0d5a737aaba43ab5",
813
- "candidateSources": [
814
- {
815
- "path": "src/optics/depth-of-field.ts",
816
- "sha256": "5a947cac46215281bde539333879f9411e2c8cdafaaae04b471a4b3bbe676f06"
817
- },
818
- {
819
- "path": "src/simulation/poc-simulation.ts",
820
- "sha256": "7d6f1a8bc7fe954744009965f53d9bf1ff39c08a184a13cc6983b59d99bd73cd"
821
- }
822
- ],
823
- "buildMethod": "tsc",
824
- "engineApiVersion": "0.103.0",
825
- "pocApiVersion": "0.20.0",
826
- "nodeVersion": "v24.19.0",
827
- "v8Version": "13.6.233.17-node.51",
828
- "platform": "linux",
829
- "arch": "x64",
830
- "cpuModel": "AMD EPYC 9V74 80-Core Processor",
831
- "logicalCpuCount": 9,
832
- "forcedGc": false,
833
- "results": [
834
- {
835
- "scenario": "24mp-base",
836
- "requestsPerRepeat": 1000,
837
- "repeats": 9,
838
- "warmupRequestsPerPath": 500,
839
- "paths": [
840
- {
841
- "name": "reference",
842
- "medianMicrosecondsPerRequest": 10.932238,
843
- "measurements": [
844
- {
845
- "durationMs": 14.428799,
846
- "retainedHeapDeltaBytes": 4207928
847
- },
848
- {
849
- "durationMs": 13.20791,
850
- "retainedHeapDeltaBytes": -4718008
851
- },
852
- {
853
- "durationMs": 11.716162,
854
- "retainedHeapDeltaBytes": 2693352
855
- },
856
- {
857
- "durationMs": 10.821464,
858
- "retainedHeapDeltaBytes": 2643536
859
- },
860
- {
861
- "durationMs": 10.92752,
862
- "retainedHeapDeltaBytes": 2643080
863
- },
864
- {
865
- "durationMs": 10.932238,
866
- "retainedHeapDeltaBytes": 2641744
867
- },
868
- {
869
- "durationMs": 10.586398,
870
- "retainedHeapDeltaBytes": 2641776
871
- },
872
- {
873
- "durationMs": 10.762838,
874
- "retainedHeapDeltaBytes": 2641480
875
- },
876
- {
877
- "durationMs": 11.190177,
878
- "retainedHeapDeltaBytes": 2640080
879
- }
880
- ]
881
- },
882
- {
883
- "name": "candidate",
884
- "medianMicrosecondsPerRequest": 11.087646,
885
- "measurements": [
886
- {
887
- "durationMs": 14.77152,
888
- "retainedHeapDeltaBytes": -3982400
889
- },
890
- {
891
- "durationMs": 13.56747,
892
- "retainedHeapDeltaBytes": 3667728
893
- },
894
- {
895
- "durationMs": 11.374369,
896
- "retainedHeapDeltaBytes": 2700280
897
- },
898
- {
899
- "durationMs": 11.310275,
900
- "retainedHeapDeltaBytes": 2651392
901
- },
902
- {
903
- "durationMs": 11.081197,
904
- "retainedHeapDeltaBytes": 2649936
905
- },
906
- {
907
- "durationMs": 11.087646,
908
- "retainedHeapDeltaBytes": 2653256
909
- },
910
- {
911
- "durationMs": 10.694126,
912
- "retainedHeapDeltaBytes": -14124704
913
- },
914
- {
915
- "durationMs": 10.75078,
916
- "retainedHeapDeltaBytes": -14124192
917
- },
918
- {
919
- "durationMs": 10.870317,
920
- "retainedHeapDeltaBytes": -14122384
921
- }
922
- ]
923
- }
924
- ],
925
- "candidateToReferenceMedianRatio": 1.0142155704989224
926
- },
927
- {
928
- "scenario": "24mp-defocus-1",
929
- "requestsPerRepeat": 1000,
930
- "repeats": 9,
931
- "warmupRequestsPerPath": 500,
932
- "paths": [
933
- {
934
- "name": "reference",
935
- "medianMicrosecondsPerRequest": 11.945209,
936
- "measurements": [
937
- {
938
- "durationMs": 13.21491,
939
- "retainedHeapDeltaBytes": 6312080
940
- },
941
- {
942
- "durationMs": 12.125395,
943
- "retainedHeapDeltaBytes": 6111376
944
- },
945
- {
946
- "durationMs": 12.333713,
947
- "retainedHeapDeltaBytes": -2276680
948
- },
949
- {
950
- "durationMs": 11.851672,
951
- "retainedHeapDeltaBytes": -10716328
952
- },
953
- {
954
- "durationMs": 15.674815,
955
- "retainedHeapDeltaBytes": 6061128
956
- },
957
- {
958
- "durationMs": 11.632149,
959
- "retainedHeapDeltaBytes": 6058568
960
- },
961
- {
962
- "durationMs": 11.78897,
963
- "retainedHeapDeltaBytes": 6060672
964
- },
965
- {
966
- "durationMs": 11.504961,
967
- "retainedHeapDeltaBytes": 6061008
968
- },
969
- {
970
- "durationMs": 11.945209,
971
- "retainedHeapDeltaBytes": 6059432
972
- }
973
- ]
974
- },
975
- {
976
- "name": "candidate",
977
- "medianMicrosecondsPerRequest": 11.252179,
978
- "measurements": [
979
- {
980
- "durationMs": 12.343837,
981
- "retainedHeapDeltaBytes": -4460056
982
- },
983
- {
984
- "durationMs": 12.440991,
985
- "retainedHeapDeltaBytes": -4536464
986
- },
987
- {
988
- "durationMs": 11.252179,
989
- "retainedHeapDeltaBytes": 3846432
990
- },
991
- {
992
- "durationMs": 11.866875,
993
- "retainedHeapDeltaBytes": 3887144
994
- },
995
- {
996
- "durationMs": 15.958943,
997
- "retainedHeapDeltaBytes": 3794584
998
- },
999
- {
1000
- "durationMs": 11.203757,
1001
- "retainedHeapDeltaBytes": -12982168
1002
- },
1003
- {
1004
- "durationMs": 11.114095,
1005
- "retainedHeapDeltaBytes": 3793304
1006
- },
1007
- {
1008
- "durationMs": 11.023401,
1009
- "retainedHeapDeltaBytes": 3796464
1010
- },
1011
- {
1012
- "durationMs": 11.057371,
1013
- "retainedHeapDeltaBytes": 3795528
1014
- }
1015
- ]
1016
- }
1017
- ],
1018
- "candidateToReferenceMedianRatio": 0.941982597374395
1019
- },
1020
- {
1021
- "scenario": "24mp-defocus-2",
1022
- "requestsPerRepeat": 1000,
1023
- "repeats": 9,
1024
- "warmupRequestsPerPath": 500,
1025
- "paths": [
1026
- {
1027
- "name": "reference",
1028
- "medianMicrosecondsPerRequest": 12.679853,
1029
- "measurements": [
1030
- {
1031
- "durationMs": 13.329539,
1032
- "retainedHeapDeltaBytes": 996128
1033
- },
1034
- {
1035
- "durationMs": 12.952434,
1036
- "retainedHeapDeltaBytes": 909120
1037
- },
1038
- {
1039
- "durationMs": 13.376439,
1040
- "retainedHeapDeltaBytes": 907216
1041
- },
1042
- {
1043
- "durationMs": 12.582339,
1044
- "retainedHeapDeltaBytes": 9240408
1045
- },
1046
- {
1047
- "durationMs": 12.594447,
1048
- "retainedHeapDeltaBytes": -7531504
1049
- },
1050
- {
1051
- "durationMs": 12.679853,
1052
- "retainedHeapDeltaBytes": -7530424
1053
- },
1054
- {
1055
- "durationMs": 12.456804,
1056
- "retainedHeapDeltaBytes": -7532584
1057
- },
1058
- {
1059
- "durationMs": 12.297069,
1060
- "retainedHeapDeltaBytes": 9246824
1061
- },
1062
- {
1063
- "durationMs": 13.277222,
1064
- "retainedHeapDeltaBytes": -7527112
1065
- }
1066
- ]
1067
- },
1068
- {
1069
- "name": "candidate",
1070
- "medianMicrosecondsPerRequest": 12.043435,
1071
- "measurements": [
1072
- {
1073
- "durationMs": 17.790507,
1074
- "retainedHeapDeltaBytes": -2431616
1075
- },
1076
- {
1077
- "durationMs": 12.316337,
1078
- "retainedHeapDeltaBytes": -2524552
1079
- },
1080
- {
1081
- "durationMs": 12.13526,
1082
- "retainedHeapDeltaBytes": -2522952
1083
- },
1084
- {
1085
- "durationMs": 11.521776,
1086
- "retainedHeapDeltaBytes": 5808816
1087
- },
1088
- {
1089
- "durationMs": 12.038217,
1090
- "retainedHeapDeltaBytes": 5808680
1091
- },
1092
- {
1093
- "durationMs": 11.766236,
1094
- "retainedHeapDeltaBytes": 5807840
1095
- },
1096
- {
1097
- "durationMs": 11.839174,
1098
- "retainedHeapDeltaBytes": 5809600
1099
- },
1100
- {
1101
- "durationMs": 12.043435,
1102
- "retainedHeapDeltaBytes": -10966240
1103
- },
1104
- {
1105
- "durationMs": 12.090464,
1106
- "retainedHeapDeltaBytes": 5809512
1107
- }
1108
- ]
1109
- }
1110
- ],
1111
- "candidateToReferenceMedianRatio": 0.9498087241232214
1112
- },
1113
- {
1114
- "scenario": "24mp-defocus-4",
1115
- "requestsPerRepeat": 1000,
1116
- "repeats": 9,
1117
- "warmupRequestsPerPath": 500,
1118
- "paths": [
1119
- {
1120
- "name": "reference",
1121
- "medianMicrosecondsPerRequest": 14.664887,
1122
- "measurements": [
1123
- {
1124
- "durationMs": 15.096052,
1125
- "retainedHeapDeltaBytes": 7363112
1126
- },
1127
- {
1128
- "durationMs": 16.050308,
1129
- "retainedHeapDeltaBytes": -1105056
1130
- },
1131
- {
1132
- "durationMs": 14.664887,
1133
- "retainedHeapDeltaBytes": 7279344
1134
- },
1135
- {
1136
- "durationMs": 14.603857,
1137
- "retainedHeapDeltaBytes": 7280536
1138
- },
1139
- {
1140
- "durationMs": 15.046209,
1141
- "retainedHeapDeltaBytes": -1162896
1142
- },
1143
- {
1144
- "durationMs": 16.232446,
1145
- "retainedHeapDeltaBytes": -1163064
1146
- },
1147
- {
1148
- "durationMs": 14.07622,
1149
- "retainedHeapDeltaBytes": -1162144
1150
- },
1151
- {
1152
- "durationMs": 14.481066,
1153
- "retainedHeapDeltaBytes": -1160064
1154
- },
1155
- {
1156
- "durationMs": 14.050261,
1157
- "retainedHeapDeltaBytes": -1163704
1158
- }
1159
- ]
1160
- },
1161
- {
1162
- "name": "candidate",
1163
- "medianMicrosecondsPerRequest": 13.291163,
1164
- "measurements": [
1165
- {
1166
- "durationMs": 14.724234,
1167
- "retainedHeapDeltaBytes": -6792592
1168
- },
1169
- {
1170
- "durationMs": 14.272809,
1171
- "retainedHeapDeltaBytes": 1507880
1172
- },
1173
- {
1174
- "durationMs": 13.776829,
1175
- "retainedHeapDeltaBytes": -6875984
1176
- },
1177
- {
1178
- "durationMs": 12.991392,
1179
- "retainedHeapDeltaBytes": -6879408
1180
- },
1181
- {
1182
- "durationMs": 12.862232,
1183
- "retainedHeapDeltaBytes": -6931448
1184
- },
1185
- {
1186
- "durationMs": 13.702128,
1187
- "retainedHeapDeltaBytes": 9841304
1188
- },
1189
- {
1190
- "durationMs": 13.033033,
1191
- "retainedHeapDeltaBytes": -6929496
1192
- },
1193
- {
1194
- "durationMs": 13.291163,
1195
- "retainedHeapDeltaBytes": -6928408
1196
- },
1197
- {
1198
- "durationMs": 12.697097,
1199
- "retainedHeapDeltaBytes": -6932720
1200
- }
1201
- ]
1202
- }
1203
- ],
1204
- "candidateToReferenceMedianRatio": 0.9063256334672063
1205
- },
1206
- {
1207
- "scenario": "24mp-defocus-8",
1208
- "requestsPerRepeat": 1000,
1209
- "repeats": 9,
1210
- "warmupRequestsPerPath": 500,
1211
- "paths": [
1212
- {
1213
- "name": "reference",
1214
- "medianMicrosecondsPerRequest": 18.400551,
1215
- "measurements": [
1216
- {
1217
- "durationMs": 18.920427,
1218
- "retainedHeapDeltaBytes": 3531640
1219
- },
1220
- {
1221
- "durationMs": 35.600628,
1222
- "retainedHeapDeltaBytes": -4754072
1223
- },
1224
- {
1225
- "durationMs": 21.381253,
1226
- "retainedHeapDeltaBytes": 3435872
1227
- },
1228
- {
1229
- "durationMs": 19.825942,
1230
- "retainedHeapDeltaBytes": 3448464
1231
- },
1232
- {
1233
- "durationMs": 18.400551,
1234
- "retainedHeapDeltaBytes": -4992392
1235
- },
1236
- {
1237
- "durationMs": 17.920934,
1238
- "retainedHeapDeltaBytes": -4993624
1239
- },
1240
- {
1241
- "durationMs": 17.8026,
1242
- "retainedHeapDeltaBytes": 11782712
1243
- },
1244
- {
1245
- "durationMs": 17.681702,
1246
- "retainedHeapDeltaBytes": 11781704
1247
- },
1248
- {
1249
- "durationMs": 18.028934,
1250
- "retainedHeapDeltaBytes": 11782704
1251
- }
1252
- ]
1253
- },
1254
- {
1255
- "name": "candidate",
1256
- "medianMicrosecondsPerRequest": 15.755614,
1257
- "measurements": [
1258
- {
1259
- "durationMs": 16.632767,
1260
- "retainedHeapDeltaBytes": 1479984
1261
- },
1262
- {
1263
- "durationMs": 16.724983,
1264
- "retainedHeapDeltaBytes": 1391352
1265
- },
1266
- {
1267
- "durationMs": 15.278291,
1268
- "retainedHeapDeltaBytes": 1391608
1269
- },
1270
- {
1271
- "durationMs": 15.755614,
1272
- "retainedHeapDeltaBytes": -6996280
1273
- },
1274
- {
1275
- "durationMs": 15.13531,
1276
- "retainedHeapDeltaBytes": 1336672
1277
- },
1278
- {
1279
- "durationMs": 16.354346,
1280
- "retainedHeapDeltaBytes": 1337728
1281
- },
1282
- {
1283
- "durationMs": 17.74864,
1284
- "retainedHeapDeltaBytes": 1340016
1285
- },
1286
- {
1287
- "durationMs": 15.110003,
1288
- "retainedHeapDeltaBytes": 1335608
1289
- },
1290
- {
1291
- "durationMs": 14.855708,
1292
- "retainedHeapDeltaBytes": 1333552
1293
- }
1294
- ]
1295
- }
1296
- ],
1297
- "candidateToReferenceMedianRatio": 0.8562577283691124
1298
- },
1299
- {
1300
- "scenario": "24mp-defocus-16",
1301
- "requestsPerRepeat": 1000,
1302
- "repeats": 9,
1303
- "warmupRequestsPerPath": 500,
1304
- "paths": [
1305
- {
1306
- "name": "reference",
1307
- "medianMicrosecondsPerRequest": 24.31817,
1308
- "measurements": [
1309
- {
1310
- "durationMs": 25.750781,
1311
- "retainedHeapDeltaBytes": -4169008
1312
- },
1313
- {
1314
- "durationMs": 24.31817,
1315
- "retainedHeapDeltaBytes": 4088816
1316
- },
1317
- {
1318
- "durationMs": 25.233739,
1319
- "retainedHeapDeltaBytes": -4229400
1320
- },
1321
- {
1322
- "durationMs": 31.755012,
1323
- "retainedHeapDeltaBytes": -12695336
1324
- },
1325
- {
1326
- "durationMs": 24.152365,
1327
- "retainedHeapDeltaBytes": 4070376
1328
- },
1329
- {
1330
- "durationMs": 24.317499,
1331
- "retainedHeapDeltaBytes": 4071072
1332
- },
1333
- {
1334
- "durationMs": 28.336571,
1335
- "retainedHeapDeltaBytes": -12704360
1336
- },
1337
- {
1338
- "durationMs": 24.201208,
1339
- "retainedHeapDeltaBytes": 4072952
1340
- },
1341
- {
1342
- "durationMs": 24.208058,
1343
- "retainedHeapDeltaBytes": -12706056
1344
- }
1345
- ]
1346
- },
1347
- {
1348
- "name": "candidate",
1349
- "medianMicrosecondsPerRequest": 19.927941,
1350
- "measurements": [
1351
- {
1352
- "durationMs": 22.016288,
1353
- "retainedHeapDeltaBytes": 1190192
1354
- },
1355
- {
1356
- "durationMs": 24.352481,
1357
- "retainedHeapDeltaBytes": 1236352
1358
- },
1359
- {
1360
- "durationMs": 19.927941,
1361
- "retainedHeapDeltaBytes": 1100088
1362
- },
1363
- {
1364
- "durationMs": 23.973453,
1365
- "retainedHeapDeltaBytes": 9670280
1366
- },
1367
- {
1368
- "durationMs": 19.605196,
1369
- "retainedHeapDeltaBytes": -15719368
1370
- },
1371
- {
1372
- "durationMs": 19.819121,
1373
- "retainedHeapDeltaBytes": 1063928
1374
- },
1375
- {
1376
- "durationMs": 20.408049,
1377
- "retainedHeapDeltaBytes": 1057664
1378
- },
1379
- {
1380
- "durationMs": 19.840453,
1381
- "retainedHeapDeltaBytes": -15711432
1382
- },
1383
- {
1384
- "durationMs": 19.216313,
1385
- "retainedHeapDeltaBytes": 1056256
1386
- }
1387
- ]
1388
- }
1389
- ],
1390
- "candidateToReferenceMedianRatio": 0.819467130955989
1391
- },
1392
- {
1393
- "scenario": "24mp-mixed-16-per-kind",
1394
- "requestsPerRepeat": 1000,
1395
- "repeats": 9,
1396
- "warmupRequestsPerPath": 500,
1397
- "paths": [
1398
- {
1399
- "name": "reference",
1400
- "medianMicrosecondsPerRequest": 53.540055,
1401
- "measurements": [
1402
- {
1403
- "durationMs": 59.68923,
1404
- "retainedHeapDeltaBytes": 4879336
1405
- },
1406
- {
1407
- "durationMs": 52.246129,
1408
- "retainedHeapDeltaBytes": 5397712
1409
- },
1410
- {
1411
- "durationMs": 53.719339,
1412
- "retainedHeapDeltaBytes": 4765120
1413
- },
1414
- {
1415
- "durationMs": 53.616267,
1416
- "retainedHeapDeltaBytes": 5323928
1417
- },
1418
- {
1419
- "durationMs": 53.540055,
1420
- "retainedHeapDeltaBytes": 5326056
1421
- },
1422
- {
1423
- "durationMs": 52.742009,
1424
- "retainedHeapDeltaBytes": -11433832
1425
- },
1426
- {
1427
- "durationMs": 54.322617,
1428
- "retainedHeapDeltaBytes": -11443416
1429
- },
1430
- {
1431
- "durationMs": 52.574433,
1432
- "retainedHeapDeltaBytes": 5327816
1433
- },
1434
- {
1435
- "durationMs": 52.504449,
1436
- "retainedHeapDeltaBytes": 5328096
1437
- }
1438
- ]
1439
- },
1440
- {
1441
- "name": "candidate",
1442
- "medianMicrosecondsPerRequest": 48.307265,
1443
- "measurements": [
1444
- {
1445
- "durationMs": 54.808754,
1446
- "retainedHeapDeltaBytes": -6544640
1447
- },
1448
- {
1449
- "durationMs": 46.907382,
1450
- "retainedHeapDeltaBytes": -6019656
1451
- },
1452
- {
1453
- "durationMs": 59.785857,
1454
- "retainedHeapDeltaBytes": -6668528
1455
- },
1456
- {
1457
- "durationMs": 49.732526,
1458
- "retainedHeapDeltaBytes": 2304992
1459
- },
1460
- {
1461
- "durationMs": 47.288714,
1462
- "retainedHeapDeltaBytes": 2306496
1463
- },
1464
- {
1465
- "durationMs": 48.307265,
1466
- "retainedHeapDeltaBytes": 2309352
1467
- },
1468
- {
1469
- "durationMs": 48.62889,
1470
- "retainedHeapDeltaBytes": 2313096
1471
- },
1472
- {
1473
- "durationMs": 47.453857,
1474
- "retainedHeapDeltaBytes": 2304712
1475
- },
1476
- {
1477
- "durationMs": 47.66639,
1478
- "retainedHeapDeltaBytes": 2309632
1479
- }
1480
- ]
1481
- }
1482
- ],
1483
- "candidateToReferenceMedianRatio": 0.9022640152312134
1484
- },
1485
- {
1486
- "scenario": "24mp-staged-portrait-mixed",
1487
- "requestsPerRepeat": 1000,
1488
- "repeats": 9,
1489
- "warmupRequestsPerPath": 500,
1490
- "paths": [
1491
- {
1492
- "name": "reference",
1493
- "medianMicrosecondsPerRequest": 93.996213,
1494
- "measurements": [
1495
- {
1496
- "durationMs": 97.372667,
1497
- "retainedHeapDeltaBytes": -612576
1498
- },
1499
- {
1500
- "durationMs": 97.285078,
1501
- "retainedHeapDeltaBytes": -303024
1502
- },
1503
- {
1504
- "durationMs": 93.996213,
1505
- "retainedHeapDeltaBytes": 5503848
1506
- },
1507
- {
1508
- "durationMs": 94.808053,
1509
- "retainedHeapDeltaBytes": -10077856
1510
- },
1511
- {
1512
- "durationMs": 91.079875,
1513
- "retainedHeapDeltaBytes": 6247744
1514
- },
1515
- {
1516
- "durationMs": 89.72574,
1517
- "retainedHeapDeltaBytes": 5639416
1518
- },
1519
- {
1520
- "durationMs": 102.436568,
1521
- "retainedHeapDeltaBytes": 6270232
1522
- },
1523
- {
1524
- "durationMs": 90.626458,
1525
- "retainedHeapDeltaBytes": 7551080
1526
- },
1527
- {
1528
- "durationMs": 90.854042,
1529
- "retainedHeapDeltaBytes": -9203912
1530
- }
1531
- ]
1532
- },
1533
- {
1534
- "name": "candidate",
1535
- "medianMicrosecondsPerRequest": 86.80912299999999,
1536
- "measurements": [
1537
- {
1538
- "durationMs": 97.355867,
1539
- "retainedHeapDeltaBytes": 4771552
1540
- },
1541
- {
1542
- "durationMs": 93.438109,
1543
- "retainedHeapDeltaBytes": -3302240
1544
- },
1545
- {
1546
- "durationMs": 86.809123,
1547
- "retainedHeapDeltaBytes": -5985416
1548
- },
1549
- {
1550
- "durationMs": 88.566642,
1551
- "retainedHeapDeltaBytes": 3674208
1552
- },
1553
- {
1554
- "durationMs": 86.697198,
1555
- "retainedHeapDeltaBytes": -13539648
1556
- },
1557
- {
1558
- "durationMs": 86.380632,
1559
- "retainedHeapDeltaBytes": 2618456
1560
- },
1561
- {
1562
- "durationMs": 87.325274,
1563
- "retainedHeapDeltaBytes": 3223688
1564
- },
1565
- {
1566
- "durationMs": 86.132536,
1567
- "retainedHeapDeltaBytes": 4541448
1568
- },
1569
- {
1570
- "durationMs": 84.465329,
1571
- "retainedHeapDeltaBytes": 4522840
1572
- }
1573
- ]
1574
- }
1575
- ],
1576
- "candidateToReferenceMedianRatio": 0.9235385153229525
1577
- }
1578
- ],
1579
- "allocationProfiles": [],
1580
- "preparationProbe": {
1581
- "kind": "isolated-three-scalar-object-freeze",
1582
- "preparationsPerRepeat": 100000,
1583
- "nanosecondsPerPreparation": [
1584
- 45.605,
1585
- 56.5337,
1586
- 38.28231,
1587
- 46.38794,
1588
- 41.64576,
1589
- 39.2298,
1590
- 39.20997,
1591
- 41.542,
1592
- 39.37282
1593
- ],
1594
- "medianNanosecondsPerPreparation": 41.542,
1595
- "limitation": "Synthetic isolated probe; JIT/escape behavior can differ inside the whole request."
1596
- },
1597
- "sink": 53131313.13083108,
1598
- "limitations": [
1599
- "Paired developer POC request shapes on shared infrastructure; not observed product call frequency or browser latency",
1600
- "POC is analytical; 24 MP dimensions do not execute 24 million image samples",
1601
- "Net retained heap is not allocation count; separately instrumented heap sampling is statistical, not an exact allocation counter",
1602
- "Source SHA context is operator-attested; source fingerprints identify the candidate change",
1603
- "No full production radiometry/serialization or browser performance claim"
1604
- ]
1605
- }
1606
- ],
1607
- "gcAssistedRun": {
1608
- "benchmark": "poc-request-local-defocus-projection-reuse",
1609
- "benchmarkVersion": 2,
1610
- "referenceCommit": "c1374c31473f893310d1ce4f0d5a737aaba43ab5",
1611
- "candidateBaseCommit": "c1374c31473f893310d1ce4f0d5a737aaba43ab5",
1612
- "candidateSources": [
1613
- {
1614
- "path": "src/optics/depth-of-field.ts",
1615
- "sha256": "5a947cac46215281bde539333879f9411e2c8cdafaaae04b471a4b3bbe676f06"
1616
- },
1617
- {
1618
- "path": "src/simulation/poc-simulation.ts",
1619
- "sha256": "7d6f1a8bc7fe954744009965f53d9bf1ff39c08a184a13cc6983b59d99bd73cd"
1620
- }
1621
- ],
1622
- "buildMethod": "tsc",
1623
- "engineApiVersion": "0.103.0",
1624
- "pocApiVersion": "0.20.0",
1625
- "nodeVersion": "v24.19.0",
1626
- "v8Version": "13.6.233.17-node.51",
1627
- "platform": "linux",
1628
- "arch": "x64",
1629
- "cpuModel": "AMD EPYC 9V74 80-Core Processor",
1630
- "logicalCpuCount": 9,
1631
- "forcedGc": true,
1632
- "results": [
1633
- {
1634
- "scenario": "24mp-base",
1635
- "requestsPerRepeat": 1000,
1636
- "repeats": 9,
1637
- "warmupRequestsPerPath": 500,
1638
- "paths": [
1639
- {
1640
- "name": "reference",
1641
- "medianMicrosecondsPerRequest": 14.575694,
1642
- "measurements": [
1643
- {
1644
- "durationMs": 14.596025,
1645
- "retainedHeapDeltaBytes": -9496
1646
- },
1647
- {
1648
- "durationMs": 14.45103,
1649
- "retainedHeapDeltaBytes": 512
1650
- },
1651
- {
1652
- "durationMs": 14.575694,
1653
- "retainedHeapDeltaBytes": 1008
1654
- },
1655
- {
1656
- "durationMs": 15.941996,
1657
- "retainedHeapDeltaBytes": -472
1658
- },
1659
- {
1660
- "durationMs": 14.17446,
1661
- "retainedHeapDeltaBytes": 856
1662
- },
1663
- {
1664
- "durationMs": 14.831538,
1665
- "retainedHeapDeltaBytes": 70360
1666
- },
1667
- {
1668
- "durationMs": 15.747618,
1669
- "retainedHeapDeltaBytes": 1216
1670
- },
1671
- {
1672
- "durationMs": 14.142933,
1673
- "retainedHeapDeltaBytes": -1008
1674
- },
1675
- {
1676
- "durationMs": 14.332923,
1677
- "retainedHeapDeltaBytes": 79232
1678
- }
1679
- ]
1680
- },
1681
- {
1682
- "name": "candidate",
1683
- "medianMicrosecondsPerRequest": 14.41682,
1684
- "measurements": [
1685
- {
1686
- "durationMs": 15.355974,
1687
- "retainedHeapDeltaBytes": 88216
1688
- },
1689
- {
1690
- "durationMs": 14.760707,
1691
- "retainedHeapDeltaBytes": 512
1692
- },
1693
- {
1694
- "durationMs": 14.41682,
1695
- "retainedHeapDeltaBytes": -472
1696
- },
1697
- {
1698
- "durationMs": 14.097275,
1699
- "retainedHeapDeltaBytes": 1264
1700
- },
1701
- {
1702
- "durationMs": 14.06648,
1703
- "retainedHeapDeltaBytes": 8392
1704
- },
1705
- {
1706
- "durationMs": 14.302598,
1707
- "retainedHeapDeltaBytes": -672
1708
- },
1709
- {
1710
- "durationMs": 14.451869,
1711
- "retainedHeapDeltaBytes": -472
1712
- },
1713
- {
1714
- "durationMs": 14.618914,
1715
- "retainedHeapDeltaBytes": 80872
1716
- },
1717
- {
1718
- "durationMs": 14.148511,
1719
- "retainedHeapDeltaBytes": 1904
1720
- }
1721
- ]
1722
- }
1723
- ],
1724
- "candidateToReferenceMedianRatio": 0.9891000730394037
1725
- },
1726
- {
1727
- "scenario": "24mp-defocus-1",
1728
- "requestsPerRepeat": 1000,
1729
- "repeats": 9,
1730
- "warmupRequestsPerPath": 500,
1731
- "paths": [
1732
- {
1733
- "name": "reference",
1734
- "medianMicrosecondsPerRequest": 15.606461,
1735
- "measurements": [
1736
- {
1737
- "durationMs": 12.579804,
1738
- "retainedHeapDeltaBytes": -5392
1739
- },
1740
- {
1741
- "durationMs": 16.277432,
1742
- "retainedHeapDeltaBytes": 512
1743
- },
1744
- {
1745
- "durationMs": 16.947543,
1746
- "retainedHeapDeltaBytes": 1336
1747
- },
1748
- {
1749
- "durationMs": 15.606461,
1750
- "retainedHeapDeltaBytes": -544
1751
- },
1752
- {
1753
- "durationMs": 15.233511,
1754
- "retainedHeapDeltaBytes": 1336
1755
- },
1756
- {
1757
- "durationMs": 15.105662,
1758
- "retainedHeapDeltaBytes": -1240
1759
- },
1760
- {
1761
- "durationMs": 16.419639,
1762
- "retainedHeapDeltaBytes": 1336
1763
- },
1764
- {
1765
- "durationMs": 15.024282,
1766
- "retainedHeapDeltaBytes": -624
1767
- },
1768
- {
1769
- "durationMs": 15.691746,
1770
- "retainedHeapDeltaBytes": 560
1771
- }
1772
- ]
1773
- },
1774
- {
1775
- "name": "candidate",
1776
- "medianMicrosecondsPerRequest": 15.200933,
1777
- "measurements": [
1778
- {
1779
- "durationMs": 13.528611,
1780
- "retainedHeapDeltaBytes": -118192
1781
- },
1782
- {
1783
- "durationMs": 15.669896,
1784
- "retainedHeapDeltaBytes": 256
1785
- },
1786
- {
1787
- "durationMs": 15.200933,
1788
- "retainedHeapDeltaBytes": -736
1789
- },
1790
- {
1791
- "durationMs": 19.148393,
1792
- "retainedHeapDeltaBytes": 1336
1793
- },
1794
- {
1795
- "durationMs": 14.901782,
1796
- "retainedHeapDeltaBytes": 1120
1797
- },
1798
- {
1799
- "durationMs": 15.221183,
1800
- "retainedHeapDeltaBytes": -57192
1801
- },
1802
- {
1803
- "durationMs": 15.264246,
1804
- "retainedHeapDeltaBytes": -544
1805
- },
1806
- {
1807
- "durationMs": 15.073555,
1808
- "retainedHeapDeltaBytes": 1448
1809
- },
1810
- {
1811
- "durationMs": 14.895342,
1812
- "retainedHeapDeltaBytes": 592
1813
- }
1814
- ]
1815
- }
1816
- ],
1817
- "candidateToReferenceMedianRatio": 0.9740153773491632
1818
- },
1819
- {
1820
- "scenario": "24mp-defocus-2",
1821
- "requestsPerRepeat": 1000,
1822
- "repeats": 9,
1823
- "warmupRequestsPerPath": 500,
1824
- "paths": [
1825
- {
1826
- "name": "reference",
1827
- "medianMicrosecondsPerRequest": 16.882042,
1828
- "measurements": [
1829
- {
1830
- "durationMs": 16.911846,
1831
- "retainedHeapDeltaBytes": 1056
1832
- },
1833
- {
1834
- "durationMs": 18.61184,
1835
- "retainedHeapDeltaBytes": -3168
1836
- },
1837
- {
1838
- "durationMs": 16.882042,
1839
- "retainedHeapDeltaBytes": 512
1840
- },
1841
- {
1842
- "durationMs": 22.514941,
1843
- "retainedHeapDeltaBytes": 69896
1844
- },
1845
- {
1846
- "durationMs": 16.342996,
1847
- "retainedHeapDeltaBytes": 1080
1848
- },
1849
- {
1850
- "durationMs": 16.510693,
1851
- "retainedHeapDeltaBytes": -1000
1852
- },
1853
- {
1854
- "durationMs": 17.148835,
1855
- "retainedHeapDeltaBytes": 79352
1856
- },
1857
- {
1858
- "durationMs": 16.081311,
1859
- "retainedHeapDeltaBytes": -512
1860
- },
1861
- {
1862
- "durationMs": 16.20304,
1863
- "retainedHeapDeltaBytes": 560
1864
- }
1865
- ]
1866
- },
1867
- {
1868
- "name": "candidate",
1869
- "medianMicrosecondsPerRequest": 16.537594,
1870
- "measurements": [
1871
- {
1872
- "durationMs": 16.659104,
1873
- "retainedHeapDeltaBytes": 1576
1874
- },
1875
- {
1876
- "durationMs": 20.761517,
1877
- "retainedHeapDeltaBytes": 7616
1878
- },
1879
- {
1880
- "durationMs": 15.813438,
1881
- "retainedHeapDeltaBytes": 16056
1882
- },
1883
- {
1884
- "durationMs": 16.937964,
1885
- "retainedHeapDeltaBytes": 11864
1886
- },
1887
- {
1888
- "durationMs": 15.886704,
1889
- "retainedHeapDeltaBytes": -544
1890
- },
1891
- {
1892
- "durationMs": 16.405098,
1893
- "retainedHeapDeltaBytes": 80816
1894
- },
1895
- {
1896
- "durationMs": 16.537594,
1897
- "retainedHeapDeltaBytes": -968
1898
- },
1899
- {
1900
- "durationMs": 16.794432,
1901
- "retainedHeapDeltaBytes": 1448
1902
- },
1903
- {
1904
- "durationMs": 15.980623,
1905
- "retainedHeapDeltaBytes": 592
1906
- }
1907
- ]
1908
- }
1909
- ],
1910
- "candidateToReferenceMedianRatio": 0.9795967810055205
1911
- },
1912
- {
1913
- "scenario": "24mp-defocus-4",
1914
- "requestsPerRepeat": 1000,
1915
- "repeats": 9,
1916
- "warmupRequestsPerPath": 500,
1917
- "paths": [
1918
- {
1919
- "name": "reference",
1920
- "medianMicrosecondsPerRequest": 19.197384,
1921
- "measurements": [
1922
- {
1923
- "durationMs": 19.197384,
1924
- "retainedHeapDeltaBytes": 512
1925
- },
1926
- {
1927
- "durationMs": 24.710861,
1928
- "retainedHeapDeltaBytes": 1320
1929
- },
1930
- {
1931
- "durationMs": 19.404228,
1932
- "retainedHeapDeltaBytes": -816
1933
- },
1934
- {
1935
- "durationMs": 19.757752,
1936
- "retainedHeapDeltaBytes": -800
1937
- },
1938
- {
1939
- "durationMs": 18.363215,
1940
- "retainedHeapDeltaBytes": 1336
1941
- },
1942
- {
1943
- "durationMs": 18.197381,
1944
- "retainedHeapDeltaBytes": -544
1945
- },
1946
- {
1947
- "durationMs": 18.831676,
1948
- "retainedHeapDeltaBytes": 1336
1949
- },
1950
- {
1951
- "durationMs": 21.319003,
1952
- "retainedHeapDeltaBytes": -736
1953
- },
1954
- {
1955
- "durationMs": 18.500578,
1956
- "retainedHeapDeltaBytes": 560
1957
- }
1958
- ]
1959
- },
1960
- {
1961
- "name": "candidate",
1962
- "medianMicrosecondsPerRequest": 18.06829,
1963
- "measurements": [
1964
- {
1965
- "durationMs": 19.199907,
1966
- "retainedHeapDeltaBytes": 512
1967
- },
1968
- {
1969
- "durationMs": 19.082384,
1970
- "retainedHeapDeltaBytes": 512
1971
- },
1972
- {
1973
- "durationMs": 18.06829,
1974
- "retainedHeapDeltaBytes": 512
1975
- },
1976
- {
1977
- "durationMs": 19.925994,
1978
- "retainedHeapDeltaBytes": 11864
1979
- },
1980
- {
1981
- "durationMs": 17.865752,
1982
- "retainedHeapDeltaBytes": -544
1983
- },
1984
- {
1985
- "durationMs": 17.869076,
1986
- "retainedHeapDeltaBytes": 1336
1987
- },
1988
- {
1989
- "durationMs": 18.892886,
1990
- "retainedHeapDeltaBytes": 9984
1991
- },
1992
- {
1993
- "durationMs": 17.567973,
1994
- "retainedHeapDeltaBytes": 11864
1995
- },
1996
- {
1997
- "durationMs": 17.780767,
1998
- "retainedHeapDeltaBytes": 11088
1999
- }
2000
- ]
2001
- }
2002
- ],
2003
- "candidateToReferenceMedianRatio": 0.9411850072905767
2004
- },
2005
- {
2006
- "scenario": "24mp-defocus-8",
2007
- "requestsPerRepeat": 1000,
2008
- "repeats": 9,
2009
- "warmupRequestsPerPath": 500,
2010
- "paths": [
2011
- {
2012
- "name": "reference",
2013
- "medianMicrosecondsPerRequest": 22.414619,
2014
- "measurements": [
2015
- {
2016
- "durationMs": 23.234841,
2017
- "retainedHeapDeltaBytes": 512
2018
- },
2019
- {
2020
- "durationMs": 22.225935,
2021
- "retainedHeapDeltaBytes": 81608
2022
- },
2023
- {
2024
- "durationMs": 22.777057,
2025
- "retainedHeapDeltaBytes": 1320
2026
- },
2027
- {
2028
- "durationMs": 22.575977,
2029
- "retainedHeapDeltaBytes": -800
2030
- },
2031
- {
2032
- "durationMs": 25.041573,
2033
- "retainedHeapDeltaBytes": 78296
2034
- },
2035
- {
2036
- "durationMs": 21.549904,
2037
- "retainedHeapDeltaBytes": -800
2038
- },
2039
- {
2040
- "durationMs": 22.414619,
2041
- "retainedHeapDeltaBytes": 1080
2042
- },
2043
- {
2044
- "durationMs": 21.739422,
2045
- "retainedHeapDeltaBytes": -512
2046
- },
2047
- {
2048
- "durationMs": 22.031323,
2049
- "retainedHeapDeltaBytes": 69568
2050
- }
2051
- ]
2052
- },
2053
- {
2054
- "name": "candidate",
2055
- "medianMicrosecondsPerRequest": 21.338207,
2056
- "measurements": [
2057
- {
2058
- "durationMs": 21.219823,
2059
- "retainedHeapDeltaBytes": 12144
2060
- },
2061
- {
2062
- "durationMs": 20.771447,
2063
- "retainedHeapDeltaBytes": 92456
2064
- },
2065
- {
2066
- "durationMs": 21.338207,
2067
- "retainedHeapDeltaBytes": 9968
2068
- },
2069
- {
2070
- "durationMs": 22.612731,
2071
- "retainedHeapDeltaBytes": 11864
2072
- },
2073
- {
2074
- "durationMs": 23.46715,
2075
- "retainedHeapDeltaBytes": -70136
2076
- },
2077
- {
2078
- "durationMs": 19.843619,
2079
- "retainedHeapDeltaBytes": 11864
2080
- },
2081
- {
2082
- "durationMs": 20.850703,
2083
- "retainedHeapDeltaBytes": -544
2084
- },
2085
- {
2086
- "durationMs": 28.846352,
2087
- "retainedHeapDeltaBytes": 1368
2088
- },
2089
- {
2090
- "durationMs": 25.329807,
2091
- "retainedHeapDeltaBytes": -68672
2092
- }
2093
- ]
2094
- }
2095
- ],
2096
- "candidateToReferenceMedianRatio": 0.9519772341434848
2097
- },
2098
- {
2099
- "scenario": "24mp-defocus-16",
2100
- "requestsPerRepeat": 1000,
2101
- "repeats": 9,
2102
- "warmupRequestsPerPath": 500,
2103
- "paths": [
2104
- {
2105
- "name": "reference",
2106
- "medianMicrosecondsPerRequest": 31.222049,
2107
- "measurements": [
2108
- {
2109
- "durationMs": 31.222049,
2110
- "retainedHeapDeltaBytes": 1112
2111
- },
2112
- {
2113
- "durationMs": 33.467967,
2114
- "retainedHeapDeltaBytes": -3704
2115
- },
2116
- {
2117
- "durationMs": 30.579643,
2118
- "retainedHeapDeltaBytes": 20184
2119
- },
2120
- {
2121
- "durationMs": 30.490927,
2122
- "retainedHeapDeltaBytes": -800
2123
- },
2124
- {
2125
- "durationMs": 31.424784,
2126
- "retainedHeapDeltaBytes": -12392
2127
- },
2128
- {
2129
- "durationMs": 29.031675,
2130
- "retainedHeapDeltaBytes": -800
2131
- },
2132
- {
2133
- "durationMs": 30.335938,
2134
- "retainedHeapDeltaBytes": 1336
2135
- },
2136
- {
2137
- "durationMs": 31.68736,
2138
- "retainedHeapDeltaBytes": -112
2139
- },
2140
- {
2141
- "durationMs": 31.600562,
2142
- "retainedHeapDeltaBytes": 4496
2143
- }
2144
- ]
2145
- },
2146
- {
2147
- "name": "candidate",
2148
- "medianMicrosecondsPerRequest": 26.74303,
2149
- "measurements": [
2150
- {
2151
- "durationMs": 27.012227,
2152
- "retainedHeapDeltaBytes": 10496
2153
- },
2154
- {
2155
- "durationMs": 30.013488,
2156
- "retainedHeapDeltaBytes": 12808
2157
- },
2158
- {
2159
- "durationMs": 27.049862,
2160
- "retainedHeapDeltaBytes": 10000
2161
- },
2162
- {
2163
- "durationMs": 26.74303,
2164
- "retainedHeapDeltaBytes": 11864
2165
- },
2166
- {
2167
- "durationMs": 26.331764,
2168
- "retainedHeapDeltaBytes": 78728
2169
- },
2170
- {
2171
- "durationMs": 24.94508,
2172
- "retainedHeapDeltaBytes": 14056
2173
- },
2174
- {
2175
- "durationMs": 25.67761,
2176
- "retainedHeapDeltaBytes": 7424
2177
- },
2178
- {
2179
- "durationMs": 25.391818,
2180
- "retainedHeapDeltaBytes": 13520
2181
- },
2182
- {
2183
- "durationMs": 32.443581,
2184
- "retainedHeapDeltaBytes": 88336
2185
- }
2186
- ]
2187
- }
2188
- ],
2189
- "candidateToReferenceMedianRatio": 0.856543079539719
2190
- },
2191
- {
2192
- "scenario": "24mp-mixed-16-per-kind",
2193
- "requestsPerRepeat": 1000,
2194
- "repeats": 9,
2195
- "warmupRequestsPerPath": 500,
2196
- "paths": [
2197
- {
2198
- "name": "reference",
2199
- "medianMicrosecondsPerRequest": 62.871059,
2200
- "measurements": [
2201
- {
2202
- "durationMs": 63.822159,
2203
- "retainedHeapDeltaBytes": -5904
2204
- },
2205
- {
2206
- "durationMs": 63.143167,
2207
- "retainedHeapDeltaBytes": 432
2208
- },
2209
- {
2210
- "durationMs": 62.617313,
2211
- "retainedHeapDeltaBytes": -760
2212
- },
2213
- {
2214
- "durationMs": 69.284811,
2215
- "retainedHeapDeltaBytes": -1096
2216
- },
2217
- {
2218
- "durationMs": 62.871059,
2219
- "retainedHeapDeltaBytes": 1096
2220
- },
2221
- {
2222
- "durationMs": 60.816589,
2223
- "retainedHeapDeltaBytes": 848
2224
- },
2225
- {
2226
- "durationMs": 59.090214,
2227
- "retainedHeapDeltaBytes": 5696
2228
- },
2229
- {
2230
- "durationMs": 59.424146,
2231
- "retainedHeapDeltaBytes": -70600
2232
- },
2233
- {
2234
- "durationMs": 63.396273,
2235
- "retainedHeapDeltaBytes": -3376
2236
- }
2237
- ]
2238
- },
2239
- {
2240
- "name": "candidate",
2241
- "medianMicrosecondsPerRequest": 55.339531,
2242
- "measurements": [
2243
- {
2244
- "durationMs": 60.326699,
2245
- "retainedHeapDeltaBytes": 7072
2246
- },
2247
- {
2248
- "durationMs": 55.339531,
2249
- "retainedHeapDeltaBytes": 1352
2250
- },
2251
- {
2252
- "durationMs": 54.064582,
2253
- "retainedHeapDeltaBytes": -1096
2254
- },
2255
- {
2256
- "durationMs": 56.492824,
2257
- "retainedHeapDeltaBytes": 9648
2258
- },
2259
- {
2260
- "durationMs": 57.299774,
2261
- "retainedHeapDeltaBytes": 10832
2262
- },
2263
- {
2264
- "durationMs": 57.465859,
2265
- "retainedHeapDeltaBytes": 12208
2266
- },
2267
- {
2268
- "durationMs": 53.884349,
2269
- "retainedHeapDeltaBytes": 5232
2270
- },
2271
- {
2272
- "durationMs": 52.740442,
2273
- "retainedHeapDeltaBytes": 66112
2274
- },
2275
- {
2276
- "durationMs": 54.419677,
2277
- "retainedHeapDeltaBytes": -1320
2278
- }
2279
- ]
2280
- }
2281
- ],
2282
- "candidateToReferenceMedianRatio": 0.8802067577706938
2283
- },
2284
- {
2285
- "scenario": "24mp-staged-portrait-mixed",
2286
- "requestsPerRepeat": 1000,
2287
- "repeats": 9,
2288
- "warmupRequestsPerPath": 500,
2289
- "paths": [
2290
- {
2291
- "name": "reference",
2292
- "medianMicrosecondsPerRequest": 110.196026,
2293
- "measurements": [
2294
- {
2295
- "durationMs": 106.088979,
2296
- "retainedHeapDeltaBytes": 20384
2297
- },
2298
- {
2299
- "durationMs": 111.383059,
2300
- "retainedHeapDeltaBytes": -216
2301
- },
2302
- {
2303
- "durationMs": 112.38833,
2304
- "retainedHeapDeltaBytes": 99040
2305
- },
2306
- {
2307
- "durationMs": 118.839324,
2308
- "retainedHeapDeltaBytes": 25960
2309
- },
2310
- {
2311
- "durationMs": 109.748246,
2312
- "retainedHeapDeltaBytes": 24904
2313
- },
2314
- {
2315
- "durationMs": 105.772433,
2316
- "retainedHeapDeltaBytes": 83040
2317
- },
2318
- {
2319
- "durationMs": 110.196026,
2320
- "retainedHeapDeltaBytes": 31632
2321
- },
2322
- {
2323
- "durationMs": 105.239158,
2324
- "retainedHeapDeltaBytes": 9672
2325
- },
2326
- {
2327
- "durationMs": 112.854576,
2328
- "retainedHeapDeltaBytes": 1144
2329
- }
2330
- ]
2331
- },
2332
- {
2333
- "name": "candidate",
2334
- "medianMicrosecondsPerRequest": 106.858965,
2335
- "measurements": [
2336
- {
2337
- "durationMs": 114.963494,
2338
- "retainedHeapDeltaBytes": 33840
2339
- },
2340
- {
2341
- "durationMs": 106.073096,
2342
- "retainedHeapDeltaBytes": 11616
2343
- },
2344
- {
2345
- "durationMs": 113.982058,
2346
- "retainedHeapDeltaBytes": 82856
2347
- },
2348
- {
2349
- "durationMs": 107.797749,
2350
- "retainedHeapDeltaBytes": 39584
2351
- },
2352
- {
2353
- "durationMs": 105.378993,
2354
- "retainedHeapDeltaBytes": 31104
2355
- },
2356
- {
2357
- "durationMs": 102.871516,
2358
- "retainedHeapDeltaBytes": 10296
2359
- },
2360
- {
2361
- "durationMs": 100.614128,
2362
- "retainedHeapDeltaBytes": 30008
2363
- },
2364
- {
2365
- "durationMs": 106.858965,
2366
- "retainedHeapDeltaBytes": 15872
2367
- },
2368
- {
2369
- "durationMs": 107.764171,
2370
- "retainedHeapDeltaBytes": 11392
2371
- }
2372
- ]
2373
- }
2374
- ],
2375
- "candidateToReferenceMedianRatio": 0.9697170476909938
2376
- }
2377
- ],
2378
- "allocationProfiles": [
2379
- {
2380
- "path": "reference",
2381
- "scenario": "24mp-staged-portrait-mixed",
2382
- "requests": 2000,
2383
- "samplingIntervalBytes": 32768,
2384
- "sampledBytes": 593837880,
2385
- "thinLensInclusiveSampledBytes": 177301960
2386
- },
2387
- {
2388
- "path": "candidate",
2389
- "scenario": "24mp-staged-portrait-mixed",
2390
- "requests": 2000,
2391
- "samplingIntervalBytes": 32768,
2392
- "sampledBytes": 551945312,
2393
- "thinLensInclusiveSampledBytes": 138224096
2394
- }
2395
- ],
2396
- "preparationProbe": {
2397
- "kind": "isolated-three-scalar-object-freeze",
2398
- "preparationsPerRepeat": 100000,
2399
- "nanosecondsPerPreparation": [
2400
- 50.74982,
2401
- 66.41793,
2402
- 39.37936,
2403
- 65.76266,
2404
- 49.06865,
2405
- 45.86773,
2406
- 40.7636,
2407
- 42.03248,
2408
- 40.95008
2409
- ],
2410
- "medianNanosecondsPerPreparation": 45.86773,
2411
- "limitation": "Synthetic isolated probe; JIT/escape behavior can differ inside the whole request."
2412
- },
2413
- "sink": 53333333.33284195,
2414
- "limitations": [
2415
- "Paired developer POC request shapes on shared infrastructure; not observed product call frequency or browser latency",
2416
- "POC is analytical; 24 MP dimensions do not execute 24 million image samples",
2417
- "Net retained heap is not allocation count; separately instrumented heap sampling is statistical, not an exact allocation counter",
2418
- "Source SHA context is operator-attested; source fingerprints identify the candidate change",
2419
- "No full production radiometry/serialization or browser performance claim"
2420
- ]
2421
- },
2422
- "measurementIsolation": "Final recorded runs executed sequentially after check/coverage completed; no concurrent task benchmarks or tests. Shared host activity remains uncontrolled."
2423
- }