Luxar Viewer API Documentation - v2026.9.22
    Preparing search index...

    Interface SyntheticSceneSpec

    interface SyntheticSceneSpec {
        type: SyntheticSceneType;
        count: number;
        bounds?: number;
        seed?: number;
        clusters?: number;
        blending?: string;
        width?: number;
        stepScale?: number;
        turnAngle?: number;
    }
    Index
    count: number

    Number of elements (segments / points / splats) to generate.

    bounds?: number

    Half-extent of the generation volume. Lines: bounds of the random walk. Points/gsplats: cluster centers are drawn uniformly from [-bounds, bounds]^3. Larger bounds → more on-screen spread. Defaults to [-100, 100].

    seed?: number

    Deterministic seed so the same (type, count, seed, clusters) produces the same scene byte-for-byte. Defaults to 1.

    clusters?: number

    Number of gaussian blobs the points/gsplats samplers draw from (ignored by 'lines', which is a random walk). Defaults to DEFAULT_CLUSTERS.

    blending?: string

    Blending mode for the injected node — consumed by the debug injector (not the generators). Defaults: 'additive' for lines (the historical bench contract), 'normal' for points/gsplats so the depth-sort subsystem engages.

    width?: number

    Lines only: per-endpoint width written for every segment. Defaults to 1.0 (the historical bench contract). The thick perf scenarios raise this so segments are much WIDER than they are long — the worst case for footprint-area cost (#1352 gate G0/G1).

    stepScale?: number

    Lines only: random-walk step size as a fraction of bounds. Defaults to 0.01 (the historical bounds * 0.01). Lower it to make segments shorter relative to their width.

    turnAngle?: number

    Lines only: maximum per-step turning angle in RADIANS. When set, the walk carries direction momentum and turns by at most roughly this much per step — a smooth streamline/trajectory proxy. Unset keeps the historical fully-random walk, whose consecutive segments turn ~90° on average (an adversarial case for any join-aware renderer, measured on the #1352 spike).