6 releases
Uses new Rust 2024
new 0.0.5 | Mar 8, 2025 |
---|---|
0.0.5-rc.1 | Feb 14, 2025 |
0.0.4 | Dec 7, 2024 |
0.0.4-rc.3 | Oct 13, 2024 |
0.0.4-rc.1 | Jul 27, 2024 |
#148 in Robotics
263 downloads per month
Used in 6 crates
(5 directly)
99KB
2.5K
SLoC
beet_flow
Beet Flow is an ECS control flow library, built with Bevy Observers. Being ECS first gives Beet a high level of flexibility and modularity.
Currently implemented paradigms:
- Behavior Trees
- Long Running
- State Machines
- Utility AI
- LLM Sentence Similarity
- Reinforcement Learning
Hello World
A demonstration of a Sequence control flow common in behavior trees
Using BeetDebugPlugin
will log the name of each action as it is triggered.
use bevy::prelude::*;
use beet_flow::prelude::*;
let mut app = App::new();
app
.add_plugins((
BeetFlowPlugin::default(),
BeetDebugPlugin::default()
))
.world_mut()
.spawn((
Name::new("My Behavior"),
Sequence
))
.with_child((
Name::new("Hello"),
ReturnWith(RunResult::Success),
))
.with_child((
Name::new("World"),
ReturnWith(RunResult::Success),
))
.trigger(OnRun::local());
app.world_mut().flush();
TODO
- When we get
OnMutate
observers, they should probably replace mostOnInsert
observers we're using
Dependencies
~22–63MB
~1M SLoC