| Crates.io | bevy-steering |
| lib.rs | bevy-steering |
| version | 0.5.0 |
| created_at | 2025-12-19 00:06:19.909722+00 |
| updated_at | 2026-01-22 22:21:07.63999+00 |
| description | Steering behaviors for the Bevy game engine |
| homepage | |
| repository | https://github.com/crestonbunch/bevy-steering |
| max_upload_size | |
| id | 1993894 |
| size | 384,624 |
This crate aims to provide steering behaviors for autonomous agents in a Bevy game. It is not a complete navigation solution, but fits into a hierarchy of systems that contribute to agent motion.
This crate is usable but I can't guarantee it's good. I hope to improve it over time, especially documentation and polish.
Use this crate for:
This crate cannot provide:
The best way to make use of this crate is to combine it with
other crates and systems to solve larger "planning" problems,
and then feed the output of those systems as inputs into a
Bevy Steering system. Look at examples/maze.rs to see how
to incorporate a pathfinding with PathFollowing and
Avoid behaviors.
Bevy Steering provides two modes of moving:
OmniDirectional (default). This ignores the direction
of an entity and applies linear force to move the agent in
any direction. This is ideal for really simple agents that
don't have a front or back, or you wish to turn the agent
manually.Directional. This assumes the entity can only move
along the forward/backward vector and aggressively damps
velocity in the lateral directions. The agent will turn
to face the destination. This is ideal for character models,
simple vehicles, etc.The behaviors are implemented using the "Context Steering" approach. Agents
move along the most interesting heading, while avoiding dangerous directions.
Force is applied to maintain an agents max_velocity.
Most of the behaviors are described in this paper: https://www.red3d.com/cwr/papers/1999/gdc99steer.pdf.
However, not all behaviors are implemented as described. It is not a priority to implement all behaviors in this paper.
This crate was made with the assistance of LLMs and coding agents. They made it possible to produce this crate by cutting the amount of time needed to implement most of the behaviors. That does not mean this crate is "vibe-coded". Human effort went into making a clean interface. Code polish and tests will continue to be human-driven.
You are free to submit PRs with the use of LLM tools. Please disclose when LLM tools are used in your PR.