@photivra/engine 1.0.1 → 1.2.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 (244) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/CITATION.cff +1 -1
  3. package/NOTICE +29 -0
  4. package/README.md +8 -6
  5. package/THIRD_PARTY.md +10 -0
  6. package/dist/core/version.d.ts +1 -1
  7. package/dist/core/version.js +1 -1
  8. package/dist/index.d.ts +10 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +5 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/optics/complex-pupil-psf.d.ts +6 -0
  13. package/dist/optics/complex-pupil-psf.d.ts.map +1 -1
  14. package/dist/optics/complex-pupil-psf.js +10 -7
  15. package/dist/optics/complex-pupil-psf.js.map +1 -1
  16. package/dist/output/native-capture-sdr.d.ts +78 -0
  17. package/dist/output/native-capture-sdr.d.ts.map +1 -0
  18. package/dist/output/native-capture-sdr.js +171 -0
  19. package/dist/output/native-capture-sdr.js.map +1 -0
  20. package/dist/output/print-contrast-reference.d.ts +47 -0
  21. package/dist/output/print-contrast-reference.d.ts.map +1 -0
  22. package/dist/output/print-contrast-reference.js +95 -0
  23. package/dist/output/print-contrast-reference.js.map +1 -0
  24. package/dist/output/print-detail.d.ts +113 -0
  25. package/dist/output/print-detail.d.ts.map +1 -0
  26. package/dist/output/print-detail.js +224 -0
  27. package/dist/output/print-detail.js.map +1 -0
  28. package/dist/output/print-plan.d.ts +138 -0
  29. package/dist/output/print-plan.d.ts.map +1 -0
  30. package/dist/output/print-plan.js +305 -0
  31. package/dist/output/print-plan.js.map +1 -0
  32. package/dist/output/print-region-statistics.d.ts +92 -0
  33. package/dist/output/print-region-statistics.d.ts.map +1 -0
  34. package/dist/output/print-region-statistics.js +300 -0
  35. package/dist/output/print-region-statistics.js.map +1 -0
  36. package/docs/API_REFERENCE.md +89 -1
  37. package/docs/API_STYLE.md +1 -1
  38. package/docs/ARCHITECTURE.md +1 -1
  39. package/docs/AUTOMATION_COORDINATION.md +1 -1
  40. package/docs/CAPTURE_COLOR.md +1 -1
  41. package/docs/CAPTURE_CORRECTED_SDR.md +1 -1
  42. package/docs/CAPTURE_EXPORT_METADATA.md +1 -1
  43. package/docs/CAPTURE_SDR.md +3 -1
  44. package/docs/DEVELOPERS.md +12 -4
  45. package/docs/DIGITAL_OPTICS_FOUNDATION.md +1 -1
  46. package/docs/ENVIRONMENT_RAW_CAPTURE.md +1 -1
  47. package/docs/EXPORT_ACCEPTANCE.md +1 -1
  48. package/docs/GENERIC_TIER_PRESETS.md +1 -1
  49. package/docs/GEOMETRIC_PREPARATION_REUSE.md +1 -1
  50. package/docs/IMAGE_FORMATION.md +1 -1
  51. package/docs/LINEAR_CAPTURE_ENCODING.md +1 -1
  52. package/docs/MOTION_AND_SIGNAL.md +1 -1
  53. package/docs/NATIVE_CAPTURE_SDR.md +70 -0
  54. package/docs/NATIVE_CAPTURE_SDR_REVIEW.md +37 -0
  55. package/docs/NATIVE_CAPTURE_SDR_VALIDATION.md +34 -0
  56. package/docs/NUMERICAL_CORRECTNESS.md +1 -1
  57. package/docs/PERFORMANCE_BASELINE.md +1 -1
  58. package/docs/PHOTOGRAPHIC_EXPORT.md +1 -1
  59. package/docs/PHYSICS_FOUNDATION.md +1 -1
  60. package/docs/POC_API.md +1 -1
  61. package/docs/POC_PROJECTION_PLATFORM_REFERENCE.md +12 -0
  62. package/docs/POC_PROJECTION_REUSE.md +1 -1
  63. package/docs/PRINT_195_196_REVIEW.md +93 -0
  64. package/docs/PRINT_196_ENGINE_ACCEPTANCE.md +45 -0
  65. package/docs/PRINT_CONTRAST_REFERENCE.md +43 -0
  66. package/docs/PRINT_DETAIL_ASSESSMENT.md +81 -0
  67. package/docs/PRINT_DETAIL_JPEG_EVIDENCE.md +36 -0
  68. package/docs/PRINT_DETAIL_SDR_EVIDENCE.md +29 -0
  69. package/docs/PRINT_DETAIL_VALIDATION.md +36 -0
  70. package/docs/PRINT_PLANNING.md +75 -0
  71. package/docs/PRINT_REGION_STATISTICS.md +38 -0
  72. package/docs/PROCESSED_OUTPUT.md +1 -1
  73. package/docs/PRODUCTION_COMPOSITION.md +1 -1
  74. package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +1 -1
  75. package/docs/PROVENANCE.md +1 -1
  76. package/docs/PSF_FOUNDATION.md +11 -1
  77. package/docs/RAW_FRAME_ENVELOPE.md +1 -1
  78. package/docs/RAW_FRAME_RECONSTRUCTION.md +1 -1
  79. package/docs/RELEASE_1_1_0.md +25 -0
  80. package/docs/RELEASE_1_2_0.md +51 -0
  81. package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +1 -1
  82. package/docs/SCENE_SENSOR_QUADRATURE.md +1 -1
  83. package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +1 -1
  84. package/docs/SCIENTIFIC_ASSURANCE.md +1 -1
  85. package/docs/SCIENTIFIC_CONFORMANCE.md +1 -1
  86. package/docs/SDR_RENDERING.md +1 -1
  87. package/docs/SENSOR_ENVIRONMENT_QUERY.md +1 -1
  88. package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +1 -1
  89. package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +1 -1
  90. package/docs/SENSOR_PSF_QUADRATURE.md +1 -1
  91. package/docs/SENSOR_RAW_FRAME.md +1 -1
  92. package/docs/SENSOR_RAW_PRODUCER.md +1 -1
  93. package/docs/SIGNAL_CONFORMANCE.md +1 -1
  94. package/docs/SIMULATED_CAPTURE.md +1 -1
  95. package/docs/STABILIZATION.md +1 -1
  96. package/docs/TEMPORAL_PHOTO_RAW.md +1 -1
  97. package/docs/TIER_ACCEPTANCE.md +1 -1
  98. package/docs/TIER_PRESET_ACCEPTANCE.md +1 -1
  99. package/docs/USAGE.md +9 -1
  100. package/docs/V1_COMPOSITION_MAP.md +1 -1
  101. package/docs/V1_HELPER_REUSE_REVIEW.md +1 -1
  102. package/docs/V1_PERFORMANCE_DISPOSITION.md +1 -1
  103. package/docs/api/camera-equivalent-focal-length.md +1 -1
  104. package/docs/api/camera-field-of-view.md +1 -1
  105. package/docs/api/camera-projected-object-size.md +1 -1
  106. package/docs/api/capture-capture-export-metadata.md +1 -1
  107. package/docs/api/capture-environment-raw-producer.md +1 -1
  108. package/docs/api/capture-focus-control.md +1 -1
  109. package/docs/api/capture-linear-encoding.md +1 -1
  110. package/docs/api/capture-photographic-export.md +1 -1
  111. package/docs/api/capture-raw-frame-reconstruction.md +1 -1
  112. package/docs/api/capture-release-sequence.md +1 -1
  113. package/docs/api/capture-sensor-raw-frame.md +1 -1
  114. package/docs/api/capture-sensor-raw-producer.md +1 -1
  115. package/docs/api/capture-simulated-capture.md +1 -1
  116. package/docs/api/color-capture-color.md +1 -1
  117. package/docs/api/color-white-balance.md +1 -1
  118. package/docs/api/composition-image-formation-plan.md +1 -1
  119. package/docs/api/composition-plan-consumer.md +1 -1
  120. package/docs/api/core-calculation-result.md +1 -1
  121. package/docs/api/core-configuration-error.md +1 -1
  122. package/docs/api/core-image-formation.md +1 -1
  123. package/docs/api/core-scientific-assurance.md +1 -1
  124. package/docs/api/core-spectral-composition.md +1 -1
  125. package/docs/api/core-spectral.md +1 -1
  126. package/docs/api/core-validation.md +1 -1
  127. package/docs/api/core-version.md +2 -2
  128. package/docs/api/equipment-exposure-capabilities.md +1 -1
  129. package/docs/api/equipment-generic-tier-assets.md +1 -1
  130. package/docs/api/equipment-generic-tier-presets.md +1 -1
  131. package/docs/api/equipment-iso-capabilities.md +1 -1
  132. package/docs/api/equipment-metering-capabilities.md +1 -1
  133. package/docs/api/equipment-release-capabilities.md +1 -1
  134. package/docs/api/exports.json +267 -2
  135. package/docs/api/exposure-exposure-duration-control.md +1 -1
  136. package/docs/api/exposure-exposure-mode-resolver.md +1 -1
  137. package/docs/api/exposure-exposure.md +1 -1
  138. package/docs/api/exposure-flash.md +1 -1
  139. package/docs/api/exposure-metering-scene-radiance.md +1 -1
  140. package/docs/api/exposure-metering-target.md +1 -1
  141. package/docs/api/exposure-metering-temporal.md +1 -1
  142. package/docs/api/exposure-metering.md +1 -1
  143. package/docs/api/exposure-program-line.md +1 -1
  144. package/docs/api/motion-camera-rotation.md +1 -1
  145. package/docs/api/motion-capture-rotation-inverse-mapping.md +1 -1
  146. package/docs/api/motion-capture-rotation-temporal-quadrature.md +1 -1
  147. package/docs/api/motion-capture-rotation-trajectory.md +1 -1
  148. package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +1 -1
  149. package/docs/api/motion-extended-object-projection.md +1 -1
  150. package/docs/api/motion-projected-motion.md +1 -1
  151. package/docs/api/optics-aperture.md +1 -1
  152. package/docs/api/optics-circle-of-confusion.md +1 -1
  153. package/docs/api/optics-complex-pupil-psf.md +7 -1
  154. package/docs/api/optics-depth-of-field.md +1 -1
  155. package/docs/api/optics-diffraction.md +1 -1
  156. package/docs/api/optics-focus-breathing.md +1 -1
  157. package/docs/api/optics-focus-state.md +1 -1
  158. package/docs/api/optics-front-of-lens-filter.md +1 -1
  159. package/docs/api/optics-illumination-vignetting.md +1 -1
  160. package/docs/api/optics-lateral-chromatic-aberration.md +1 -1
  161. package/docs/api/optics-lens-psf-profile.md +1 -1
  162. package/docs/api/optics-polygon-diffraction.md +1 -1
  163. package/docs/api/optics-profile-contract.md +1 -1
  164. package/docs/api/optics-psf-foundation.md +1 -1
  165. package/docs/api/optics-radial-distortion.md +1 -1
  166. package/docs/api/optics-scene-to-sensor-irradiance.md +1 -1
  167. package/docs/api/optics-scene-to-sensor-quadrature.md +1 -1
  168. package/docs/api/optics-sensor-environment-query.md +1 -1
  169. package/docs/api/optics-sensor-psf-quadrature.md +1 -1
  170. package/docs/api/optics-stray-light.md +1 -1
  171. package/docs/api/optics-thin-lens.md +1 -1
  172. package/docs/api/output-capture-corrected-sdr.md +1 -1
  173. package/docs/api/output-capture-geometry.md +1 -1
  174. package/docs/api/output-capture-sdr.md +1 -1
  175. package/docs/api/output-crop.md +1 -1
  176. package/docs/api/output-geometric-transforms.md +1 -1
  177. package/docs/api/output-lens-corrections.md +1 -1
  178. package/docs/api/output-native-capture-sdr.md +150 -0
  179. package/docs/api/output-print-contrast-reference.md +82 -0
  180. package/docs/api/output-print-detail.md +147 -0
  181. package/docs/api/output-print-plan.md +165 -0
  182. package/docs/api/output-print-region-statistics.md +165 -0
  183. package/docs/api/output-sdr-rendering.md +1 -1
  184. package/docs/api/output-subject-framing-crop.md +1 -1
  185. package/docs/api/schema-camera.md +1 -1
  186. package/docs/api/schema-illumination-spectral.md +1 -1
  187. package/docs/api/schema-illumination-temporal.md +1 -1
  188. package/docs/api/schema-illumination.md +1 -1
  189. package/docs/api/schema-scene-radiance-temporal.md +1 -1
  190. package/docs/api/schema-scene-radiance.md +1 -1
  191. package/docs/api/schema-scene.md +1 -1
  192. package/docs/api/schema-validation.md +1 -1
  193. package/docs/api/sensor-accumulated-charge.md +1 -1
  194. package/docs/api/sensor-architecture.md +1 -1
  195. package/docs/api/sensor-camera-saturation-capacity.md +1 -1
  196. package/docs/api/sensor-capture-color-sampling-binding.md +1 -1
  197. package/docs/api/sensor-capture-mode-timing.md +1 -1
  198. package/docs/api/sensor-capture-mode.md +1 -1
  199. package/docs/api/sensor-color-sampling.md +1 -1
  200. package/docs/api/sensor-constant-rate-temporal-integration.md +1 -1
  201. package/docs/api/sensor-dark-current.md +1 -1
  202. package/docs/api/sensor-environment-photo-signal.md +1 -1
  203. package/docs/api/sensor-eqe-electron-rate.md +1 -1
  204. package/docs/api/sensor-eqe-local-exposure.md +1 -1
  205. package/docs/api/sensor-eqe-temporal-exposure.md +1 -1
  206. package/docs/api/sensor-exposure-window.md +1 -1
  207. package/docs/api/sensor-iso-signal-chain.md +1 -1
  208. package/docs/api/sensor-local-exposure-binding.md +1 -1
  209. package/docs/api/sensor-optical-stack.md +1 -1
  210. package/docs/api/sensor-photon-energy.md +1 -1
  211. package/docs/api/sensor-physical-charge-capacity.md +1 -1
  212. package/docs/api/sensor-pixel-pitch.md +1 -1
  213. package/docs/api/sensor-radiometry-readiness.md +1 -1
  214. package/docs/api/sensor-raw-readout.md +1 -1
  215. package/docs/api/sensor-raw-reconstruction.md +1 -1
  216. package/docs/api/sensor-readout-exposure-linkage.md +1 -1
  217. package/docs/api/sensor-readout-timing.md +1 -1
  218. package/docs/api/sensor-response-application-compatibility.md +1 -1
  219. package/docs/api/sensor-response-operating-range.md +1 -1
  220. package/docs/api/sensor-responsivity-photocurrent.md +1 -1
  221. package/docs/api/sensor-sampling-aperture.md +1 -1
  222. package/docs/api/sensor-scene-eqe-temporal-exposure.md +1 -1
  223. package/docs/api/sensor-sensor-geometry.md +1 -1
  224. package/docs/api/sensor-signal-noise.md +1 -1
  225. package/docs/api/sensor-spatial-sample-reduction.md +1 -1
  226. package/docs/api/sensor-spatial-sampling-quadrature.md +1 -1
  227. package/docs/api/sensor-spatio-spectral-reduction.md +1 -1
  228. package/docs/api/sensor-spectral-coverage.md +1 -1
  229. package/docs/api/sensor-spectral-quadrature.md +1 -1
  230. package/docs/api/sensor-spectral-response.md +1 -1
  231. package/docs/api/sensor-temporal-photo-signal.md +1 -1
  232. package/docs/api/simulation-poc-simulation.md +1 -1
  233. package/docs/api/stabilization-camera-shake.md +1 -1
  234. package/docs/api/stabilization-system.md +1 -1
  235. package/docs/licenses/castleCSF-MIT.txt +21 -0
  236. package/docs/validation/native-capture-sdr-darwin-arm64-node26-review.jsonl +4 -0
  237. package/docs/validation/native-capture-sdr-darwin-arm64.jsonl +3 -0
  238. package/docs/validation/print-196-candidate-capabilities.json +28 -0
  239. package/docs/validation/print-196-candidate-evidence.json +356 -0
  240. package/docs/validation/print-196-engine-acceptance.json +81 -0
  241. package/docs/validation/print-detail-capabilities.json +103 -0
  242. package/docs/validation/print-detail-jpeg-evidence.json +116 -0
  243. package/docs/validation/print-detail-sdr-evidence.json +81 -0
  244. package/package.json +1 -1
@@ -0,0 +1,103 @@
1
+ {
2
+ "ledgerVersion": "0.1.0",
3
+ "metricVersion": "0.1.0",
4
+ "protocolVersion": "0.1.0",
5
+ "engineCandidate": "1.1.0",
6
+ "humanReview": "pending",
7
+ "fullAssessmentAcceptance": "blocked",
8
+ "evidenceDomain": "owned-procedural-mathematical-reference-only",
9
+ "capabilities": [
10
+ {
11
+ "id": "regional-coherent-fundamental",
12
+ "status": "mathematically-validated",
13
+ "units": "relative-linear-luminance-and-dimensionless-modulation",
14
+ "reference": "finite-orthogonality-and-owned-discrete-convolution",
15
+ "test": "test/print-detail.test.ts",
16
+ "targetVersion": "analytic-sinusoid-0.1.0",
17
+ "backend": "repository-node-mathematics",
18
+ "acquisitionQualification": "unassessed",
19
+ "humanReview": "pending",
20
+ "actualBackendQualification": "unassessed"
21
+ },
22
+ {
23
+ "id": "print-region-angular-projection",
24
+ "status": "mathematically-validated",
25
+ "units": "mm-cycles-per-mm-and-reference-period-degrees",
26
+ "reference": "staged-capture-geometry-and-centered-period-angle",
27
+ "test": "test/print-detail.test.ts",
28
+ "acquisitionQualification": "unassessed",
29
+ "humanReview": "pending",
30
+ "actualBackendQualification": "unassessed"
31
+ },
32
+ {
33
+ "id": "captured-system-mtf-and-field-detail",
34
+ "status": "blocked",
35
+ "reason": "actual-target-acquisition-processing-registration-and-backend-evidence-required"
36
+ },
37
+ {
38
+ "id": "noise-tonal-clipping",
39
+ "status": "blocked",
40
+ "reason": "linear-source-ensemble-and-stage-qualified-protocol-required"
41
+ },
42
+ {
43
+ "id": "depth-occlusion-and-intentional-defocus",
44
+ "status": "blocked",
45
+ "reason": "visible-surface-depth-and-coordinate-registration-evidence-required"
46
+ },
47
+ {
48
+ "id": "directional-motion-attribution",
49
+ "status": "blocked",
50
+ "reason": "trajectory-and-temporal-accumulation-evidence-required"
51
+ },
52
+ {
53
+ "id": "aliasing-halos-compression-color",
54
+ "status": "blocked",
55
+ "reason": "independent-dimension-and-exact-source-stage-protocols-required"
56
+ },
57
+ {
58
+ "id": "perceived-quality-or-visibility",
59
+ "status": "blocked",
60
+ "reason": "qualified-perception-model-and-observer-luminance-contrast-domain-required"
61
+ },
62
+ {
63
+ "id": "printer-substrate-icc",
64
+ "status": "out-of-scope",
65
+ "reason": "separate-reviewed-contract-required"
66
+ },
67
+ {
68
+ "id": "overall-print-pass",
69
+ "status": "not-offered",
70
+ "reason": "no-universal-quality-score-or-verdict"
71
+ }
72
+ ],
73
+ "validation": {
74
+ "status": "passed-mathematical-domain-only",
75
+ "runtime": "v24.19.0",
76
+ "fullSuite": {
77
+ "files": 144,
78
+ "tests": 1701
79
+ },
80
+ "focusedTests": 48,
81
+ "sourceFilesSha256": {
82
+ "src/output/print-detail.ts": "1bf1c6032fabd944806eddad79c560c266bd7776b48b3c0964056c9da451be81",
83
+ "test/print-detail.test.ts": "c73b49bb6b3e1943ed7d0d3bfc443830ccab73aa0f34e88733293a555a58ce38",
84
+ "docs/PRINT_DETAIL_ASSESSMENT.md": "c0b7277f27a64d4b91205cc89161cb4e575229599ec4f4670631689592f101b5",
85
+ "docs/PRINT_DETAIL_VALIDATION.md": "6fdbaafd75a18608554702df8123c272d822a022239bcfce3881540503447fcb"
86
+ },
87
+ "numericTolerance": {
88
+ "absolute": 1e-10,
89
+ "domain": "owned-bounded-analytic-coefficients-and-relative-residuals"
90
+ },
91
+ "actualBackendQualification": "unassessed",
92
+ "acquiredSourceArtifact": "not-supplied",
93
+ "roi": "explicit-half-open-oriented-retained-region",
94
+ "sourceStages": [
95
+ "native-retained-linear",
96
+ "post-resampling-linear",
97
+ "post-encoding-decoded-linear"
98
+ ]
99
+ },
100
+ "recordScope": "historical mathematical-only qualification snapshot; retained values and source hashes describe that snapshot, not current candidate",
101
+ "supersededBy": "print-196-candidate-capabilities.json",
102
+ "currentEvidenceInventory": "print-196-candidate-evidence.json"
103
+ }
@@ -0,0 +1,116 @@
1
+ {
2
+ "evidenceVersion": "0.1.0",
3
+ "metricVersion": "0.1.0",
4
+ "engineCandidate": "1.1.0",
5
+ "parentCommit": "12f304f087d5cbe41266e2a81be2d6a1d521e692",
6
+ "humanReview": "pending",
7
+ "fullAssessmentAcceptance": "blocked",
8
+ "capability": "bounded-neutral-paired-export-jpeg-regional-diagnostic",
9
+ "status": "passed-bounded-paired-export-jpeg-execution-only",
10
+ "sourceQualification": "owned-post-adc-code-target-not-physical-acquisition",
11
+ "backend": "public-paired-export-plus-recorded-independent-Pillow-readback",
12
+ "decoder": {
13
+ "Pillow": "12.3.0",
14
+ "libjpegApiVersion": "6.2",
15
+ "libjpegTurboVersion": "3.1.4.1",
16
+ "Python": "3.12.14"
17
+ },
18
+ "nodeCI": "regenerates-exact-JPEG-bytes-and-consumes-committed-independent-decode; does-not-execute-Pillow",
19
+ "runtime": "v24.19.0",
20
+ "focusedTests": 13,
21
+ "sourceFilesSha256": {
22
+ "test/helpers/print-detail-jpeg-fixture.ts": "a1294537251c4feba4ae2c462a040730778fb7e776258d8d2cbc66c501a68b82",
23
+ "test/print-detail-jpeg-integration.test.ts": "b9c946560a2ae5e39a30c88cbea2b4422b4712b02e98f0a8ee0133102d847a34",
24
+ "scripts/generate-print-detail-jpeg.ts": "eb112d5259e558826691737770b08819b2128782f6a3434393416c90d12871aa",
25
+ "scripts/generate-print-detail-jpeg.mjs": "c4eeb2c124ec082c4007eeebc74e74c17a42c9225bf944596bd95777a886aa8c",
26
+ "scripts/tsconfig.print-jpeg.json": "116c879efe79b8b870bfa407ba3bcdffaefb37ab33755c436a7c3eca77260fcd",
27
+ "scripts/verify-print-detail-jpeg.py": "38afb7daf89859e5e68fe38850a12a0c1899a891dc9fe4acb296c5d6acd65927",
28
+ "src/capture/photographic-export.ts": "3c0ea2bfd5081447c42e6ffa6f0c9d0f2ea63b0bf170580f4ff739b594d1088e",
29
+ "src/capture/export-jpeg.ts": "04228e0ee48a07ce04f5d1fbc4836825a384932c5c9c25a96d432e3971a0c866",
30
+ "src/capture/raw-frame-reconstruction.ts": "de0734375b00dbb375e98dd9aabae88d36f1cec1adfc3812949ff1c27fd13a3d",
31
+ "src/color/sensor-color-development.ts": "a7b315b44c6b61942a0818ab1b5ea9d2232b720f83339a2307052d222b914897",
32
+ "src/output/sdr-rendering.ts": "38abc70438d3abf7a05cb50a2fe5a688d04f94b843fff4ba4d4cea760d0d1f47",
33
+ "src/output/print-detail.ts": "1bf1c6032fabd944806eddad79c560c266bd7776b48b3c0964056c9da451be81",
34
+ "docs/PRINT_DETAIL_JPEG_EVIDENCE.md": "d6f9bd340011f063d7e9d2de26073fbb02015ebe8878274c355dbf157035c6f9",
35
+ "test/fixtures/print-detail/jpeg/export-manifest.json": "2ab550758af1217cec245b22104f2f157fc1b5b98023e11b983cd8b51b6f99cc",
36
+ "test/fixtures/print-detail/jpeg/independent-reference.json": "fbde5ef5cb776cf41e199553961cf174caec2a7fb768dad0743722e21e8f9571",
37
+ "test/fixtures/print-detail/jpeg/landscape-inverted-q1.jpg": "6facaed0b2346ad2d1bb7836edb2243954a2590f4c245c524da9b5fd483dee1c",
38
+ "test/fixtures/print-detail/jpeg/landscape-inverted-q32.jpg": "17304b75010277d30aac7df86bef8b9a87d7c0ad709fe7f8cd81f66c0e43a3b3",
39
+ "test/fixtures/print-detail/jpeg/landscape-q1.jpg": "10675e622d2ff5e5a389d90205eeaf94c9c41b546d138457900b1acd215570d7",
40
+ "test/fixtures/print-detail/jpeg/landscape-q32.jpg": "7fa1a655a8278b0da95c0c03201dba8a3d7d2c1bca4a1e199ec1def205eaafe9",
41
+ "test/fixtures/print-detail/jpeg/portrait-clockwise-q1.jpg": "6505e7e1fdcd33801cffebbfcde24de4dcc15f7972279198f6c73b9649060de7",
42
+ "test/fixtures/print-detail/jpeg/portrait-clockwise-q32.jpg": "fed3a716eb5c5ace307b571fbc78cfdc0ca7fdc4055c3e1c8c7fe7fcded01b8a",
43
+ "test/fixtures/print-detail/jpeg/portrait-counter-clockwise-q1.jpg": "7f1aa1dfc9f0ba1ecec8db2f22b15c9b1362f3d00b28aa082e440d47dfe5f887",
44
+ "test/fixtures/print-detail/jpeg/portrait-counter-clockwise-q32.jpg": "38af5cfadb9b88c38c2072963f529db24a4672edf92d60e64b80d86dcefa8889"
45
+ },
46
+ "envelope": {
47
+ "nativeRaster": [
48
+ 20,
49
+ 16
50
+ ],
51
+ "orientations": 4,
52
+ "quantizationSteps": [
53
+ 1,
54
+ 32
55
+ ],
56
+ "subsampling": "444",
57
+ "roiOrigin": [
58
+ 2,
59
+ 2
60
+ ],
61
+ "roiLandscape": [
62
+ 16,
63
+ 8
64
+ ],
65
+ "roiPortrait": [
66
+ 8,
67
+ 16
68
+ ],
69
+ "source": "neutral-post-ADC-two-sample-held-quarter-grating",
70
+ "decoderPolicy": "RGB-neutral-only-sRGB-inverse-transfer",
71
+ "referenceModulation": ".5*cos(pi/8)",
72
+ "sourceMean": "384/959",
73
+ "sampleToleranceAbsolute": 1e-12,
74
+ "measurementToleranceAbsolute": 1e-10,
75
+ "pixelAndArtifactIdentity": "exact-bytes-and-sha256"
76
+ },
77
+ "unqualified": [
78
+ "human-scientific-source-review",
79
+ "optical-source-acquisition-and-calibration",
80
+ "actual-UI-GPU-and-device",
81
+ "native-resolution-production",
82
+ "warp-resampling",
83
+ "colored-luminance-and-ICC",
84
+ "other-codecs-and-decoder-variants",
85
+ "captured-system-MTF",
86
+ "depth-and-occlusion",
87
+ "noise-aliasing-halos-compression-quality-metrics",
88
+ "observer-perception",
89
+ "printer-substrate"
90
+ ],
91
+ "fullSuite": {
92
+ "files": 146,
93
+ "tests": 1723
94
+ },
95
+ "coverage": {
96
+ "lines": 91.84,
97
+ "statements": 91.87,
98
+ "functions": 99.62,
99
+ "branches": 88.27
100
+ },
101
+ "independentChecks": [
102
+ "Pillow-exact-JPEG-decode",
103
+ "neutral-source-preencode-and-registration-truth",
104
+ "source-fundamental-identity",
105
+ "Python-independent-decoded-coefficients",
106
+ "separate-directory-byte-for-byte-reproduction"
107
+ ],
108
+ "localReleaseGates": [
109
+ "check",
110
+ "coverage",
111
+ "build",
112
+ "pack:check",
113
+ "docs:check",
114
+ "release:consumer-check"
115
+ ]
116
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "evidenceVersion": "0.1.0",
3
+ "metricVersion": "0.1.0",
4
+ "engineCandidate": "1.1.0",
5
+ "parentCommit": "cfa179f054cdda92edd77dd51f98473cd6923b0c",
6
+ "humanReview": "pending",
7
+ "fullAssessmentAcceptance": "blocked",
8
+ "capability": "bounded-neutral-capture-sdr-regional-diagnostic-integration",
9
+ "status": "passed-bounded-execution-only",
10
+ "sourceQualification": "owned-committed-procedural-target-only",
11
+ "backend": "repository-node-capture-sdr-adapter-and-test-only-code-readback",
12
+ "referenceBackend": "Python 3.12.14 standard library; independent three-level identities",
13
+ "runtime": "v24.19.0",
14
+ "focusedTests": 9,
15
+ "sourceFilesSha256": {
16
+ "test/print-detail-sdr-integration.test.ts": "130160c9aa6b720030b49581a95c3d565e91a0aff99fa615123920fa1b7843f4",
17
+ "test/fixtures/print-detail/quarter-grating.json": "0270a44168e574157067615c957a199355ac600be7a536663ab4769f59f860b9",
18
+ "test/fixtures/print-detail/sdr-reference.json": "b65f1a8c2ce0b8f3b799946a0ec94110fe9623c6348d156e31d6e41729208c30",
19
+ "test/fixtures/print-detail/generate_reference.py": "75571a248d1ff091017546547179de4087e49391d8318f290ff301703c2f8e37",
20
+ "src/capture/simulated-capture.ts": "5777dd52b91aad794a8a8b03abea834218b96e845328e1ceae67fd6903fab52d",
21
+ "src/output/capture-sdr.ts": "ab3856286d670fef117a5925a78a7de5bf58f75349f2c2076c93597b6c10162c",
22
+ "src/output/sdr-rendering.ts": "38abc70438d3abf7a05cb50a2fe5a688d04f94b843fff4ba4d4cea760d0d1f47",
23
+ "src/output/print-detail.ts": "1bf1c6032fabd944806eddad79c560c266bd7776b48b3c0964056c9da451be81",
24
+ "docs/PRINT_DETAIL_SDR_EVIDENCE.md": "c95a7529b5864a81c3caed7041e0a4a27dd769bbadfa1eb3b97b03762a9525ea"
25
+ },
26
+ "envelope": {
27
+ "nativeRaster": [
28
+ 16,
29
+ 12
30
+ ],
31
+ "orientations": 4,
32
+ "bitDepths": [
33
+ 8,
34
+ 16
35
+ ],
36
+ "roi": {
37
+ "x": 2,
38
+ "y": 2,
39
+ "width": 8,
40
+ "height": 8
41
+ },
42
+ "tone": "identity",
43
+ "renderingExposureEv": 0,
44
+ "gamut": "reject-out-of-range",
45
+ "targetModulation": 0.5,
46
+ "absoluteDecodedAndCoefficientTolerance": 1e-12,
47
+ "artifactIdentity": "exact-source-json-rgb-float64-le-and-code-uint16-le-sha256"
48
+ },
49
+ "unqualified": [
50
+ "human-scientific-source-review",
51
+ "actual-ui-renderer-and-device",
52
+ "RAW-environment-acquisition",
53
+ "native-resolution-production",
54
+ "warp-resampling",
55
+ "color-transform-and-nonneutral-luminance",
56
+ "JPEG-and-other-file-codecs",
57
+ "capture-system-MTF",
58
+ "depth-and-occlusion",
59
+ "noise-clipping-and-artifact-metrics",
60
+ "perceived-quality",
61
+ "printer-substrate"
62
+ ],
63
+ "fullSuite": {
64
+ "files": 145,
65
+ "tests": 1710
66
+ },
67
+ "localReleaseGates": [
68
+ "check",
69
+ "coverage",
70
+ "build",
71
+ "pack:check",
72
+ "docs:check",
73
+ "release:consumer-check"
74
+ ],
75
+ "coverage": {
76
+ "lines": 91.84,
77
+ "statements": 91.87,
78
+ "functions": 99.62,
79
+ "branches": 88.27
80
+ }
81
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@photivra/engine",
3
- "version": "1.0.1",
3
+ "version": "1.2.0",
4
4
  "private": false,
5
5
  "description": "Scientific TypeScript engine for camera optics, exposure, focus, motion, sensor sampling, diffraction, and digital imaging calculations.",
6
6
  "type": "module",