Skip to content

v1.9.0

Choose a tag to compare

@github-actions github-actions released this 07 Jul 10:56

Maul2D 1.9.0: the hardened release

This release caps a full hardening pass over the engine. The contract is unchanged and unbroken: the same inputs produce the same bits on every platform, snapshots restore exactly, and the command journal replays onto identical bits. Sixteen gated hash lines are checked across ten platform cells (x64 AVX2, arm64 NEON, portable scalar, WebAssembly) on every commit.

What landed

  • WebAssembly and a browser testbed. The engine compiles to wasm32 bit-identically to native, and the interactive testbed runs in the browser at the project's GitHub Pages.
  • Destruction and fluids. m2World_ShatterBody breaks a body into pieces carrying the parent's velocity field, journaled as one op. Particle-free buoyancy volumes give drag and lift without a fluid. Particles gained lifetime and userData.
  • Determinism tooling. Per-subsystem hashes (m2World_HashParts) bisect a divergence; a validate build mode with misuse and overflow counters; a fuzzer deepened with a regression bank and a weekly deep sweep; a coverage audit that brought the debug-draw path to a dedicated suite.
  • Solver stability. An over-constrained scene can no longer pump velocity to infinity: linear and angular speed are capped the way the reference does, which also surfaced and fixed a latent journal-replay divergence in the belt-wake path.
  • Portability. m2GetSimdBackend and m2CpuSupportsBackend report the compiled SIMD backend and whether this CPU can run it; an AVX2 build on a CPU without AVX2 now aborts with a clear message instead of trapping. Prebuilt packages ship a portable scalar variant for each x64 platform, bit-identical to AVX2 but running anywhere.

Packages

  • maul2d-v1.9.0-linux-x64, -windows-x64, -macos-arm64: the dev library (headers, static lib, CMake package, pkg-config). x64 targets AVX2 (Haswell 2013+).
  • maul2d-v1.9.0-linux-x64-portable, -windows-x64-portable: the scalar backend, bit-identical and running on any x64.
  • Maul2D-testbed-v1.9.0-linux-x64, -windows-x64: the playable testbed. The same demo runs in the browser from the project page.

The 1.x API surface stays frozen: signatures, semantics and id layouts do not change until a 2.0; additions arrive in minor releases like this one.

Full Changelog: v1.8.0...v1.9.0