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 using the KDE libraries.

  • In 2012 the interface was ported to Qt with enormous help from William Pettersson; this offered a much cleaner experience on macOS and allowed Regina to run properly on Windows for the first time.

  • In 2016 the underlying C++ code was redeveloped in a much more generic style, merging the existing 3-manifolds code with a long-running project with Ryan Budney on 4-manifolds, and creating a new infrastructure for exploring triangulations in dimensions as high as 15.

  • In 2021 the entire C++ codebase was redeveloped to support and embrace a cleaner style of programming that is supported by modern C++ standards, and the Python interface was redeveloped to make Python a “first class citizen”, with a consistent experience and full access to all of Regina's internal code.