Developed by Andrew Graham, MEng student, Durham University (1997). Now maintained by David Toll (d.g.toll@durham.ac.uk).