euca-ai) you
author in Rust.
“AI” here is never an LLM. The agents that drive Euca are external clients (your code or model,
over the API). This page is about the NPC AI that lives inside the
world. Fully headless.
Steering goals (HTTP)
POST /ai/set attaches an AiGoal with one of four behaviors — idle, patrol (waypoints), chase
(a target), flee — plus a speed. The ai_system computes a desired velocity each tick.
Behavior trees (euca-ai)
For richer NPC logic, the euca-ai crate is a full behavior-tree library:
- Composites —
Sequence,Selector,Parallel { RequireAll | RequireOne } - Decorators —
Inverter,RepeatN,RepeatUntilFail,Cooldown,Guard - Leaves —
Action(MoveTo,Wait,SetBlackboard,Log,Custom) andCondition(HasKey,Compare,InRange,IsAlive,Custom) - Blackboard — a per-entity typed key-value store;
BtBuilderis a fluent construction DSL.
behavior_tree_system ticks every BehaviorTreeExecutor. Behavior trees are authored in Rust today
(there is no behavior-tree HTTP surface — the HTTP path is /ai/set).
Endpoints
| Method | Path | Description |
|---|---|---|
POST | /ai/set | Set an NPC steering goal (idle/patrol/chase/flee) |
Status
- ✅ Steering goals (idle/patrol/chase/flee), behavior-tree library (composites, decorators, leaves, blackboard, builder) — shipped and headless, no stubs.
AI endpoint
The
/ai/set endpoint with schema.