# Topology Software

## Complete applications

• SnapPy: A user interface to the SnapPea kernel which runs on Mac OS X, Linux, and Windows. SnapPy combines a link editor and 3D-graphics for Dirichlet domains and cusp neighborhoods with a powerful command-line interface based on the Python programming language. Download/Install and Full documentation.
• Gridlink: is a graphical tool for manipulating link projections consisting of vertical and horizontal arcs in the plane. These projections are used in Ivan Dynnikov's recognition algorithms for split links and the unknot. They also are used in the combinatorial description of knot and link Floer homology given first by C. Manolescu, P. Ozsvath and S. Sarkar, and explained further by C. Manolescu, P. Ozsvath, Z. Szabo and D. Thurston. The program can accept a closed braid description of a link, and can automatically simplify the projection. It also computes mod 2 Heegaard Floer Knot homology, using the py_hfk module described below. Packages and installation instructions for UNIX, OS X, and Windows are on the gridlink home page.
• Heegaard: John Berge's famous program is now available here. The program can construct a Heegaard diagram from a group presentation, if the presentation is realizable, and use geometric T-transformations to simplify the diagram. It is a C program that runs on UNIX, macOS, and Windows. It is available in source form, either as a tarball or as individual files. Check the README file for instructions on compiling and using the program. The source distribution also contains extensive documentation describing the theory behind how the program works: there is a 30 page article available as as well as a set of examples. For historical purposes, you can also get the a 1998 Mac OS9 binary with a file of examples in Mac OS9 format.

John Berge is developing an improved version: Heegaard3.

## Python libraries

• t3m: A box of tinker toys for topologists. Use it for studying triangulations of 3-manifolds at the Python prompt. It is written entirely in Python, so you can take it apart and put it back together your own way. Requires Python-2.2. T3m is available here. It has since evolved into a component of SnapPy, currently called t3mlite.
• CyPari: A stand-alone version of Sage's Python interface to the PARI number theory library. CyPari is available as a Python package and you can also browse its source code repository.
• Spherogram: A Python module for dealing with the kind of planar diagrams that arise in 3-dimensional topology, such as link and Heegaard diagrams. Spherogram is available as a Python package and you can also browse its source code repository.
• FXrays: A small, fast C implementation of an algorithm for finding extremal rays of polyhedral cones with filtering. It is intended to be used to find embedded normal surfaces in triangulated 3-manifolds. You can build it either as a C module for linking with your own code, or as a Python module. FXrays is available as a Python package and you can also browse its source code repository.
• py_hfk: A Python binding for the C++ code written by John A. Baldwin and W. D. Gillam to compute mod 2 Heegaard Floer Knot homology. Some modifications have been made to increase speed and reduce memory usage. The python package is available as a tarball, or from the source code repository.

## C libraries

• SnapPeaKernel. As of September 2009, t3m is the proud host of the official repository for Jeff Weeks' SnapPea library, on which SnapPy and many other programs are based. As of January 2014, the canonical copy of this kernel is the one contained inside SnapPy.

## Deprecated software

• Our extended version of Jeff Week's SnapPeaPython is available as a tarball. Requires Python-2.2. Superseded since 2008 by SnapPy above.

The development of this software was partially supported by the National Science Foundation under grants numbers 0204142, 007160, 0405491, 0707136 and 1105476