Skip to content

v0.4.1: full API parity, recording and replay

Choose a tag to compare

@Stink-O Stink-O released this 07 Aug 11:45
· 15 commits to main since this release

Full API parity with upstream Box3D, and the demo browser roughly doubles in size.

Highlights

  • Near-complete binding surface. Every upstream feature area is bound, with deliberate, documented exceptions (the external task-system hooks stay unbound for thread-safety, the raw solver callbacks ship as the Box3DContactRules table instead of script callbacks, and some C-level utilities Godot already provides are out of scope): live setters everywhere (no property rebuilds a body any more), contact/hit/sensor/joint events with full geometry, all-hits queries with two-way 64-bit filtering, height fields, mesh-from-data, baked compounds, per-triangle materials, and the whole b3World_Draw debug overlay.
  • Recording and replay. New Box3DRecording and Box3DReplayPlayer classes wrap upstream's recording system, with scrubbing, keyframe seeking and divergence checking. The new Rewind sample shows it off: the scene records itself, then scrubs ghost playback backwards and forwards through the take.
  • Contact rules. Box3DContactRules gives the solver callbacks a thread-safe, data-driven path: never-collide pairs, one-way platforms, and friction/restitution mixing overrides, authored from script with zero callbacks on worker threads.
  • Determinism, proven from Godot. A recording made at 1 worker replays hash-identical at 2, 4 and 8 workers, as a permanent selftest.
  • 32 new samples (33 -> 65), each verified against its upstream source, with hover tooltips and a revealable description in every scene. The character controller is now upstream's full mover course: spring suspension, sprint, stairs, ramps, one-way platforms, pushable crates, a sprung door and a third-person camera.
  • Editor experience. In-editor class reference for all 20 classes, scene-dock icons, configuration warnings on every misconfigurable node, inspector groups with real units. Sidebar settings you change now survive resets and sample switches.
  • Feature selftest grew from 47 to 442 checks; sample coverage from 33 to 65 scenes. All green on every commit.

Known limitation

Some of the newer samples have no native rebuild for the comparison engines yet: switching the demo to Jolt or Godot Physics on those scenes may show a blank scene. Box3D is the tested path.

Assets

Same layout as v0.4.0: Linux/Android/Windows GDExtension binaries (debug and release), the two web builds (threaded for hosts with cross-origin isolation, single-threaded for plain static hosts), the Android demo APK, and the two self-hostable web demo zips. The Windows DLLs are MinGW cross-builds, untested on Windows. The browser demo is playable at stinkysunstep.itch.io/box3d-godot.