README.md

August 2, 2026 · View on GitHub

crates.io

Build status crates.io crates.io

Website | Documentation


2D and 3D physics engines for the Rust programming language.


What is Rapier?

Rapier is a set of 2D and 3D physics engines for games, animation, and robotics. These crates are rapier2d, rapier3d, rapier2d-f64, and rapier3d-f64. They are written with the Rust programming language, by the Dimforge organization. It is forever free and open-source!

Getting started

The easiest way to get started with Rapier is to:

  1. Read the user-guides.
  2. Play with the examples: cargo run --release --bin all_examples2 and cargo run --release --bin all_examples3. Their source code are available on the examples2d/ and examples3d/ directory.
  3. Don't hesitate to ask for help on Discord, or by opening an issue on GitHub.

Performance

SIMD-batched constraint solving and contact processing are always on: the solver processes 4 contact manifolds per instruction, falling back to scalar code on targets without SIMD support. For performance-sensitive applications, also enable:

  • parallel — multithreading of the whole physics step (broad phase, narrow phase, solver) through rayon. On CPUs with heterogeneous cores (Apple silicon, Intel hybrid), also call PhysicsPipeline::set_dedicated_thread_pool(None) to run the step on a pool sized to the performance cores only: the solver's barrier-paced stages otherwise run at the speed of the slowest (efficiency) core.
rapier3d = { version = "*", features = ["parallel"] }

Python bindings

Python bindings are under development. They ship as four PyPI packages — rapier2d, rapier3d, rapier2d-f64, rapier3d-f64 — one per (dimension, scalar) flavor. See python/README.md for how to build the bindings, the docs, and the testbed from a checkout, and python/docs/ for the API documentation.

AI coding disclaimer and policy

AI coding is extensively used for the implementation and maintenance of the following crates: mjcf-rs, rapier3d-mjcf, as well as the Python bindings (python/rapier-py*), including their tests, examples, and docs.

We actively use AI assistance (with human reviews) for the following tasks:

  • Documentation generation.
  • Changelogs generation.
  • Tests generation.
  • CI configuration and scripts.

We accept contributions involving AI coding as long as:

  • They are verified to work properly by a human.
  • The code quality is up to human-written code standards.
  • Include non-regression tests whenever applicable (which itself can be AI-generated).

Resources and discussions

  • Dimforge: See all the open-source projects we are working on! Follow our announcements on our blog.
  • User guide: Learn to use Rapier in your project by reading the official User Guides.
  • Discord: Come chat with us, get help, suggest features, on Discord!
  • NPM packages: Check out our NPM packages for Rapier, if you need to use it with JavaScript/Typescript.

Please make sure to familiarize yourself with our Code of Conduct and our Contribution Guidelines before contributing or participating in discussions with the community.