
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
fullwave25
Advanced tools
Fullwave 2.5: Ultrasound wave propagation simulation with heterogeneous power law attenuation modelling capabilities
Fullwave 2.5 is a Python package for high-fidelity ultrasound wave propagation simulation with the following features:
| Computational medium | Wave propagation |
|---|---|
![]() | ![]() |
Building upon the original Fullwave 2 simulator, Fullwave 2.5 enhances its capabilities to model ultrasound wave propagation in media where both the attenuation coefficient and exponent can vary spatially. This enables more accurate simulations of biological tissues, which often exhibit complex attenuation behaviours that cannot be captured by uniform exponent models.
The library is designed with a Python wrapper for ease of use and extensibility, while the core simulation engine is implemented in CUDA/C to leverage high-performance computing on NVIDIA GPUs. Fullwave 2.5 supports 2D and 3D simulations, including multi-GPU execution for enhanced performance.
This repository design was inspired by k-wave-python. We appreciate the great work of the k-wave-python development team. This repository would not have been possible without them.
Please check their repository for additional ultrasound simulation tools and resources. Their comprehensive tools have significantly contributed to the ultrasound research community.
Fullwave 2.5 models multiple relaxation processes to approximate frequency-dependent power-law attenuation in heterogeneous media. It solves the stretched-coordinate pressure-velocity formulation using a staggered-grid finite-difference schemes with 8th-order accuracy in space and 4th-order accuracy in time. The formulation is expressed as follows:
$$\nabla_1 p + \rho \cfrac{\partial {\bf{v}}}{\partial t} = 0$$ $$\nabla_2 \cdot {\bf{v}} + \kappa \cfrac{\partial p}{\partial t} = 0$$
The stretched-coordinate derivatives, denoted by $\nabla_1$ and $\nabla_2$, control frequency-dependent power-law attenuation and dispersion by selecting the optimal relaxation parameters.
The following figure illustrates the performance of the attenuation modeling in Fullwave 2.5. The graph shows a comparison of the target power-law attenuation $\alpha=\alpha_0 f^\gamma$ (red line) and the simulated attenuation (black dots) for various spatially varying attenuation coefficients ($\alpha_0 =$ 0.25, 0.5, and 0.75) and exponents ($\gamma =$ 0.4, 0.7, 1.0, 1.3, and 1.6).
Fullwave 2.5 is developed and maintained by Pinton Lab at the University of North Carolina at Chapel Hill.
If you use Fullwave 2.5 in your research, please cite this repository as:
@software{Sode2025-fullwave25,
author = {Sode, Masashi and Pinton, Gianmarco},
title = {{Fullwave 2.5: Ultrasound wave propagation simulation with heterogeneous power law attenuation modelling capabilities}},
year = {2025},
month = oct,
doi = {10.5281/zenodo.17497689},
url = {https://github.com/pinton-lab/fullwave25},
}
@ARTICLE{Pinton2021-fullwave2,
title = "A fullwave model of the nonlinear wave equation with multiple relaxations and relaxing perfectly matched layers for high-order numerical finite-difference solutions",
author = "Pinton, Gianmarco",
month = jun,
year = 2021,
copyright = "http://creativecommons.org/licenses/by/4.0/",
archivePrefix = "arXiv",
primaryClass = "physics.med-ph",
eprint = "2106.11476"
}
We recommend setting up an SSH key for GitHub, if you haven't done already. The repository changes over time to fix bugs and add new features. You can keep your local repository up to date by pulling the latest changes from GitHub. Cloning through SSH is more convenient than HTTPS in the long run.
after that, you can clone the repository through
git clone git@github.com:pinton-lab/fullwave-python.git
pip install fullwave25
If ffmpeg is not installed on your system, please install it using the package manager of your Linux distribution.
ffmpeg is used for video writing in plotting functions.
please see the installation guide below. reference: FFmpeg Installation Guide
# for Ubuntu/Debian
sudo apt install ffmpeg
Additionally, if you encounter any issues related to cv2 (OpenCV) during the installation, please install it separately using linux package manager or pip.
please see the installation guide below.
cv2 is used fro video writing in plotting functions.
reference: Installing OpenCV on Linux: A Comprehensive Guide
# using apt for Ubuntu/Debian
sudo apt install python3-opencv
# using pip
pip install opencv-python
We use uv for package project and virtual environment management.
If uv is not installed, run below.
curl -LsSf https://astral.sh/uv/install.sh | sh
Run below to install the development environment.
git clone git@github.com:pinton-lab/fullwave25.git
cd fullwave25
make install-all-extras # for running examples
# or
make install # for the core library installation
To test the installation, run
make test
Please start from example_simple_plane_wave.ipynb.
or try the Google Colab tutorial. You don't need to install or set up a GPU environment on your local machine in order to run the simulation.
Here are the main steps to run the Fullwave simulation
examples/my_simulation/.py file or copy the example files below to use the boilerplate.
Please see the following examples for more advanced usage.
2D plane wave
3D plane wave
| Computational medium | |
![]() | |
| x-y slice propagation | x-z slice propagation |
![]() | ![]() |
| Computational medium with air inclusion | |
![]() | |
| x-y slice propagation | x-z slice propagation |
![]() | ![]() |
Medium builder usage
TYPE/BRANCH_NAME.
feature, bugfix, hotfix, docs, refactor, release, test, or experiment.BRANCH_NAME should be descriptive of the feature or fix you are working on.FAQs
Fullwave 2.5: Ultrasound wave propagation simulation with heterogeneous power law attenuation modelling capabilities
We found that fullwave25 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.