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 line (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" to:
    • Run low clarity fit
    • Run high clarity fit
    • Average Bond numbers
  6. View Results - See overlaid YL curve, plateau points, and extrema

Settings File

Configuration is automatically saved to droplet_out/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)
  • droplet_edge_results.csv - Detailed point-by-point analysis

Parameters Explained

Image Processing

  • Blur Sigma - Gaussian blur for noise reduction
  • 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
  • Lensing Factor - Optical correction (1.0 = no correction)
  • Clarity Ratios - Window fractions for low/high clarity runs
  • Bo Wiggle Room - Expansion of Bond number search range

Visualization Colors

  • Red - Young-Laplace theoretical curve (averaged Bond number)
  • Yellow - Plateau region (fitting region around equator)
  • Grey - Extrema points (tip, center, left, right)

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

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

Based on Young-Laplace equation analysis for axisymmetric droplets.

References:

  • Bashforth, F., & Adams, J. C. (1883). "An attempt to test the theories of capillary action"
  • Rotenberg, Y., Boruvka, L., & Neumann, A. W. (1983). "Determination of surface tension and contact angle from the shapes of axisymmetric fluid interfaces"

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.1.tar.gz (21.4 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.1-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pendantdroppy-1.0.1.tar.gz
  • Upload date:
  • Size: 21.4 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.1.tar.gz
Algorithm Hash digest
SHA256 399b1ec08c3ffe15aa3275d6771d9f34883b15890bc3358bc30c32ab2ba7468b
MD5 29bbad7fb74eee0fae330649ed127cb1
BLAKE2b-256 cfef845dcd08572b3b98f7675fac52dbe4592cb1ccd60f4b5c818e8f44ed5095

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pendantdroppy-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 18.9 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d3b64621a52bd54d402a1973b0a5e4e53e208dbbb70f03079de11c72863cd8ac
MD5 e0b3a971bdfcda45e5d815eae23193b1
BLAKE2b-256 d7140a9874b65eeb5280cd4e64712ca6f40b756ca0d80809c40764fa9642c1dc

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