OptionalenergyTable: readonly (number | null | undefined)[]OptionalsliceCache: SliceCache | nullPrivatelodPrivateloadedPrivate_PrivatelastPrivatenPrivatemonitorPrivate_Private_Private_Private_Private_Private_Private_Private_Private_PrivateenergyPrivate ReadonlypathPrivate ReadonlyslicePrivate_Private_Private_Private Readonly_Private_Private_Private_Pinned rung count for the current pass (ViewState.ladderDepth, the
playback "detail" setting), resolved through resolveLadderDepth; null
when the pass is not pinned. A pinned pass loads exactly this many rungs,
cold or not, and reports hasMoreLODs === false like a budgeted one — the
pinned prefix IS the target.
Whether there are more LOD levels to load for the current view state.
Number of LOD levels currently loaded.
Cumulative energy fraction e(k) ∈ [0, 1] of the currently loaded LOD
prefix — how much of this ladder's total self-energy the committed
chunks carry (the additive orderer's own ranking criterion, stamped at
build time as lod_stats.energy_fraction_cum). null when the dataset
carries no energy stamps; 0 before any LOD loads. Read at commit time
by stampLadderComplete (→ the committedEnergyFraction mesh stamp)
for the display gate's energy-threshold upgrade release.
Total number of LOD levels.
Whether the most recently streamed LOD level was fully cache-resident
(no chunk fetched from the network). Drives the monitor's
cached-vs-streaming residency indicator. Defaults to true before any
load.
Measured footprint of the loaded ladder, for the shared sweep residency
budget (scene-loader/progressive/residency-budget). Sums real
byteLengths rather than modelling a per-element cost. Rung count comes
from _loadedLODCount (LOGICAL levels), not loadedLODs.length, which is
1 once the ladder has folded.
Discard the levels the current pass appended, restoring the ladder to the
prefix the pass started from. Called by the main-update and refinement catches;
see ../loaders/progressive/pass-rollback for why a failed commit must
not leave the cursor advanced.
Levels discarded (0 when the pass appended none).
Load gsplats data. On first call, loads LOD 0. Delegates to updateView().
Optionalsession: UpdateSessionOptionalsignal: AbortSignalLoad as many LODs as are cache-warm for the given view state.
If the view state changed since the last call, resets and starts from LOD 0. Otherwise, continues loading from where it left off.
After returning, prefetches later unloaded LODs in the background.
Optionalsession: UpdateSessionOptionalsignal: AbortSignalOptionalresidencyAllowanceBytes: numberPrivateconcatenateConcatenate loaded LODs, memoized on (resetGeneration, LOD count). An unchanged view state with no new LODs returns the SAME object reference — safe because the result is never mutated downstream (worker projection inputs are structured-cloned, not transferred) — letting the commit pipeline skip no-op re-commits by identity.
Each fresh result is also stamped with a PREFIX-LINEAGE parent (the
previous same-generation memo) via setPrefixParent, so the
commit layer can recognise a genuine prefix-extension and take the
append fast path (depth-sorting Phase 4 Stage 2). The parent is null
for the first level of a generation (a view change bumps the reset
generation and empties loadedLODs), which is correct — the first
commit extends nothing.
Optionalsession: UpdateSessionPrivateprefetchPrefetch unloaded LOD chunks into cache, bounded by L0 headroom.
This is fire-and-forget: the prefetched chunks land in the L0/L1 cache and become fast cache hits on the next updateView() call.
Uses prefetchChunks() which performs the spatial index query and zarr get() calls (populating the cache) WITHOUT allocating full-size output buffers or running the accumulator — avoiding wasted memory.
PrivateplanPrivatestartOptionalplan: Promise<GSplatsPrefetchPlan>PrivatelogPrivatewarmPrivatecancelLoaderMonitor surface (optional, for the data-loading-monitor UI).
Mirrors the surface that points-spatial-index-loader.ts exposes —
implementations that don't track metrics may omit these methods.
Clean up all LOD loaders.
Progressive GSplats loader for multi-LOD datasets.
Wraps N GSplatsSpatialIndexLoader instances and loads LODs progressively, using cache hits to determine how many LODs fit within the frame budget.