GridForge 10.1.0
dotnet add package GridForge --version 10.1.0
NuGet\Install-Package GridForge -Version 10.1.0
<PackageReference Include="GridForge" Version="10.1.0" />
<PackageVersion Include="GridForge" Version="10.1.0" />
<PackageReference Include="GridForge" />
paket add GridForge --version 10.1.0
#r "nuget: GridForge, 10.1.0"
#:package GridForge@10.1.0
#addin nuget:?package=GridForge&version=10.1.0
#tool nuget:?package=GridForge&version=10.1.0
GridForge
![]()
Deterministic voxel worlds for .NET games, simulations, tools, and server runtimes.
GridForge gives you explicit world ownership, snapped fixed-point grids, streamable multi-grid spaces, spatial queries, blockers, occupants, and diagnostic geometry—without tying the core runtime to a game engine.
Why GridForge?
- Worlds that grow with your project. Start with one grid, join neighboring
grids, or load and unload regions inside an explicit
GridWorld. - Deterministic spatial math. Rectangular-prism and hex-prism grids use FixedMathSharp throughout the runtime.
- Dense or sparse storage. Model solid voxel volumes or large address spaces where only selected cells exist.
- Queries and state built in. Trace lines and bounds, scan nearby occupants, observe bounded exact segment intervals, completed rectangular slabs, and native planar circle/capsule coverage on explicitly selected layers, stack blockers, attach typed partitions, and observe dirty diagnostic regions.
- Engine-agnostic by design. Unity authoring and visualization live in the separate GridForge-Unity packages.
- Allocation-conscious internals. Hot paths build on SwiftCollections containers and pools.
Install
dotnet add package GridForge
Choose one package variant:
| Package | Use it when |
|---|---|
GridForge |
You want the default package with MemoryPack serialization support. |
GridForge.Lean |
You want the same grid API without the MemoryPack runtime dependency. |
Both variants target netstandard2.1 and net10.0.
Quick start
using System;
using FixedMathSharp;
using GridForge.Configuration;
using GridForge.Grids;
using GridWorld world = new GridWorld();
GridConfiguration configuration = new GridConfiguration(
new Vector3d(-10, 0, -10),
new Vector3d(10, 0, 10));
if (!world.TryAddGrid(configuration, out _))
throw new InvalidOperationException("Could not add the grid.");
Vector3d position = new Vector3d(2, 0, -3);
if (world.TryGetGridAndVoxel(
position,
out VoxelGrid? grid,
out Voxel? voxel)
&& grid is not null
&& voxel is not null)
{
Console.WriteLine($"Grid {grid.GridIndex}, voxel {voxel.Index}");
}
That same GridWorld can own multiple conjoined grids, mix rectangular and hex
topologies, and combine dense and sparse storage. Higher-level regions, sectors,
or streaming policy remain yours to shape above the voxel layer.
Shared logging and exception guards come from the independent
Chronicler.Diagnostics package. See the
migration guide
for the updated imports and guard names.
Learn more
- Getting started
- Core concepts
- Common workflows
- API reference
- Migration guide
- Contributing and local validation
The GridForge guides cover topology, sparse storage, tracing, scan cells, blockers, occupants, diagnostics, determinism, testing, and benchmarks in depth.
Questions and discussion are welcome in the Discord community. GridForge is available under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Chronicler.Diagnostics (>= 1.0.0)
- FixedMathSharp (>= 8.0.0)
- MemoryPack (>= 1.21.4)
- SwiftCollections (>= 8.0.0)
- SwiftCollections.FixedMathSharp (>= 8.0.0)
- System.Text.Json (>= 10.0.9)
-
net10.0
- Chronicler.Diagnostics (>= 1.0.0)
- FixedMathSharp (>= 8.0.0)
- MemoryPack (>= 1.21.4)
- SwiftCollections (>= 8.0.0)
- SwiftCollections.FixedMathSharp (>= 8.0.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on GridForge:
| Package | Downloads |
|---|---|
|
Trailblazer
Deterministic, framework-agnostic pathfinding and navigation for lockstep simulations and games. Trailblazer combines FixedMathSharp fixed-point math, GridForge voxel navigation charts, A* paths, flow fields, reusable guide caching, transition-aware routing, steering, turning, locomotion, heightmaps, and Chronicler serialization support. |
|
|
Gravitas
High-performance, engine-agnostic fixed-point physics for deterministic 2D, 3D, and mixed-dimension lockstep games and simulations. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.1.0 | 53 | 11/14/2026 |
| 10.0.0 | 136 | 11/6/2026 |
| 9.1.0 | 237 | 8/28/2026 |
| 9.0.0 | 206 | 8/5/2026 |
| 8.0.0 | 159 | 7/1/2026 |
| 7.1.4 | 158 | 6/24/2026 |
| 7.1.3 | 152 | 6/22/2026 |
| 7.1.2 | 154 | 6/20/2026 |
| 7.1.1 | 157 | 6/17/2026 |
| 7.1.0 | 170 | 6/16/2026 |
| 7.0.0 | 154 | 6/16/2026 |
| 6.0.6 | 145 | 5/30/2026 |
| 6.0.5 | 171 | 5/26/2026 |
| 6.0.4 | 200 | 5/19/2026 |
| 6.0.3 | 187 | 5/11/2026 |
| 6.0.2 | 148 | 5/7/2026 |
| 6.0.1 | 149 | 5/4/2026 |
| 6.0.0 | 166 | 4/25/2026 |
| 5.0.0 | 147 | 4/16/2026 |
| 4.0.0 | 148 | 4/8/2026 |