Website | Documentation | 2D examples (sources) | 3D examples (sources)
2D and 3D physics engines for the JavaScript programming language (official bindings).
From the root of the repository, run:
./builds/prepare_builds/prepare_all_projects.sh
./builds/prepare_builds/build_all_projects.sh
Note that prepare_all_projects.sh
only needs to be run once. It needs to be re-run if any file from the
builds/prepare_builds
directory (and subdirectories) are modified.
The built packages will be in builds/rapier2d/pkg
, builds/rapier3d/pkg
, etc. To build the -compat
variant of the
packages, run npm run build
in the rapier-compat
directory. Note that this will only work if you already ran
prepare_all_projects.sh
. The compat packages are then generated in, e.g., rapier-compat/builds/3d/pkg
.
Multiple NPM packages exist for Rapier, depending on your needs:
@dimforge/rapier2d
or@dimforge/rapier3d
: The main build of the Rapier physics engine for 2D or 3D physics simulation. This should have wide browser support while offering great performances. This does not guarantee cross-platform determinism of the physics simulation (but it is still locally deterministic, on the same machine).@dimforge/rapier2d-simd
or@dimforge/rapier3d-simd
: A build with internal SIMD optimizations enabled. More limited browser support (requires support for simd128).@dimforge/rapier2d-deterministic
or@dimforge/rapier3d-deterministic
: A less optimized build but with a guarantee of a cross-platform deterministic execution of the physics simulation.
Some bundlers will struggle with the .wasm
file package into the builds above. Alternative -compat
versions exist
which embed the .wasm
file into the .js
sources encoded with base64. This results in a bigger package size, but
much wider bundler support.
Just append -compat
to the build you are interested in:
rapier2d-compat
,
rapier2d-simd-compat
,
rapier2d-deterministic-compat
,
rapier3d-compat
,
rapier3d-simd-compat
,
rapier3d-deterministic-compat
.
Each time a new Pull Request is merged to the main
branch of the rapier.js
repository,
an automatic canary build is triggered. Builds published to npmjs under the canary tag does not come with any
stability guarantee and does not follow semver versioning. But it can be a useful solution to try out the latest
features until a proper release is cut.