Home
Machwave is an open source Python library for chemical rocket propulsion simulation. Here is what it is capable of:
- Propellant modeling with pre-defined formulations, and NASA CEA integration for custom formulations
- Grain regression analysis with FMM for 2D and 3D geometries
- Rocket motor and engine simulation for the following categories:
- Solid Rocket Motors
- Bi-propellant Liquid Rocket Engines (in development 🔧)
- Hybrid Rocket Engines (coming soon 🗓️)
- Monte Carlo simulation for all of the motors/engines above
- Integration with RocketPy for trajectory simulation and analysis
Installation¶
Machwave requires Python 3.11 – 3.14.
The core install depends only on NumPy, SciPy and fluids. It can be extended with the following optional features:
| Extra | Unlocks |
|---|---|
cea |
Thermochemistry computed from propellant composition, needed for biliquid engines and for custom solid mixtures |
liquid |
Propellant tanks and the injector's homogeneous-equilibrium mass flux |
fmm |
Every grain geometry other than BATES, including grains defined by an STL mesh |
plots |
The built-in figures and the Monte Carlo plots |
rocketpy |
The RocketPy adapter for trajectory simulation |
all |
All of the above |
Install one or several by name, for example:
Using a feature without its extra raises an ImportError naming the install command
that provides it.
On macOS the cea extra needs a Fortran compiler, see the
README.
Getting Started¶
The Quick Start page covers a Solid Rocket Motor simulation. Propellant selection, grain geometry, nozzle design, simulation execution and result plotting.
For more examples, check out the examples directory.
License¶
Machwave is licensed under the GNU General Public License v3.0.