Decode the container's tiles on the worker pool, yielding them in index order.
An async iterable of DecodedTile (quantized SoA typed arrays
transferred back from the worker, zero-copy).
GPU-packed splat decode (not part of the core Decoder contract):
per-tile results are SplatTileGpu — typed-array views over the
ONE transferred splat_tile_gpu arena, byte-identical to the
splats/packing.ts textures. Splat containers only.
Optionalopts: DecodeGpuOptionsTear down the worker pool and release its workers. Safe to call repeatedly.
Parse the BVC container header on the main thread (no per-tile decode).
The full .bvc container bytes.
The DecodedModel (profile, meta, tileCount); pass it
with the same bytes to decodeTiles.
The off-main-thread (
cpu-wasm-workers) BVC decoder: the cheap container header parse runs on the main thread, then per-tile decode jobs fan out to aWorkerPool, keeping the heavy rANS work (and large splat scenes) off the render thread. Tiles stream via onTile as they finish and are yielded in index order.Remarks
Drop-in for BvcDecoder (same
Decodercontract); createBvcDecoder chooses between them by runtime capability. The container bytes and wasm bytes are broadcast to each worker once per file (an 'open' that primes the worker's file cache), so a multi-tile container is not re-cloned per tile.Example