# Genealogy

In 1997 in Melbourne, David Letscher, Richard Rannard and Ben Burton under the guidance of J. Hyam Rubinstein planned out a program that would do normal surface theory and everything else besides. Much groundwork planning was done, epsilon code was written and then things kind of faded away. David Letscher revived the project on his own and in 1999 presented Normal 1.0. This program performed triangulation simplification and found vertex normal surfaces, was written in Java and was a proof-of-concept program that normal surface theory was computationally feasible.

In March 1999, David and Ben sat down to write a new version of the program from scratch. The new version would have a calculation engine written in C++ for speed and would have a Java GUI for portability. It would be carefully designed and written with rigour and extensibility in mind, allowing for the possibility of add-ons written by other people.

David however leads a busy life and pulled out of the project in late 2000, but remained to offer technical advice. In late 2000 a prerelease of the new program was ready and Regina 2.0 was uploaded to the web.

Since then, many more people have been involved in both small ways and large. Regina has also undergone some major structural changes over the years: In late 2003 the old Java user interface was completely removed in favour of a faster and cleaner native C++ user interface (written using the excellent KDE libraries), and the scripting interface switched from Jython to standard Python support. In 2011 the user interface was ported from KDE 3 to KDE 4, bringing Regina in line with modern GNU/Linux desktop systems and offering a much cleaner experience on MacOS X. In 2012 it was again ported from KDE to a more portable Qt-only interface, further improving MacOS X support and for the first time supporting Windows, bringing us to the point at which we are today.