# avianphysics/avian

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/avianphysics-avian).**

2,760 stars · 214 forks · Rust · apache-2.0

## Links

- GitHub: https://github.com/avianphysics/avian
- Homepage: https://crates.io/crates/avian3d
- awesome-repositories: https://awesome-repositories.com/repository/avianphysics-avian.md

## Topics

`2d` `3d` `bevy` `game-development` `gamedev` `physics` `physics-engine` `rust` `simulation`

## Description

Avian is a 2D physics engine and rigid body dynamics simulator designed to calculate physical motion using mass, forces, and velocity. It provides a framework for simulating rigid body dynamics, collision detection, and joint constraints for games and applications.

The engine utilizes a modular physics pipeline with a plugin-based architecture, allowing for the customization of simulation fidelity settings and the extension of collision backends. It includes a specialized kinematic character controller for implementing entity movement and sliding behavior against physical geometry.

The system covers several core capability areas, including spatial query processing via raycasting and shapecasting, mechanical constraint modeling through various joint types, and real-time physics debugging and visualization of colliders and joints.

## Tags

### Game Development

- [2D Rigid Body Physics Engines](https://awesome-repositories.com/f/game-development/2d-rigid-body-physics-engines.md) — Implements a 2D physics engine for calculating realistic physical interactions, collisions, and rigid body dynamics. ([source](https://cdn.jsdelivr.net/gh/avianphysics/avian@main/README.md))
- [Continuous Collision Detection](https://awesome-repositories.com/f/game-development/continuous-collision-detection.md) — Prevents fast-moving objects from tunneling through geometry by calculating the exact time of impact.
- [Skeletal Movement Constraints](https://awesome-repositories.com/f/game-development/movement-physics-simulation/skeletal-movement-constraints.md) — Restricts the relative motion of physical bodies using spherical, prismatic, and other joint constraints. ([source](https://cdn.jsdelivr.net/gh/avianphysics/avian@main/README.md))
- [Physics Body Configurations](https://awesome-repositories.com/f/game-development/physical-body-management/physics-body-configurations.md) — Links physical bodies using specific joint types to restrict their relative movement and interaction. ([source](https://docs.rs/avian2d))
- [Collision Detection](https://awesome-repositories.com/f/game-development/physics-engines/collision-detection.md) — Identifies intersections between colliders using layers and sensors to trigger physical interaction events. ([source](https://docs.rs/avian2d))
- [Spatial Querying Systems](https://awesome-repositories.com/f/game-development/physics-engines/collision-detection/spatial-querying-systems.md) — Provides spatial querying systems for detecting proximity and intersections via raycasting and region tests. ([source](https://cdn.jsdelivr.net/gh/avianphysics/avian@main/README.md))
- [Mechanical Constraints](https://awesome-repositories.com/f/game-development/physics-engines/mechanical-constraints.md) — Provides tools for linking and constraining the movement of physical bodies through mechanical joints.
- [Mechanical Joint Constraints](https://awesome-repositories.com/f/game-development/physics-engines/mechanical-constraints/mechanical-joint-constraints.md) — Implements mechanical joint constraints such as fixed, distance, prismatic, and revolute joints to link physical bodies.
- [Physics World Queries](https://awesome-repositories.com/f/game-development/physics-world-management/physics-world-queries.md) — Supports spatial queries including raycasting and shapecasting to locate geometry within the physics world.
- [Sleep-State Optimizations](https://awesome-repositories.com/f/game-development/2d-rigid-body-physics-engines/sleep-state-optimizations.md) — Optimizes CPU overhead by disabling physics calculations for rigid bodies that have come to a complete rest.
- [Inverse Kinematics Character Animations](https://awesome-repositories.com/f/game-development/character-animation-runtimes/inverse-kinematics-character-animations.md) — Provides kinematic body locomotion for calculating velocity and handling obstacle sliding for game characters.
- [Collision Optimization](https://awesome-repositories.com/f/game-development/engine-architecture/spatial-partitioning-systems/collision-optimization.md) — Optimizes collision detection by dividing the simulation world into regions to reduce intersection tests.
- [Simulation State Integration](https://awesome-repositories.com/f/game-development/simulation-state-integration.md) — Increases simulation stability and precision by dividing frames into smaller time increments for integration.

### Hardware & IoT

- [Kinematic Body Locomotion](https://awesome-repositories.com/f/hardware-iot/embedded-robotics/robotics-autonomous-systems/motion-planning-control/kinematics/kinematic-motion-control/kinematic-body-locomotion.md) — Provides a kinematic character controller that handles movement and sliding behavior against physical geometry.

### Part of an Awesome List

- [Physics and Simulation](https://awesome-repositories.com/f/awesome-lists/data/physics-and-simulation.md) — Adjusts simulation speed, gravity, and substeps to balance physical accuracy and performance. ([source](https://docs.rs/avian2d/0.7.0/avian2d/))
- [Fidelity Configuration](https://awesome-repositories.com/f/awesome-lists/data/physics-and-simulation/physics-configuration-presets/fidelity-configuration.md) — Provides global settings for gravity, speed, and substeps to tune the precision of physics calculations. ([source](https://docs.rs/avian2d))
- [Character Controllers](https://awesome-repositories.com/f/awesome-lists/devtools/character-controllers.md) — Provides a specialized kinematic character controller for managing player movement and physics interactions. ([source](https://docs.rs/avian3d/latest/avian3d/))

### Graphics & Multimedia

- [Physics Debug Rendering](https://awesome-repositories.com/f/graphics-multimedia/physics-debug-rendering.md) — Visualizes physical bodies and colliders through debug rendering to analyze simulation behavior. ([source](https://docs.rs/avian2d))
- [Physics Visualizers](https://awesome-repositories.com/f/graphics-multimedia/physics-visualizers.md) — Visualizes colliders, bounding boxes, and joints in a debug view to verify physical interactions. ([source](https://cdn.jsdelivr.net/gh/avianphysics/avian@main/README.md))

### Software Engineering & Architecture

- [Pipeline Extenders](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/developer-authoring-interfaces/custom-module-implementations/module-functionality-extenders/pipeline-extenders.md) — Extends the simulation pipeline through a modular plugin architecture to support custom collision backends. ([source](https://cdn.jsdelivr.net/gh/avianphysics/avian@main/README.md))
- [Physics Pipeline Plugins](https://awesome-repositories.com/f/software-engineering-architecture/modular-design-patterns/pipeline-component-modularization/physics-pipeline-plugins.md) — Utilizes a plugin-based architecture to extend collision backends and customize simulation fidelity.
- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures.md) — Utilizes a modular plugin-based architecture to allow customization of the simulation pipeline and collision backends.
