@photivra/engine 1.1.0 → 1.3.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.
- package/CHANGELOG.md +12 -1
- package/CITATION.cff +1 -1
- package/NOTICE +29 -0
- package/README.md +6 -6
- package/THIRD_PARTY.md +10 -0
- package/dist/composition/image-formation-plan.d.ts.map +1 -1
- package/dist/composition/image-formation-plan.js +17 -8
- package/dist/composition/image-formation-plan.js.map +1 -1
- package/dist/core/version.d.ts +1 -1
- package/dist/core/version.js +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/optics/complex-pupil-psf.d.ts +6 -0
- package/dist/optics/complex-pupil-psf.d.ts.map +1 -1
- package/dist/optics/complex-pupil-psf.js +10 -7
- package/dist/optics/complex-pupil-psf.js.map +1 -1
- package/dist/output/native-capture-sdr.d.ts +78 -0
- package/dist/output/native-capture-sdr.d.ts.map +1 -0
- package/dist/output/native-capture-sdr.js +171 -0
- package/dist/output/native-capture-sdr.js.map +1 -0
- package/dist/output/print-contrast-reference.d.ts +47 -0
- package/dist/output/print-contrast-reference.d.ts.map +1 -0
- package/dist/output/print-contrast-reference.js +95 -0
- package/dist/output/print-contrast-reference.js.map +1 -0
- package/dist/output/print-detail.d.ts +7 -0
- package/dist/output/print-detail.d.ts.map +1 -1
- package/dist/output/print-detail.js +20 -11
- package/dist/output/print-detail.js.map +1 -1
- package/dist/output/print-region-statistics.d.ts +92 -0
- package/dist/output/print-region-statistics.d.ts.map +1 -0
- package/dist/output/print-region-statistics.js +300 -0
- package/dist/output/print-region-statistics.js.map +1 -0
- package/dist/sensor/environment-photo-signal.d.ts +8 -1
- package/dist/sensor/environment-photo-signal.d.ts.map +1 -1
- package/dist/sensor/environment-photo-signal.js +16 -6
- package/dist/sensor/environment-photo-signal.js.map +1 -1
- package/docs/API_REFERENCE.md +52 -1
- package/docs/API_STYLE.md +1 -1
- package/docs/ARCHITECTURE.md +1 -1
- package/docs/AUTOMATION_COORDINATION.md +1 -1
- package/docs/CAPTURE_COLOR.md +1 -1
- package/docs/CAPTURE_CORRECTED_SDR.md +1 -1
- package/docs/CAPTURE_EXPORT_METADATA.md +1 -1
- package/docs/CAPTURE_SDR.md +3 -1
- package/docs/DEVELOPERS.md +6 -4
- package/docs/DIGITAL_OPTICS_FOUNDATION.md +1 -1
- package/docs/ENVIRONMENT_RAW_CAPTURE.md +23 -4
- package/docs/EXPORT_ACCEPTANCE.md +1 -1
- package/docs/GENERIC_TIER_PRESETS.md +1 -1
- package/docs/GEOMETRIC_PREPARATION_REUSE.md +1 -1
- package/docs/IMAGE_FORMATION.md +1 -1
- package/docs/LINEAR_CAPTURE_ENCODING.md +1 -1
- package/docs/MOTION_AND_SIGNAL.md +1 -1
- package/docs/NATIVE_CAPTURE_SDR.md +70 -0
- package/docs/NATIVE_CAPTURE_SDR_REVIEW.md +37 -0
- package/docs/NATIVE_CAPTURE_SDR_VALIDATION.md +34 -0
- package/docs/NUMERICAL_CORRECTNESS.md +1 -1
- package/docs/PERFORMANCE_BASELINE.md +1 -1
- package/docs/PHOTOGRAPHIC_EXPORT.md +1 -1
- package/docs/PHYSICS_FOUNDATION.md +1 -1
- package/docs/POC_API.md +1 -1
- package/docs/POC_PROJECTION_REUSE.md +1 -1
- package/docs/PRINT_195_196_REVIEW.md +93 -0
- package/docs/PRINT_196_ENGINE_ACCEPTANCE.md +45 -0
- package/docs/PRINT_CONTRAST_REFERENCE.md +43 -0
- package/docs/PRINT_DETAIL_ASSESSMENT.md +1 -1
- package/docs/PRINT_DETAIL_JPEG_EVIDENCE.md +36 -0
- package/docs/PRINT_DETAIL_VALIDATION.md +1 -1
- package/docs/PRINT_PLANNING.md +3 -1
- package/docs/PRINT_REGION_STATISTICS.md +38 -0
- package/docs/PROCESSED_OUTPUT.md +1 -1
- package/docs/PRODUCTION_COMPOSITION.md +1 -1
- package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +1 -1
- package/docs/PROVENANCE.md +1 -1
- package/docs/PSF_FOUNDATION.md +11 -1
- package/docs/RAW_FRAME_ENVELOPE.md +1 -1
- package/docs/RAW_FRAME_RECONSTRUCTION.md +1 -1
- package/docs/RELEASE_1_2_0.md +51 -0
- package/docs/RELEASE_1_3_0.md +15 -0
- package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +1 -1
- package/docs/SCENE_SENSOR_QUADRATURE.md +1 -1
- package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +1 -1
- package/docs/SCIENTIFIC_ASSURANCE.md +1 -1
- package/docs/SCIENTIFIC_CONFORMANCE.md +1 -1
- package/docs/SDR_RENDERING.md +1 -1
- package/docs/SENSOR_ENVIRONMENT_QUERY.md +1 -1
- package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +1 -1
- package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +1 -1
- package/docs/SENSOR_PSF_QUADRATURE.md +1 -1
- package/docs/SENSOR_RAW_FRAME.md +1 -1
- package/docs/SENSOR_RAW_PRODUCER.md +1 -1
- package/docs/SIGNAL_CONFORMANCE.md +1 -1
- package/docs/SIMULATED_CAPTURE.md +1 -1
- package/docs/STABILIZATION.md +1 -1
- package/docs/TEMPORAL_PHOTO_RAW.md +1 -1
- package/docs/TIER_ACCEPTANCE.md +1 -1
- package/docs/TIER_PRESET_ACCEPTANCE.md +1 -1
- package/docs/USAGE.md +3 -1
- package/docs/V1_COMPOSITION_MAP.md +1 -1
- package/docs/V1_HELPER_REUSE_REVIEW.md +1 -1
- package/docs/V1_PERFORMANCE_DISPOSITION.md +1 -1
- package/docs/api/camera-equivalent-focal-length.md +1 -1
- package/docs/api/camera-field-of-view.md +1 -1
- package/docs/api/camera-projected-object-size.md +1 -1
- package/docs/api/capture-capture-export-metadata.md +1 -1
- package/docs/api/capture-environment-raw-producer.md +1 -1
- package/docs/api/capture-focus-control.md +1 -1
- package/docs/api/capture-linear-encoding.md +1 -1
- package/docs/api/capture-photographic-export.md +1 -1
- package/docs/api/capture-raw-frame-reconstruction.md +1 -1
- package/docs/api/capture-release-sequence.md +1 -1
- package/docs/api/capture-sensor-raw-frame.md +1 -1
- package/docs/api/capture-sensor-raw-producer.md +1 -1
- package/docs/api/capture-simulated-capture.md +1 -1
- package/docs/api/color-capture-color.md +1 -1
- package/docs/api/color-white-balance.md +1 -1
- package/docs/api/composition-image-formation-plan.md +1 -1
- package/docs/api/composition-plan-consumer.md +1 -1
- package/docs/api/core-calculation-result.md +1 -1
- package/docs/api/core-configuration-error.md +1 -1
- package/docs/api/core-image-formation.md +1 -1
- package/docs/api/core-scientific-assurance.md +1 -1
- package/docs/api/core-spectral-composition.md +1 -1
- package/docs/api/core-spectral.md +1 -1
- package/docs/api/core-validation.md +1 -1
- package/docs/api/core-version.md +2 -2
- package/docs/api/equipment-exposure-capabilities.md +1 -1
- package/docs/api/equipment-generic-tier-assets.md +1 -1
- package/docs/api/equipment-generic-tier-presets.md +1 -1
- package/docs/api/equipment-iso-capabilities.md +1 -1
- package/docs/api/equipment-metering-capabilities.md +1 -1
- package/docs/api/equipment-release-capabilities.md +1 -1
- package/docs/api/exports.json +152 -2
- package/docs/api/exposure-exposure-duration-control.md +1 -1
- package/docs/api/exposure-exposure-mode-resolver.md +1 -1
- package/docs/api/exposure-exposure.md +1 -1
- package/docs/api/exposure-flash.md +1 -1
- package/docs/api/exposure-metering-scene-radiance.md +1 -1
- package/docs/api/exposure-metering-target.md +1 -1
- package/docs/api/exposure-metering-temporal.md +1 -1
- package/docs/api/exposure-metering.md +1 -1
- package/docs/api/exposure-program-line.md +1 -1
- package/docs/api/motion-camera-rotation.md +1 -1
- package/docs/api/motion-capture-rotation-inverse-mapping.md +1 -1
- package/docs/api/motion-capture-rotation-temporal-quadrature.md +1 -1
- package/docs/api/motion-capture-rotation-trajectory.md +1 -1
- package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +1 -1
- package/docs/api/motion-extended-object-projection.md +1 -1
- package/docs/api/motion-projected-motion.md +1 -1
- package/docs/api/optics-aperture.md +1 -1
- package/docs/api/optics-circle-of-confusion.md +1 -1
- package/docs/api/optics-complex-pupil-psf.md +7 -1
- package/docs/api/optics-depth-of-field.md +1 -1
- package/docs/api/optics-diffraction.md +1 -1
- package/docs/api/optics-focus-breathing.md +1 -1
- package/docs/api/optics-focus-state.md +1 -1
- package/docs/api/optics-front-of-lens-filter.md +1 -1
- package/docs/api/optics-illumination-vignetting.md +1 -1
- package/docs/api/optics-lateral-chromatic-aberration.md +1 -1
- package/docs/api/optics-lens-psf-profile.md +1 -1
- package/docs/api/optics-polygon-diffraction.md +1 -1
- package/docs/api/optics-profile-contract.md +1 -1
- package/docs/api/optics-psf-foundation.md +1 -1
- package/docs/api/optics-radial-distortion.md +1 -1
- package/docs/api/optics-scene-to-sensor-irradiance.md +1 -1
- package/docs/api/optics-scene-to-sensor-quadrature.md +1 -1
- package/docs/api/optics-sensor-environment-query.md +1 -1
- package/docs/api/optics-sensor-psf-quadrature.md +1 -1
- package/docs/api/optics-stray-light.md +1 -1
- package/docs/api/optics-thin-lens.md +1 -1
- package/docs/api/output-capture-corrected-sdr.md +1 -1
- package/docs/api/output-capture-geometry.md +1 -1
- package/docs/api/output-capture-sdr.md +1 -1
- package/docs/api/output-crop.md +1 -1
- package/docs/api/output-geometric-transforms.md +1 -1
- package/docs/api/output-lens-corrections.md +1 -1
- package/docs/api/output-native-capture-sdr.md +150 -0
- package/docs/api/output-print-contrast-reference.md +82 -0
- package/docs/api/output-print-detail.md +1 -1
- package/docs/api/output-print-plan.md +1 -1
- package/docs/api/output-print-region-statistics.md +165 -0
- package/docs/api/output-sdr-rendering.md +1 -1
- package/docs/api/output-subject-framing-crop.md +1 -1
- package/docs/api/schema-camera.md +1 -1
- package/docs/api/schema-illumination-spectral.md +1 -1
- package/docs/api/schema-illumination-temporal.md +1 -1
- package/docs/api/schema-illumination.md +1 -1
- package/docs/api/schema-scene-radiance-temporal.md +1 -1
- package/docs/api/schema-scene-radiance.md +1 -1
- package/docs/api/schema-scene.md +1 -1
- package/docs/api/schema-validation.md +1 -1
- package/docs/api/sensor-accumulated-charge.md +1 -1
- package/docs/api/sensor-architecture.md +1 -1
- package/docs/api/sensor-camera-saturation-capacity.md +1 -1
- package/docs/api/sensor-capture-color-sampling-binding.md +1 -1
- package/docs/api/sensor-capture-mode-timing.md +1 -1
- package/docs/api/sensor-capture-mode.md +1 -1
- package/docs/api/sensor-color-sampling.md +1 -1
- package/docs/api/sensor-constant-rate-temporal-integration.md +1 -1
- package/docs/api/sensor-dark-current.md +1 -1
- package/docs/api/sensor-environment-photo-signal.md +6 -3
- package/docs/api/sensor-eqe-electron-rate.md +1 -1
- package/docs/api/sensor-eqe-local-exposure.md +1 -1
- package/docs/api/sensor-eqe-temporal-exposure.md +1 -1
- package/docs/api/sensor-exposure-window.md +1 -1
- package/docs/api/sensor-iso-signal-chain.md +1 -1
- package/docs/api/sensor-local-exposure-binding.md +1 -1
- package/docs/api/sensor-optical-stack.md +1 -1
- package/docs/api/sensor-photon-energy.md +1 -1
- package/docs/api/sensor-physical-charge-capacity.md +1 -1
- package/docs/api/sensor-pixel-pitch.md +1 -1
- package/docs/api/sensor-radiometry-readiness.md +1 -1
- package/docs/api/sensor-raw-readout.md +1 -1
- package/docs/api/sensor-raw-reconstruction.md +1 -1
- package/docs/api/sensor-readout-exposure-linkage.md +1 -1
- package/docs/api/sensor-readout-timing.md +1 -1
- package/docs/api/sensor-response-application-compatibility.md +1 -1
- package/docs/api/sensor-response-operating-range.md +1 -1
- package/docs/api/sensor-responsivity-photocurrent.md +1 -1
- package/docs/api/sensor-sampling-aperture.md +1 -1
- package/docs/api/sensor-scene-eqe-temporal-exposure.md +1 -1
- package/docs/api/sensor-sensor-geometry.md +1 -1
- package/docs/api/sensor-signal-noise.md +1 -1
- package/docs/api/sensor-spatial-sample-reduction.md +1 -1
- package/docs/api/sensor-spatial-sampling-quadrature.md +1 -1
- package/docs/api/sensor-spatio-spectral-reduction.md +1 -1
- package/docs/api/sensor-spectral-coverage.md +1 -1
- package/docs/api/sensor-spectral-quadrature.md +1 -1
- package/docs/api/sensor-spectral-response.md +1 -1
- package/docs/api/sensor-temporal-photo-signal.md +1 -1
- package/docs/api/simulation-poc-simulation.md +1 -1
- package/docs/api/stabilization-camera-shake.md +1 -1
- package/docs/api/stabilization-system.md +1 -1
- package/docs/licenses/castleCSF-MIT.txt +21 -0
- package/docs/validation/native-capture-sdr-darwin-arm64-node26-review.jsonl +4 -0
- package/docs/validation/native-capture-sdr-darwin-arm64.jsonl +3 -0
- package/docs/validation/print-196-candidate-capabilities.json +28 -0
- package/docs/validation/print-196-candidate-evidence.json +356 -0
- package/docs/validation/print-196-engine-acceptance.json +81 -0
- package/docs/validation/print-detail-capabilities.json +4 -1
- package/docs/validation/print-detail-jpeg-evidence.json +116 -0
- package/package.json +1 -1
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/** Bounded linear-region processing differences and repeat-capture statistics.
|
|
3
|
+
* @see docs/PRINT_REGION_STATISTICS.md for the model, protocol and exclusions.
|
|
4
|
+
*/
|
|
5
|
+
import { calculatedResult } from "../core/calculation-result.js";
|
|
6
|
+
import { InvalidConfigurationError } from "../core/configuration-error.js";
|
|
7
|
+
import { freezeOwnedData } from "../core/owned-data.js";
|
|
8
|
+
import { requireAllowlistedRecord, requirePublicOpaqueId } from "../core/record-validation.js";
|
|
9
|
+
import { ENGINE_API_VERSION } from "../core/version.js";
|
|
10
|
+
import { parsePrintDetailSource, parsePrintDetailRegion, MAX_PRINT_DETAIL_REGION_SAMPLES } from "./print-detail.js";
|
|
11
|
+
import { resolveCaptureGeometry } from "./capture-geometry.js";
|
|
12
|
+
import { calculatePrintPlan, parsePrintPlanInput } from "./print-plan.js";
|
|
13
|
+
/** Independent of the root distribution and coherent-detail protocol. */
|
|
14
|
+
export const PRINT_REGION_STATISTICS_MODEL_VERSION = "0.1.0";
|
|
15
|
+
/** Maximum scalar samples across every frame/reference in one request. */
|
|
16
|
+
export const MAX_PRINT_REGION_STATISTICS_SAMPLES = MAX_PRINT_DETAIL_REGION_SAMPLES;
|
|
17
|
+
function record(v, keys) {
|
|
18
|
+
return requireAllowlistedRecord(v, keys, "Invalid or unknown Print region statistics fields.");
|
|
19
|
+
}
|
|
20
|
+
function id(v) { return requirePublicOpaqueId(v, "Invalid public Print region statistics identity."); }
|
|
21
|
+
function finite(v) {
|
|
22
|
+
if (typeof v !== "number" || !Number.isFinite(v))
|
|
23
|
+
throw new InvalidConfigurationError("Print region statistics require finite numbers.");
|
|
24
|
+
return v;
|
|
25
|
+
}
|
|
26
|
+
function choice(v, options) {
|
|
27
|
+
if (typeof v !== "string" || !options.includes(v))
|
|
28
|
+
throw new InvalidConfigurationError("Unknown Print region statistics enum.");
|
|
29
|
+
return v;
|
|
30
|
+
}
|
|
31
|
+
function parseRaster(v) {
|
|
32
|
+
const r = record(v, ["print", "source", "region", "samples"]), source = parsePrintDetailSource(r.source);
|
|
33
|
+
const { region, samples } = parsePrintDetailRegion(r.region, source, r.samples);
|
|
34
|
+
return { print: parsePrintPlanInput(r.print), source, region, samples };
|
|
35
|
+
}
|
|
36
|
+
/** Parse/copy an untrusted paired scalar ROI request. */
|
|
37
|
+
export function parsePrintRegionDifferenceInput(v) {
|
|
38
|
+
const r = record(v, ["assessmentId", "before", "after", "purpose", "realizationPolicy", "referenceRange"]);
|
|
39
|
+
const before = parseRaster(r.before), after = parseRaster(r.after);
|
|
40
|
+
if (before.samples.length + after.samples.length > MAX_PRINT_REGION_STATISTICS_SAMPLES)
|
|
41
|
+
throw new InvalidConfigurationError("Print paired ROI sample budget exceeded.");
|
|
42
|
+
let referenceRange = null;
|
|
43
|
+
if (r.referenceRange !== null) {
|
|
44
|
+
const range = record(r.referenceRange, ["lowerRelativeLuminance", "upperRelativeLuminance"]);
|
|
45
|
+
referenceRange = { lowerRelativeLuminance: finite(range.lowerRelativeLuminance), upperRelativeLuminance: finite(range.upperRelativeLuminance) };
|
|
46
|
+
if (referenceRange.lowerRelativeLuminance >= referenceRange.upperRelativeLuminance)
|
|
47
|
+
throw new InvalidConfigurationError("Reference range must be strictly increasing.");
|
|
48
|
+
}
|
|
49
|
+
return { assessmentId: id(r.assessmentId), before, after, referenceRange,
|
|
50
|
+
purpose: choice(r.purpose, ["processing-change", "decoded-file-change"]),
|
|
51
|
+
realizationPolicy: choice(r.realizationPolicy, ["same-noise-realization", "deterministic-reference"]) };
|
|
52
|
+
}
|
|
53
|
+
/** Parse/copy an untrusted repeat-capture ensemble with a total scalar work bound. */
|
|
54
|
+
export function parsePrintRegionNoiseInput(v) {
|
|
55
|
+
const r = record(v, ["assessmentId", "ensembleId", "stationarySceneId", "repeatPolicy", "frames"]);
|
|
56
|
+
if (!Array.isArray(r.frames) || r.frames.length < 2 || r.frames.length > 256)
|
|
57
|
+
throw new InvalidConfigurationError("Print noise statistics require 2 to 256 repeat frames.");
|
|
58
|
+
const frames = [];
|
|
59
|
+
let count = 0;
|
|
60
|
+
for (let i = 0; i < r.frames.length; i++) {
|
|
61
|
+
if (!Object.hasOwn(r.frames, i))
|
|
62
|
+
throw new InvalidConfigurationError("Sparse Print noise ensembles are unsupported.");
|
|
63
|
+
const frame = parseRaster(r.frames[i]);
|
|
64
|
+
count += frame.samples.length;
|
|
65
|
+
if (count > MAX_PRINT_REGION_STATISTICS_SAMPLES)
|
|
66
|
+
throw new InvalidConfigurationError("Print noise ensemble sample budget exceeded.");
|
|
67
|
+
frames.push(frame);
|
|
68
|
+
}
|
|
69
|
+
return { assessmentId: id(r.assessmentId), ensembleId: id(r.ensembleId), stationarySceneId: id(r.stationarySceneId),
|
|
70
|
+
repeatPolicy: choice(r.repeatPolicy, ["independent-stationary-captures"]), frames };
|
|
71
|
+
}
|
|
72
|
+
function applicability(frame) {
|
|
73
|
+
const reasons = [], p = calculatePrintPlan(frame.print).value;
|
|
74
|
+
if (frame.source.domain !== "relative-linear-luminance")
|
|
75
|
+
reasons.push("linear-luminance-domain-required");
|
|
76
|
+
if (frame.source.registration !== "oriented-retained-unwarped")
|
|
77
|
+
reasons.push("correction-warp-registration-unqualified");
|
|
78
|
+
if (frame.print.source.kind !== "native-retained")
|
|
79
|
+
return [...reasons, "missing-authoritative-native-geometry"];
|
|
80
|
+
if (frame.source.captureId !== frame.print.source.captureId)
|
|
81
|
+
reasons.push("capture-identity-mismatch");
|
|
82
|
+
if (p.status === "unsupported" || p.status === "crop-confirmation-required")
|
|
83
|
+
reasons.push("print-geometry-unavailable");
|
|
84
|
+
const geometry = resolveCaptureGeometry(frame.print.source.geometry).value, crop = geometry.output.cropRect, raster = frame.source.raster;
|
|
85
|
+
if (raster.pixelWidth > crop.width || raster.pixelHeight > crop.height)
|
|
86
|
+
reasons.push("represented-native-upscale-unsupported");
|
|
87
|
+
if (BigInt(raster.pixelWidth) * BigInt(crop.height) !== BigInt(raster.pixelHeight) * BigInt(crop.width))
|
|
88
|
+
reasons.push("represented-retained-aspect-mismatch");
|
|
89
|
+
if (frame.source.stage === "native-retained-linear" && (raster.pixelWidth !== crop.width || raster.pixelHeight !== crop.height))
|
|
90
|
+
reasons.push("native-representation-raster-mismatch");
|
|
91
|
+
return reasons;
|
|
92
|
+
}
|
|
93
|
+
// Parsed records have canonical field order; the comparison deliberately retains every
|
|
94
|
+
// geometry/region/print condition, while allowing acquisition/processing identities to differ.
|
|
95
|
+
function registrationKey(frame) {
|
|
96
|
+
return JSON.stringify({ geometry: frame.print.source.kind === "native-retained" ? frame.print.source.geometry : null,
|
|
97
|
+
print: { ...frame.print, source: null }, raster: frame.source.raster, region: frame.region });
|
|
98
|
+
}
|
|
99
|
+
function base(assessmentId, input, frame) {
|
|
100
|
+
return { assessmentId, engineApiVersion: ENGINE_API_VERSION, modelVersion: PRINT_REGION_STATISTICS_MODEL_VERSION,
|
|
101
|
+
input, status: "blocked", blockers: [], print: calculatePrintPlan(frame.print).value, measurement: null,
|
|
102
|
+
sourceArtifactVerification: "caller-declared-unverified", acquisitionQualification: "unassessed",
|
|
103
|
+
uncertainty: "not-quantified", overallPrintVerdict: "not-offered" };
|
|
104
|
+
}
|
|
105
|
+
function finish(result) {
|
|
106
|
+
return freezeOwnedData(calculatedResult(result, "regional-linear-print-statistics", PRINT_REGION_STATISTICS_MODEL_VERSION, ["Scalar linear samples, exact source identities and registration are caller declarations.",
|
|
107
|
+
"Repeat stationarity/independence and deterministic or shared realization policies need independent acquisition evidence.",
|
|
108
|
+
"No clipping mechanism, artifact visibility, physical sensor noise or overall print pass is inferred."]));
|
|
109
|
+
}
|
|
110
|
+
class Sum {
|
|
111
|
+
total = 0;
|
|
112
|
+
correction = 0;
|
|
113
|
+
add(v) {
|
|
114
|
+
const next = this.total + v;
|
|
115
|
+
this.correction += Math.abs(this.total) >= Math.abs(v) ? (this.total - next) + v : (v - next) + this.total;
|
|
116
|
+
this.total = next;
|
|
117
|
+
}
|
|
118
|
+
get value() { return this.total + this.correction; }
|
|
119
|
+
}
|
|
120
|
+
function finiteMean(values) {
|
|
121
|
+
let scale = 0, subnormalTerms = false;
|
|
122
|
+
const raw = new Sum(), normalized = new Sum();
|
|
123
|
+
for (const v of values)
|
|
124
|
+
scale = Math.max(scale, Math.abs(v));
|
|
125
|
+
if (scale === 0)
|
|
126
|
+
return 0;
|
|
127
|
+
for (const v of values) {
|
|
128
|
+
if (v !== 0 && v / scale === 0)
|
|
129
|
+
return null;
|
|
130
|
+
const term = v / values.length;
|
|
131
|
+
raw.add(term);
|
|
132
|
+
normalized.add(v / scale / values.length);
|
|
133
|
+
if (v !== 0 && Math.abs(term) < 2 ** -1022)
|
|
134
|
+
subnormalTerms = true;
|
|
135
|
+
}
|
|
136
|
+
const mean = subnormalTerms ? normalized.value * scale : raw.value;
|
|
137
|
+
return Number.isFinite(mean) ? mean : null;
|
|
138
|
+
}
|
|
139
|
+
/** Measure registered processing changes; residual is not automatically compression/noise. */
|
|
140
|
+
export function calculatePrintRegionDifference(value) {
|
|
141
|
+
const input = parsePrintRegionDifferenceInput(value), { before, after } = input;
|
|
142
|
+
const result = base(input.assessmentId, input, after);
|
|
143
|
+
result.blockers.push(...applicability(before), ...applicability(after));
|
|
144
|
+
if (registrationKey(before) !== registrationKey(after))
|
|
145
|
+
result.blockers.push("paired-site-registration-mismatch");
|
|
146
|
+
if (before.source.captureId !== after.source.captureId)
|
|
147
|
+
result.blockers.push("paired-capture-identity-mismatch");
|
|
148
|
+
if (before.source.representationId === after.source.representationId && (before.source.contentSha256 !== after.source.contentSha256 || before.source.stage !== after.source.stage || JSON.stringify(before.source.processing) !== JSON.stringify(after.source.processing)))
|
|
149
|
+
result.blockers.push("representation-identity-conflict");
|
|
150
|
+
if (input.realizationPolicy === "same-noise-realization" && (before.source.noiseRealizationId === null || before.source.noiseRealizationId !== after.source.noiseRealizationId))
|
|
151
|
+
result.blockers.push("same-noise-realization-required");
|
|
152
|
+
if (input.realizationPolicy === "deterministic-reference" && (before.source.noiseRealizationId !== null || after.source.noiseRealizationId !== null))
|
|
153
|
+
result.blockers.push("deterministic-reference-has-noise-realization");
|
|
154
|
+
if (input.purpose === "decoded-file-change" && (before.source.stage !== "post-resampling-linear" || after.source.stage !== "post-encoding-decoded-linear"))
|
|
155
|
+
result.blockers.push("exact-pre-encode-and-decoded-stages-required");
|
|
156
|
+
if (result.blockers.length)
|
|
157
|
+
return finish(result);
|
|
158
|
+
let scale = 0;
|
|
159
|
+
for (const samples of [before.samples, after.samples])
|
|
160
|
+
for (const v of samples)
|
|
161
|
+
scale = Math.max(scale, Math.abs(v));
|
|
162
|
+
const sum = new Sum(), rawMeanSum = new Sum(), count = before.samples.length;
|
|
163
|
+
let finiteDifferences = true, subnormalMeanTerms = false;
|
|
164
|
+
let norm = 0, maximum = 0;
|
|
165
|
+
for (let i = 0; i < count; i++) {
|
|
166
|
+
const raw = after.samples[i] - before.samples[i];
|
|
167
|
+
if (Number.isFinite(raw)) {
|
|
168
|
+
rawMeanSum.add(raw / count);
|
|
169
|
+
if (raw !== 0 && Math.abs(raw / count) < 2 ** -1022)
|
|
170
|
+
subnormalMeanTerms = true;
|
|
171
|
+
}
|
|
172
|
+
else
|
|
173
|
+
finiteDifferences = false;
|
|
174
|
+
const d = scale === 0 ? 0 : Number.isFinite(raw) ? raw / scale : after.samples[i] / scale - before.samples[i] / scale;
|
|
175
|
+
if (raw !== 0 && d === 0) {
|
|
176
|
+
result.status = "unsupported";
|
|
177
|
+
result.blockers.push("difference-dynamic-range-unsupported");
|
|
178
|
+
return finish(result);
|
|
179
|
+
}
|
|
180
|
+
sum.add(d / count);
|
|
181
|
+
norm = Math.hypot(norm, d);
|
|
182
|
+
maximum = Math.max(maximum, Math.abs(d));
|
|
183
|
+
}
|
|
184
|
+
const measurement = { meanSignedDifferenceRelativeLuminance: finiteDifferences && !subnormalMeanTerms ? rawMeanSum.value : sum.value * scale,
|
|
185
|
+
rmsDifferenceRelativeLuminance: norm / Math.sqrt(count) * scale, maximumAbsoluteDifferenceRelativeLuminance: maximum * scale, rangeExcursions: null };
|
|
186
|
+
if (input.referenceRange) {
|
|
187
|
+
const { lowerRelativeLuminance: lo, upperRelativeLuminance: hi } = input.referenceRange;
|
|
188
|
+
const excursions = (samples) => {
|
|
189
|
+
let below = 0, above = 0, under = 0, over = 0;
|
|
190
|
+
for (const v of samples) {
|
|
191
|
+
if (v < lo) {
|
|
192
|
+
below++;
|
|
193
|
+
under = Math.max(under, lo - v);
|
|
194
|
+
}
|
|
195
|
+
if (v > hi) {
|
|
196
|
+
above++;
|
|
197
|
+
over = Math.max(over, v - hi);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return { below, above, under, over };
|
|
201
|
+
};
|
|
202
|
+
const b = excursions(before.samples), a = excursions(after.samples);
|
|
203
|
+
measurement.rangeExcursions = { beforeBelowRangeCount: b.below, beforeAboveRangeCount: b.above, afterBelowRangeCount: a.below, afterAboveRangeCount: a.above,
|
|
204
|
+
beforeMaximumUndershootRelativeLuminance: b.under, beforeMaximumOvershootRelativeLuminance: b.over,
|
|
205
|
+
afterMaximumUndershootRelativeLuminance: a.under, afterMaximumOvershootRelativeLuminance: a.over };
|
|
206
|
+
}
|
|
207
|
+
if (![measurement.meanSignedDifferenceRelativeLuminance, measurement.rmsDifferenceRelativeLuminance, measurement.maximumAbsoluteDifferenceRelativeLuminance,
|
|
208
|
+
...Object.values(measurement.rangeExcursions ?? {})].every(Number.isFinite) || (norm > 0 && measurement.rmsDifferenceRelativeLuminance === 0)) {
|
|
209
|
+
result.status = "unsupported";
|
|
210
|
+
result.blockers.push("difference-numeric-range-unsupported");
|
|
211
|
+
return finish(result);
|
|
212
|
+
}
|
|
213
|
+
result.status = "diagnostic-only";
|
|
214
|
+
result.measurement = measurement;
|
|
215
|
+
return finish(result);
|
|
216
|
+
}
|
|
217
|
+
/** Measure n-1 per-site temporal sample variance, independently of scene spatial texture. */
|
|
218
|
+
export function calculatePrintRegionNoise(value) {
|
|
219
|
+
const input = parsePrintRegionNoiseInput(value), first = input.frames[0];
|
|
220
|
+
const result = base(input.assessmentId, input, first);
|
|
221
|
+
const captureIds = new Set(), representations = new Set(), realizations = new Set();
|
|
222
|
+
for (const frame of input.frames) {
|
|
223
|
+
result.blockers.push(...applicability(frame));
|
|
224
|
+
if (registrationKey(frame) !== registrationKey(first) || frame.source.stage !== first.source.stage || JSON.stringify(frame.source.processing) !== JSON.stringify(first.source.processing))
|
|
225
|
+
result.blockers.push("repeat-acquisition-registration-or-processing-mismatch");
|
|
226
|
+
if (captureIds.has(frame.source.captureId) || representations.has(frame.source.representationId))
|
|
227
|
+
result.blockers.push("repeat-acquisition-identity-reused");
|
|
228
|
+
if (frame.source.noiseRealizationId === null || realizations.has(frame.source.noiseRealizationId))
|
|
229
|
+
result.blockers.push("distinct-repeat-noise-realizations-required");
|
|
230
|
+
captureIds.add(frame.source.captureId);
|
|
231
|
+
representations.add(frame.source.representationId);
|
|
232
|
+
if (frame.source.noiseRealizationId !== null)
|
|
233
|
+
realizations.add(frame.source.noiseRealizationId);
|
|
234
|
+
}
|
|
235
|
+
if (result.blockers.length)
|
|
236
|
+
return finish(result);
|
|
237
|
+
const frameCount = input.frames.length, siteCount = first.samples.length, means = [], variances = [];
|
|
238
|
+
let pooledRms = 0;
|
|
239
|
+
for (let site = 0; site < siteCount; site++) {
|
|
240
|
+
let scale = 0;
|
|
241
|
+
for (const frame of input.frames)
|
|
242
|
+
scale = Math.max(scale, Math.abs(frame.samples[site]));
|
|
243
|
+
const meanSum = new Sum(), rawMeanSum = new Sum(), normalizedMeanSum = new Sum(), anchor = first.samples[site], offsets = [];
|
|
244
|
+
let subnormalMeanTerms = false;
|
|
245
|
+
for (const frame of input.frames) {
|
|
246
|
+
const v = frame.samples[site];
|
|
247
|
+
rawMeanSum.add(v / frameCount);
|
|
248
|
+
if (v !== 0 && Math.abs(v / frameCount) < 2 ** -1022)
|
|
249
|
+
subnormalMeanTerms = true;
|
|
250
|
+
if (v !== 0 && v / scale === 0) {
|
|
251
|
+
result.status = "unsupported";
|
|
252
|
+
result.blockers.push("noise-dynamic-range-unsupported");
|
|
253
|
+
return finish(result);
|
|
254
|
+
}
|
|
255
|
+
normalizedMeanSum.add(scale === 0 ? 0 : v / scale / frameCount);
|
|
256
|
+
const raw = v - anchor;
|
|
257
|
+
const offset = scale === 0 ? 0 : Number.isFinite(raw) ? raw / scale : v / scale - anchor / scale;
|
|
258
|
+
if (raw !== 0 && offset === 0) {
|
|
259
|
+
result.status = "unsupported";
|
|
260
|
+
result.blockers.push("noise-dynamic-range-unsupported");
|
|
261
|
+
return finish(result);
|
|
262
|
+
}
|
|
263
|
+
offsets.push(offset);
|
|
264
|
+
meanSum.add(offset / frameCount);
|
|
265
|
+
}
|
|
266
|
+
// Center in the offset domain: rounding a restored large DC mean must not inflate
|
|
267
|
+
// variance when the mathematical mean lies between adjacent binary64 values.
|
|
268
|
+
const meanOffset = meanSum.value, mean = subnormalMeanTerms ? normalizedMeanSum.value * scale : rawMeanSum.value;
|
|
269
|
+
let norm = 0;
|
|
270
|
+
for (const offset of offsets)
|
|
271
|
+
norm = Math.hypot(norm, offset - meanOffset);
|
|
272
|
+
const rms = norm / Math.sqrt(frameCount - 1) * scale, variance = rms * rms;
|
|
273
|
+
if (![mean, rms, variance].every(Number.isFinite) || (norm > 0 && (rms === 0 || variance === 0))) {
|
|
274
|
+
result.status = "unsupported";
|
|
275
|
+
result.blockers.push("noise-numeric-range-unsupported");
|
|
276
|
+
return finish(result);
|
|
277
|
+
}
|
|
278
|
+
means.push(mean);
|
|
279
|
+
variances.push(variance);
|
|
280
|
+
pooledRms = Math.hypot(pooledRms, rms / Math.sqrt(siteCount));
|
|
281
|
+
}
|
|
282
|
+
const mean = finiteMean(means), variance = finiteMean(variances);
|
|
283
|
+
if (mean === null || variance === null || (pooledRms > 0 && variance === 0)) {
|
|
284
|
+
result.status = "unsupported";
|
|
285
|
+
result.blockers.push("noise-numeric-range-unsupported");
|
|
286
|
+
return finish(result);
|
|
287
|
+
}
|
|
288
|
+
const measurement = { frameCount, siteCount, meanRelativeLuminance: mean,
|
|
289
|
+
meanTemporalSampleVarianceRelativeLuminanceSquared: variance, temporalRmsRelativeLuminance: pooledRms,
|
|
290
|
+
perSiteMeansRelativeLuminance: means, perSiteSampleVariancesRelativeLuminanceSquared: variances };
|
|
291
|
+
if (![measurement.meanRelativeLuminance, measurement.meanTemporalSampleVarianceRelativeLuminanceSquared, pooledRms].every(Number.isFinite)) {
|
|
292
|
+
result.status = "unsupported";
|
|
293
|
+
result.blockers.push("noise-numeric-range-unsupported");
|
|
294
|
+
return finish(result);
|
|
295
|
+
}
|
|
296
|
+
result.status = "diagnostic-only";
|
|
297
|
+
result.measurement = measurement;
|
|
298
|
+
return finish(result);
|
|
299
|
+
}
|
|
300
|
+
//# sourceMappingURL=print-region-statistics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"print-region-statistics.js","sourceRoot":"","sources":["../../src/output/print-region-statistics.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ import { validateSceneRadianceEvaluationBindings, type SceneRadianceEvaluationRe
|
|
|
17
17
|
import { calculateSensorEnvironmentRadianceQuery, type CalculateSensorEnvironmentRadianceQueryInput } from "../optics/sensor-environment-query.js";
|
|
18
18
|
import { calculateSceneRadianceToSensorIrradiance, type CalculateSceneRadianceToSensorIrradianceInput } from "../optics/scene-to-sensor-irradiance.js";
|
|
19
19
|
import { calculateSensorPsfIrradianceQuadrature, type CalculateSensorPsfIrradianceQuadratureInput } from "../optics/sensor-psf-quadrature.js";
|
|
20
|
+
import { type IlluminationVignettingProfile } from "../optics/illumination-vignetting.js";
|
|
20
21
|
import { calculateSensorSpatialSamplingQuadrature } from "./spatial-sampling-quadrature.js";
|
|
21
22
|
import { calculateSensorSpectralQuadrature } from "./spectral-quadrature.js";
|
|
22
23
|
import { createSensorEqeTemporalPhotoSignal } from "./temporal-photo-signal.js";
|
|
@@ -31,11 +32,16 @@ export interface CalculateEnvironmentSensorPhotoSignalInput {
|
|
|
31
32
|
optics: Omit<CalculateSceneRadianceToSensorIrradianceInput, "sceneRadianceRequest" | "sceneRadianceResult" | "imagePointMm" | "fieldThroughput">;
|
|
32
33
|
motion: Pick<CalculateSensorEnvironmentRadianceQueryInput, "angularVelocityRadPerSec" | "timeReference" | "environmentDirectionConvention">;
|
|
33
34
|
temporalSampleCount: number;
|
|
34
|
-
/** Explicit
|
|
35
|
+
/** Explicit source-field attenuation, applied once before PSF redistribution. */
|
|
35
36
|
fieldThroughput: {
|
|
36
37
|
kind: "unity";
|
|
37
38
|
evidence: readonly EvidenceProvenance[];
|
|
38
39
|
limitation: string;
|
|
40
|
+
} | {
|
|
41
|
+
kind: "radial-illumination-vignetting";
|
|
42
|
+
profile: IlluminationVignettingProfile;
|
|
43
|
+
evidence: readonly EvidenceProvenance[];
|
|
44
|
+
limitation: string;
|
|
39
45
|
};
|
|
40
46
|
psf: {
|
|
41
47
|
kind: "not-applied";
|
|
@@ -97,6 +103,7 @@ interface EnvironmentPhotoPlan {
|
|
|
97
103
|
y: number;
|
|
98
104
|
};
|
|
99
105
|
query: ReturnType<typeof calculateSensorEnvironmentRadianceQuery>;
|
|
106
|
+
fieldThroughput: CalculateSceneRadianceToSensorIrradianceInput["fieldThroughput"];
|
|
100
107
|
}[];
|
|
101
108
|
}[];
|
|
102
109
|
}[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-photo-signal.d.ts","sourceRoot":"","sources":["../../src/sensor/environment-photo-signal.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAG5F,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAI5F,OAAO,EACL,uCAAuC,EAAE,KAAK,8BAA8B,EAC5E,KAAK,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,uCAAuC,EAAE,KAAK,4CAA4C,EAAE,MAAM,uCAAuC,CAAC;AACnJ,OAAO,EAAE,wCAAwC,EAAE,KAAK,6CAA6C,EAAE,MAAM,yCAAyC,CAAC;AACvJ,OAAO,EAAE,sCAAsC,EAAE,KAAK,2CAA2C,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"environment-photo-signal.d.ts","sourceRoot":"","sources":["../../src/sensor/environment-photo-signal.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,7 @@ import { parseSceneMaterialResponseProfile, parseSceneRadianceProviderProfile, p
|
|
|
23
23
|
import { calculateSensorEnvironmentRadianceQuery } from "../optics/sensor-environment-query.js";
|
|
24
24
|
import { calculateSceneRadianceToSensorIrradiance } from "../optics/scene-to-sensor-irradiance.js";
|
|
25
25
|
import { calculateSensorPsfIrradianceQuadrature } from "../optics/sensor-psf-quadrature.js";
|
|
26
|
+
import { calculateIlluminationVignetting } from "../optics/illumination-vignetting.js";
|
|
26
27
|
import { sensorPsfSourcePoint } from "../optics/sensor-psf-support.js";
|
|
27
28
|
import { resolveLensSampledPsf } from "../optics/lens-psf-profile.js";
|
|
28
29
|
import { calculateSensorSpatialSamplingQuadrature } from "./spatial-sampling-quadrature.js";
|
|
@@ -48,8 +49,13 @@ export function planEnvironmentSensorPhotoSignal(input) {
|
|
|
48
49
|
requirePublicOpaqueId(owned.temporalIntegrationId, "Environment integration requires a public identity.");
|
|
49
50
|
if (!Number.isSafeInteger(owned.temporalSampleCount) || owned.temporalSampleCount < 1 || owned.temporalSampleCount > 256 ||
|
|
50
51
|
owned.sensor.responseApplication.sourcePlane.value !== "sensor-package-incident" ||
|
|
51
|
-
owned.fieldThroughput?.kind !== "unity" || typeof owned.fieldThroughput.limitation !== "string" || !owned.fieldThroughput.limitation.trim()) {
|
|
52
|
-
throw new InvalidScientificInputError("Environment exposure requires package-incident response, 1..256 midpoints and explicit
|
|
52
|
+
(owned.fieldThroughput?.kind !== "unity" && owned.fieldThroughput?.kind !== "radial-illumination-vignetting") || typeof owned.fieldThroughput.limitation !== "string" || !owned.fieldThroughput.limitation.trim()) {
|
|
53
|
+
throw new InvalidScientificInputError("Environment exposure requires package-incident response, 1..256 midpoints and explicit supported field throughput.");
|
|
54
|
+
}
|
|
55
|
+
if (owned.fieldThroughput.kind === "radial-illumination-vignetting" &&
|
|
56
|
+
(typeof owned.fieldThroughput.profile !== "object" || owned.fieldThroughput.profile === null ||
|
|
57
|
+
typeof owned.fieldThroughput.profile.coefficients !== "object" || owned.fieldThroughput.profile.coefficients === null)) {
|
|
58
|
+
throw new InvalidScientificInputError("Radial throughput requires a declared profile and coefficients.");
|
|
53
59
|
}
|
|
54
60
|
const fieldThroughputEvidence = parseEvidenceList(owned.fieldThroughput.evidence, "environmentFieldThroughput.evidence");
|
|
55
61
|
const sceneBindings = { providerProfile: parseSceneRadianceProviderProfile(owned.sceneBindings.providerProfile),
|
|
@@ -109,7 +115,11 @@ export function planEnvironmentSensorPhotoSignal(input) {
|
|
|
109
115
|
const points = Array.from({ length: taps }, (_, i) => ({ kernelSampleX: kernel ? i % kernel.widthSamples : 0,
|
|
110
116
|
kernelSampleY: kernel ? Math.floor(i / kernel.widthSamples) : 0,
|
|
111
117
|
point: kernel ? sensorPsfSourcePoint(destination, kernel, i % kernel.widthSamples, Math.floor(i / kernel.widthSamples)) : { ...destination } }));
|
|
112
|
-
return { node, points
|
|
118
|
+
return { node, points: points.map(p => ({ ...p, fieldThroughput: owned.fieldThroughput.kind === "unity"
|
|
119
|
+
? { kind: "unity" }
|
|
120
|
+
: { kind: "illumination-vignetting-result", result: calculateIlluminationVignetting({
|
|
121
|
+
imagePointMm: { x: p.point.x, y: -p.point.y }, profile: owned.fieldThroughput.profile
|
|
122
|
+
}).value } })) };
|
|
113
123
|
}));
|
|
114
124
|
const measure = window.localExposureDurationSeconds / owned.temporalSampleCount;
|
|
115
125
|
let previous = -Infinity;
|
|
@@ -150,7 +160,7 @@ export function executeEnvironmentSensorPhotoSignal(plan, evaluate) {
|
|
|
150
160
|
const result = parseSceneRadianceEvaluationResult(evaluate(request));
|
|
151
161
|
const bindings = validateSceneRadianceEvaluationBindings({ ...plan.sceneBindings, request, result });
|
|
152
162
|
const optics = calculateSceneRadianceToSensorIrradiance({ ...owned.optics, sceneRadianceRequest: request,
|
|
153
|
-
sceneRadianceResult: result, imagePointMm: tap.query.value.sourcePointImagePlaneMm, fieldThroughput:
|
|
163
|
+
sceneRadianceResult: result, imagePointMm: tap.query.value.sourcePointImagePlaneMm, fieldThroughput: tap.fieldThroughput });
|
|
154
164
|
evaluations.push({ query: tap.query, result, bindings, optics });
|
|
155
165
|
return { kernelSampleX: tap.kernelSampleX, kernelSampleY: tap.kernelSampleY, sourcePointNativeSensorMm: tap.point,
|
|
156
166
|
timeSecondsFromOpeningReference: instant.time,
|
|
@@ -172,9 +182,9 @@ export function executeEnvironmentSensorPhotoSignal(plan, evaluate) {
|
|
|
172
182
|
fieldThroughputLimitation: owned.fieldThroughput.limitation,
|
|
173
183
|
psfOmission: owned.psf.kind === "not-applied" ? { evidence: parseEvidenceList(owned.psf.evidence, "psfOmission.evidence"), limitation: owned.psf.limitation } : null,
|
|
174
184
|
psfRedistributionApplied: owned.psf.kind === "sampled-local", photo, instants
|
|
175
|
-
}, "environment-sensor-photo-signal", "0.
|
|
185
|
+
}, "environment-sensor-photo-signal", "0.2.0", [
|
|
176
186
|
"Supplied synchronous provider code was invoked at each generated environment query; physical transport and visibility are not verified.",
|
|
177
|
-
"Ideal focus-aware rotation/projection, explicit
|
|
187
|
+
"Ideal focus-aware rotation/projection, explicit evidence-bound field throughput and optional destination-local sampled PSF are bounded approximations.",
|
|
178
188
|
"PSF pupil throughput is not applied; child uncertainty, finite-support and quadrature convergence are not combined or established."
|
|
179
189
|
]);
|
|
180
190
|
}
|
|
@@ -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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"}
|
package/docs/API_REFERENCE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Public API reference
|
|
2
2
|
|
|
3
|
-
Generated from the exact root exports for **@photivra/engine 1.
|
|
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.
|
|
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
|
|
|
@@ -1189,6 +1189,38 @@ Use [the developer guide](DEVELOPERS.md) for executable paths and scientific bou
|
|
|
1189
1189
|
| [`ResolvedLensCorrectionPlan`](api/output-lens-corrections.md#resolvedlenscorrectionplan) | Type |
|
|
1190
1190
|
| [`resolveLensCorrectionPlan`](api/output-lens-corrections.md#resolvelenscorrectionplan) | Runtime |
|
|
1191
1191
|
|
|
1192
|
+
## output/native-capture-sdr.ts
|
|
1193
|
+
|
|
1194
|
+
[Detailed contracts](api/output-native-capture-sdr.md) · [Source](https://github.com/Photivra/photivra/blob/main/src/output/native-capture-sdr.ts)
|
|
1195
|
+
|
|
1196
|
+
| Export | Kind |
|
|
1197
|
+
| --- | --- |
|
|
1198
|
+
| [`calculateNativeCaptureSdrPlan`](api/output-native-capture-sdr.md#calculatenativecapturesdrplan) | Runtime |
|
|
1199
|
+
| [`createNativeCaptureSdrTask`](api/output-native-capture-sdr.md#createnativecapturesdrtask) | Runtime |
|
|
1200
|
+
| [`NATIVE_CAPTURE_SDR_LIMITS`](api/output-native-capture-sdr.md#native_capture_sdr_limits) | Runtime |
|
|
1201
|
+
| [`NATIVE_CAPTURE_SDR_SCHEMA_VERSION`](api/output-native-capture-sdr.md#native_capture_sdr_schema_version) | Runtime |
|
|
1202
|
+
| [`NativeCaptureSdrInput`](api/output-native-capture-sdr.md#nativecapturesdrinput) | Type |
|
|
1203
|
+
| [`NativeCaptureSdrOutput`](api/output-native-capture-sdr.md#nativecapturesdroutput) | Type |
|
|
1204
|
+
| [`NativeCaptureSdrPlan`](api/output-native-capture-sdr.md#nativecapturesdrplan) | Type |
|
|
1205
|
+
| [`NativeCaptureSdrProvider`](api/output-native-capture-sdr.md#nativecapturesdrprovider) | Type |
|
|
1206
|
+
| [`NativeCaptureSdrTask`](api/output-native-capture-sdr.md#nativecapturesdrtask) | Type |
|
|
1207
|
+
| [`NativeCaptureSdrTaskState`](api/output-native-capture-sdr.md#nativecapturesdrtaskstate) | Type |
|
|
1208
|
+
| [`NativeCaptureSdrTile`](api/output-native-capture-sdr.md#nativecapturesdrtile) | Type |
|
|
1209
|
+
| [`NativeCaptureSdrTileRequest`](api/output-native-capture-sdr.md#nativecapturesdrtilerequest) | Type |
|
|
1210
|
+
|
|
1211
|
+
## output/print-contrast-reference.ts
|
|
1212
|
+
|
|
1213
|
+
[Detailed contracts](api/output-print-contrast-reference.md) · [Source](https://github.com/Photivra/photivra/blob/main/src/output/print-contrast-reference.ts)
|
|
1214
|
+
|
|
1215
|
+
| Export | Kind |
|
|
1216
|
+
| --- | --- |
|
|
1217
|
+
| [`calculatePrintContrastReference`](api/output-print-contrast-reference.md#calculateprintcontrastreference) | Runtime |
|
|
1218
|
+
| [`parsePrintContrastReferenceInput`](api/output-print-contrast-reference.md#parseprintcontrastreferenceinput) | Runtime |
|
|
1219
|
+
| [`PRINT_CONTRAST_REFERENCE_MODEL_VERSION`](api/output-print-contrast-reference.md#print_contrast_reference_model_version) | Runtime |
|
|
1220
|
+
| [`PRINT_CONTRAST_REFERENCE_UPSTREAM_REVISION`](api/output-print-contrast-reference.md#print_contrast_reference_upstream_revision) | Runtime |
|
|
1221
|
+
| [`PrintContrastReference`](api/output-print-contrast-reference.md#printcontrastreference) | Type |
|
|
1222
|
+
| [`PrintContrastReferenceInput`](api/output-print-contrast-reference.md#printcontrastreferenceinput) | Type |
|
|
1223
|
+
|
|
1192
1224
|
## output/print-detail.ts
|
|
1193
1225
|
|
|
1194
1226
|
[Detailed contracts](api/output-print-detail.md) · [Source](https://github.com/Photivra/photivra/blob/main/src/output/print-detail.ts)
|
|
@@ -1226,6 +1258,25 @@ Use [the developer guide](DEVELOPERS.md) for executable paths and scientific bou
|
|
|
1226
1258
|
| [`PrintSizeLimit`](api/output-print-plan.md#printsizelimit) | Type |
|
|
1227
1259
|
| [`PrintSizeLimitInput`](api/output-print-plan.md#printsizelimitinput) | Type |
|
|
1228
1260
|
|
|
1261
|
+
## output/print-region-statistics.ts
|
|
1262
|
+
|
|
1263
|
+
[Detailed contracts](api/output-print-region-statistics.md) · [Source](https://github.com/Photivra/photivra/blob/main/src/output/print-region-statistics.ts)
|
|
1264
|
+
|
|
1265
|
+
| Export | Kind |
|
|
1266
|
+
| --- | --- |
|
|
1267
|
+
| [`calculatePrintRegionDifference`](api/output-print-region-statistics.md#calculateprintregiondifference) | Runtime |
|
|
1268
|
+
| [`calculatePrintRegionNoise`](api/output-print-region-statistics.md#calculateprintregionnoise) | Runtime |
|
|
1269
|
+
| [`MAX_PRINT_REGION_STATISTICS_SAMPLES`](api/output-print-region-statistics.md#max_print_region_statistics_samples) | Runtime |
|
|
1270
|
+
| [`parsePrintRegionDifferenceInput`](api/output-print-region-statistics.md#parseprintregiondifferenceinput) | Runtime |
|
|
1271
|
+
| [`parsePrintRegionNoiseInput`](api/output-print-region-statistics.md#parseprintregionnoiseinput) | Runtime |
|
|
1272
|
+
| [`PRINT_REGION_STATISTICS_MODEL_VERSION`](api/output-print-region-statistics.md#print_region_statistics_model_version) | Runtime |
|
|
1273
|
+
| [`PrintRegionDifferenceInput`](api/output-print-region-statistics.md#printregiondifferenceinput) | Type |
|
|
1274
|
+
| [`PrintRegionDifferenceMeasurement`](api/output-print-region-statistics.md#printregiondifferencemeasurement) | Type |
|
|
1275
|
+
| [`PrintRegionNoiseInput`](api/output-print-region-statistics.md#printregionnoiseinput) | Type |
|
|
1276
|
+
| [`PrintRegionNoiseMeasurement`](api/output-print-region-statistics.md#printregionnoisemeasurement) | Type |
|
|
1277
|
+
| [`PrintRegionRaster`](api/output-print-region-statistics.md#printregionraster) | Type |
|
|
1278
|
+
| [`PrintRegionStatisticsAssessment`](api/output-print-region-statistics.md#printregionstatisticsassessment) | Type |
|
|
1279
|
+
|
|
1229
1280
|
## output/sdr-rendering.ts
|
|
1230
1281
|
|
|
1231
1282
|
[Detailed contracts](api/output-sdr-rendering.md) · [Source](https://github.com/Photivra/photivra/blob/main/src/output/sdr-rendering.ts)
|
package/docs/API_STYLE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Public API Style
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.
|
|
3
|
+
Release context: **package 1.3.0 candidate / root API 1.3.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_3_0.md).
|
|
4
4
|
|
|
5
5
|
The open engine should feel like one coherent library.
|
|
6
6
|
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Architecture
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.
|
|
3
|
+
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
4
|
|
|
5
5
|
Photivra separates a reusable scientific core from optional composition and transport layers.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Public-engine automation coordination
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.
|
|
3
|
+
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
4
|
|
|
5
5
|
This document coordinates the two recurring automation lanes that work only in the public
|
|
6
6
|
`Photivra/photivra` repository. It is process guidance, not a scientific roadmap. Open issues and
|
package/docs/CAPTURE_COLOR.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Virtual-camera linear color: #15B
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.
|
|
3
|
+
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
4
|
|
|
5
5
|
`resolveCaptureColorModel()` defines an ideal CIE 1931 2-degree colorimetric camera: co-sited red/green/blue channels are an invertible encoding of XYZ in the linear-sRGB primary basis, with D65 reference white. They are relative linear values, not electrons, spectral response measurements or commercial-camera RGB. Choosing this profile is an upstream producer assertion about sample meaning; naming arbitrary sensor data with its ID does not establish validity.
|
|
6
6
|
|