Disimpy is a Python package for generating simulated diffusion-weighted MR signals that can be useful in the development and validation of data acquisition and analysis methods. The data is generated by Monte Carlo random walk simulations that run in massively parallel on Nvidia CUDA-capable GPUs. If you use Disimpy in work that leads to a scientific publication, please cite 1, where the details about signal generation can also be found.

Requirements and installation

Follow the installation instructions.

Usage example

Read the tutorial to learn how to use Disimpy.


Disimpy’s functionality has been validated by comparing its results to analytical solutions and to results from other simulators (e.g., Camino and MISST), and by automated testing (disimpy.tests). Examples of simulations used for validation are provided here. However, Disimpy is research software and some bugs undoubtedly remain. If you find any of them or encounter unexpected behaviour, please open an issue on GitHub.


If you want to contribute to the development of Disimpy, start by reading the contributing guidelines.


If you have questions or need help, open an issue on Github.



Kerkelä et al., (2020). Disimpy: A massively parallel Monte Carlo simulator for generating diffusion-weighted MRI data in Python. Journal of Open Source Software, 5(52), 2527. https://doi.org/10.21105/joss.02527