(1) Overview


The shape of large drops or bubbles results from a competition between gravity, which tends to lengthen hanging drops, and cohesive forces among liquid molecules which tend to produce compact, spherical drops. The equilibrium drop shape can be analysed [4] (Figs. 1 and 2) to estimate the length scale, called the capillary length, at which these forces are of comparable magnitude. If the densities of the fluid and the surrounding medium are known, the interfacial energy, or surface tension, can be immediately deduced. Although a rough estimate of the capillary length or the surface tension can be obtained by determining the aspect ratio of the pendent drop [6], a precise determination calls for a numerical solution of the ordinary differential equation describing the drop shape.

Figure 1 

Water drop analysed by Pendent_Drop. The free-pendent part of the drop has to be selected (yellow rectangle). The blue line marks the detected drop boundary, while red marks the theoretical contour corresponding to the parameters in the dialog to the right.

Figure 2 

After automatic optimisation of the drop shape parameters, the calculated contour fits the image well. The parameters and drop properties such as its volume are summarised in the Results table visible at the bottom.

Specialised apparatus performing this drop shape analysis is readily available, generally comprising both acquisition hardware and analysing software. There are however situations in which a commercial solution is not an option. In our case the surface tension measurement bench had to be integrated into a highly space-constrained set-up. As the experiment already relies on ImageJ [1, 3] for the image analysis, it was then natural to develop a drop shape analysis as a component that integrates well with the workflow. For a classroom project on surfactants on the other hand the cost of a commercial apparatus may be prohibitive, while a work-bench for roughly one hundred Euro based on a web-cam (cf. Fig. 3) in conjunction with the present software already yields a measurement precision around one percent, which is entirely satisfactory in that context.

Figure 3 

Schematics of a simple surface tension measurement set-up. Some experimental details and tips are provided in the PDF article installed along with the software (Plugins->Drop Analysis->About Pendent Drop) [11].

The Pendent_Drop software is currently used in our group to study the slow adsorption dynamics of surfactants produced by Bacillus subtilis (see Fig. 4).

Figure 4 

Surface tension of a drop of surfactine solution as a function of the time since drop extrusion. The discontinuities (e.g. around t = 70s or t = 130s) are due to changes in the drop volume caused by the operator. Surfactine is an amphiphile lipopeptide produced by Bacillus subtilis.

Implementation and architecture

Outer layout

This software is implemented as a Command for the ImageJ/SciJava framework, which takes care of populating necessary parameters and services [9].

Internal algorithm

The differential equation for the drop shape is integrated using a fourth order Runge-Kutta scheme, except near the tip singularity where we can explicitly write a sufficiently precise approximate solution. The mean square distance between this theoretical contour and the border extracted from the drop image is then minimised by varying the contour parameters along a set of directions in parameter-space updated according to a strategy described by Powell [10] until a (local) optimum is found (see Fig. 2). More details about both the underlying physics and the algorithm can be found in the PDF article installed along with the software (Plugins->Drop Analysis->About Pendent Drop) [11].

Quality control

Static and dynamic surface tension measurements on various liquids and a biosurfactant solution show that Pendent_Drop calculates values in accordance with known surface tensions and with those obtained via a commercial apparatus. Details on the validation are included in the PDF article installed along with the software (Plugins->Drop Analysis->About Pendent Drop) [11].

Similar software (for ImageJ)

The Low-Bond Axisymmetric Drop Shape Analysis (LBADSA) method [5] uses an image energy approach to fit a first-order approximation of the Young-Laplace equation to the whole image data instead of first detecting the drop contour. A similar approach was taken by the previous version of Pendent_Drop (version 1.x is accessible only via the github repository). It would be interesting to study if this really provides any gain in precision over the computationally much less expensive sub-pixel boundary detection in Pendent_Drop version 2.x. An interesting feature of the cited LBADSA implementation is that contact angles of sessile drops can be precisely estimated by simultaneously fitting both the drop and its reflection in the substrate.

DROPFIT [6, 7, 8] computes the surface tension of pendent drops by comparison with precomputed profiles. It should be only slightly less precise because of the discretisation of its parameter space, while being the computationally least expensive approach.

No benchmarks have been performed yet to compare different softwares.

(2) Availability

Operating system

Requirements are the same as for the ImageJ software (http://imagej.net/): as of writing any Java Virtual Machine version 6 (Java 1.6) or above. The code requires ImageJ version 1.43 or above.

Programming language

This software is written in Java 1.6.

Additional system requirements

No further requirements.


Pendent_Drop will usually be used as an add-on to ImageJ. In this case a working ImageJ application on the host is all that is needed [2].

If used headless or in another context, merely the ImageJ libraries are required, as indicated in the pom.xml file for Apache maven at the root of the source tree:


Currently Pendent_Drop depends on the imagej artifact net.imagej and its dependencies listed in the parent pom-imagej version 7.1.0.

The build-automation tool maven from the Apache project may be used to download all necessary artifacts to build this software.

List of contributors

Adrian Daerr (Programming, Algorithm)

Adrien Mogne (Algorithm, Testing & Validation)

Software location:

Archive (e.g. institutional repository, general repository) (required)

Name: Zenodo

Persistent identifier: 10.5281/zenodo.31461

Licence: GNU GPL

Publisher: Adrian Daerr

Date published: 26/09/15

Code repository (e.g. SourceForge, GitHub etc.) (optional)

Name: Github

Identifier: https://github.com/adaerr/pendent-drop

Licence: GNU GPL

Date published: 03/06/13



(3) Reuse potential

Direct reuse for similar problems

Instead of analysing the shape of a pendent drop, one can use this code as is on images of sessile drops or of bubbles (sessile or pendent). Images of sessile drops or pendent bubbles simply have to be flipped upside-down because the plugin assumes that the base of the drop is at the top and the tip below.

The software can also be easily extended to calculate slopes at selected points, e.g. to measure contact angles on substrates.

Reuse as part of other software

The Pendent_Drop software can be integrated into other Java software by using the imagej/scijava framework to populate its input parameters and invoke it as a command, typically via instructions such as

 final ImageJ ij = new ImageJ();
 // open image(s) here
 ij.command().run(Goutte_pendante.class, true);

An API for more fine-grained control of the functionality is planned.

Reuse for other geometries

Pendent_Drop can also be modified to analyse other free surface geometries, such as the meniscus near a wall or around a fiber plunging into a liquid bath. In detail this requires the adaptation of the Contour and DContour classes to parameters describing the new geometry. In the main class various methods require some rewriting: the differential equation describing the meniscus goes in deriv(), and the integrations bounds in calculateProfile() must be specified. The initial parameter estimation in dropShapeEstimator() needs to be adapted to extract correct shape descriptors from the image for the new geometry. If the new geometry is not right-left symmetric, findDropBorders(), makeClosedPath(), updateOverlay() and any other method referring to left/rightBorder must be modified. Finally calcSurface() and calcVolume() have to be either deleted or adapted to yield correct results.

Competing Interests

The authors declare that they have no competing interests.