Topology Software
Marc Culler and
Nathan Dunfield
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.
Version
2.4.1
(May 27, 2016)
- PLink: A graphical editor for piecewise linear link
projections, which can export DT codes and SnapPea link
files.
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. A 1998
Mac OS9 binary
is available. (Unpack with Stuffit Expander.)
The program has also been ported to gcc. The
gcc port 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 PDF
or TeX. There is also a set of examples in
UNIX
or
MAC OS 9
format. The MAC OS 9 version of the program has a graphics
module for drawing Heegaard diagrams. Unfortunately, the graphics is
not yet available in the gcc port.
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.
- 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,
or as individual
files. Requires Python-2.2. Superseded 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