crazyMARL is a framework for multi-agent reinforcement learning experiments with Crazyflie quadcopters, built on top of JaxMARL. It provides research-grade implementations of popular algorithms, experiment management, and visualization utilities for simulating and training cooperative multi-quadrotor systems in a performant and flexible way.
- Multi-agent RL algorithms: IPPO, MAPPO (compatible with JaxMARL)
- JAX and MuJoCo backends for fast simulations
- Batched and single-environment rollouts, video rendering and plotting tools
- Experiment tracking with ASDF format and Weights & Biases integration
- Docker-based development environment for reproducible setups
We provide several trained IPPO policies for different scenarios:
single_quad_no_payload: Single quadcopter trained to recover from harsh conditions and track position setpointsingle_quad_payload: Single quadcopter trained to carry a payload and track position setpoint with payloadtwo_quad: Two quadcopters trained to cooperatively track a position setpoint with payloadthree_quad: Three quadcopters trained to cooperatively track a position setpoint with payload
The results can be seen in these videos:
![]() |
![]() |
![]() |
![]() |
![]() |
Clone and install:
git clone https://github.com/viktorlorentz/crazyMARL.git
cd crazyMARL
pip install -e .[algs,dev]Docker (optional):
./build.sh # Build Docker image with or without CUDA support
./run.sh # Run interactive shell in the containerLaunch training with a predefined configuration:
python ./crazymarl/train/train.py --config your_config_nameOr specify a custom YAML file:
python ./crazymarl/train/train.py --config-file path/to/config.yaml- Available configs live in
crazymarl/train/configs:- single_quad
- two_quad
- three_quad
- six_quad
- test
Run flight experiments and render videos:
python ./crazymarl/experiments/fly.py --config figure_eight --model-path path/to/model.tfliteExperiment YAML files are in crazymarl/experiments/configs.




