Particle Tracking Codes

2D & 3D open source / commercial codes

4D-PTV OpenLPT Particle Tracking

OpenLPT 3D Particle Tracking

Description: OpenLPT - Shake The Box (STB) is a C++ open source code for processing images in order to obtain tracks of particles seeded in the flow. Usually at least three cameras are needed to reconstruct 3D tracks. Anyone who uses this code and develop this code for their research should cite the following publication in their works. This technique inspired by LaVision Shake-The-Box (STB) particle tracking scheme. The OpenLPT has been examined by synthetic and real experimental data.

Open-source code: Particle Tracking Velocimetry (4D-PTV) & Lagrangian Particle Tracking (LPT) code


TracTrac Particle Tracking PTV

TracTrac 2D Particle Tracking

Description: TracTrac is a Particle Tracking Velocimetry (PTV) software which is fast (more than 10000 points tracked per second) and accurate (up to 0.01 pixel resolution), forming thus a good concurrent to the state-of-the-art PIV algorithms. It allows to track anything that moves: birds, ants, grains, water flows... It runs on Python (v2.7 with OpenCV2) or Matlab (>2012a with Image Processing toolbox). The TracTrac scheme has been tested on PIV challenge data.

Open-source code: 2D Particle Tracking Velocimetry (PTV) & 2D Lagrangian Particle Tracking (LPT) code


Data-Enhanced Particle Tracking Velocimetry

Data-Enhanced Particle Tracking Velocimetry

Description: Sample code supporting the scientific paper titled: - "From sparse data to high-resolution fields: ensemble particle modes as a basis for high-resolution flow characterization" - Authors: J. Cortina Fernández, C. Sanmiguel Vila, A. Ianiro, S. Discetti.

Corresponding author:


Turbulence / 4D-PTV (time-resolved particle tracking)

Description: 4D-PTV is a package to do 4D Particle Tracking Velocimetry. This package is composed of all functions required to find particles trajectories and to treat them doing pair dispersion.

Open-source code: 3D particle tracking code


Topology based Particle TrackingCarousel imageTopology based Particle Tracking

Topology Based Tracking (TP-T)

Description: Topology-based Particle Tracking (T-PT) is a spatiotemporal single particle tracking (SPT) algorithm to iteratively track large particle displacements in the next timestep. Open-source MATLAB code is published by developers in Github.

Open-source code: Particle Tracking Velocimetry (3D-PTV) & Lagrangian Particle Tracking (LPT) code

DOI: 10.1038/s41598-018-23488-y


Part2Track Particle TrackingPart2Track Particle Tracking Pipe Flow

Part2Track 2D Particle Tracking

Description: Part2Track Matlab program to perform two-dimensional particle tracking velocimetry (2D-PTV). Part2Track is not only capable of handling time-resolved image series but also double frame image sets, which are commonly recorded by standard PIV systems.

Open-source code: Particle Tracking Velocimetry (2D-PTV) & Lagrangian Particle Tracking (LPT) code

DOI: 10.1016/j.softx.2020.100413


OpenPTV 3D Particle Tracking

OpenPTV 3D Particle Tracking

Description: The OpenPTV foundation is a collaborative effort of several research groups who joined in order to develop better software for 3D-PTV.

Open-source code: 2D Particle Tracking Velocimetry (PTV) & 2D Lagrangian Particle Tracking (LPT) code


Enhance Track Initialisation 4BE-ETI

Four Frame Best Estimate Particle Tracking

Description: python code for track initialization of the four-frame best estimate algorithm for three-dimensional Lagrangian particle tracking (LPT)

Open-source code: Particle Tracking Velocimetry (3D-PTV) & 2D Lagrangian Particle Tracking (LPT) code

DOI: 10.1088/1361-6501/ab0786

Link: /multiphase-cardiovascular-flow-lab/4BE-ETI

2D particle tracking software

2D particle tracker

Description: We use in-house software (developed in C++) to generate trajectories from the raw particle positions with a multi-frame predictive algorithm. We have recently parallelized our tracking software, and can now use it to track up to 50,000 particles per 2D image.

Open-source code: 2D particle tracker



Description: PTVResearch is a state-of-the-art particle tracking velocimetry software based on the Lucas-Kanade solutions to the Optical Flow equations. The software uses surface features to determine the velocities fields of solids and fluid flows, for a wide range of applications including : fluvial river flows, dense granular flows, and high fidelity fluid mechanics flows. The MatLab based graphical user interface installs directly as a toolbox.

Open-source code: PTVResearch

Link: /jonnyhigham/PTVResearch

Optical Tracking Velocimetry

Description: We introduce a novel optical flow scheme, optical tracking velocimetry (OTV), that entails automated feature detection, tracking through the differential sparse Lucas-Kanade algorithm, and then a posteriori filtering to retain only realistic trajectories that pertain to the transit of actual objects in the field of view

Open-source code: Optical Tracking Velocimetry (OTV)


SerialTrack: ScalE and Rotation Invariant Augmented Lagrangian Particle Tracking

We present a new particle tracking algorithm to accurately resolve large deformation and rotational motion fields, which takes advantage of both local and global particle tracking algorithms. We call this method the ScalE and Rotation Invariant Augmented Lagrangian Particle Tracking (SerialTrack). This method builds an iterative scale and rotation invariant topology-based feature for each particle within a multi-scale tracking algorithm. The global kinematic compatibility condition is applied as a global augmented Lagrangian constraint to enhance the tracking accuracy. A MATLAB software package implementing this numerical approach to track both 2D and 3D, incremental and cumulative deformation fields is provided.

Open-source code: SerialTrack