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.

Download files

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

Source Distribution

pivtools-0.6.0.tar.gz (2.0 MB view details)

Uploaded Source

Built Distributions

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

pivtools-0.6.0-py3-none-win_amd64.whl (3.5 MB view details)

Uploaded Python 3Windows x86-64

pivtools-0.6.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.4 MB view details)

Uploaded Python 3manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pivtools-0.6.0-py3-none-macosx_15_0_arm64.whl (3.1 MB view details)

Uploaded Python 3macOS 15.0+ ARM64

File details

Details for the file pivtools-0.6.0.tar.gz.

File metadata

  • Download URL: pivtools-0.6.0.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pivtools-0.6.0.tar.gz
Algorithm Hash digest
SHA256 da55ac27f736584c24c3191cf7135b982947b10190a55d1d3e266cf88b0b8907
MD5 a3796d311b7e8fdf17061938c3a7a454
BLAKE2b-256 1f133c46bc47723d25d85c723e59dc0ddcea39db839182118c7505577a81ef5f

See more details on using hashes here.

File details

Details for the file pivtools-0.6.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: pivtools-0.6.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pivtools-0.6.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 ca0ed5202aabc3d8a84a89d92811e3dfd30ec80443acafeee9b8c86ffceca2f5
MD5 b4097cb0c9a062ca0c68b131f005338f
BLAKE2b-256 cd478b50caed7aed232083718df46b425045dbffb5ee87f4fc860d020c87d43b

See more details on using hashes here.

File details

Details for the file pivtools-0.6.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pivtools-0.6.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eab136941e5b763cbb485c5dd3810f6ec90452de320bc4ca11b090833e6bd3a1
MD5 1b3e04c07b5b47ee820c21fbe309ec3d
BLAKE2b-256 aff43ce5bf3774c0291af2c55c251953ed0641dfe721e8bbdaf8e4c15a7596ca

See more details on using hashes here.

File details

Details for the file pivtools-0.6.0-py3-none-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pivtools-0.6.0-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e323beade2e3577f91c77ac5fbccc24f3fe1c4c95eda662fa87160fade41c2af
MD5 9561e0149a0b0bca5b63f810dc3fa7f5
BLAKE2b-256 d46afaaff39ab1db3838a3ae8ad3b6af7646e28710229edfae2af934df0b0e77

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.6.0 This release

4 files

0.5.1

10 files

0.5.0

10 files

0.4.8

10 files

0.4.7

10 files

0.4.6

10 files

0.4.5

10 files

0.4.4

10 files

0.4.3

10 files

0.4.2

7 files

0.4.0

7 files

0.3.2

7 files

0.2.3

10 files

0.2.2

10 files

0.2.1

10 files

0.2.0

10 files

0.1.9

10 files

0.1.8

10 files

0.1.7

10 files

0.1.6

10 files

0.1.5

7 files

0.1.4

7 files

0.1.3

7 files

0.1.2

7 files

0.1.0

2 files

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