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", supports any CUDA-capable GPU) and an interface to the pre-compiled k-Wave C++ binaries (backend="cpp") with NVIDIA GPU support for compute capability 7.5 (Turing) and newer — covers every consumer/datacenter GPU since 2018, including all shipping Blackwell variants (B200/GB200, B300/GB300, Jetson Thor, RTX 50xx, RTX PRO 6000 Blackwell, GB10/DGX Spark).
Increase the accessibility and reproducibility of k-Wave simulations for medical imaging, algorithmic prototyping, and testing.
A collection of examples covers common simulation scenarios. Run any example locally:
uv run examples/ivp_homogeneous_medium.pyNo GPU required — all examples run on CPU with NumPy.
Using uv (recommended):
uv add k-wave-pythonOr with pip:
pip install k-wave-pythonThe backend="cpp" binaries shipped in v0.6.3+ require compute capability 7.5 (Turing) or newer. CUDA Toolkit 13.0 removed offline-compilation support for older architectures, so the following hardware is not covered by the bundled binaries:
- Maxwell (GTX 9xx, Titan X Maxwell, Tesla M-series, Jetson Nano)
- Pascal (GTX 10xx, P100, P40, Titan X(p)/Xp, Jetson TX2)
- Volta (V100, Titan V, Quadro GV100, Jetson AGX Xavier)
Use backend="python" instead (NumPy/CuPy works on every CUDA-capable GPU), or build the C++ backend from source against CUDA Toolkit 12.x.
Development instructions can be found here.
- k-Wave: A MATLAB toolbox for the time-domain simulation of acoustic wave fields.
- j-wave: Differentiable acoustic simulations in JAX.
- ADSeismic.jl: a finite difference acoustic simulator with support for AD and JIT compilation in Julia.
- stride: a general optimisation framework for medical ultrasound tomography.
The documentation for k-wave-python can be found here.
@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}
}e-mail walter.a.simson@gmail.com.
