Skip to main content

Machwave

Machwave is a Python library for chemical propulsion simulation. The library makes it easy to model solid or biliquid rocket engines, analyse performance and integrate the results into trajectory simulations.

Getting Started

Installation

Install Machwave using pip:

pip install machwave

The core install depends only on NumPy, SciPy and fluids. It runs a complete solid rocket motor simulation with BATES grains, any of the eight bundled solid propellant formulations and the full Solid Performance Program 1975 nozzle loss set. Those formulations carry pre-computed thermochemical properties, so no thermochemistry solver is needed to burn them.

Everything heavier is an optional extra:

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:

pip install machwave[fmm,plots]

Using a feature without its extra raises an ImportError naming the install command that provides it.

macOS prerequisite for the cea extra: gfortran

Only needed if you install the cea extra, directly or through all. rocketcea does not publish macOS wheels on PyPI. On macOS, pip therefore builds rocketcea from source and needs a Fortran compiler. Homebrew's gcc formula installs only versioned binaries (e.g. gfortran-15), so an unversioned gfortran symlink must be added to PATH beforehand:

brew install gcc
ln -sf "$(ls "$(brew --prefix)"/bin/gfortran-* | sort -V | tail -n 1)" "$(brew --prefix)/bin/gfortran"

Linux and Windows users do not need this step — rocketcea ships prebuilt wheels for those platforms.

Documentation

The full documentation is available at felipebogaertsm.github.io/machwave.

Development Setup

If you're contributing to Machwave, you'll need uv for dependency management.

Installing uv

macOS / Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows (PowerShell):

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

For more details, visit the official uv installation guide.

Clone and Install

Clone the repository and install dependencies:

git clone https://github.com/felipebogaertsm/machwave.git
cd machwave
make install-dev

make install-dev installs every extra alongside the development tooling, which is what the test suite and the type checker need. make install-dev-core installs the tooling without the extras, the environment make test-core runs against.

Publishing a New Release

  1. Create a release on GitHub with a tag matching vX.Y.Z (e.g. v1.2.0). The version is derived automatically from the git tag.

  2. The publish workflow builds the package and publishes it to PyPI via trusted publishing (OIDC).

Metadata

Release files for machwave 0.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for machwave 0.10.0
File Size Uploaded
machwave-0.10.0.tar.gz 612.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for machwave 0.10.0
File Interpreter ABI Platform
machwave-0.10.0-py3-none-any.whl Python 3 none any Details

Total release size: 777.5 kB

Release files / machwave-0.10.0.tar.gz

Download URL machwave-0.10.0.tar.gz
Size 612.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f90f2e0a71a739ef219e1243d11e923ad8dc1ce69be5680700b1bf98daae0e85
BLAKE2b-256 checksum
How to use checksums
c600fb5f16698f3575561cc2ecc30d6bc95bbbf9f81596babde4387e2670205d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / machwave-0.10.0-py3-none-any.whl

Download URL machwave-0.10.0-py3-none-any.whl
Size 165.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dc5e4e40991f475276da04d4b13529614eb5c3eb90f88b20c3de8af519f1a748
BLAKE2b-256 checksum
How to use checksums
5f37f534308c62b13e0c5de9d4281b8f32bba0af6e8ea54169fcad4771a4b30a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release history Release notifications | RSS feed

0.10.2

2 release files

0.10.1

2 release files

This release

0.10.0 This release

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.4

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release 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