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

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.2
File Size Uploaded
machwave-0.10.2.tar.gz 624.2 kB Details

Built distribution (wheel)

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

Total release size: 791.3 kB

Release files / machwave-0.10.2.tar.gz

Download URL machwave-0.10.2.tar.gz
Size 624.2 kB
Tags Source
SHA-256 checksum
How to use checksums
df2b8746396ae157758ed1b7aede1bc0498df2c167a78de2f6d3484c20c86360
BLAKE2b-256 checksum
How to use checksums
1dbdecea5913586c5700469553748eac099ba26af07ee8319c45053a84e0bca9
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 Oct 12, 2026.

Transparency log

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

Download URL machwave-0.10.2-py3-none-any.whl
Size 167.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ae73516f0b6e8e9a257ad73a9a5cf9dd7d7e673f6536470980555a8ebdbf6d6c
BLAKE2b-256 checksum
How to use checksums
76d0e91a8b4982d77f66d73a6dfdec51067dac3fe83d5d634adfebb3107cfa5e
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 Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.10.2 This release

2 release files

0.10.1

2 release files

0.10.0

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