# What changed in @react-three/rapier

> 26 changes in @react-three/rapier 2 from its official release notes, upgrade guides and advisories: 9 breaking, 8 new APIs and options. Each one cited. Sources checked 2026-10-19. HTML: https://unstale.sh/npm/@react-three/rapier/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @react-three/rapier 2

### Breaking changes

- Replaces effectiveWorldInvInertiaSqrt and returns the actual inverse angular inertia matrix instead of its square root. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Replaces invPrincipalInertiaSqrt and returns the actual inverse angular inertia matrix instead of its square root. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Removes numAdditionalFrictionIterations from IntegrationParameters as part of removing the legacy PGS solver method. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Changes rapier-compat file extensions from .cjs.js/.es.js to .cjs/.mjs for better NPM compatibility. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Renames the property to effectiveWorldInvInertia; the new property returns the actual inverse angular inertia matrix instead of its square root. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Renames the property to invPrincipalInertia; the new property returns the actual inverse angular inertia matrix instead of its square root. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Removes the legacy PGS solver method. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Removes the legacy PGS solver method. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Removes the legacy PGS solver method. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)

### New APIs and options

- Adds access to a collider's rotation relative to its parent rigid-body. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Adds access to a collider's translation relative to its parent rigid-body. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Adds a way to pre-allocate memory for future operations. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Adds the useFilterContactPair hook for filtering contact pairs. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Adds the useFilterIntersectionPair hook for filtering intersection pairs. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Adds a getter and setter for configuring CCD substeps. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Enabling World.profilerEnabled allows performance profiling with World.timing* functions. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Adds World.timing* functions for performance profiling when World.profilerEnabled is true. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)

### Performance

- Performance improves for scenes with many contact constraints, CCD-enabled bodies, and large voxel maps. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Sparse voxel storage allows much larger maps without hitting the 4GB WASM memory limit. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)

### Fixes and other changes

- Fixes a determinism issue on Apple M1 processors. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Fixes a crash when removing colliders in a specific order. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Fixes an infinite loop in collider.setVoxel. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Fixes kinematic bodies not waking up when setting velocity. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Fixes slow-moving kinematic bodies falling asleep. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Fixes point-projection on voxel shapes. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
- Fixes sensor events not triggering when hitting voxel colliders. (2.2.0) — [release notes](https://github.com/pmndrs/react-three-rapier/releases/tag/%40react-three/rapier%402.2.0)
