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

    Interface LoadedGSplatsData

    Raw gsplats data loaded from zarr before nD projection.

    At this stage:

    • Centers are in full nD space
    • Cholesky factors are packed (k = ndim * (ndim + 1) / 2 elements per splat)
    • Attributes may need broadcasting (scalar → per-splat)
    interface LoadedGSplatsData {
        positions: Float32Array;
        amplitudes: Float32Array;
        choleskyFactors: Float32Array;
        colors:
            | Uint8Array<ArrayBufferLike>
            | Float32Array<ArrayBufferLike>
            | Uint16Array<ArrayBufferLike>
            | null;
        colorComponents?: 3 | 4;
        labelIndices?: Uint32Array<ArrayBufferLike>;
        labelVocabulary?: readonly GSplatLabelEntry[];
        splatCount: number;
        ndim: number;
        ranges?: readonly SplatRange[];
    }
    Index
    positions: Float32Array

    Splat positions (N splats * ndim dimensions), flattened row-major

    amplitudes: Float32Array

    Splat amplitudes (N,)

    choleskyFactors: Float32Array

    Packed Cholesky factors (N splats * k elements), flattened row-major. k = ndim * (ndim + 1) / 2

    Packing order: [L00, L10, L11, L20, L21, L22, ...] Forms lower-triangular L where covariance Σ = L @ Lᵀ

    colors:
        | Uint8Array<ArrayBufferLike>
        | Float32Array<ArrayBufferLike>
        | Uint16Array<ArrayBufferLike>
        | null

    Splat colors (N * colorComponents) RGB or RGBA, null if not present Supports Float32Array (HDR), Uint8Array (SDR), or Uint16Array

    colorComponents?: 3 | 4

    Components per color item: 3 (RGB) or 4 (RGBA). Absent means 3. The alpha channel is per-splat opacity (consumed by every blending mode; mapped into optical depth in volumetric).

    labelIndices?: Uint32Array<ArrayBufferLike>

    Compact 1-based categorical index per loaded splat.

    labelVocabulary?: readonly GSplatLabelEntry[]

    Compact-index vocabulary; entry N is addressed by labelIndices value N+1.

    splatCount: number

    Number of splats loaded

    ndim: number

    Dimensionality for interpreting centers and cholesky arrays

    ranges?: readonly SplatRange[]

    The visible ON-DISK ranges this payload was concatenated from, ascending and disjoint — the first half of the slot → on-disk element index map picking needs (data/loaders/element-ids.ts). Published by GSplatsSpatialIndexLoader ONLY when the node declares a per-element string/image CSR (has_labels / has_image_labels / has_keys): nothing else reads the map, and the field otherwise rides along in every SliceCache snapshot for free. Absent ⇒ no map is composed and picking falls back to the raw slot.