// the find
avianphysics/avian
ECS-driven 2D and 3D physics engine for the Bevy game engine.
Avian is the de-facto physics engine for Bevy, built natively on ECS rather than wrapping an existing engine like Rapier. It covers both 2D and 3D in a single crate pair, using XPBD for constraints and Parry for collision detection. Target audience is anyone building a game or simulation in Bevy who wants physics that feels like a first-party feature.
1. ECS-first architecture means physics state lives in components, not a separate world — no impedance mismatch when you need to query or mutate physics objects from other systems. 2. The plugin system is genuinely modular: you can swap out the broad phase, write custom constraints, or plug in a different collision backend without forking. 3. Migration guides exist for every version going back to Bevy 0.10, which matters a lot given how often Bevy breaks APIs. 4. f32/f64 precision is a compile-time feature flag, not a runtime concern — useful for simulations that need determinism or larger world scales.
1. XPBD is a position-based solver, which means stiff constraints and heavy stacking scenarios will have more visible drift than an impulse-based solver like Rapier — not a dealbreaker for most games, but worth knowing before you commit. 2. No soft body or cloth simulation; if your game needs deformable objects you're writing it yourself. 3. Bevy version lockstep is a genuine tax: every major Bevy release requires a matching Avian upgrade, and the table shows Avian has historically needed its own major version bump each time — plan for migration work on every engine update. 4. The async/parallel scheduling story is tied to Bevy's scheduler, so multi-threaded physics performance is bounded by how well Bevy parallelizes your specific system graph, not by Avian itself.