FS.GG.Game.Physics.Box2D
0.17.0
Prefix Reserved
dotnet add package FS.GG.Game.Physics.Box2D --version 0.17.0
NuGet\Install-Package FS.GG.Game.Physics.Box2D -Version 0.17.0
<PackageReference Include="FS.GG.Game.Physics.Box2D" Version="0.17.0" />
<PackageVersion Include="FS.GG.Game.Physics.Box2D" Version="0.17.0" />
<PackageReference Include="FS.GG.Game.Physics.Box2D" />
paket add FS.GG.Game.Physics.Box2D --version 0.17.0
#r "nuget: FS.GG.Game.Physics.Box2D, 0.17.0"
#:package FS.GG.Game.Physics.Box2D@0.17.0
#addin nuget:?package=FS.GG.Game.Physics.Box2D&version=0.17.0
#tool nuget:?package=FS.GG.Game.Physics.Box2D&version=0.17.0
FS.GG.Game.Physics.Box2D
An opt-in .NET 10 adapter for Box2D.NET 3.1.654.
Own a Runtime, submit an ordered command list once per fixed tick, and render the
copied immutable Snapshot values. Core retains its FSharp.Core/BCL dependency boundary;
this package has no rendering dependency.
The first contract supports one centred circle or box fixture per static, kinematic or dynamic body, forces, impulses and rigid distance joints between body origins. Units are metres, seconds, kilograms, and counterclockwise radians with +Y up. Public doubles are validated and converted to the engine's single precision. Command batches with invalid, unknown or duplicate IDs refuse before any mutation. Removing a body removes its joints; removed shape events retain their entity IDs for that tick. An engine exception stops further stepping; dispose that runtime. Each runtime belongs to one simulation owner. Allocation and disposal are serialized across adapter instances because Box2D.NET uses a process-global world-slot table. Independent worlds may step concurrently; direct engine world lifetime calls outside this adapter must not race adapter allocation/disposal.
Runtime.Step always uses its configured fixed interval and substeps. Drive it with
Game.Core's FixedStep.drain if presentation frames vary, and use the remaining fraction
for Physics.interpolate. Retained observations survive later steps and disposal.
Interpolation does not capture contacts or hidden solver state and cannot implement rollback.
The repository's real headless entry point uses a falling body, floor, sensor and distance joint, and compares 240 ticks in two fresh worlds with the same ordered recorded input. Replay comparisons cover only the declared dependency, runtime and solver profile. Public installed consumer qualification, product adoption, browser support, cross-platform determinism, and exact rollback require their own qualification.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- Box2D.NET (>= 3.1.654)
- FS.GG.Game.Core (>= 0.17.0)
- FSharp.Core (>= 10.1.302)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.17.0 | 90 | 10/4/2026 |