A JAX-based rigid-body physics engine that runs massively parallel, differentiable simulation on accelerators for robotics and RL research.
learnsyslab/crazyflow
A JAX-based quadrotor simulator that runs batched, differentiable drone simulations on CPU and GPU for Crazyflie 2.x drones.
- Stars
- 200
- Forks
- 49
- Open issues
- 9
- Last commit
- 10 hours ago
What is it?
Crazyflow is a research simulator for quadrotor drones. It is built on JAX and runs many independent environments and multi-drone swarms in parallel on CPU or GPU, which makes it suited to large-scale training and experiments in robot learning and control.
The simulator offers two kinds of dynamics for the Crazyflie 2.x family: first-principles equations with parameters identified from real-world measurements, and simplified abstracted dynamics in three variants fitted from real flight data. Because the pipeline is differentiable, gradients can flow through the full dynamics and control chain with jax.grad. Step and reset functions are plain JAX functions that users can extend or swap out.
MuJoCo integration via MJX provides onscreen and offscreen rendering, raycasting, and contact detection.
Key features
- 01Batched simulation over many worlds and multi-drone swarms at once
- 02Runs on CPU, with optional GPU acceleration on CUDA 12
- 03Differentiable dynamics and control pipeline via jax.grad
- 04First-principles and abstracted dynamics models for Crazyflie 2.x
- 05Modular step and reset pipelines built from plain JAX functions
- 06MuJoCo integration for rendering, raycasting, and contact detection
Use cases
- Training reinforcement learning or control policies across thousands of parallel drone environments
- Running large swarm simulations with multiple drones per world
- Developing gradient-based controller tuning or system identification on drone dynamics
- Prototyping Crazyflie control algorithms before flying real hardware
Quick start
- 1
Install the CPU version from PyPI
pip install crazyflow - 2
Install the GPU version (Linux x86-64, CUDA 12)
pip install "crazyflow[gpu]" - 3
Read the documentation for examples and the user guide
Things to know
- GPU install is limited to Linux x86-64 with CUDA 12.
- Documentation is hosted externally at learnsyslab.github.io/crazyflow.
In collections
Topics
FAQ
- What is crazyflow?
- A JAX-based quadrotor simulator that runs batched, differentiable drone simulations on CPU and GPU for Crazyflie 2.x drones. Crazyflow is a research simulator for quadrotor drones. It is built on JAX and runs many independent environments and multi-drone swarms in parallel on CPU or GPU, which makes it suited to large-scale training and experiments in robot learning and control.
- Is crazyflow free to use? What license does it have?
- crazyflow is open source under the MIT license. Check the license terms before using it in commercial products.
- Is crazyflow still maintained?
- Actively maintained. The last commit to crazyflow was on Nov 6, 2026.
- What can I use crazyflow for?
- Training reinforcement learning or control policies across thousands of parallel drone environments Running large swarm simulations with multiple drones per world Developing gradient-based controller tuning or system identification on drone dynamics Prototyping Crazyflie control algorithms before flying real hardware
- How do I install crazyflow?
- Install the CPU version from PyPI: pip install crazyflow Install the GPU version (Linux x86-64, CUDA 12): pip install "crazyflow[gpu]" Read the documentation for examples and the user guide
- Where can I get crazyflow?
- The source code and installation instructions are on GitHub: https://github.com/learnsyslab/crazyflow
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
PyBullet-based Gymnasium environments for training single and multi-agent reinforcement learning controllers for quadcopters.
A Python framework that JIT-compiles regular Python functions into kernels running on CPU or NVIDIA GPU, for simulation, robotics, and ML.
A framework on NVIDIA Isaac Sim for simulating multirotor drones, with PX4 and ArduPilot autopilot integration and a Python control interface.
A Unreal Engine-based simulator for drones, cars and other vehicles, extended by Cosys-Lab with new sensor models and APIs.
An imitation learning benchmark for whole-body control, with MuJoCo and MJX environments for humanoids, quadrupeds and musculoskeletal human models.