Skip to main content

Acoustics toolbox for time domain acoustic and ultrasound simulations in complex and tissue-realistic media.

Project description

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", 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).

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

Older GPUs (Maxwell, Pascal, Volta)

The 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

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

k_wave_python-0.6.3rc1.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

k_wave_python-0.6.3rc1-py3-none-any.whl (228.4 kB view details)

Uploaded Python 3

File details

Details for the file k_wave_python-0.6.3rc1.tar.gz.

File metadata

  • Download URL: k_wave_python-0.6.3rc1.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.9

File hashes

Hashes for k_wave_python-0.6.3rc1.tar.gz
Algorithm Hash digest
SHA256 229814e0c6b929322d5c55181e1744c714fb0e9315bf380377d357bd835e3766
MD5 07314dc551c95c75fe9b1b9d66220965
BLAKE2b-256 351857e45c94725a9ea42dfb294d6c7ded5470e29a5aeddc68bce0077d98bf7e

See more details on using hashes here.

File details

Details for the file k_wave_python-0.6.3rc1-py3-none-any.whl.

File metadata

File hashes

Hashes for k_wave_python-0.6.3rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 eb37f08850cb18c76135d5c77e2ec1bca05b0d18593f4209672656abbdc639ee
MD5 d937642b32853b3a99ad596822b52ced
BLAKE2b-256 bea07091db77ee5bc5f51bb925ebee0775a2549fdcb2f9916b46fe1af264c388

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page