BlockAccumulator with filtered voxelization results.
Grid bounds aligned to block boundaries (not mutated).
Size of each voxel in world units.
Total capsule height in world units.
Capsule radius in world units.
Seed position in world space (must be in a free region).
Simplified accumulator and cropped grid bounds.
Simplify voxel collision data for upright capsule navigation.
Uses bitfield storage (1 bit per voxel) to reduce memory by 8x compared to byte-per-voxel. Two Uint32Array buffers are ping-ponged through the dilation, BFS, inversion, and erosion phases.
Algorithm:
The flood fill is bounded by the finite grid extents: out-of-bounds cells are never visited, but grid boundaries are not explicitly modeled as solid. This means unsealed scenes may allow navigation up to the edge of the grid.