Skip to content

Repository files navigation

Crazyflow Logo

Fast, parallelizable simulations of Quadrotor drones with JAX.

PythonarXivTestsRuffDocs

Crazyflow is a research simulator for quadrotors. It runs batched, differentiable simulations on CPU and GPU via JAX, with analytical and abstracted dynamics for the Crazyflie 2.x family.

importnumpyasnpfromcrazyflow.simimportSimfromcrazyflow.controlimportControlsim=Sim(n_worlds=4096, n_drones=1, control=Control.state)
cmd=np.zeros((4096, 1, 13))
cmd[..., 2] =0.5# hover at 0.5 m across all worldsfor_inrange(100):
sim.state_control(cmd)
sim.step(sim.freq//sim.control_freq)
sim.render()

Documentation

learnsyslab.github.io/crazyflow — installation, user guide, examples, and API reference.

Features

  • n_worlds x n_drones — batched over independent environments and multi-drone swarms simultaneously
  • GPU-accelerated — up to 914 M steps/s on an RTX 4090 (first-principles dynamics, 262 K worlds)
  • Differentiablejax.grad works through the full dynamics and control pipeline
  • First-principles dynamics — dynamics using first-principles equations and parameters identified from real-world measurements
  • Abstracted dynamics — simplified dynamics in three flavors fitted from real Crazyflie flight data
  • Modular pipelines — step and reset are tuples of plain JAX functions; insert anything, anywhere
  • MuJoCo integration — onscreen and offscreen rendering, raycasting, and contact detection via MJX

Installation

pip install crazyflow # CPU
pip install "crazyflow[gpu]"# GPU (Linux x86-64, CUDA 12)

Developer install with editable install (pixi recommended):

git clone https://github.com/learnsyslab/crazyflow.git
cd crazyflow
pixi shell

Or with uv:

git clone https://github.com/learnsyslab/crazyflow.git
cd crazyflow
uv sync # core + dev tooling (tests, docs, ruff)

Performance

First-principles dynamics, one drone. CPU: AMD Ryzen 9 7950X. GPU: NVIDIA RTX 4090.

n_worldsCPU steps/sGPU steps/s
643.3 M1.2 M
1 0249.2 M18.7 M
16 38411.9 M257 M
65 53615.6 M678 M
262 14412.6 M914 M

Full benchmarks including multi-drone scaling are in the documentation.

Citation

@misc{schuck2026crazyflow,
title={Crazyflow: An Accurate, GPU-Accelerated, Differentiable Drone Simulator in JAX}, author={Martin Schuck and Marcel P. Rath and Yufei Hua and AbhisheK Goudar and SiQi Zhou and Angela P. Schoellig},
year={2026},
eprint={2606.01478},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2606.01478}, }

About

Scalable drone simulation using JAX.

Resources

Stars

165 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages