orlab¶
orlab scripts OpenRocket from Python via
JPype: load .ork files, run simulations
(optionally with custom listeners), and extract time series, flight
summaries, and events as Python/numpy data — up to parallel dispersion
studies with one verified jar fetch and a worker pool.
import orlab
with orlab.OpenRocketInstance(jar_path="OpenRocket-24.12.jar") as instance:
orl = orlab.Helper(instance)
doc = orl.load_doc("rocket.ork")
sim = doc.getSimulation(0)
orl.run_simulation(sim)
data = orl.get_timeseries(
sim, [orlab.FlightDataType.TYPE_TIME, orlab.FlightDataType.TYPE_ALTITUDE]
)
events = orl.get_events(sim) # {FlightEvent.APOGEE: [3.51], ...}
Supported OpenRocket versions¶
| OpenRocket | Status |
|---|---|
| 24.12 | CI-tested (JDK 17, 21) |
| 23.09 | CI-tested (JDK 17, 21) |
| 22.02 | CI-tested (JDK 17, 21) |
| 15.03 | CI-tested (JDK 17, 21) |
| newer releases | forward fallback: run day-one on the nearest older profile, with a warning |
orlab detects the jar's version before the JVM starts and adapts to it — package roots, startup path, and available flight-data constants all come from checked-in, generated version profiles. Every version above runs real simulations in CI, with no display server, and a monthly canary checks the newest upstream release.
Where next¶
- Getting started — install, first simulation, the things worth knowing before a big run
- Guides — getting an OpenRocket jar,
simulation listeners,
flight summaries,
monte-carlo studies (including the parallel
SimulationPool), simulation setup (motor swapping, layered wind), and working across OpenRocket versions - API reference — the full public surface, generated from the docstrings
- Examples on GitHub — plots, a monte-carlo dispersion study, and design optimization