@photivra/engine 1.3.0 → 1.5.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 (235) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/CITATION.cff +1 -1
  3. package/dist/capture/environment-raw-producer.d.ts +6 -3
  4. package/dist/capture/environment-raw-producer.d.ts.map +1 -1
  5. package/dist/capture/environment-raw-producer.js +26 -15
  6. package/dist/capture/environment-raw-producer.js.map +1 -1
  7. package/dist/capture/export-jpeg.d.ts +9 -0
  8. package/dist/capture/export-jpeg.d.ts.map +1 -1
  9. package/dist/capture/export-jpeg.js +51 -12
  10. package/dist/capture/export-jpeg.js.map +1 -1
  11. package/dist/capture/native-environment-raw.d.ts +43 -0
  12. package/dist/capture/native-environment-raw.d.ts.map +1 -0
  13. package/dist/capture/native-environment-raw.js +81 -0
  14. package/dist/capture/native-environment-raw.js.map +1 -0
  15. package/dist/capture/native-raw-development.d.ts +45 -0
  16. package/dist/capture/native-raw-development.d.ts.map +1 -0
  17. package/dist/capture/native-raw-development.js +159 -0
  18. package/dist/capture/native-raw-development.js.map +1 -0
  19. package/dist/capture/native-raw.d.ts +83 -0
  20. package/dist/capture/native-raw.d.ts.map +1 -0
  21. package/dist/capture/native-raw.js +146 -0
  22. package/dist/capture/native-raw.js.map +1 -0
  23. package/dist/capture/raw-frame-reconstruction.d.ts +2 -0
  24. package/dist/capture/raw-frame-reconstruction.d.ts.map +1 -1
  25. package/dist/capture/raw-frame-reconstruction.js +18 -13
  26. package/dist/capture/raw-frame-reconstruction.js.map +1 -1
  27. package/dist/capture/sensor-raw-producer.d.ts +8 -0
  28. package/dist/capture/sensor-raw-producer.d.ts.map +1 -1
  29. package/dist/capture/sensor-raw-producer.js +43 -38
  30. package/dist/capture/sensor-raw-producer.js.map +1 -1
  31. package/dist/capture/simulated-capture.d.ts +8 -0
  32. package/dist/capture/simulated-capture.d.ts.map +1 -1
  33. package/dist/capture/simulated-capture.js +24 -13
  34. package/dist/capture/simulated-capture.js.map +1 -1
  35. package/dist/color/srgb-icc.d.ts +8 -0
  36. package/dist/color/srgb-icc.d.ts.map +1 -0
  37. package/dist/color/srgb-icc.js +67 -0
  38. package/dist/color/srgb-icc.js.map +1 -0
  39. package/dist/color/srgb-transfer.d.ts +4 -0
  40. package/dist/color/srgb-transfer.d.ts.map +1 -0
  41. package/dist/color/srgb-transfer.js +9 -0
  42. package/dist/color/srgb-transfer.js.map +1 -0
  43. package/dist/composition/image-formation-plan.d.ts.map +1 -1
  44. package/dist/composition/image-formation-plan.js +4 -1
  45. package/dist/composition/image-formation-plan.js.map +1 -1
  46. package/dist/core/version.d.ts +1 -1
  47. package/dist/core/version.js +1 -1
  48. package/dist/index.d.ts +12 -2
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +6 -0
  51. package/dist/index.js.map +1 -1
  52. package/dist/motion/camera-rotation.d.ts +8 -0
  53. package/dist/motion/camera-rotation.d.ts.map +1 -1
  54. package/dist/motion/camera-rotation.js +2 -1
  55. package/dist/motion/camera-rotation.js.map +1 -1
  56. package/dist/optics/sensor-aperture-rays.d.ts +56 -0
  57. package/dist/optics/sensor-aperture-rays.d.ts.map +1 -0
  58. package/dist/optics/sensor-aperture-rays.js +55 -0
  59. package/dist/optics/sensor-aperture-rays.js.map +1 -0
  60. package/dist/output/print-jpeg.d.ts +63 -0
  61. package/dist/output/print-jpeg.d.ts.map +1 -0
  62. package/dist/output/print-jpeg.js +141 -0
  63. package/dist/output/print-jpeg.js.map +1 -0
  64. package/dist/output/sdr-rendering.d.ts.map +1 -1
  65. package/dist/output/sdr-rendering.js +2 -1
  66. package/dist/output/sdr-rendering.js.map +1 -1
  67. package/dist/sensor/environment-photo-signal.d.ts +15 -4
  68. package/dist/sensor/environment-photo-signal.d.ts.map +1 -1
  69. package/dist/sensor/environment-photo-signal.js +39 -15
  70. package/dist/sensor/environment-photo-signal.js.map +1 -1
  71. package/dist/sensor/raw-reconstruction.d.ts +5 -0
  72. package/dist/sensor/raw-reconstruction.d.ts.map +1 -1
  73. package/dist/sensor/raw-reconstruction.js +21 -47
  74. package/dist/sensor/raw-reconstruction.js.map +1 -1
  75. package/docs/API_REFERENCE.md +87 -1
  76. package/docs/DENSE_PUPIL_QUALIFICATION.md +121 -0
  77. package/docs/ENVIRONMENT_RAW_CAPTURE.md +2 -0
  78. package/docs/NATIVE_RAW_AND_PRINT.md +54 -0
  79. package/docs/RELEASE_1_4_0.md +23 -0
  80. package/docs/RELEASE_1_5_0.md +105 -0
  81. package/docs/SENSOR_APERTURE_RAYS.md +23 -0
  82. package/docs/SEPARABLE_EMISSION_DRAFT.md +103 -0
  83. package/docs/api/camera-equivalent-focal-length.md +1 -1
  84. package/docs/api/camera-field-of-view.md +1 -1
  85. package/docs/api/camera-projected-object-size.md +1 -1
  86. package/docs/api/capture-capture-export-metadata.md +1 -1
  87. package/docs/api/capture-environment-raw-producer.md +3 -2
  88. package/docs/api/capture-focus-control.md +1 -1
  89. package/docs/api/capture-linear-encoding.md +1 -1
  90. package/docs/api/capture-native-environment-raw.md +88 -0
  91. package/docs/api/capture-native-raw-development.md +70 -0
  92. package/docs/api/capture-native-raw.md +161 -0
  93. package/docs/api/capture-photographic-export.md +1 -1
  94. package/docs/api/capture-raw-frame-reconstruction.md +1 -1
  95. package/docs/api/capture-release-sequence.md +1 -1
  96. package/docs/api/capture-sensor-raw-frame.md +1 -1
  97. package/docs/api/capture-sensor-raw-producer.md +1 -1
  98. package/docs/api/capture-simulated-capture.md +9 -1
  99. package/docs/api/color-capture-color.md +1 -1
  100. package/docs/api/color-srgb-icc.md +23 -0
  101. package/docs/api/color-white-balance.md +1 -1
  102. package/docs/api/composition-image-formation-plan.md +1 -1
  103. package/docs/api/composition-plan-consumer.md +1 -1
  104. package/docs/api/core-calculation-result.md +1 -1
  105. package/docs/api/core-configuration-error.md +1 -1
  106. package/docs/api/core-image-formation.md +1 -1
  107. package/docs/api/core-scientific-assurance.md +1 -1
  108. package/docs/api/core-spectral-composition.md +1 -1
  109. package/docs/api/core-spectral.md +1 -1
  110. package/docs/api/core-validation.md +1 -1
  111. package/docs/api/core-version.md +2 -2
  112. package/docs/api/equipment-exposure-capabilities.md +1 -1
  113. package/docs/api/equipment-generic-tier-assets.md +1 -1
  114. package/docs/api/equipment-generic-tier-presets.md +1 -1
  115. package/docs/api/equipment-iso-capabilities.md +1 -1
  116. package/docs/api/equipment-metering-capabilities.md +1 -1
  117. package/docs/api/equipment-release-capabilities.md +1 -1
  118. package/docs/api/exports.json +222 -2
  119. package/docs/api/exposure-exposure-duration-control.md +1 -1
  120. package/docs/api/exposure-exposure-mode-resolver.md +1 -1
  121. package/docs/api/exposure-exposure.md +1 -1
  122. package/docs/api/exposure-flash.md +1 -1
  123. package/docs/api/exposure-metering-scene-radiance.md +1 -1
  124. package/docs/api/exposure-metering-target.md +1 -1
  125. package/docs/api/exposure-metering-temporal.md +1 -1
  126. package/docs/api/exposure-metering.md +1 -1
  127. package/docs/api/exposure-program-line.md +1 -1
  128. package/docs/api/motion-camera-rotation.md +1 -1
  129. package/docs/api/motion-capture-rotation-inverse-mapping.md +1 -1
  130. package/docs/api/motion-capture-rotation-temporal-quadrature.md +1 -1
  131. package/docs/api/motion-capture-rotation-trajectory.md +1 -1
  132. package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +1 -1
  133. package/docs/api/motion-extended-object-projection.md +1 -1
  134. package/docs/api/motion-projected-motion.md +1 -1
  135. package/docs/api/optics-aperture.md +1 -1
  136. package/docs/api/optics-circle-of-confusion.md +1 -1
  137. package/docs/api/optics-complex-pupil-psf.md +1 -1
  138. package/docs/api/optics-depth-of-field.md +1 -1
  139. package/docs/api/optics-diffraction.md +1 -1
  140. package/docs/api/optics-focus-breathing.md +1 -1
  141. package/docs/api/optics-focus-state.md +1 -1
  142. package/docs/api/optics-front-of-lens-filter.md +1 -1
  143. package/docs/api/optics-illumination-vignetting.md +1 -1
  144. package/docs/api/optics-lateral-chromatic-aberration.md +1 -1
  145. package/docs/api/optics-lens-psf-profile.md +1 -1
  146. package/docs/api/optics-polygon-diffraction.md +1 -1
  147. package/docs/api/optics-profile-contract.md +1 -1
  148. package/docs/api/optics-psf-foundation.md +1 -1
  149. package/docs/api/optics-radial-distortion.md +1 -1
  150. package/docs/api/optics-scene-to-sensor-irradiance.md +1 -1
  151. package/docs/api/optics-scene-to-sensor-quadrature.md +1 -1
  152. package/docs/api/optics-sensor-aperture-rays.md +75 -0
  153. package/docs/api/optics-sensor-environment-query.md +1 -1
  154. package/docs/api/optics-sensor-psf-quadrature.md +1 -1
  155. package/docs/api/optics-stray-light.md +1 -1
  156. package/docs/api/optics-thin-lens.md +1 -1
  157. package/docs/api/output-capture-corrected-sdr.md +1 -1
  158. package/docs/api/output-capture-geometry.md +1 -1
  159. package/docs/api/output-capture-sdr.md +1 -1
  160. package/docs/api/output-crop.md +1 -1
  161. package/docs/api/output-geometric-transforms.md +1 -1
  162. package/docs/api/output-lens-corrections.md +1 -1
  163. package/docs/api/output-native-capture-sdr.md +1 -1
  164. package/docs/api/output-print-contrast-reference.md +1 -1
  165. package/docs/api/output-print-detail.md +1 -1
  166. package/docs/api/output-print-jpeg.md +117 -0
  167. package/docs/api/output-print-plan.md +1 -1
  168. package/docs/api/output-print-region-statistics.md +1 -1
  169. package/docs/api/output-sdr-rendering.md +1 -1
  170. package/docs/api/output-subject-framing-crop.md +1 -1
  171. package/docs/api/schema-camera.md +1 -1
  172. package/docs/api/schema-illumination-spectral.md +1 -1
  173. package/docs/api/schema-illumination-temporal.md +1 -1
  174. package/docs/api/schema-illumination.md +1 -1
  175. package/docs/api/schema-scene-radiance-temporal.md +1 -1
  176. package/docs/api/schema-scene-radiance.md +1 -1
  177. package/docs/api/schema-scene.md +1 -1
  178. package/docs/api/schema-validation.md +1 -1
  179. package/docs/api/sensor-accumulated-charge.md +1 -1
  180. package/docs/api/sensor-architecture.md +1 -1
  181. package/docs/api/sensor-camera-saturation-capacity.md +1 -1
  182. package/docs/api/sensor-capture-color-sampling-binding.md +1 -1
  183. package/docs/api/sensor-capture-mode-timing.md +1 -1
  184. package/docs/api/sensor-capture-mode.md +1 -1
  185. package/docs/api/sensor-color-sampling.md +1 -1
  186. package/docs/api/sensor-constant-rate-temporal-integration.md +1 -1
  187. package/docs/api/sensor-dark-current.md +1 -1
  188. package/docs/api/sensor-environment-photo-signal.md +17 -1
  189. package/docs/api/sensor-eqe-electron-rate.md +1 -1
  190. package/docs/api/sensor-eqe-local-exposure.md +1 -1
  191. package/docs/api/sensor-eqe-temporal-exposure.md +1 -1
  192. package/docs/api/sensor-exposure-window.md +1 -1
  193. package/docs/api/sensor-iso-signal-chain.md +1 -1
  194. package/docs/api/sensor-local-exposure-binding.md +1 -1
  195. package/docs/api/sensor-optical-stack.md +1 -1
  196. package/docs/api/sensor-photon-energy.md +1 -1
  197. package/docs/api/sensor-physical-charge-capacity.md +1 -1
  198. package/docs/api/sensor-pixel-pitch.md +1 -1
  199. package/docs/api/sensor-radiometry-readiness.md +1 -1
  200. package/docs/api/sensor-raw-readout.md +1 -1
  201. package/docs/api/sensor-raw-reconstruction.md +1 -1
  202. package/docs/api/sensor-readout-exposure-linkage.md +1 -1
  203. package/docs/api/sensor-readout-timing.md +1 -1
  204. package/docs/api/sensor-response-application-compatibility.md +1 -1
  205. package/docs/api/sensor-response-operating-range.md +1 -1
  206. package/docs/api/sensor-responsivity-photocurrent.md +1 -1
  207. package/docs/api/sensor-sampling-aperture.md +1 -1
  208. package/docs/api/sensor-scene-eqe-temporal-exposure.md +1 -1
  209. package/docs/api/sensor-sensor-geometry.md +1 -1
  210. package/docs/api/sensor-signal-noise.md +1 -1
  211. package/docs/api/sensor-spatial-sample-reduction.md +1 -1
  212. package/docs/api/sensor-spatial-sampling-quadrature.md +1 -1
  213. package/docs/api/sensor-spatio-spectral-reduction.md +1 -1
  214. package/docs/api/sensor-spectral-coverage.md +1 -1
  215. package/docs/api/sensor-spectral-quadrature.md +1 -1
  216. package/docs/api/sensor-spectral-response.md +1 -1
  217. package/docs/api/sensor-temporal-photo-signal.md +1 -1
  218. package/docs/api/simulation-poc-simulation.md +1 -1
  219. package/docs/api/stabilization-camera-shake.md +1 -1
  220. package/docs/api/stabilization-system.md +1 -1
  221. package/docs/validation/dense-pupil-2026-10-06/pilot.jsonl +6 -0
  222. package/docs/validation/native-raw-print-2026-10-04/fractional-asymmetric-crop.jpg +0 -0
  223. package/docs/validation/native-raw-print-2026-10-04/gray-ramp.jpg +0 -0
  224. package/docs/validation/native-raw-print-2026-10-04/linear-area-checker.jpg +0 -0
  225. package/docs/validation/native-raw-print-2026-10-04/manifest.json +218 -0
  226. package/docs/validation/native-raw-print-2026-10-04/megapixel-native.jpg +0 -0
  227. package/docs/validation/native-raw-print-2026-10-04/native-color.jpg +0 -0
  228. package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel-validation.json +9 -0
  229. package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json +29 -0
  230. package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.codes.u16le.gz +0 -0
  231. package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.jpg +0 -0
  232. package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.rgb.gz +0 -0
  233. package/docs/validation/native-raw-print-2026-10-04/srgb.icc +0 -0
  234. package/docs/validation/native-raw-print-2026-10-04/validation.json +41 -0
  235. package/package.json +1 -1
@@ -24,6 +24,7 @@ import { calculateSensorEnvironmentRadianceQuery } from "../optics/sensor-enviro
24
24
  import { calculateSceneRadianceToSensorIrradiance } from "../optics/scene-to-sensor-irradiance.js";
25
25
  import { calculateSensorPsfIrradianceQuadrature } from "../optics/sensor-psf-quadrature.js";
26
26
  import { calculateIlluminationVignetting } from "../optics/illumination-vignetting.js";
27
+ import { calculateSensorApertureRays } from "../optics/sensor-aperture-rays.js";
27
28
  import { sensorPsfSourcePoint } from "../optics/sensor-psf-support.js";
28
29
  import { resolveLensSampledPsf } from "../optics/lens-psf-profile.js";
29
30
  import { calculateSensorSpatialSamplingQuadrature } from "./spatial-sampling-quadrature.js";
@@ -39,7 +40,7 @@ import { createSensorEqeTemporalPhotoSignal } from "./temporal-photo-signal.js";
39
40
  * radiance code. Queries use explicit environment directions, vacuum/air wavelength and
40
41
  * opening-reference seconds. Optical throughput, optional local PSF and typed EQE produce photo
41
42
  * expectations; callback invocation does not verify transport, visibility or calibration.
42
- * @param input - Omit<CalculateEnvironmentSensorPhotoSignalInput, "evaluateRadiance">. See the linked contract for coordinate, unit and profile binding semantics.
43
+ * @param input - Omit<CalculateEnvironmentSensorPhotoSignalInput, "evaluateRadiance" | "evaluateApertureRadiance">. See the linked contract for coordinate, unit and profile binding semantics.
43
44
  * @returns EnvironmentPhotoPlan. Return shape and scientific status are explicit; no calibration is inferred from successful execution.
44
45
  *
45
46
  * @see docs/API_REFERENCE.md for the root export and exact type graph.
@@ -99,6 +100,11 @@ export function planEnvironmentSensorPhotoSignal(input) {
99
100
  throw new InvalidScientificInputError("PSF and optical focal/aperture/focus state must match exactly.");
100
101
  }
101
102
  }
103
+ if (owned.pupil !== undefined && owned.psf.kind !== "not-applied")
104
+ throw new InvalidScientificInputError("Ideal pupil integration cannot mix with a sampled PSF; geometric defocus would be ambiguous.");
105
+ const pupilCount = owned.pupil === undefined ? 1 : calculateSensorApertureRays({ sourcePointNativeSensorMm: { x: 0, y: 0 },
106
+ focalLengthMm: owned.optics.focalLengthMm, nominalFNumber: owned.optics.nominalFNumber, focus, pupil: owned.pupil,
107
+ angularVelocityRadPerSec: owned.motion.angularVelocityRadPerSec, timeSecondsFromOpeningReference: window.startOffsetSecondsFromOpeningReference }).value.rays.length;
102
108
  let count = 0;
103
109
  const nodes = spectralQuadrature.nodes.flatMap(spectral => spatialQuadrature.nodes.map(spatial => {
104
110
  const node = { spatialNode: { antiAliasingComponentIndex: spatial.antiAliasingComponentIndex,
@@ -109,7 +115,7 @@ export function planEnvironmentSensorPhotoSignal(input) {
109
115
  wavelengthNm: spectral.wavelengthNanometers, fieldPointMm: { x: destination.x, y: -destination.y } }) : null;
110
116
  const kernel = resolved?.value.kernel;
111
117
  const taps = kernel ? kernel.widthSamples * kernel.heightSamples : 1;
112
- count += taps * owned.temporalSampleCount;
118
+ count += taps * owned.temporalSampleCount * pupilCount;
113
119
  if (count > 100000)
114
120
  throw new InvalidScientificInputError("Environment exposure exceeds the 100000-provider-evaluation budget.");
115
121
  const points = Array.from({ length: taps }, (_, i) => ({ kernelSampleX: kernel ? i % kernel.widthSamples : 0,
@@ -129,6 +135,9 @@ export function planEnvironmentSensorPhotoSignal(input) {
129
135
  throw new InvalidScientificInputError("Local midpoints must be representable and strictly ordered.");
130
136
  previous = time;
131
137
  const groups = nodes.map((n, ni) => ({ node: n.node, taps: n.points.map((p, pi) => ({ ...p,
138
+ ...(owned.pupil === undefined ? {} : { apertureRays: calculateSensorApertureRays({ sourcePointNativeSensorMm: p.point,
139
+ focalLengthMm: owned.optics.focalLengthMm, nominalFNumber: owned.optics.nominalFNumber, focus, pupil: owned.pupil,
140
+ angularVelocityRadPerSec: owned.motion.angularVelocityRadPerSec, timeSecondsFromOpeningReference: time }).value.rays }),
132
141
  query: calculateSensorEnvironmentRadianceQuery({ ...owned.motion, sourcePointNativeSensorMm: p.point,
133
142
  focalLengthMm: owned.optics.focalLengthMm, focus, timeSecondsFromOpeningReference: time,
134
143
  request: { schemaVersion: "0.1.0", sampleId: `${owned.temporalIntegrationId}-t${temporalSampleIndex}-n${ni}-p${pi}`,
@@ -147,24 +156,38 @@ export function planEnvironmentSensorPhotoSignal(input) {
147
156
  return { owned, sceneBindings, fieldThroughputEvidence, spatialQuadrature, spectralQuadrature, instants, count, focus };
148
157
  }
149
158
  /** Internal executor consumes a completed bounded geometric plan; returns no partial success on failure. */
150
- export function executeEnvironmentSensorPhotoSignal(plan, evaluate) {
159
+ export function executeEnvironmentSensorPhotoSignal(plan, evaluate, evaluateAperture) {
151
160
  if (typeof evaluate !== "function")
152
161
  throw new InvalidScientificInputError("Environment radiance evaluator must be synchronous callable code.");
153
162
  const { owned } = plan;
163
+ if (owned.pupil !== undefined && typeof evaluateAperture !== "function")
164
+ throw new InvalidScientificInputError("Pupil integration requires an origin-aware aperture evaluator.");
154
165
  const irradiance = [];
155
166
  const instants = [];
156
167
  for (const instant of plan.instants) {
157
168
  const evaluations = [];
158
169
  const samples = instant.groups.map(group => ({ node: group.node, sourceSamples: group.taps.map(tap => {
159
- const request = freezeOwnedData(structuredClone(tap.query.value.request));
160
- const result = parseSceneRadianceEvaluationResult(evaluate(request));
161
- const bindings = validateSceneRadianceEvaluationBindings({ ...plan.sceneBindings, request, result });
162
- const optics = calculateSceneRadianceToSensorIrradiance({ ...owned.optics, sceneRadianceRequest: request,
163
- sceneRadianceResult: result, imagePointMm: tap.query.value.sourcePointImagePlaneMm, fieldThroughput: tap.fieldThroughput });
164
- evaluations.push({ query: tap.query, result, bindings, optics });
170
+ let integratedIrradiance = 0;
171
+ const support = tap.apertureRays ?? [undefined];
172
+ for (const ray of support) {
173
+ const baseRequest = structuredClone(tap.query.value.request);
174
+ const request = freezeOwnedData(ray === undefined ? baseRequest : {
175
+ ...baseRequest, sampleId: baseRequest.sampleId + "-a" + ray.pupilSampleIndex,
176
+ target: { kind: "environment-direction", outgoingDirectionUnitVector: {
177
+ x: -ray.directionUnitVector.x, y: -ray.directionUnitVector.y, z: -ray.directionUnitVector.z
178
+ } }
179
+ });
180
+ const apertureRay = ray === undefined ? undefined : freezeOwnedData(structuredClone(ray));
181
+ const result = parseSceneRadianceEvaluationResult(apertureRay === undefined ? evaluate(request) : evaluateAperture(request, apertureRay));
182
+ const bindings = validateSceneRadianceEvaluationBindings({ ...plan.sceneBindings, request, result });
183
+ const optics = calculateSceneRadianceToSensorIrradiance({ ...owned.optics, sceneRadianceRequest: request,
184
+ sceneRadianceResult: result, imagePointMm: tap.query.value.sourcePointImagePlaneMm, fieldThroughput: tap.fieldThroughput });
185
+ evaluations.push({ query: tap.query, result, bindings, optics,
186
+ ...(apertureRay === undefined ? {} : { apertureRay, apertureRequest: request }) });
187
+ integratedIrradiance += optics.value.sensorPlaneSpectralIrradianceWattsPerSquareMeterNanometer * (ray?.weight ?? 1);
188
+ }
165
189
  return { kernelSampleX: tap.kernelSampleX, kernelSampleY: tap.kernelSampleY, sourcePointNativeSensorMm: tap.point,
166
- timeSecondsFromOpeningReference: instant.time,
167
- spectralIrradianceWattsPerSquareMeterPerNanometer: optics.value.sensorPlaneSpectralIrradianceWattsPerSquareMeterNanometer };
190
+ timeSecondsFromOpeningReference: instant.time, spectralIrradianceWattsPerSquareMeterPerNanometer: integratedIrradiance };
168
191
  }) }));
169
192
  const psf = owned.psf.kind === "sampled-local" ? calculateSensorPsfIrradianceQuadrature({ ...owned.psf.configuration,
170
193
  spatialQuadrature: plan.spatialQuadrature, spectralQuadrature: plan.spectralQuadrature,
@@ -181,16 +204,17 @@ export function executeEnvironmentSensorPhotoSignal(plan, evaluate) {
181
204
  providerEvaluationCount: plan.count, sourcePlane: "sensor-package-incident", fieldThroughputEvidence: plan.fieldThroughputEvidence,
182
205
  fieldThroughputLimitation: owned.fieldThroughput.limitation,
183
206
  psfOmission: owned.psf.kind === "not-applied" ? { evidence: parseEvidenceList(owned.psf.evidence, "psfOmission.evidence"), limitation: owned.psf.limitation } : null,
184
- psfRedistributionApplied: owned.psf.kind === "sampled-local", photo, instants
185
- }, "environment-sensor-photo-signal", "0.2.0", [
207
+ psfRedistributionApplied: owned.psf.kind === "sampled-local", pupilIntegrationApplied: owned.pupil !== undefined, pupilIntegrationProfile: owned.pupil ?? null, photo, instants
208
+ }, "environment-sensor-photo-signal", "0.3.0", [
186
209
  "Supplied synchronous provider code was invoked at each generated environment query; physical transport and visibility are not verified.",
187
210
  "Ideal focus-aware rotation/projection, explicit evidence-bound field throughput and optional destination-local sampled PSF are bounded approximations.",
211
+ "Optional ideal pupil rays use normalized radiance averaging; source intersections remain provider-owned and convergence is unverified.",
188
212
  "PSF pupil throughput is not applied; child uncertainty, finite-support and quadrature convergence are not combined or established."
189
213
  ]);
190
214
  }
191
215
  /** Generate, evaluate and integrate one site's actual local midpoint environment support. */
192
216
  export function calculateEnvironmentSensorPhotoSignal(input) {
193
- const { evaluateRadiance, ...data } = input;
194
- return executeEnvironmentSensorPhotoSignal(planEnvironmentSensorPhotoSignal(data), evaluateRadiance);
217
+ const { evaluateRadiance, evaluateApertureRadiance, ...data } = input;
218
+ return executeEnvironmentSensorPhotoSignal(planEnvironmentSensorPhotoSignal(data), evaluateRadiance, evaluateApertureRadiance);
195
219
  }
196
220
  //# sourceMappingURL=environment-photo-signal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment-photo-signal.js","sourceRoot":"","sources":["../../src/sensor/environment-photo-signal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environment-photo-signal.js","sourceRoot":"","sources":["../../src/sensor/environment-photo-signal.ts"],"names":[],"mappings":"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"}
@@ -167,4 +167,9 @@ export declare function createSensorRawCaptureSample(input: CreateSensorRawCaptu
167
167
  * @see docs/API_REFERENCE.md for the root export and exact type graph.
168
168
  */
169
169
  export declare function resolveSensorRawReconstruction(input: ResolveSensorRawReconstructionInput): CalculationResult<SensorRawReconstructedPixel>;
170
+ /** Internal prepared scalar accumulation; reference and packed execution share operation order. */
171
+ export declare function calculateRawReconstructionChannel(kernel: SensorRawReconstructionChannelKernel, center: {
172
+ x: number;
173
+ y: number;
174
+ }, read: (x: number, y: number, channelId: string) => number): SensorRawReconstructedPixel["outputChannels"][number];
170
175
  //# sourceMappingURL=raw-reconstruction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"raw-reconstruction.d.ts","sourceRoot":"","sources":["../../src/sensor/raw-reconstruction.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EACV,4CAA4C,EAC7C,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,sCAAsC,EACvC,MAAM,wBAAwB,CAAC;AAIhC,eAAO,MAAM,iCAAiC,EAC5C,OAAgB,CAAC;AACnB,eAAO,MAAM,gDAAgD,EAC3D,OAAgB,CAAC;AAEnB,MAAM,WAAW,iCAAiC;IAChD,OAAO,EACL,mBAAmB,CAAC;IACtB,YAAY,EACV,4CAA4C,CAAC;CAChD;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EACL,OAAO,iCAAiC,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B,EACxB,gDAAgD,CAAC;IACnD,wBAAwB,EAAE;QACxB,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE;QACjB,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,6BAA6B,EAC3B,MAAM,CAAC;IACT,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC;IAClC,+BAA+B,EAC7B,OAAO,CAAC;IACV,wBAAwB,EACtB,OAAO,CAAC;IACV,oCAAoC,EAClC,IAAI,CAAC;IACP,0BAA0B,EACxB,KAAK,CAAC;IACR,qBAAqB,EACnB,KAAK,CAAC;IACR,6BAA6B,EAC3B,KAAK,CAAC;IACR,qBAAqB,EAAE,KAAK,CAAC;IAC7B,eAAe,EAAE,KAAK,CAAC;IACvB,YAAY,EAAE,KAAK,CAAC;CACrB;AAED,MAAM,WAAW,yCAAyC;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oCAAoC;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EACX,SAAS,yCAAyC,EAAE,CAAC;CACxD;AAED,MAAM,WAAW,8BAA8B;IAC7C,aAAa,EACX,OAAO,gDAAgD,CAAC;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,gBAAgB,EACd,sCAAsC,CAAC;IACzC,MAAM,EACJ,qCAAqC,CAAC;IACxC,aAAa,EACX,uCAAuC,CAAC;IAC1C,oCAAoC,EAClC,IAAI,CAAC;IACP,OAAO,EACL,SAAS,oCAAoC,EAAE,CAAC;IAClD,QAAQ,EACN,SAAS,kBAAkB,EAAE,CAAC;IAChC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,mCAAmC;IAClD,OAAO,EACL,8BAA8B,CAAC;IACjC,oBAAoB,EAClB,0BAA0B,CAAC;IAC7B,UAAU,EAAE;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,OAAO,EACL,SAAS,sBAAsB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,2BAA2B;IAC1C,uBAAuB,EACrB,MAAM,CAAC;IACT,4BAA4B,EAC1B,MAAM,CAAC;IACT,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,UAAU,EAAE;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,cAAc,EACZ,SAAS;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,oCAAoC,EAClC,MAAM,CAAC;QACT,mBAAmB,EACjB,SAAS;YACP,IAAI,EAAE;gBACJ,CAAC,EAAE,MAAM,CAAC;gBACV,CAAC,EAAE,MAAM,CAAC;aACX,CAAC;YACF,eAAe,EAAE,MAAM,CAAC;YACxB,MAAM,EAAE,MAAM,CAAC;YACf,WAAW,EAAE,MAAM,CAAC;SACrB,EAAE,CAAC;KACP,EAAE,CAAC;IACN,MAAM,EACJ,qCAAqC,CAAC;IACxC,QAAQ,EAAE,IAAI,CAAC;IACf,gBAAgB,EAAE,IAAI,CAAC;IACvB,0BAA0B,EACxB,KAAK,CAAC;IACR,qBAAqB,EAAE,KAAK,CAAC;IAC7B,iBAAiB,EAAE,KAAK,CAAC;IACzB,gBAAgB,EAAE,KAAK,CAAC;IACxB,eAAe,EAAE,KAAK,CAAC;IACvB,YAAY,EAAE,KAAK,CAAC;IACpB,6CAA6C,EAC3C,KAAK,CAAC;IACR,qCAAqC,EACnC,IAAI,CAAC;CACR;AAyOD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,OAAO,GACb,8BAA8B,CA0HhC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EACH,iCAAiC,GAClC,sBAAsB,CAmIxB;AAyBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EACH,mCAAmC,GACpC,iBAAiB,CAAC,2BAA2B,CAAC,CAmNhD"}
1
+ {"version":3,"file":"raw-reconstruction.d.ts","sourceRoot":"","sources":["../../src/sensor/raw-reconstruction.ts"],"names":[],"mappings":"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"}
@@ -346,53 +346,12 @@ export function resolveSensorRawReconstruction(input) {
346
346
  input.samples.length) {
347
347
  throw new InvalidScientificInputError("RAW neighborhood must not contain duplicate site/channel samples.");
348
348
  }
349
- const outputChannels = profile.kernels.map((kernel) => {
350
- let value = 0;
351
- const sourceContributions = kernel.contributions.map((contribution) => {
352
- const x = center.x +
353
- contribution.offsetX;
354
- const y = center.y +
355
- contribution.offsetY;
356
- if (x < 0 ||
357
- y < 0) {
358
- throw new InvalidScientificInputError("RAW reconstruction kernel references a site outside the non-negative native sensor coordinate domain.");
359
- }
360
- const key = x +
361
- ":" +
362
- y +
363
- ":" +
364
- contribution
365
- .sourceChannelId;
366
- const sample = sampleMap.get(key);
367
- if (sample ===
368
- undefined) {
369
- throw new InvalidScientificInputError("RAW reconstruction neighborhood is missing a required site/channel contribution.");
370
- }
371
- value +=
372
- sample
373
- .blackSubtractedNormalizedCode *
374
- contribution.weight;
375
- return {
376
- site: {
377
- x,
378
- y
379
- },
380
- sourceChannelId: contribution
381
- .sourceChannelId,
382
- weight: contribution.weight,
383
- sourceValue: sample
384
- .blackSubtractedNormalizedCode
385
- };
386
- });
387
- if (!Number.isFinite(value)) {
388
- throw new InvalidScientificInputError("Reconstructed linear channel value must remain finite.");
389
- }
390
- return {
391
- channelId: kernel.outputChannelId,
392
- linearBlackSubtractedNormalizedValue: value,
393
- sourceContributions
394
- };
395
- });
349
+ const outputChannels = profile.kernels.map(kernel => calculateRawReconstructionChannel(kernel, center, (x, y, channelId) => {
350
+ const sample = sampleMap.get(x + ":" + y + ":" + channelId);
351
+ if (sample === undefined)
352
+ throw new InvalidScientificInputError("RAW reconstruction neighborhood is missing a required site/channel contribution.");
353
+ return sample.blackSubtractedNormalizedCode;
354
+ }));
396
355
  return approximationResult({
397
356
  reconstructionProfileId: profile.profileId,
398
357
  reconstructionProfileVersion: profile.profileVersion,
@@ -421,4 +380,19 @@ export function resolveSensorRawReconstruction(input) {
421
380
  "Aliasing and moire are explicitly not modeled because this reconstruction contract does not establish an adequate pre-sampling optical transfer/scene-frequency model."
422
381
  ]);
423
382
  }
383
+ /** Internal prepared scalar accumulation; reference and packed execution share operation order. */
384
+ export function calculateRawReconstructionChannel(kernel, center, read) {
385
+ let value = 0;
386
+ const sourceContributions = kernel.contributions.map(contribution => {
387
+ const x = center.x + contribution.offsetX, y = center.y + contribution.offsetY;
388
+ if (x < 0 || y < 0)
389
+ throw new InvalidScientificInputError("RAW reconstruction kernel references a site outside the non-negative native sensor coordinate domain.");
390
+ const sourceValue = read(x, y, contribution.sourceChannelId);
391
+ value += sourceValue * contribution.weight;
392
+ return { site: { x, y }, sourceChannelId: contribution.sourceChannelId, weight: contribution.weight, sourceValue };
393
+ });
394
+ if (!Number.isFinite(value))
395
+ throw new InvalidScientificInputError("Reconstructed linear channel value must remain finite.");
396
+ return { channelId: kernel.outputChannelId, linearBlackSubtractedNormalizedValue: value, sourceContributions };
397
+ }
424
398
  //# sourceMappingURL=raw-reconstruction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"raw-reconstruction.js","sourceRoot":"","sources":["../../src/sensor/raw-reconstruction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"raw-reconstruction.js","sourceRoot":"","sources":["../../src/sensor/raw-reconstruction.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  # Public API reference
2
2
 
3
- Generated from the exact root exports for **@photivra/engine 1.3.0 / root contract 1.3.0** by `node scripts/generate-api-reference.mjs`. No module deep import is supported.
3
+ Generated from the exact root exports for **@photivra/engine 1.5.0 / root contract 1.5.0** by `node scripts/generate-api-reference.mjs`. No module deep import is supported.
4
4
 
5
5
  Use [the developer guide](DEVELOPERS.md) for executable paths and scientific boundaries. Types are contracts, not runtime validation: parse untrusted data, preserve units/reference frames, read assessment blockers, and retain evidence/limitations. Optional properties do not imply a universal default. Model/schema IDs remain independent of the distribution.
6
6
 
@@ -105,6 +105,52 @@ Use [the developer guide](DEVELOPERS.md) for executable paths and scientific bou
105
105
  | [`LinearCaptureEncodingInput`](api/capture-linear-encoding.md#linearcaptureencodinginput) | Type |
106
106
  | [`parseLinearCaptureEncoding`](api/capture-linear-encoding.md#parselinearcaptureencoding) | Runtime |
107
107
 
108
+ ## capture/native-environment-raw.ts
109
+
110
+ [Detailed contracts](api/capture-native-environment-raw.md) · [Source](https://github.com/Photivra/photivra/blob/main/src/capture/native-environment-raw.ts)
111
+
112
+ | Export | Kind |
113
+ | --- | --- |
114
+ | [`createNativeEnvironmentRawTask`](api/capture-native-environment-raw.md#createnativeenvironmentrawtask) | Runtime |
115
+ | [`NativeEnvironmentPhotoTile`](api/capture-native-environment-raw.md#nativeenvironmentphototile) | Type |
116
+ | [`NativeEnvironmentRawInput`](api/capture-native-environment-raw.md#nativeenvironmentrawinput) | Type |
117
+ | [`NativeEnvironmentRawOutput`](api/capture-native-environment-raw.md#nativeenvironmentrawoutput) | Type |
118
+ | [`NativeEnvironmentRawProvider`](api/capture-native-environment-raw.md#nativeenvironmentrawprovider) | Type |
119
+ | [`NativeEnvironmentRawTask`](api/capture-native-environment-raw.md#nativeenvironmentrawtask) | Type |
120
+ | [`NativeEnvironmentRawTile`](api/capture-native-environment-raw.md#nativeenvironmentrawtile) | Type |
121
+
122
+ ## capture/native-raw-development.ts
123
+
124
+ [Detailed contracts](api/capture-native-raw-development.md) · [Source](https://github.com/Photivra/photivra/blob/main/src/capture/native-raw-development.ts)
125
+
126
+ | Export | Kind |
127
+ | --- | --- |
128
+ | [`createNativeRawDevelopmentTask`](api/capture-native-raw-development.md#createnativerawdevelopmenttask) | Runtime |
129
+ | [`NativeRawDevelopmentInput`](api/capture-native-raw-development.md#nativerawdevelopmentinput) | Type |
130
+ | [`NativeRawDevelopmentOutput`](api/capture-native-raw-development.md#nativerawdevelopmentoutput) | Type |
131
+ | [`NativeRawDevelopmentTask`](api/capture-native-raw-development.md#nativerawdevelopmenttask) | Type |
132
+
133
+ ## capture/native-raw.ts
134
+
135
+ [Detailed contracts](api/capture-native-raw.md) · [Source](https://github.com/Photivra/photivra/blob/main/src/capture/native-raw.ts)
136
+
137
+ | Export | Kind |
138
+ | --- | --- |
139
+ | [`calculateNativeRawPlan`](api/capture-native-raw.md#calculatenativerawplan) | Runtime |
140
+ | [`createNativeRawTask`](api/capture-native-raw.md#createnativerawtask) | Runtime |
141
+ | [`NATIVE_RAW_LIMITS`](api/capture-native-raw.md#native_raw_limits) | Runtime |
142
+ | [`NATIVE_RAW_SCHEMA_VERSION`](api/capture-native-raw.md#native_raw_schema_version) | Runtime |
143
+ | [`NativeRawExposure`](api/capture-native-raw.md#nativerawexposure) | Type |
144
+ | [`NativeRawExposureInput`](api/capture-native-raw.md#nativerawexposureinput) | Type |
145
+ | [`NativeRawInput`](api/capture-native-raw.md#nativerawinput) | Type |
146
+ | [`NativeRawOutput`](api/capture-native-raw.md#nativerawoutput) | Type |
147
+ | [`NativeRawPlan`](api/capture-native-raw.md#nativerawplan) | Type |
148
+ | [`NativeRawProvider`](api/capture-native-raw.md#nativerawprovider) | Type |
149
+ | [`NativeRawTask`](api/capture-native-raw.md#nativerawtask) | Type |
150
+ | [`NativeRawTaskState`](api/capture-native-raw.md#nativerawtaskstate) | Type |
151
+ | [`NativeRawTile`](api/capture-native-raw.md#nativerawtile) | Type |
152
+ | [`NativeRawTileRequest`](api/capture-native-raw.md#nativerawtilerequest) | Type |
153
+
108
154
  ## capture/photographic-export.ts
109
155
 
110
156
  [Detailed contracts](api/capture-photographic-export.md) · [Source](https://github.com/Photivra/photivra/blob/main/src/capture/photographic-export.ts)
@@ -189,6 +235,7 @@ Use [the developer guide](DEVELOPERS.md) for executable paths and scientific bou
189
235
 
190
236
  | Export | Kind |
191
237
  | --- | --- |
238
+ | [`CaptureExposureSource`](api/capture-simulated-capture.md#captureexposuresource) | Type |
192
239
  | [`CaptureFloatStorage`](api/capture-simulated-capture.md#capturefloatstorage) | Type |
193
240
  | [`CaptureLinearImageState`](api/capture-simulated-capture.md#capturelinearimagestate) | Type |
194
241
  | [`CaptureLinearPlane`](api/capture-simulated-capture.md#capturelinearplane) | Type |
@@ -221,6 +268,15 @@ Use [the developer guide](DEVELOPERS.md) for executable paths and scientific bou
221
268
  | [`resolveCaptureColorModel`](api/color-capture-color.md#resolvecapturecolormodel) | Runtime |
222
269
  | [`VIRTUAL_COLOR_CAMERA_PROFILE`](api/color-capture-color.md#virtual_color_camera_profile) | Runtime |
223
270
 
271
+ ## color/srgb-icc.ts
272
+
273
+ [Detailed contracts](api/color-srgb-icc.md) · [Source](https://github.com/Photivra/photivra/blob/main/src/color/srgb-icc.ts)
274
+
275
+ | Export | Kind |
276
+ | --- | --- |
277
+ | [`createSrgbIccProfile`](api/color-srgb-icc.md#createsrgbiccprofile) | Runtime |
278
+ | [`SRGB_ICC_PROFILE_VERSION`](api/color-srgb-icc.md#srgb_icc_profile_version) | Runtime |
279
+
224
280
  ## color/white-balance.ts
225
281
 
226
282
  [Detailed contracts](api/color-white-balance.md) · [Source](https://github.com/Photivra/photivra/blob/main/src/color/white-balance.ts)
@@ -1033,6 +1089,18 @@ Use [the developer guide](DEVELOPERS.md) for executable paths and scientific bou
1033
1089
  | [`SceneSensorQuadratureSample`](api/optics-scene-to-sensor-quadrature.md#scenesensorquadraturesample) | Type |
1034
1090
  | [`SceneToSensorIrradianceQuadrature`](api/optics-scene-to-sensor-quadrature.md#scenetosensorirradiancequadrature) | Type |
1035
1091
 
1092
+ ## optics/sensor-aperture-rays.ts
1093
+
1094
+ [Detailed contracts](api/optics-sensor-aperture-rays.md) · [Source](https://github.com/Photivra/photivra/blob/main/src/optics/sensor-aperture-rays.ts)
1095
+
1096
+ | Export | Kind |
1097
+ | --- | --- |
1098
+ | [`calculateSensorApertureRays`](api/optics-sensor-aperture-rays.md#calculatesensoraperturerays) | Runtime |
1099
+ | [`CalculateSensorApertureRaysInput`](api/optics-sensor-aperture-rays.md#calculatesensorapertureraysinput) | Type |
1100
+ | [`IdealCircularPupil`](api/optics-sensor-aperture-rays.md#idealcircularpupil) | Type |
1101
+ | [`SensorApertureRay`](api/optics-sensor-aperture-rays.md#sensorapertureray) | Type |
1102
+ | [`SensorApertureRays`](api/optics-sensor-aperture-rays.md#sensoraperturerays) | Type |
1103
+
1036
1104
  ## optics/sensor-environment-query.ts
1037
1105
 
1038
1106
  [Detailed contracts](api/optics-sensor-environment-query.md) · [Source](https://github.com/Photivra/photivra/blob/main/src/optics/sensor-environment-query.ts)
@@ -1238,6 +1306,23 @@ Use [the developer guide](DEVELOPERS.md) for executable paths and scientific bou
1238
1306
  | [`PrintSinusoidalMeasurement`](api/output-print-detail.md#printsinusoidalmeasurement) | Type |
1239
1307
  | [`PrintSinusoidalTarget`](api/output-print-detail.md#printsinusoidaltarget) | Type |
1240
1308
 
1309
+ ## output/print-jpeg.ts
1310
+
1311
+ [Detailed contracts](api/output-print-jpeg.md) · [Source](https://github.com/Photivra/photivra/blob/main/src/output/print-jpeg.ts)
1312
+
1313
+ | Export | Kind |
1314
+ | --- | --- |
1315
+ | [`createPrintJpegTask`](api/output-print-jpeg.md#createprintjpegtask) | Runtime |
1316
+ | [`parsePrintJpegInput`](api/output-print-jpeg.md#parseprintjpeginput) | Runtime |
1317
+ | [`PRINT_JPEG_SCHEMA_VERSION`](api/output-print-jpeg.md#print_jpeg_schema_version) | Runtime |
1318
+ | [`PrintJpegInput`](api/output-print-jpeg.md#printjpeginput) | Type |
1319
+ | [`PrintJpegOutput`](api/output-print-jpeg.md#printjpegoutput) | Type |
1320
+ | [`PrintJpegProvider`](api/output-print-jpeg.md#printjpegprovider) | Type |
1321
+ | [`PrintJpegSource`](api/output-print-jpeg.md#printjpegsource) | Type |
1322
+ | [`PrintJpegTask`](api/output-print-jpeg.md#printjpegtask) | Type |
1323
+ | [`PrintJpegTile`](api/output-print-jpeg.md#printjpegtile) | Type |
1324
+ | [`PrintJpegTileRequest`](api/output-print-jpeg.md#printjpegtilerequest) | Type |
1325
+
1241
1326
  ## output/print-plan.ts
1242
1327
 
1243
1328
  [Detailed contracts](api/output-print-plan.md) · [Source](https://github.com/Photivra/photivra/blob/main/src/output/print-plan.ts)
@@ -1607,6 +1692,7 @@ Use [the developer guide](DEVELOPERS.md) for executable paths and scientific bou
1607
1692
  | --- | --- |
1608
1693
  | [`calculateEnvironmentSensorPhotoSignal`](api/sensor-environment-photo-signal.md#calculateenvironmentsensorphotosignal) | Runtime |
1609
1694
  | [`CalculateEnvironmentSensorPhotoSignalInput`](api/sensor-environment-photo-signal.md#calculateenvironmentsensorphotosignalinput) | Type |
1695
+ | [`EnvironmentApertureRadianceEvaluator`](api/sensor-environment-photo-signal.md#environmentapertureradianceevaluator) | Type |
1610
1696
  | [`EnvironmentRadianceEvaluator`](api/sensor-environment-photo-signal.md#environmentradianceevaluator) | Type |
1611
1697
  | [`EnvironmentSensorPhotoSignal`](api/sensor-environment-photo-signal.md#environmentsensorphotosignal) | Type |
1612
1698
 
@@ -0,0 +1,121 @@
1
+ # Dense-pupil qualification — issue #224
2
+
3
+ ## Decision at this checkpoint
4
+
5
+ The merged repository-only separable-emission prototype is **not qualified for
6
+ public promotion or the complete native Focus event**. This checkpoint adds
7
+ independent arithmetic oracles and reproducible complete-small-event resource
8
+ measurements. It does not close #224, qualify downstream scenes/devices, change
9
+ any resource ceiling, or export an experimental function from the package.
10
+
11
+ The 4-billion spectral-composition ceiling in #225 remains a draft proposal.
12
+ Preserving the old arbitrary-provider ceiling while introducing a larger scalar
13
+ work ceiling does not meet #224's no-raised-safety-ceiling requirement by itself.
14
+ The prototype also has no demonstrated full-native refinement envelope.
15
+
16
+ ## Work and allocation boundaries
17
+
18
+ For the declared no-PSF source, the original logical support is
19
+ `native sites × spatial nodes × temporal nodes × pupil rays × spectral nodes`.
20
+ An explicit uniform spectrum and achromatic geometry permit wavelength reuse
21
+ only for an identical origin/direction/time request. The geometry upper bound
22
+ removes the spectral factor; scalar spectral compositions remain unchanged.
23
+ No cross-site, cross-time or cross-event reuse is authorized by that declaration.
24
+
25
+ | Complete event support | Geometry calls (upper bound) | Scalar spectral compositions |
26
+ | --- | ---: | ---: |
27
+ | 2048×1366, 4 spatial, 1 temporal, 128 pupil, 2 spectral | 1,432,354,816 | 2,864,709,632 |
28
+ | Same support, 256 pupil | 2,864,709,632 | 5,729,419,264 |
29
+ | Same 128-pupil support, 2 temporal | 2,864,709,632 | 5,729,419,264 |
30
+
31
+ The base event is below 2 billion geometry calls but above 2 billion spectral
32
+ compositions. Either listed refinement is above both prototype ceilings.
33
+ Refinement events retain their own complete support and cannot be divided to
34
+ bypass admission. Actual downstream convergence may require other refinements;
35
+ these counts do not establish which refinement is scientifically sufficient.
36
+
37
+ The native output commits seven bytes per site: three uint16 planes and one
38
+ uint8 flag plane, or 19,582,976 bytes at 2048×1366. This excludes source profiles,
39
+ plans, query/result objects, per-site cache and all runtime overhead. Plans are
40
+ bounded by 100,000 logical evaluations per tile; geometric caches by the
41
+ single-site support. Object-count bounds are not byte/memory guarantees.
42
+
43
+ ## Independent checks
44
+
45
+ `test/separable-emission-qualification.test.ts` derives expected photon and
46
+ electron counts directly from SI h/c, paraxial `pi/(4*N²)` acceptance, explicit
47
+ geometric area, two specified wavelength midpoints, independently evaluated
48
+ transmission/QE curves, and the exact integral of a linear time ramp. It uses no
49
+ engine reducer or plan to generate the expected answer. It checks 32/64/128 pupil
50
+ rays and two/four time nodes for a uniform source and a symmetric origin-dependent
51
+ half-pupil edge. This checks normalized weights and response/optical/time ordering
52
+ in those constructed cases, not arbitrary 3D depth/occlusion or convergence.
53
+
54
+ The existing native regressions reuse a shared owned fixture and retain their
55
+ original global/native-scan photon and every-code RAW parity, absolute site
56
+ identities/seed scheduling, tile/event admission, callback failure, ownership and
57
+ cancellation assertions. Legacy parity is an additional implementation comparison,
58
+ not an independent oracle for all RAW physics.
59
+
60
+ ## Measured pilot
61
+
62
+ Run from the repository root after `npm ci`:
63
+
64
+ ```sh
65
+ node --expose-gc scripts/qualify-separable-emission.mjs
66
+ ```
67
+
68
+ The script compiles source and owned test helpers into a temporary directory,
69
+ copies required owned fixtures, executes complete 2×2 events at 32/64/128 pupil
70
+ rays for both global and right-to-left native-scan shutters, compares every RAW
71
+ code to the reference and records canonical little-endian code hashes. It removes
72
+ temporary compilation files on completion/failure. No new dependency is added.
73
+
74
+ Recorded results: [pilot.jsonl](validation/dense-pupil-2026-10-06/pilot.jsonl).
75
+ The evidence identifies base revision and modified source content hashes; it was
76
+ measured on Linux x64 / Node 24.19.0. Each event uses four spatial nodes, two
77
+ spectral nodes, two temporal nodes and one-site chunks. All four tiles complete,
78
+ produce 28 output bytes and yield four times. At 128 pupil rays the events execute
79
+ 4,096 geometry calls and 8,192 spectral compositions each.
80
+
81
+ | Pupil rays | Shutter | Complete 2×2 time (ms) | Longest tile interval (ms) | Sampled process RSS peak (MiB) |
82
+ | --- | --- | ---: | ---: | ---: |
83
+ | 32 | global | 159.23 | 45.08 | 132.0 |
84
+ | 32 | native scan | 189.34 | 53.55 | 172.4 |
85
+ | 64 | global | 257.49 | 70.51 | 219.2 |
86
+ | 64 | native scan | 359.62 | 112.23 | 234.2 |
87
+ | 128 | global | 527.75 | 143.34 | 267.1 |
88
+ | 128 | native scan | 561.69 | 180.42 | 299.0 |
89
+
90
+ RSS is the entire process, including retained reference results, compiled helper
91
+ execution and heap/allocator history. Sampling can miss transient peaks; these
92
+ numbers are neither allocation guarantees nor mobile/browser/device evidence.
93
+ One-site chunks do not ensure a responsive host when synchronous planning and
94
+ callbacks take this long. No maximum host latency was previously approved here.
95
+
96
+ Scaling the 128-ray pilots by site count and halving temporal support projects
97
+ 51.3–54.6 hours at 2048×1366. **This is an extrapolation, not a measured native
98
+ runtime or admission guarantee.** Different geometry, allocation, GC, profiles
99
+ and device behavior can change it. No complete native event was executed or
100
+ independently decoded in this checkpoint. No depth/refinement/source qualification
101
+ is established by the matching small-event code hashes.
102
+
103
+ ## Remaining work and decision needed
104
+
105
+ 1. Develop and independently qualify an exact reduction of scalar optical/spectral
106
+ work under explicit supported linearity and source assumptions, preserving all
107
+ committed quadrature measures and operating-range gates. Merely renaming counts
108
+ or increasing the scalar-work ceiling is insufficient.
109
+ 2. Measure planning/execution/allocation and cancellation/host responsiveness for
110
+ that implementation. Preserve truthful attempted-work counts and fail-closed
111
+ output. Do not infer mobile usability from this contributor host.
112
+ 3. Demonstrate complete native events with independent photon, packed RAW,
113
+ origin-aware depth/occlusion and refinement evidence within unchanged limits.
114
+ 4. Separately review a browser-safe public contract and version/API documentation,
115
+ compatibility, package surface and full checks before downstream adoption.
116
+ 5. Complete substantive human scientific/source review and contribution-specific
117
+ DCO. AI-assisted tests and measurements do not satisfy human review.
118
+
119
+ Until those steps pass, the experimental route stays under `src/api/`, outside
120
+ npm/root exports; #224 and downstream Focus/Depth remain blocked for production.
121
+ UI implementation and authenticated staging can continue independently.
@@ -1,5 +1,7 @@
1
1
  # Executed environment capture to native RAW
2
2
 
3
+ Standalone follow-up: [ideal pupil rays](SENSOR_APERTURE_RAYS.md) adds an explicitly selected origin-aware evaluator. It preserves the bounds below and does not activate production depth/visibility composition.
4
+
3
5
  Release context: **package 1.2.0 candidate / root API 1.2.0**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_2_0.md).
4
6
 
5
7
  `calculateEnvironmentSensorPhotoSignal()` executes one destination site's