Skip to content

GridForge v6.0.0

Choose a tag to compare

@mrdav30 mrdav30 released this 25 Apr 22:14
· 27 commits to main since this release

GridForge v6 is a breaking release centered on the GridWorld refactor. The library now uses explicit world ownership instead of process-wide global runtime state, making it possible to run multiple isolated worlds in the same process without cross-world leakage.

Highlights

  • Introduced GridWorld as the primary runtime owner for voxel size, spatial hashing, active grids, lifecycle, events, and world-space lookup.
  • Moved tracing, blockers, occupant tracking, scan queries, and obstacle mutation to explicit world scope.
  • Replaced global voxel identity with WorldVoxelIndex, making voxel and grid references world-scoped and safer across teardown and slot reuse.
  • Rebuilt tests, benchmarks, README guidance, and examples around the new explicit-world model.
  • Moved project documentation into docs/, added wiki sync automation, and refreshed build/release workflows.

Breaking Changes

  • GlobalGridManager has been removed. Runtime operations now require an explicit GridWorld.
  • GlobalVoxelIndex has been replaced by WorldVoxelIndex.
  • VoxelGrid.GlobalIndex has been renamed to GridIndex and is only unique within its owning world.
  • GridConfiguration is now pure input data; snapping and normalization now happen during world registration.
  • GridTracer, blockers, scan APIs, and occupant/obstacle flows now operate against an explicit world context.

Upgrade Notes

  • Create a GridWorld for each runtime world and route grid registration and lookup through it.
  • Replace GlobalVoxelIndex usages with WorldVoxelIndex.
  • Audit any code that assumed process-wide world state or globally unique grid indices.