XTrain*

These pages contain a Java 1.1 implementation of the Bestvina-Handel algorithm for homeomorphisms of surfaces with one puncture. Moreover, XTrain also computes triangulations of mapping tori of surface homeomorphisms, suitable for Jeff Weeks's program SnapPea. Surface homeomorphisms can be entered as a composition of Dehn twists with respect to a great variety of curves, or in terms of the induced automorphism of the fundamental group. If you're interested in a typical screen shot, here's a .png file and a .jpg file.

The mathematical engine of XTrain is written in Java and should be universally portable. The graphical user interface was written in Jython and then translated into Java bytecode. Hence, all you need to use the package is a Java-enabled web browser (for the applet version) or a reasonably recent JDK (for the stand-alone version and the command line version; Java 1.1.7 and higher should work). Also, if you are familiar with Jython or JPython, you may enjoy using Jython's scripting features in order to gain access to all public methods of the Java package. Send me an email if you are interested in the details of this approach.

Masaharu Ishikawa has written some Python code that takes a divide (as introduced by Norbert A'Campo), reads off a surface homeomorphism, and prints the result in a format that's suitable for XTrain.

* Where does the name XTrain come from, and why did it take almost seven years to find a name? Well, Axel-Tobias Schreiner told me that these days, the name of any successful software product has to start with the letter X. Since XTrain is already fully buzzword-compliant (the magic words Java and Jython scripting come to mind, among others), it seemed only natural to pick a name with an X, and XTrain sounds cool to me. Also, the name lends itself to a few puns, as in Can you xtrain this example to me? or How do I analyze this example? --- Take the XTrain! (echoes of Duke Ellington in the background).
The core of XTrain has been around for almost seven years now, but only recently people began to refer to it in their publications. Considering the recent popularity gain as well as Mladen Bestvina's recommendation to name the package, I finally sat down and picked a name.


Peter Brinkmann
$Date: 2002-02-11 23:35:54-06 $

Valid HTML 4.01!