pendantdroppy - Tensiometry software for droplet shape analysis using Young-Laplace fitting
Project description
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 (once published)
pip install droppy
From Source
# Clone the repository
git clone https://github.com/pendantdroppy/pendantdroppy.git
cd droppy
# 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
- Select Image - Browse for droplet image (PNG, JPG, etc.)
- Draw Geometry - Interactive cv2 window to define:
- ROI (Region of Interest)
- Needle line (for diameter calibration)
- Configure Parameters - Adjust processing and analysis settings across tabs
- Save Settings - Button to save current configuration to
droppy.conf - Run Analysis - Click "RUN ANALYSIS" to:
- Run low clarity fit
- Run high clarity fit
- Average Bond numbers
- 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 dropletedges.png- Edge detection resultsummary.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:
- Fork the repository
- Create a feature branch
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pendantdroppy-1.0.0.tar.gz.
File metadata
- Download URL: pendantdroppy-1.0.0.tar.gz
- Upload date:
- Size: 21.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a26c51d9d509707eb74342b6cb4c372e29d77cd8e35a19de7c439e449d93885c
|
|
| MD5 |
0de537a4873cdd344627d46c71dcb389
|
|
| BLAKE2b-256 |
87e9a9d4da7e02b2bb44137cee10d5c552bf918f53bdcdfa23749528cfb99d69
|
File details
Details for the file pendantdroppy-1.0.0-py3-none-any.whl.
File metadata
- Download URL: pendantdroppy-1.0.0-py3-none-any.whl
- Upload date:
- Size: 18.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d2ee57346a099ea7f341296bf4e6dbe91f20630424cab284f28e6f2fe78ffaa
|
|
| MD5 |
e5102c2188b4c9ee08b9926e7c3fdd7a
|
|
| BLAKE2b-256 |
72519d8bab8ec8027583145052c5e61ae5c80b87488c2567e04eaf5ae8ae9643
|