Welcome to the PyPTV documentation! This index provides an organized overview of all available guides and resources. Use this page as your starting point for learning, troubleshooting, and reference.
- Running the GUI
- YAML Parameters Reference
- Parameter Migration Guide
- Calibration Guide
- Examples and Workflows
How to use this documentation:
- Click any link above to jump to the relevant guide.
- Use your browser's search to find keywords or topics.
- For troubleshooting, check the FAQ sections in each guide.
- For community help, visit GitHub Issues or Discussions.
Documentation last updated: August 2025 for PyPTV 2025
Welcome to PyPTV - the open-source 3D Particle Tracking Velocimetry software.
- 📦 Installation Guide - Install PyPTV on Linux/macOS
- 🪟 Windows Installation - Special instructions for Windows users
- 🚀 Quick Start - Get up and running with your first experiment
- 💻 Running the GUI - Launch and use the PyPTV graphical interface
- � YAML Parameters Reference - Complete parameter documentation
- 📹 Calibration Guide - Camera calibration procedures and best practices
- � Parameter Migration - Convert legacy formats to modern YAML
- � Examples and Workflows - Practical examples using test_cavity dataset
- 📋 Logging Guide - Understanding PyPTV's logging system
- 🐍 Environment Guide - Python environment management
PyPTV is a Python-based implementation of 3D Particle Tracking Velocimetry (PTV), enabling you to:
- Track particles in 3D space from multiple camera views
- Measure fluid velocities in experimental setups
- Calibrate camera systems for accurate 3D reconstruction
- Process image sequences with customizable algorithms
- Export tracking data for further analysis
✅ Modern YAML Configuration - Single-file parameter management
✅ Graphical User Interface - Intuitive operation and visualization
✅ Multi-Camera Support - 2-4 camera systems with flexible setup
✅ Plugin Architecture - Extend functionality with custom algorithms
✅ Cross-Platform - Runs on Linux, macOS, and Windows
✅ Open Source - MIT license with active community development
- Operating System: Linux (Ubuntu/Debian recommended), macOS, or Windows 10/11
- Python: 3.11 or newer
- Memory: 8GB RAM minimum (16GB+ recommended for large datasets)
- Storage: 2GB free space (plus space for your experimental data)
For most users, follow these steps:
# Clone the repository
git clone https://github.com/openptv/pyptv
cd pyptv
# Run the installation script (Linux/macOS)
./install_pyptv.sh
# Or use conda directly
conda env create -f environment.yml
conda activate pyptv
pip install -e .For detailed installation instructions, see the Installation Guide.
PyPTV separates tests into two categories:
- Headless tests (no GUI): Located in
tests/. These run in CI (GitHub Actions) and Docker, and do not require a display. - GUI-dependent tests: Located in
tests_gui/. These require a display and are run locally or with Xvfb.
To run all tests locally:
bash run_tests.shTo run only headless tests (recommended for CI/Docker):
bash run_headless_tests.shPyPTV uses a modern environment.yml and requirements-dev.txt for reproducible environments. Most dependencies are installed via conda, but some (e.g., optv, rembg, flowtracks) are installed via pip in the conda environment.
See PYPTV_ENVIRONMENT_GUIDE.md for details.
For headless testing and reproducible builds, you can use Docker:
docker build -t pyptv-test .
docker run --rm pyptv-testThis runs only headless tests in a minimal environment, mimicking CI.
- 📖 Documentation: You're reading it! Start with Quick Start
- 🐛 Issues: Report bugs on GitHub Issues
- 💬 Discussions: Join the GitHub Discussions
- 📧 Contact: Reach out to the development team
PyPTV is an open-source project and welcomes contributions! See our contributing guidelines for more information.
Ready to get started? Begin with the Installation Guide or jump to Quick Start if you already have PyPTV installed.
The PyPTV documentation is organized into the following sections:
- Installation Guide - Complete setup for Linux/macOS
- Windows Installation - Windows-specific installation
- Quick Start - 10-minute tutorial using test_cavity
- Running the GUI - Launch and use the graphical interface
- Parameter Migration - Convert from legacy .par files to YAML
- YAML Parameters Reference - Complete parameter documentation
- Calibration Guide - Step-by-step calibration procedures
- Splitter Mode - Beam splitter stereo camera systems
- Plugins System - Custom tracking and sequence processing
- Examples and Workflows - Practical examples with test_cavity
- Logging Guide - Understanding PyPTV's logging
- Environment Guide - Python environment management
This documentation has been completely restructured to provide:
✅ Modern YAML Focus - All examples use the current YAML parameter system
✅ Correct num_cams Usage - No references to obsolete n_img field
✅ test_cavity Reference - Consistent examples using the included test dataset
✅ Modular Structure - Each topic in its own focused guide
✅ Practical Workflows - Step-by-step procedures for common tasks
✅ Cross-Referenced - Links between related topics
✅ Up-to-Date - Reflects current PyPTV 2025 functionality
| I want to... | Go to... |
|---|---|
| Install PyPTV | Installation Guide or Windows Install |
| Get started quickly | Quick Start Guide |
| Run the software | Running the GUI |
| Convert old parameters | Parameter Migration |
| Understand YAML format | YAML Parameters Reference |
| Calibrate cameras | Calibration Guide |
| See examples | Examples and Workflows |
| Use splitter cameras | Splitter Mode |
| Create custom plugins | Plugins System |
| Troubleshoot issues | Check individual guides for troubleshooting sections |
Documentation last updated: July 2025 for PyPTV 2025