Skip to main content

Crazyflow Logo

Fast, parallelizable simulations of Quadrotor drones with JAX.

Python arXiv Tests Ruff Docs

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.

import numpy as np
from crazyflow.sim import Sim
from crazyflow.control import Control

sim = 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 worlds

for _ in range(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_worlds CPU steps/s GPU steps/s
64 3.3 M 1.2 M
1 024 9.2 M 18.7 M
16 384 11.9 M 257 M
65 536 15.6 M 678 M
262 144 12.6 M 914 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}, 
}

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crazyflow-0.3.0.tar.gz (7.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

crazyflow-0.3.0-py3-none-any.whl (7.6 MB view details)

Uploaded Python 3

File details

Details for the file crazyflow-0.3.0.tar.gz.

File metadata

  • Download URL: crazyflow-0.3.0.tar.gz
  • Upload date:
  • Size: 7.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for crazyflow-0.3.0.tar.gz
Algorithm Hash digest
SHA256 e766fa72eb5f208f0ef8bc34c4a66042cf3ea132c457887e44fbdf6505362ffd
MD5 b96723bb2dc983cff8d2bc9f9c4fb66c
BLAKE2b-256 850e01083d743effdf31df2afab583069a2cefef353aa85256cea60adf9417b5

See more details on using hashes here.

File details

Details for the file crazyflow-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: crazyflow-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 7.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for crazyflow-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 92e463c01871d91bb23317f980a9d55f2d84c37755ddf391110a9458e11926e7
MD5 4bea73da27d682b7c2b01faca9f542c7
BLAKE2b-256 b098a6b26529a27b70e681c11de2667d17b6de76a021bcdaa7b428a67ef1f3a0

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.2

2 files

0.3.1

2 files

This release

0.3.0 This release

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page