unstale

npm / @react-three/rapier

@react-three/rapier

What changed in @react-three/rapier 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-19.

9 breaking8 new APIs and options2 performance7 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

@react-three/rapier 226 changes

Breaking changes 9

  • Replaces effectiveWorldInvInertiaSqrt and returns the actual inverse angular inertia matrix instead of its square root.

    2.2.0release notes

  • Replaces invPrincipalInertiaSqrt and returns the actual inverse angular inertia matrix instead of its square root.

    2.2.0release notes

  • Removes numAdditionalFrictionIterations from IntegrationParameters as part of removing the legacy PGS solver method.

    2.2.0release notes

  • Changes rapier-compat file extensions from .cjs.js/.es.js to .cjs/.mjs for better NPM compatibility.

    2.2.0release notes

  • Renames the property to effectiveWorldInvInertia; the new property returns the actual inverse angular inertia matrix instead of its square root.

    2.2.0release notes

  • Renames the property to invPrincipalInertia; the new property returns the actual inverse angular inertia matrix instead of its square root.

    2.2.0release notes

  • Removes the legacy PGS solver method.

    2.2.0release notes

  • Removes the legacy PGS solver method.

    2.2.0release notes

  • Removes the legacy PGS solver method.

    2.2.0release notes

New APIs and options 8

  • Adds access to a collider's rotation relative to its parent rigid-body.

    2.2.0release notes

  • Adds access to a collider's translation relative to its parent rigid-body.

    2.2.0release notes

  • Adds a way to pre-allocate memory for future operations.

    2.2.0release notes

  • Adds the useFilterContactPair hook for filtering contact pairs.

    2.2.0release notes

  • Adds the useFilterIntersectionPair hook for filtering intersection pairs.

    2.2.0release notes

  • Adds a getter and setter for configuring CCD substeps.

    2.2.0release notes

  • Enabling World.profilerEnabled allows performance profiling with World.timing* functions.

    2.2.0release notes

  • Adds World.timing* functions for performance profiling when World.profilerEnabled is true.

    2.2.0release notes

Performance 2

  • Performance improves for scenes with many contact constraints, CCD-enabled bodies, and large voxel maps.

    2.2.0release notes

  • Sparse voxel storage allows much larger maps without hitting the 4GB WASM memory limit.

    2.2.0release notes

Fixes and other changes 7

  • Fixes a determinism issue on Apple M1 processors.

    2.2.0release notes

  • Fixes a crash when removing colliders in a specific order.

    2.2.0release notes

  • Fixes an infinite loop in collider.setVoxel.

    2.2.0release notes

  • Fixes kinematic bodies not waking up when setting velocity.

    2.2.0release notes

  • Fixes slow-moving kinematic bodies falling asleep.

    2.2.0release notes

  • Fixes point-projection on voxel shapes.

    2.2.0release notes

  • Fixes sensor events not triggering when hitting voxel colliders.

    2.2.0release notes