Previous page: Using MiePlot
Optics of a water drop: Mie scattering


A computer program for scattering of light from a sphere using Mie theory & the Debye series

Download MiePlot v4.6 now

MiePlot was originally designed to provide a simple interface (for PCs using Microsoft Windows) to the classic BHMIE algorithm for Mie scattering from a sphere - as published by Bohren and Huffmann in "Absorption and scattering of light by small particles" (ISBN 0-471-29340-7).

In addition to calculations of Mie scattering for single wavelengths, MiePlot offers calculations for scattering of sunlight - and simulations of atmospheric optical effects (such as rainbows, coronas and glories).  These simulations can be superimposed on digital images of actual optical effects - as shown elsewhere on this web site.  Click here to see some examples.

MiePlot also offers the option of calculations using the Debye series.  Although Mie theory provides an exact mathematical solution to the problem of scattering of electromagnetic waves from an homogeneous sphere, it does not provide any insight into the physical processes involved in scattering.  The Debye series is essentially a reformulation of Mie theory allowing the separation of contributions due to specific ray paths.

Fig. 1   Scattering of unpolarised light of wavelength λ = 0.65 µm by a spherical water drop of radius r = 100 µm

Fig. 1 shows the results of Mie calculations which include all scattering processes, together with the contributions from specific ray paths calculated using the Debye series.  This graph demonstrates how the various scattering processes combine to produce the Mie solution.  For example, as is well known from geometrical optics, the primary rainbow is caused by rays that have suffered 1 internal reflection (p = 2 rays) and the secondary rainbow is caused by rays that have suffered 2 internal reflections (p = 3 rays).  Click here for further graphs of the Debye series generated by MiePlot.

Although Mie theory and the Debye series are rigorous, these calculations can be very time consuming.  For simulation of rainbows, Airy theory can provide equivalent results in a small fraction of the time.  Other calculation methods, such as ray tracing, are important from the perspective of the history of science - as well as offering insights into the process of scattering.  The latest version of MiePlot offers the following additional methods of modelling the scattering of light by a sphere:

This web site contains many graphs comparing the results given by various mathematical models.  Click here for further information.

MiePlot allows the user to select:

Polar diagram for <i>r</i> = 10 µm
Fig. 2. Polar diagram of scattering of red light (λ = 0.65 µm, perpendicular polarisation) from a water droplet of radius r = 10 µm

MiePlot also offers polar plots of scattered intensity versus scattering angle.  The example shown above in Fig. 2 uses a logarithmic scale for intensity (each division represents a 10:1 change in intensity).

Other new features include graphs of scattering cross-sections (Cext, Csca & Cabs) and scattering efficiencies (Qext, Qsca & Qabs) as functions of radius of the scattering sphere, size parameter or wavelength.  One example is shown above in Fig. 3, which is similar to Fig. 24 in H. C. van de Hulst's 1957 book "Light scattering by small particles".  The main difference is that, as van de Hulst noted, "not all minor wiggles are shown" on his version: this is understandable because he computed his results using a slide rule!

Many users have asked how to interpret the relative intensity scales used by MiePlot.  Although MiePlot follows the conventions used by most authors on the topic of scattering, MiePlot provides the option of a different intensity scale (Watts/sq. m.).  In this case, MiePlot calculates the scattered intensity at a specified distance (d measured in metres) from the scattering sphere for a specified intensity of the incident light (measured in Watts/sq. m.).  MiePlot also includes the option of plotting the "phase function" which has the important property that its integral over all scattering angles is 1.

Fig. 4  Statistical distributions of the radius of the scattering spheres

The Mie algorithm is applicable to scattering of light from a single sphere, but many users of MiePlot need to simulate scattering from many spheres, generally with slightly differing sizes (i.e. disperse).  Previous versions of MiePlot could simulate scattering from a population of spheres with Normal or log-Normal size distributions: in such cases, MiePlot approximates the required statistical distribution by making calculations at, say, 20 discrete values of radius - as indicated by the red lines in Figs. 4A & 4B above.  The latest version of MiePlot also permits the use of arbitrary size distributions, such as in histograms derived from experiments.  Fig. 4C approximates a Normal distribution using a histogram with "bins" of 1 µm width, whilst Fig. 4D approximates a log-Normal distribution using "bins" of unequal width.

MiePlot 3.3 contains several new features:

r1-Phase Plot

Fig. 5. Parametric curve showing amplitude and phase for scattering angles between 0° and 120°  for scattering of red light (λ = 0.65 µm,  perpendicular polarisation) from a water droplet of r = 1 µm

New features in MiePlot 3.4

False colour map
Fig. 6. False-colour map showing the intensity of the glory (caused by Debye series p = 2 scattering) as a function of refractive index for scattering of red light (λ = 0.65 µm) from a water droplet of radius r = 10 µm

New features in MiePlot 3.5 include:

False colour map

Fig. 7.   Polar plot of scattering of Gaussian beam of light (λ = 0.5145 µm) with beam coordinates x0 = 0, y0 = -40 µm, z0 = 0
and beam half-width w0 = 20 µm from a water droplet of radius r = 43.3 µm

New features in MiePlot 4.0 include:

Mueller Matrix

Fig. 8.   Scattering matrix showing variations of S11, S12/S11, S33/S11 and S34/S11 as a function of scattering angle for red light (λ = 650 nm) scattered by a spherical water droplet with radius r = 10 μm
Fig. 9.  Use of Fast Fourier Transform (FFT) calculations to display the frequency spectra of plots of scattered intensity over selected angular ranges

New features in MiePlot 4.1 include:

New features in MiePlot 4.2 include:

New features in MiePlot 4.3 include:

New features in MiePlot 4.4 include:

New features in MiePlot 4.5 include:

New features in MiePlot 4.6 include:

CIE x-y chromaticity diagram with a parametric curve representing the colours of the primary rainbow
as a function of θ between 138° and 145° caused by the scattering of sunlight
by a water droplet of radius r = 150 μm. Note that the parametric curve has markers at intervals of 0.1°.

Many examples of MiePlot's graphical outputs and simulations of atmospheric optical effects are available elsewhere on this web site.

Download MiePlot v4.6 (file size: 2.12 MBytes = 2,174 kBytes = 2,225,597 bytes) contains MiePlot version 4.6, together with the associated Help and data files.

Download and extract the archived files into an appropriate directory on your computer (e.g. C:\Program Files\MiePlot). 

To run MiePlot, simply run MiePlot v4601.exe (e.g. by double clicking on this file using Windows Explorer).

Note that MiePlot was originally designed for displays with 1024 x 768 pixels.

If you are using Windows 8/8.1 or Windows 10 with an HD display (e.g. 1920 x 1080 pixels or more), you may find that MiePlot looks blurred. To overcome this problem, locate "MiePlot v4600.exe" (or a subsequent version) using Windows Explorer, use your mouse to right-click on this file and select "Properties". Under the tab marked "Compatibility", check the box labelled "Disable display scaling on high DPI settings" and click "OK". When you next open MiePlot, you will find that the details in the MiePlot window now look much sharper - indeed, MiePlot is now able to use the full resolution of your display!

Help files:  MiePlot's Help files now use the .chm format (Microsoft Compiled HTML Help). Some users of MiePlot have reported that they can see the section headings in MiePlot's help file, but they cannot not see the text. If you have this problem, use Windows Explorer to right-click on the file "MiePlot.chm" to access the properties dialog box and then click on the "Unblock" button. Another reported problem occurs if the "MiePlot.chm" file is accessed via a local network: the solution is to copy all of your MiePlot files into a "local" directory on your computer (e.g. the C: or D: drive).

Users of PCs configured in languages other than English may find that MiePlot fails to start correctly - giving an error message about "international" versions of Windows expecting "," (rather than ".") as the decimal symbol.  For example, MiePlot assumes that numbers will be entered in the form "1.25", not "1,25".  In fact, error-checking routines will automatically convert such entries into the form expected by MiePlot.

N.B. Missing Files
As MiePlot was written in Visual Basic, some additional files may need to be installed on your PC.

Legal mumbo jumbo!

The MiePlot computer program is available free of charge for non-commercial use. You may not sell it, but you can distribute it free of charge to others.  Please include the Help files.   However, this program is offered on the explicit understanding that no modifications may be made to it.  Although this program has been tested on Microsoft Windows 98, NT, 2000, XP, Vista, Windows 7, Windows 8/8.1 and Windows 10, no warranty is offered!

I would like to thank everybody who has reported bugs or made suggestions for improvements to MiePlot.  I hope that MiePlot v4 includes most of the requested facilities - but if you have any additional suggestions, please contact me. Your feedback is welcome!

Page updated on 10 February 2017

Previous page: Using MiePlot
Optics of a water drop: Mie scattering