Repolode
learnsyslab

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. 1

    Install the CPU version from PyPI

    pip install crazyflow
  2. 2

    Install the GPU version (Linux x86-64, CUDA 12)

    pip install "crazyflow[gpu]"
  3. 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