Open source · 6-DOF rocket flight simulation

The sky is not the limit!

RocketPy is the next-generation, open-source simulator for High-Power Rocketry — a full six-degrees-of-freedom flight built on real weather data, Monte Carlo-ready, and validated to under 1% apogee error against real launches.

pip install rocketpy

Python ≥ 3.10 · also on conda-forge · runs in Jupyter & Google Colab

MIT licensed · 1,036 on GitHub · 170k+ total downloads · used on 6 continents

A rocket ascending along a simulated flight trajectory

RocketPy by the numbers

1,036 GitHub stars
268 Forks
78+ Contributors
27k+ Downloads (6 mo)
<1% Apogee error
2018 Building since

Updated August 2026 · star us on GitHub

Quickstart

Your first flight, in four classes

Describe the sky, the motor, and the rocket — RocketPy handles the full 6-DOF physics. Here is a complete simulation of the Calisto rocket, ready to run in a notebook or Google Colab.

  1. 1

    Environment

    Pull real forecast, reanalysis or sounding data for launch day.

  2. 2

    Motor

    Pick a variant — SolidMotor, HybridMotor, LiquidMotor or GenericMotor — each built from its thrust curve and geometry.

  3. 3

    Rocket

    Add nose cone, fins, tail and parachutes with real aerodynamics.

  4. 4

    Flight

    Launch it and explore trajectory, forces and recovery.

from rocketpy import Environment, SolidMotor, Rocket, Flight

# 1 · Describe the sky — real forecast weather
env = Environment(latitude=32.99, longitude=-106.97, elevation=1400)
env.set_atmospheric_model(type="Forecast", file="GFS")

# 2 · Build the motor (SolidMotor here — also Hybrid/Liquid/Generic)
motor = SolidMotor(
    thrust_source="Cesaroni_M1670.eng",
    dry_mass=1.815, grain_number=5, nozzle_radius=0.033,
)

# 3 · Assemble the rocket
calisto = Rocket(radius=0.0635, mass=14.426, inertia=(6.32, 6.32, 0.034))
calisto.add_motor(motor, position=-1.255)
calisto.add_nose(length=0.558, kind="von karman", position=1.278)
calisto.add_trapezoidal_fins(n=4, root_chord=0.12, tip_chord=0.06, span=0.11)
calisto.add_parachute("Main", cd_s=10.0, trigger=800)

# 4 · Fly it — full 6-DOF simulation
flight = Flight(rocket=calisto, environment=env, rail_length=5.2)
flight.all_info()

See what it produces

Publication-grade results

One simulation yields the full picture — 3D trajectory, kinematics, stability, and the statistical landing footprint that matters for a safe recovery.

A three-dimensional flight trajectory arcing over a ground grid

3D trajectory

Full flight path in space — exportable to Google Earth via KML.

Monte Carlo impact dispersion with a confidence ellipse around the target

Monte Carlo dispersion

Thousands of runs give the landing ellipse and its confidence interval.

Altitude and velocity plotted against time, peaking at apogee

Altitude & velocity

Every flight variable resolved continuously versus time.

Static stability margin over time staying inside the stable band

Stability margin

Track the static margin through the burn to stay in control.

Explore worked examples in the docs →

Capabilities

Everything a serious flight needs

High-fidelity physics under the hood, a clean Python API on top — from propulsion to recovery, weather to control.

Full 6-DOF flight

Nonlinear six-degrees-of-freedom dynamics with rigorous variable-mass effects.

Monte Carlo & sensitivity

Dispersion analysis and global sensitivity for landing-ellipse prediction.

Solid, hybrid & liquid motors

Model any propulsion type straight from a thrust curve or .eng file.

Aerodynamic surfaces

Nose cones, fins and tails via Barrowman equations, plus custom drag curves.

Parachutes & recovery

Multiple chutes with custom trigger functions and sensor-noise simulation.

Real weather & atmosphere

ISA 1976, Wyoming soundings and live NOAA / ECMWF forecast and ensemble data.

Multi-stage rockets

Simulate staged vehicles with independent motors, events and recovery.

Custom control laws

Inject continuous or discrete control for fins, air-brakes and active systems.

Stability analysis

Static margin, damping and out-of-rail conditions resolved across the flight.

Sensor simulation

Emulate accelerometers, gyroscopes and barometers with realistic noise.

MATLAB & Python interop

Script it in Python or drive it from MATLAB — and export results anywhere.

KML / Google Earth

Export trajectories to KML and fly them over real terrain in Google Earth.

Proven in the field

<1%

Apogee error versus real flights

Because RocketPy flies on the actual sky — real forecast, reanalysis and sounding data — its predictions match reality. It has been validated against 17 documented real flights from student and professional teams across four continents.

Atmospheric layers and weather sounding data above a planet horizon

Flown & validated by teams worldwide

  • Projeto Jupiter — USP São Paulo, Brazil
  • EPFL Rocket Team Lausanne, Switzerland
  • University of Notre Dame Indiana, USA
  • Space Enterprise at Berkeley California, USA
  • U. of Toronto Aerospace Toronto, Canada
  • TU Wien Space Team Vienna, Austria
  • Faraday Rocketry UPV Valencia, Spain
  • Politecnico di Torino Turin, Italy
  • Aerospace Team Graz Graz, Austria
  • STAR — UC3M Madrid, Spain
  • Aristotle Space & Aeronautics Thessaloniki, Greece
  • BME Suborbitals Budapest, Hungary

RocketPy is the official flight simulator of the European Rocketry Challenge (EuRoC) since 2022 and of the Latin American Space Challenge (LASC) since 2025 — and the RocketPy team actively supports and partners with both. It is trusted by 100+ university teams worldwide, including at the Spaceport America Cup. See all validation examples →

The constellation

One ecosystem, from design to flight

RocketPy is more than a library. A whole toolchain surrounds it — import your designs, call it over an API, or simulate right in the browser.

From rocketeers to rocketeers

Built by a global community

RocketPy is free and MIT-licensed. It was born inside Projeto Jupiter, the student rocketry team at the University of São Paulo, Brazil — and grew into the world's leading open-source trajectory simulator, maintained by contributors on six continents.

Everyone is welcome. Ask a question, report an idea, or ship a pull request. Meet the people behind RocketPy →

A connected network of RocketPy contributors around a central hub

For researchers

Using RocketPy? Cite it

RocketPy is peer-reviewed. If it supports your research, please cite the papers below.

RocketPy: Six Degree-of-Freedom Rocket Trajectory Simulator

Ceotto, G. H.; Schmitt, R. N.; Alves, G. F.; Pezente, L. A.; Carmo, B. S. (2021). Journal of Aerospace Engineering, 34(6). ASCE. doi:10.1061/(ASCE)AS.1943-5525.0001331

RocketPy: Combining Open-Source and Scientific Libraries…

Soares et al. (2022). Proceedings of the Python in Science Conference (SciPy). doi:10.25080/majora-212e5952-020

@article{RocketPy2021,
  author  = {Ceotto, Giovani H. and Schmitt, Rodrigo N. and
             Alves, Guilherme F. and Pezente, Lucas A. and Carmo, Bruno S.},
  title   = {{RocketPy}: Six Degree-of-Freedom Rocket Trajectory Simulator},
  journal = {Journal of Aerospace Engineering},
  volume  = {34},
  number  = {6},
  year    = {2021},
  doi     = {10.1061/(ASCE)AS.1943-5525.0001331}
}

Ready for liftoff?

Start simulating in minutes

pip install rocketpy