Skip to main content

pendantdroppy - Tensiometry software for droplet shape analysis using Young-Laplace fitting

Project description

droppy_logo_og

pendantdroppy - Tensiometry Analysis Software

A PyQt6-based GUI application for analyzing droplet shape using Young-Laplace equation fitting and Bond number calculation.

Installation

Prerequisites

  • Python 3.8 or higher
  • pip (Python package manager)

From PyPI

pip install pendantdroppy

From Source

# Clone the repository
git clone https://github.com/pendantdroppy/pendantdroppy.git
cd pendantdroppy

# Install in development mode
pip install -e .

# Or install normally
pip install .

Manual Installation

# Install dependencies
pip install opencv-python PyQt6 numpy

# Run the GUI
python droppy.py

Usage

GUI Application

droppy

Or run directly:

python droppy.py

Workflow

  1. Select Image - Browse for droplet image (PNG, JPG, etc.)
  2. Draw Geometry - Interactive cv2 window to define:
    • ROI (Region of Interest)
    • Needle tip (for diameter calibration)
  3. Configure Parameters - Adjust processing and analysis settings across tabs
  4. Save Settings - Button to save current configuration to droppy.conf
  5. Run Analysis - Click "RUN ANALYSIS"
  6. View Results - See overlaid YL curve, plateau points, and extrema

Settings File

Configuration is automatically saved to droppy.conf.

On startup, the program loads from this file if it exists, otherwise uses defaults.

Example droppy.conf:

{
  "droplet_type": "rising",
  "needle_diameter_mm": 0.72,
  "sigma": 2.0,
  "canny1": 40,
  "canny2": 120,
  "plateau_width": 100,
  "lensing_factor": 1.0,
  "low_clarity_ratio": 0.1,
  "high_clarity_ratio": 0.01
}

Output Files

Analysis generates:

  • result_yl_overlay.png - Young-Laplace curve fitted to droplet
  • edges.png - Edge detection result
  • summary.json - Numerical results (Bond numbers, calibration)

Parameters Explained

Image Processing

  • Blur Sigma - Gaussian blur level for edge detection resolution
  • Canny Low/High - Edge detection thresholds

Contour Analysis

  • Num Points - Number of contour points to sample
  • Direction - Traversal direction (+1 or -1)
  • Min r', z' - Minimum thresholds to avoid numerical blowup

Analysis

  • Plateau Width - Number of points centered on equator with lowest variance
  • Lensing Factor - Optical correction (1.0 = no correction, <1 = correnting horizontal stretching, >1 = correcting vertical stretching)
  • Clarity Ratios - Fractions of points used for low/high clarity image smoothing
  • Bo Wiggle Room - Expansion of Bond number search range from pointwise estimates

Troubleshooting

"No contours found" - Adjust Canny thresholds or sigma

"Bo ~0 for rising droplets" - Ensure plateau is centered on equator, edit sigma, or redraw needle line, it honestly can be pixels in it.

Config not loading - Check droppy.conf is valid JSON in output directory

"The YL curve is visually off" - Use an image with sharp edges and a known IFT for your setup, keep all settings standard and adjust lensing factor until it fits. Use that lensing factor for all the other runs with your setup. If you are already doing that, increase sigma until it aligns.

More detailed manuals in the works :) open issue if help is needed.

Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Submit a pull request

Support

For issues, feature requests, or questions:

  • Open an issue on GitHub
  • Check existing documentation
  • Review analysis parameters

Acknowledgments

Inspired by Krystyna Prochaska's work in interfacial tensiometry and absorption.

Project details


Download files

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

Source Distribution

pendantdroppy-1.0.4.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

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

pendantdroppy-1.0.4-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

File details

Details for the file pendantdroppy-1.0.4.tar.gz.

File metadata

  • Download URL: pendantdroppy-1.0.4.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.14

File hashes

Hashes for pendantdroppy-1.0.4.tar.gz
Algorithm Hash digest
SHA256 a95e4e3ee958f2b3ba4edc6564651b389639d219b78ddcab547bc152b3af7096
MD5 8717dca8060db3d114c651cb98acd160
BLAKE2b-256 f6024f20f842caff3cc2ec5f0a4eb1072435e198d6aa4fed827a7994a325c431

See more details on using hashes here.

File details

Details for the file pendantdroppy-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: pendantdroppy-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 19.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.14

File hashes

Hashes for pendantdroppy-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c8d2a42475049861b255dcc71e7d11f7aeaf910b79359bf281257a2881388c85
MD5 3d1b0c2f3d0c26bd6717deb0a58f36d4
BLAKE2b-256 a36c635011176c3462df1c136d34a3c2b2494a4ce924a681e8e09f91b5e4ef37

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page