Node type identifier
Total splat count
Position dimensionality
Whether colors array is present
Optionalhas_Whether exact per-splat categorical ids are present.
Optionallabel_Exact id-to-name vocabulary for label_ids.
Optionalhas_Whether per-element string labels exist (CSR-encoded, for hover tooltips)
Optionalhas_Whether per-element image labels exist (CSR-encoded, for hover thumbnails)
Optionalhas_Whether per-element stable string keys exist (CSR-encoded, for element actions)
Elements per chunk
Amplitude value range
Center coordinate bounds
Optionalposition_Axis-aligned bounds stamped by the v3.0 writer on every node (a leaf's is
its center bounds; a group's is the union of its children). Used for
framing/clipping a bare-node file on load. Optional for back-compat with
scene leaves that surfaced only center_bounds.
Spatial ordering method
Optionalordering_Min bounds for coordinate normalization (when ordering != 'none')
Optionalordering_Max bounds for coordinate normalization (when ordering != 'none')
Optionalordering_Bits per dimension for space-filling curve encoding (when ordering != 'none')
Optionalslice_BARRIER (categorical) center-column indices the writer's spatial ordering
grouped by — the authoritative answer to "which dims did chunk_bounds NOT
get the truncation_radius · σ expansion on". Stamped whenever
ordering != 'none' by
luxar/io/_compiler/gsplat_assembly.py::apply_gsplat_group_attrs (full leaves)
and by the lightweight additive_<i> sub-LOD branch of
luxar/io/_compiler/gsplat_tree.py::_write_single_splat_set, from whichever
set compute_chunk_bounds_gsplats actually used.
Read by gsplats-spatial-index-loader.ts and passed to the tolerance computer
as ToleranceOptions.barrierDims. Absent on a legacy store (and on
ordering: 'none' nodes, which run no spatial query), where the reader falls
back to the scene dimensions' discrete flags. Same index space as ndim /
chunk_bounds columns / slicePosition.
Optionaltransform4x4 transform matrix (column-major for THREE.js)
OptionalopacityOpacity multiplier
OptionalabsorptionAbsorption coefficient κ (volumetric blending mode; identity 1.0)
OptionalgammaGamma correction
OptionalintensityIntensity (linear color multiplier / gain)
OptionaloffsetOffset (additive brightness shift / black level subtraction)
Optionalblending_Blending mode
OptionallayerWhether this node is exposed as a layer in the Layers panel
Optionalextend_List of dimension names to extend visibility across. GSplats with extend_to_all will be visible regardless of slice position in the specified dimensions. Allows splats to appear at all values of non-displayed dimensions (e.g., all times, all channels).
Example: ["Time", "Channel"] makes splats visible at all time points and all channels regardless of the current slice position.
Optionaln_Number of additive sub-LODs. When > 1 the splats group contains
additive_0/ … additive_<N-1>/ subgroups for progressive
(prefix-sum) loading. Absent or 1 means single-LOD (flat) layout.
Optionaltruncation_Gaussian truncation radius in standard deviations. Falls back to
GSPLAT_DEFAULT_TRUNCATION_RADIUS (config/constants.ts) when absent.
GSplats node metadata from zarr .zattrs
This interface defines all metadata stored with a GSplats node in the zarr archive. It enables type-safe access to splat properties throughout the viewer.