Labs ​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 { Labs } from '@holostep-configurators/runtime-client/contract'; · labs · since 2.0.0 · section 20. Labs
Members that serve one app or wrap an engine-shaped capability. Their rows block the release
exactly like stable rows. They graduate (the labs. prefix is removed by a codemod) when a
second app uses them.
| Member | Kind | Summary |
|---|---|---|
geometry |
property | Read and write vertex data of loaded and created meshes. |
skin |
method | Skins a collection mesh to a model's skeleton; it then follows that model's clips. |
decal |
method | A decal on the matched surfaces, owned by owner: an item of that collection under a key the runtime makes, so its part has the owner's role and collection. |
fire |
method | Volumetric fire, owned by owner: an item of that collection, so it follows its parent and goes with its owner. |
lightLinking |
method | The light stops reaching the parts except matches; every other part stays lit by it. |
mirror |
method | A geometry mirror of models and collections about the world plane x = 0. |
prefetch |
method | Fetches into the browser cache what a write naming these nodes would load on this device and quality tier: a ModelNode with its active descendants; a MaterialNode's maps, using the optimized twin where the runtime would. |
shading |
property | Typed MaterialX shading graphs (a fabric grade, a wood grain). |
export interface Labs<C extends object = NoCommitOptions> {
readonly geometry: {
read(query: Query, attributes: readonly GeometryAttribute[], options?: {
from?: 'authored' | 'current';
signal?: AbortSignal;
}): Promise<GeometryData<C>[]>;
write(query: Query, data: GeometryWrite | null, options?: C & SignalOption): Promise<Report>;
};
skin(part: Part, binding: SkinBinding, options?: C & SignalOption): Promise<Report>;
decal(target: Query, spec: DecalSpec, options: {
owner: Collection;
signal?: AbortSignal;
}): Promise<Part<C>>;
fire(spec: FireSpec, placement: Placement & {
owner: Collection;
}): Promise<Part<C>>;
lightLinking(light: Part, except: Query, options?: {
signal?: AbortSignal;
}): () => void;
mirror(axis: 'x' | null, options: C & SignalOption & {
owner: Collection;
}): Promise<Report>;
prefetch(nodes: readonly (string | DeepReadonly<ConfiguratorNode>)[], options?: SceneModelOptions): Promise<void>;
readonly shading: {
graph<U extends Record<string, ShadingUniformType>>(uniforms: U, build: (n: ShadingNodes<U>) => ShadingOutputs, options: {
owner: Collection;
}): Shading<U>;
};
}
| Rule | Result |
|---|---|
| 1. Neutral name | pass: Labs names no product |
| 2. A precedent | not recorded: no ledger row (coverage.json) names this member or its owner |
| 3. Two apps, or labs | labs: it graduates when a second app uses it |
| 4. The cheaper fix first | not recorded per member (Appendix B decides it per need) |