SPACE Simulator is a pygame-based application for simulating decentralized agent behavior using behavior trees. By integrating your custom decision-making algorithms as plugins, SPACE enables rigorous testing and comparative analysis against pre-existing algorithms.
The official documentation of the SPACE simulator is available at http://space-simulator.rtfd.io/.
- Example: (Left)
num_agents = 100
,num_tasks = 300
; (Right)num_agents = 1000
,num_tasks = 3000
- Example: (Left)
GRAPE
; (Right)CBBA
; (Common)num_agents = 30
,num_tasks = 200 (static); 50 x 3 times (dynamic)
- Simulates multiple agents performing tasks
- Agents use behavior trees for decision-making
- Real-time task assignment and execution
- Debug mode for visualizing agent behavior
-
Clone the repository:
git clone https://github.com/inmo-jang/space-simulator.git cd space-simulator
-
Install the required dependencies:
pip install -r requirements.txt
-
Run the simulator:
python main.py
Modify the config.yaml
file to adjust simulation parameters:
- Number of agents and tasks
- Screen dimensions
- Agent behavior parameters
Refer to the configuration guide CONFIG_GUIDE.md
ESC
orQ
: Quit the simulationP
: Pause/unpause the simulationR
: Start/stop recording the simulation as a GIF file
-
Set
mc_runner.yaml
for your purpose and run the following:python mc_runner.py
-
Set
mc_comparison.yaml
and run the following:python mc_analyzer.py
main.py
: Entry point of the simulation, initializes pygame and manages the main game loop./modules/
agent.py
: Defines the Agent class and manages agent behavior.task.py
: Defines the Task class and manages task behavior.behavior_tree.py
: Implements behavior tree nodes and execution logic.utils.py
: Utility functions and configuration loading.
/plugins/
my_decision_making_plugin.py
: Template for decision-making algorithms for each agent.
Feel free to fork the repository and submit pull requests. Refer to TODO.md for a list of pending tasks and upcoming features.
Please cite this work in your papers!