Skip to content

waltsims/k-wave-python

Repository files navigation

k-wave-python

Support Documentation Status codecov

A Python implementation of k-Wave — an acoustics toolbox for time-domain simulation of acoustic wave fields. Includes a pure NumPy/CuPy solver (backend="python") and an interface to the pre-compiled k-Wave C++ binaries (backend="cpp") with NVIDIA GPU support (sm 5.0–9.0a).

Mission

Increase the accessibility and reproducibility of k-Wave simulations for medical imaging, algorithmic prototyping, and testing.

Getting started

A collection of examples covers common simulation scenarios. Run any example locally:

uv run examples/ivp_homogeneous_medium.py

No GPU required — all examples run on CPU with NumPy.

Installation

Using uv (recommended):

uv add k-wave-python

Or with pip:

pip install k-wave-python

Development

Development instructions can be found here.

Related Projects

  1. k-Wave: A MATLAB toolbox for the time-domain simulation of acoustic wave fields.
  2. j-wave: Differentiable acoustic simulations in JAX.
  3. ADSeismic.jl: a finite difference acoustic simulator with support for AD and JIT compilation in Julia.
  4. stride: a general optimisation framework for medical ultrasound tomography.

Documentation

The documentation for k-wave-python can be found here.

Citation

@software{k-Wave-Python,
author = {Yagubbayli, Farid and Sinden, David and Simson, Walter},
license = {GPL-3.0},
title = {{k-Wave-Python}},
url = {https://github.com/waltsims/k-wave-python}
}

Contact

e-mail walter.a.simson@gmail.com.