Skip to main content

PIVtools

An open-source Python framework for particle image velocimetry (PIV) analysis, integrating planar, stereoscopic, and ensemble PIV pipelines with a React-based GUI and Dask-backed distributed processing.

PIVtools provides an end-to-end workflow: image loading, preprocessing, calibration, correlation, and visualisation driven from a single configuration file. Computationally intensive routines are implemented in C and parallelised with OpenMP and Dask, scaling from workstations to HPC clusters. Validation against synthetic channel flow at Re_τ = 1000 reproduces DNS mean velocity profiles to within 1% down to y⁺ ≈ 10 with instantaneous PIV, and y⁺ ≈ 1 with ensemble PIV.

Features

  • Planar, stereoscopic, and ensemble PIV pipelines
  • Direct Reynolds stress extraction from ensemble correlation maps
  • React-based GUI for interactive analysis
  • Optimised C extensions parallelised with OpenMP and Dask
  • Scales from local workstations to HPC clusters
  • Complete pipeline from raw image import to vector field visualisation

Installation

pip install pivtools

This installs the complete toolkit including:

  • Core utilities for image handling and vector processing
  • Command-line interface (pivtools-cli) for automated workflows
  • React-based GUI (pivtools-gui) for interactive analysis

Pre-compiled C extensions are included for Windows, macOS, and Linux.

Quick Start

Initialise a workspace

pivtools-cli init

Creates a default config.yaml in the current directory.

Run PIV analysis (command-line)

pivtools-cli run

Runs the PIV pipeline using config.yaml in the current directory.

Launch the GUI

pivtools-gui

Starts the React-based GUI for interactive configuration and execution.

Configuration

Both pivtools-cli and pivtools-gui use config.yaml in the current working directory. On first launch, a default config.yaml is copied from the package if none exists.

For detailed configuration options, see piv.tools/manual.

Reproducing the paper

Validation data, benchmark scripts, synthetic image generator configs, calibration images, and pre-computed figures are deposited in the University of Southampton Pure repository:

DOI: [pending]

This includes everything needed to reproduce the figures in the accompanying SoftwareX paper, including ground-truth statistics, CSV data for independent replotting, and scripts for end-to-end regeneration from PIVtools output.

Requirements

  • Python 3.12+

Citation

If you use PIVtools in your research, please cite:

Taylor, M. T., Lawson, J. M., & Ganapathisubramani, B. (2026). PIVtools: A comprehensive open source software for particle image velocimetry. SoftwareX. [DOI pending]

License

GNU General Public License v3.0 or later (GPL-3.0-or-later) — see LICENSE for the full text.

Note: Redistribution of PIVtools, modified or unmodified, must be under the same licence and must make the corresponding source available. The compiled C libraries (libbulkxcorr2d, libfusedwarp, libkspacefit) are original work built from sources shipped in the sdist and link only OpenMP and libm — no third-party numerical library is bundled or linked. See the LICENSE and NOTICE files for details.

Contributing

Contributions are welcome. Please see the GitHub repository for issues and pull requests.

Metadata

Release files for pivtools 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pivtools 0.7.0
File Size Uploaded
pivtools-0.7.0.tar.gz 2.0 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for pivtools 0.7.0
File Interpreter ABI Platform
pivtools-0.7.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
pivtools-0.7.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pivtools-0.7.0-py3-none-macosx_15_0_arm64.whl Python 3 none macOS 15.0+ ARM64 Details

Total release size: 12.2 MB

Release files / pivtools-0.7.0.tar.gz

Download URL pivtools-0.7.0.tar.gz
Size 2.0 MB
Tags Source
SHA-256 checksum
How to use checksums
076f2ac6b538971cc2965bc55d74f81e42ce70e3bb4234b0c0a052a4f7b63c08
BLAKE2b-256 checksum
How to use checksums
e248cceeecd08433aed4cdf131cc80461913c9acb9485ec9d501eceb01ead593
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pivtools-0.7.0-py3-none-win_amd64.whl

Download URL pivtools-0.7.0-py3-none-win_amd64.whl
Size 3.6 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
0a6e786078a99d7f602b000af0ed436a113a67cb77ea3018b68091cd01f1ee01
BLAKE2b-256 checksum
How to use checksums
5935733a66adaa6f5c56866f78bcdd5c58729e38ad681b3d735c497ab31e7e9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pivtools-0.7.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pivtools-0.7.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.4 MB
Tags Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
d197d8210c77116fecd4b4d81b184cf98e94c29c6b697930b3d5b2671ea55e7e
BLAKE2b-256 checksum
How to use checksums
3c3d0dbbfee1403c24fadd0121db2c57abb255950717a9a671256c00aeb5e1ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pivtools-0.7.0-py3-none-macosx_15_0_arm64.whl

Download URL pivtools-0.7.0-py3-none-macosx_15_0_arm64.whl
Size 3.2 MB
Tags Python 3 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
ad15b968767f6ca22f29b10f9ff9314240284e25f817ad5fde7211b6dd4a1598
BLAKE2b-256 checksum
How to use checksums
70eca112a0bbdbdd5920083e834cf1335f97381e4716e98f0e3ddbe69a62bda3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page