explaingit

ops3000/opsrocket

11RustAudience · developerComplexity · 4/5ActiveLicenseSetup · moderate

TLDR

Rust rewrite of the OpenRocket simulation core for model rocketry. Reads .ork design files and predicts flights via CLI, WASM web app, or Tauri desktop GUI.

Mindmap

mindmap
  root((opsrocket))
    Inputs
      ork design files
      Motor curves
      Atmosphere model
    Outputs
      Apogee predictions
      Flight plots
      3D renders
    Use Cases
      Model rocket simulation
      Design diffing
      Web rocket workbench
    Tech Stack
      Rust
      WebAssembly
      Tauri
      React
      Three.js

Things people build with this

USE CASE 1

Simulate model rocket flights from existing OpenRocket .ork files

USE CASE 2

Diff two rocket designs to compare predicted apogee and velocity

USE CASE 3

Embed the simulator in a browser via the WebAssembly build

USE CASE 4

Run regression tests against real altimeter flight data

Tech stack

RustWebAssemblyTauriReactThree.js

Getting it running

Difficulty · moderate Time to first run · 1h+

Multi-crate Cargo workspace; the desktop GUI also needs Tauri prerequisites and Node toolchain.

GPL-3.0-or-later, free to use and modify, but derivative works must also be open-sourced under GPL.

In plain English

OpsRocket is a Rust rewrite of the simulation core inside OpenRocket, a long-standing program used by model rocket builders to predict how their rockets will fly. The project takes the same .ork design files that OpenRocket uses, then runs the physics in Rust instead of Java. It is a clean-room third party reimplementation, not connected to the original OpenRocket team, and it carries the same GPL-3.0-or-later licence as the upstream tool. The README emphasises two kinds of accuracy. First, the Rust output matches the original Java reference within a few percent on the bundled test fixture, with apogee differing by about 2.9 percent and ground-hit velocity by less than 1 percent. Second, and the part the authors care about more, OpsRocket is checked against a rocket that was actually built and flown with an altimeter. On a C6-3 motor case, OpsRocket lands at 151.5 metres, the same as the altimeter reading, while the Java original predicted 161.4 metres and RockSim 8 predicted 180.1 metres. Under the hood the project covers full six-degree-of-freedom flight simulation with a quaternion attitude model, Barrowman aerodynamics including fin and body interference effects, drag models for friction, base, pressure, and launch lugs, a layered atmosphere model ported from the Java version, motor curves from Estes, AeroTech, Quest, and Klima, multi-stage and clustered motors, and parachute recovery. It can read and write .ork files and ships 50 plus motor thrust curves. There are three ways to use it. A command line tool exposes simulate, inspect, and diff subcommands. A web workbench at ops.sg compiles the engine to WebAssembly so you can open a design and see the 2D blueprint, 3D render, and flight plot entirely in a browser. A desktop GUI built with Tauri, React, and Three.js runs the same Rust core in process. The code is split into focused crates for core geometry, file IO, simulation, the CLI, regression tests, viewer models, the WASM surface, and an HTTP server. Running cargo test --workspace runs the 45 regression tests.

Copy-paste prompts

Prompt 1
Walk me through running the opsrocket CLI on a sample .ork file and reading the simulate output
Prompt 2
Set up a local opsrocket workspace and run cargo test --workspace, then explain any failing regression tests
Prompt 3
Show me how to call the opsrocket WASM build from a plain HTML page to plot a flight curve
Prompt 4
Wrap the opsrocket simulate command in a small Python script that batches 100 designs and writes a CSV of apogees
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.