awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
BehaviorTree avatar

BehaviorTree/BehaviorTree.CPP

0
View on GitHub↗
4,070 stars·841 forks·C++·MIT·29 viewsbehaviortree.dev↗

BehaviorTree.CPP

BehaviorTree.CPP is a C++ library for designing task-switching logic and reactive behaviors using a hierarchical tree structure. It provides a framework for creating reactive logic systems that manage complex behaviors through an execution engine and a centralized data store for sharing state between nodes.

The library decouples high-level behavioral logic from source code by using an XML parser to define tree morphology. It further extends its functionality through a dedicated visualizer for monitoring real-time execution states and a specialized bridge for integrating ROS2 actions and services into the behavior tree for robotics control.

The system supports asynchronous task management and reactive behavior design, allowing the orchestration of long-running operations and the ability to interrupt tasks based on environment conditions. It utilizes a blackboard for data exchange, port-based variable mapping for modularity, and supports runtime extensions via plugins.

Features

  • Behavior Trees - Provides a C++ framework for implementing hierarchical behavior trees to manage complex task logic in autonomous agents.
  • Reactive Behavior Design - Enables the creation of system logic that monitors environment conditions to interrupt current tasks and switch behaviors in real time.
  • Robotic Task Orchestration - Manages complex robot behaviors and task-switching by organizing actions into a hierarchical tree structure.
  • XML Workflow Definitions - Uses XML files to declaratively define the behavior tree logic and structure, decoupling it from C++ code.
  • ROS2 Ecosystem Integrations - Provides a software bridge to connect behavior tree deliberation logic with ROS2 actions and services.
  • Asynchronous Task Management - Handles long-running non-blocking operations that return a running status to keep the main execution loop responsive.
  • Blackboard Patterns - Provides a centralized blackboard for coordinating state and data exchange between disparate behavior tree nodes.
  • Tick-Based Execution Models - Processes the behavior tree by periodically triggering root updates that propagate status signals through the node hierarchy.
  • Debugging and Monitoring - Provides tools for inspecting real-time node transitions and blackboard state to debug complex behaviors.
  • Behavior Tree Parsers - Implements a system for parsing XML files to decouple behavioral logic design from the compiled C++ source.
  • Composite-Decorator Nodes - Utilizes composite-decorator nodes to modify the execution and return status of child behavioral nodes.
  • Task Status Polling - Implements a mechanism to check the completion status of long-running asynchronous tasks during tree ticks.
  • Functional Logic Modularization - Organizes behavioral logic into decoupled units via XML definitions to separate design from implementation.
  • Port-Based Variable Mappings - Maps internal node inputs and outputs to blackboard entries to ensure tasks remain modular and reusable.
  • Runtime Library Extensions - Allows the loading of custom task implementations at runtime via dynamic shared libraries.
  • Hierarchical Nesting - Supports hierarchical nesting of sub-graphs to create reusable and modular behavioral components.
  • Behavior Tree Visualizers - Ships a visual tool for monitoring real-time execution paths and state transitions within behavior trees.
  • Game AI - Modern C++ library for behavior tree implementation.
  • Behavior and Decision - C++ library for implementing behavior trees.
  • Behavioral Logic - C++ library for implementing behavior tree logic.
  • ROS Libraries and Tools - Library for implementing behavior trees in C++.

Star history

Star history chart for behaviortree/behaviortree.cppStar history chart for behaviortree/behaviortree.cpp

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to BehaviorTree.CPP

Similar open-source projects, ranked by how many features they share with BehaviorTree.CPP.
  • bitbrain/beehavebitbrain avatar

    bitbrain/beehave

    2,933View on GitHub↗

    Beehave is a behavior tree AI framework and plugin for the Godot engine. It serves as an agent logic orchestrator for designing adaptive non-player character behaviors using hierarchical behavior trees. The system features a visual debugger that provides runtime visualization of the execution flow and internal state of active trees. This allows for AI execution analysis and the identification of logic errors through a state-based runtime interface. The framework utilizes a composite-decorator pattern and a tick-based polling cycle to execute tree-based logic. It integrates directly with the

    GDScriptaibehavior-treegame-development
    View on GitHub↗2,933
  • ashblue/fluid-behavior-treeashblue avatar

    ashblue/fluid-behavior-tree

    1,166View on GitHub↗

    Fluid Behavior Tree is a code-driven framework for Unity designed to manage autonomous character behaviors through hierarchical decision-making structures. It functions as a game AI logic engine that processes complex entity behaviors by traversing directed graphs of nodes that return success, failure, or running status signals during each frame update. The library distinguishes itself through a fluent builder pattern that allows developers to define nested tree structures, sequences, and parallel execution flows entirely through chainable code methods. This approach emphasizes modularity, en

    C#aibehavior-treebuilder-pattern
    View on GitHub↗1,166
  • reelrbtx/smaccreelrbtx avatar

    reelrbtx/SMACC

    326View on GitHub↗

    An Event-Driven, Asynchronous, Behavioral State Machine Library for ROS (Robotic Operating System) applications written in C++

    C++
    View on GitHub↗326
  • o3de/o3deo3de avatar

    o3de/o3de

    8,954View on GitHub↗

    This project is an open-source 3D game engine designed for building high-fidelity games, simulations, and cinematic environments. It functions as a robotics simulation platform with native integration for ROS 2 to model robot controllers and sensors. The engine features a multi-threaded Forward+ physically based renderer that supports hardware-accelerated ray tracing and global illumination. The system is built on a modular extension architecture using Gems to add or replace features without modifying core binaries. It includes a native SDK for AWS cloud integration, enabling IAM authenticati

    C++3d-graphics3d-graphics-engineanimation
    View on GitHub↗8,954
See all 30 alternatives to BehaviorTree.CPP→

Frequently asked questions

What does behaviortree/behaviortree.cpp do?

BehaviorTree.CPP is a C++ library for designing task-switching logic and reactive behaviors using a hierarchical tree structure. It provides a framework for creating reactive logic systems that manage complex behaviors through an execution engine and a centralized data store for sharing state between nodes.

What are the main features of behaviortree/behaviortree.cpp?

The main features of behaviortree/behaviortree.cpp are: Behavior Trees, Reactive Behavior Design, Robotic Task Orchestration, XML Workflow Definitions, ROS2 Ecosystem Integrations, Asynchronous Task Management, Blackboard Patterns, Tick-Based Execution Models.

What are some open-source alternatives to behaviortree/behaviortree.cpp?

Open-source alternatives to behaviortree/behaviortree.cpp include: bitbrain/beehave — Beehave is a behavior tree AI framework and plugin for the Godot engine. It serves as an agent logic orchestrator for… ashblue/fluid-behavior-tree — Fluid Behavior Tree is a code-driven framework for Unity designed to manage autonomous character behaviors through… reelrbtx/smacc — An Event-Driven, Asynchronous, Behavioral State Machine Library for ROS (Robotic Operating System) applications… o3de/o3de — This project is an open-source 3D game engine designed for building high-fidelity games, simulations, and cinematic… dlr-rm/rafcon — RAFCON (RMC advanced flow control) uses hierarchical state machines, featuring concurrent state execution, to… intel/ad-rss-lib — Library implementing the Responsibility Sensitive Safety model (RSS) for Autonomous Vehicles.