StageSettings ​Contract 2.0.0 · package sha256
a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e· generated fromconfigurator-runtime.d.tsbyservices/onsite-scripter/scripts/build-contract-docs.mjs; edit the source, not this file.
Interface · import type { StageSettings } from '@holostep-configurators/runtime-client/contract'; · stable · since 2.0.0 · section 9. Stage
Colour pipeline: shading is linear Rec.709 in a frame of at least half-float. AO and bloom act on
that frame; then exposureEv, the tone curve and grade apply once, in every render path (live,
low tier, capture). Colour and gradient backgrounds, 'unlit' and exactColor surfaces skip
exposure and the curve, not grade, which acts on the encoded output (grade); environment and
panorama backdrops take both (BackgroundSpec).
Every field merges over the document's value, and each stage layer over the layers below it
(Stage.set).
One runtime-owned exception, render recovery: on a device whose render self-check fails or whose
GPU can't render a half-float target, the runtime drops effects step by step (AO, bloom and
accumulation among them; spec section 5.5). Exposure, the curve and grade still apply once on
every level, so the colours hold; the effects differ.
| Member | Kind | Summary |
|---|---|---|
lights? |
property | The runtime's own rig: 'default', 'none' (the rig is off; a collection's light items still shine), or scaled. |
environment? |
property | Image-based lighting: a built-in ('room', 'studio'), an HDR, or 'none' (no image-based lighting; the lights alone). |
background? |
property | What is drawn behind the scene: a colour, a gradient, 'transparent' (the page shows through), 'environment' or an image backdrop (BackgroundSpec). |
ground? |
property | on: draw the ground's shadow on these parts (a floor). |
exposureEv? |
property | Relative stops, 0 = unchanged. |
toneMapping? |
property | Named curves are formulas published with golden images. |
ambientOcclusion? |
property | radius: metres, or 'auto' from role 'product' bounds. |
bloom? |
property | threshold is scene-linear. |
grade? |
property | Applied after the tone curve and the output's sRGB encoding, in every render path, capture included, to every pixel the canvas draws: colour and gradient backgrounds, 'unlit' and exactColor surfaces skip exposure and… |
export interface StageSettings {
lights?: 'default' | 'none' | {
intensity: number;
};
environment?: 'room' | 'studio' | 'none' | {
url?: string;
intensity?: number;
rotationDeg?: number;
blur?: number;
};
background?: BackgroundSpec;
ground?: 'shadow' | 'none' | {
shadow: {
opacity?: number;
sizeM?: number;
y?: number;
on?: Query;
};
};
exposureEv?: number;
toneMapping?: 'product' | 'mood' | 'aces' | 'none' | {
curve: readonly Point2[];
};
ambientOcclusion?: boolean | {
radius?: number | 'auto';
strength?: number;
};
bloom?: boolean | {
strength?: number;
threshold?: number;
};
grade?: {
saturation?: number;
};
}
| Rule | Result |
|---|---|
| 1. Neutral name | pass: StageSettings names no product |
| 2. A precedent | not recorded: no ledger row (coverage.json) names this member or its owner |
| 3. Two apps, or labs | pass: 28 apps (fleet cross-check: app-04c2774145, app-0c773a4ee3, app-37356bf09f, app-378d190f1b, app-4762caacdc, app-4f16d2f6da, app-4fd23bc869, app-510d750508 and 20 more) |
| 4. The cheaper fix first | not recorded per member (Appendix B decides it per need) |