{"id":25500091,"url":"https://github.com/mrdav30/gridforge","last_synced_at":"2026-05-07T17:04:13.312Z","repository":{"id":277934722,"uuid":"933957713","full_name":"mrdav30/GridForge","owner":"mrdav30","description":"A high-performance, deterministic spatial grid management system for simulations and game development.","archived":false,"fork":false,"pushed_at":"2025-02-17T04:11:18.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-17T04:28:17.700Z","etag":null,"topics":["ai","deterministic","game-development","grid","lockstep","pathfinding","spatial"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrdav30.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-17T03:13:58.000Z","updated_at":"2025-02-17T04:11:01.000Z","dependencies_parsed_at":"2025-02-17T04:38:29.258Z","dependency_job_id":null,"html_url":"https://github.com/mrdav30/GridForge","commit_stats":null,"previous_names":["mrdav30/gridforge"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdav30%2FGridForge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdav30%2FGridForge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdav30%2FGridForge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdav30%2FGridForge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrdav30","download_url":"https://codeload.github.com/mrdav30/GridForge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239593064,"owners_count":19664855,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","deterministic","game-development","grid","lockstep","pathfinding","spatial"],"created_at":"2025-02-19T03:36:31.539Z","updated_at":"2026-05-04T05:04:23.567Z","avatar_url":"https://github.com/mrdav30.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GridForge\n\n![GridForge Icon](https://raw.githubusercontent.com/mrdav30/GridForge/main/icon.png)\n\n[![.NET CI](https://github.com/mrdav30/GridForge/actions/workflows/dotnet.yml/badge.svg?branch=main)](https://github.com/mrdav30/GridForge/actions/workflows/dotnet.yml)\n[![Coverage](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fmrdav30.github.io%2FGridForge%2FSummary.json\u0026query=%24.summary.linecoverage\u0026suffix=%25\u0026label=coverage\u0026color=brightgreen)](https://mrdav30.github.io/GridForge/)\n[![NuGet](https://img.shields.io/nuget/v/GridForge.svg)](https://www.nuget.org/packages/GridForge)\n[![NuGet Downloads](https://img.shields.io/nuget/dt/GridForge.svg)](https://www.nuget.org/packages/GridForge)\n[![License](https://img.shields.io/github/license/mrdav30/GridForge.svg)](https://github.com/mrdav30/GridForge/blob/main/LICENSE)\n[![Frameworks](https://img.shields.io/badge/frameworks-netstandard2.1%20%7C%20net8.0-512BD4.svg)](https://github.com/mrdav30/GridForge)\n\n**GridForge** is a deterministic, high-performance voxel-grid library for spatial partitioning, simulation, and game-development workflows.\n\nThe core unit is an explicit `GridWorld`. That lets you run multiple isolated worlds in one process without leaking grid registration, tracing, blockers, occupants, or scan queries across world boundaries.\n\n## Install\n\n```bash\ndotnet add package GridForge\n```\n\nGridForge targets `netstandard2.1` and `net8.0`.\n\n### Package Variants\n\nGridForge is published in two build variants so you can choose between built-in `MemoryPack` support and a leaner dependency set:\n\n- `GridForge`  \n  Includes `MemoryPack` and depends on the standard `FixedMathSharp` and `SwiftCollections` packages. This is the best default choice for most .NET applications.\n- `GridForge.Lean`  \n  Excludes the `MemoryPack` package, swaps to `FixedMathSharp.NoMemoryPack` and `SwiftCollections.Lean`, and uses internal shim attributes so the same source can compile without the dependency. Choose this when you do not need built-in MemoryPack serialization, when you prefer a different serializer, or when you want the leanest dependency surface.\n\nBoth variants expose the same core voxel-grid API. The main difference is whether `MemoryPack` and the standard dependency chain are included.\n\nInstall via NuGet:\n\n- Standard package:\n\n  ```bash\n  dotnet add package GridForge\n  ```\n\n- Lean package:\n\n  ```bash\n  dotnet add package GridForge.Lean\n  ```\n\nIf you build from source, the repository also provides matching release configurations:\n\n- `Release` builds the standard `GridForge` package and release archives.\n- `ReleaseLean` builds the `GridForge.Lean` package and release archives.\n\n### Unity\n\nUnity-specific integration lives in the separate [GridForge-Unity](https://github.com/mrdav30/GridForge-Unity) repository.\n\n## Quick Start\n\n```csharp\nusing System;\nusing FixedMathSharp;\nusing GridForge.Configuration;\nusing GridForge.Grids;\n\nusing GridWorld world = new GridWorld();\n\nGridConfiguration configuration = new(\n    new Vector3d(-10, 0, -10),\n    new Vector3d(10, 0, 10),\n    scanCellSize: 8);\n\nif (!world.TryAddGrid(configuration, out ushort gridIndex))\n    throw new InvalidOperationException(\"Failed to add grid.\");\n\nVoxelGrid grid = world.ActiveGrids[gridIndex];\nVector3d position = new(2, 0, -3);\n\nif (world.TryGetGridAndVoxel(position, out VoxelGrid resolvedGrid, out Voxel voxel))\n{\n    Console.WriteLine($\"Grid: {resolvedGrid.GridIndex}\");\n    Console.WriteLine($\"Voxel: {voxel.Index}\");\n    Console.WriteLine($\"World position: {voxel.WorldPosition}\");\n}\n```\n\nKey ideas:\n\n- `GridWorld` owns runtime state such as voxel size, spatial hash size, active grids, tracing, blocker reactivity, and world-space lookup.\n- `VoxelGrid` is world-local. `GridIndex` is unique only within its owning world.\n- `WorldVoxelIndex` is the cross-system identity for a voxel and includes world scope.\n\n## Why Explicit Worlds\n\nHaving `GridWorld` own world state makes it practical to build:\n\n- multi-world simulations with overlapping local coordinates\n- streamed loading and unloading without cross-world state leakage\n- save and load flows keyed by world identity\n- higher-level orchestration such as galaxies, sectors, or planet registries above the library\n\n## Start With The Wiki\n\n- [Wiki Home](https://github.com/mrdav30/GridForge/wiki/Home)\n- [Getting Started](https://github.com/mrdav30/GridForge/wiki/Getting-Started)\n- [Core Concepts](https://github.com/mrdav30/GridForge/wiki/Core-Concepts)\n- [Common Workflows](https://github.com/mrdav30/GridForge/wiki/Common-Workflows)\n- [Architecture Overview](https://github.com/mrdav30/GridForge/wiki/Architecture-Overview)\n- [Recipes](https://github.com/mrdav30/GridForge/wiki/Recipes)\n- [FAQ and Troubleshooting](https://github.com/mrdav30/GridForge/wiki/FAQ-and-Troubleshooting)\n\n## Local Validation\n\n```bash\ndotnet restore GridForge.slnx\ndotnet build GridForge.slnx --configuration Debug\ndotnet test GridForge.slnx --configuration Debug --no-build\n```\n\nFor benchmark discovery:\n\n```bash\ndotnet run --project tests/GridForge.Benchmarks/GridForge.Benchmarks.csproj -c Release -- list\n```\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines and workflow details.\n\n## Community \u0026 Support\n\nFor questions, discussions, or general support, join the official Discord community:\n\n👉 **[Join the Discord Server](https://discord.gg/mhwK2QFNBA)**\n\nFor bug reports or feature requests, please open an issue in this repository.\n\n## License\n\nGridForge is licensed under the MIT License. See [LICENSE](LICENSE), [NOTICE](NOTICE), and [COPYRIGHT](COPYRIGHT) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrdav30%2Fgridforge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrdav30%2Fgridforge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrdav30%2Fgridforge/lists"}