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

    Interface UserSettings

    interface UserSettings {
        version: 1;
        input: { fovSensitivity: number; wheelZoomSensitivity: number };
        performance: {
            idleTimeoutMs: number;
            useWebWorkers: boolean;
            workerCount: number;
            networkMaxConcurrent: number;
        };
        caching: {
            enabled: boolean;
            sliceCache: boolean;
            prefetch: boolean;
            budgetMode: "auto"
            | "custom";
            budgetMB: number;
        };
        advanced: {
            renderer: "auto"
            | "webgpu"
            | "webgl";
            linePrimitivePolicy: LinePrimitivePolicy;
        };
    }
    Index
    version: 1
    input: { fovSensitivity: number; wheelZoomSensitivity: number }

    Type Declaration

    • fovSensitivity: number

      Ctrl/⌘+wheel FOV change per wheel-delta unit (live) — the unit is the pixel-equivalent delta from utils/wheel-delta, not the raw event value.

    • wheelZoomSensitivity: number

      Multiplier on every plain-wheel zoom step — orbit/ortho dolly and fly forward/back (live). 1 = the unscaled feel; turn down on a mouse whose driver delivers oversized wheel deltas. Global (per machine), because that is what varies — the per-scene orbit "Zoom Speed" stays a scene choice and the two multiply.

    performance: {
        idleTimeoutMs: number;
        useWebWorkers: boolean;
        workerCount: number;
        networkMaxConcurrent: number;
    }

    Type Declaration

    • idleTimeoutMs: number

      Power-save pause after this many ms of idle (live at timer re-arm).

    • useWebWorkers: boolean

      Route heavy decode/projection through web workers (live per load).

    • workerCount: number

      Worker pool size; 0 = auto (cores-based). Applied at pool creation → reload.

    • networkMaxConcurrent: number

      Concurrent prefetch fetches. Applied at scene-loader construction → reload.

    caching: {
        enabled: boolean;
        sliceCache: boolean;
        prefetch: boolean;
        budgetMode: "auto" | "custom";
        budgetMB: number;
    }

    Type Declaration

    • enabled: boolean

      Master in-memory/disk cache switch (→ loaderConfig.noCache) → reload.

    • sliceCache: boolean

      Decoded-slice S-cache (→ loaderConfig.noSliceCache) → reload.

    • prefetch: boolean

      Adjacent-chunk prefetch (→ loaderConfig.noPrefetch) → reload.

    • budgetMode: "auto" | "custom"

      'auto' = heap-aware/device-class budgets; 'custom' = explicit pool.

    • budgetMB: number

      Total cache pool (L0+L1+S-cache) in MB when budgetMode='custom'.

    advanced: {
        renderer: "auto" | "webgpu" | "webgl";
        linePrimitivePolicy: LinePrimitivePolicy;
    }

    Type Declaration

    • renderer: "auto" | "webgpu" | "webgl"

      Render backend; 'auto' = the built-in default chain → reload.

    • linePrimitivePolicy: LinePrimitivePolicy

      Line primitive policy (#1352 follow-up) → reload (the primitive is baked into each line material's shader at construction; there is no live-swap path). 'auto' = capsule, except very large line nodes, which build the cheaper quad — see types/line-primitive.ts for the measured rule.