Accelerating ultrasound research

An open-source library for ultrasound modelling and tomography that provides flexibility and scalability together with production-grade performance.

Key features


Stride provides CPU- and GPU-ready finite-difference solvers, including variable sound speed, density, and attenuation and off-grid sources and receivers.


Easily prototype tomography algorithms with automatic gradient calculations, state-of-the-art reconstruction algorithms, and the flexibility to (re)define every step.


Stride integrates with Devito, allowing you to add new physics using math-like symbolic expressions that will automatically run on both CPUs and GPUs.


With Mosaic, its custom parallelisation library, Stride can scale seamlessly from a local workstation, to an HPC cluster with production-grade performance.

Install Stride

Jump right in using a Jupyter notebook directly in your browser with binder.

Otherwise, the recommended way to install Stride is through Anaconda's package manager (version >=4.9), which can be downloaded in Anaconda or Miniconda. A Python version above 3.8 is recommended to run Stride.

To install Stride, follow these steps:

git clone
cd stride
conda env create -f environment.yml
conda activate stride
pip install -e .

You can also start using Stride through Docker:

git clone
cd stride
docker-compose up stride

which will start a Jupyter server within the Docker container and display a URL on your terminal that looks something like To access the server, copy-paste the URL shown on the terminal into your browser to start a new Jupyter session.