The CompuTop.org Software Archive.
Welcome to CompuTop.org, a site for for people doing computational
stuff with low-dimensional topology. If you know any other software
that should be listed here, drop me a line. Suggestions are welcome.
This website partially supported by NSF various grants.
2018/04/30: Added RackEnumeration for enumerating elements of a rank.
2017/12/14: Added curver for studying the curve complex of a surface.
2017/11/16: Added KnotInfo an online database of knot invariants.
2016/04/8: Added flipper for manipulating
curves and measured laminations on surfaces and producing mapping
2015/12/7: Added polymake for
studying the geometry of convex polytopes and polyhedra.
2015/1/20: Added shine for
studying hyperbolic geodesics on surfaces.
2014/9/25: Added Andrews-Curtis for
studying that conjecture.
2014/2/5: Added Branched for minimizing
intersections of curves on a surface and drawing the result.
- Programs for computing invariant train tracks of surface
for visualizing the actions of Dehn twists on curves on the
genus 2 surface. Includes an educational game. By Kazushi Ahara (Mac, Linux,
Windows, source code.)
- Circle Packing
Software by Ken Stephenson.
for computing minimal intersection numbers of curves on surfaces, the
Goldman bracket, and the Turaev cobracket. By Moira Chas.
- Branched computes
(and draws) minimal positions for collections of loops on surfaces
(with or without boundary), and thus also computes intersection
number. By Alden Walker.
- Shine does the
following: (1) finds
and visualizes hyperbolic structures on surfaces. (2)
visualizes embedded surfaces in R^3 and (hyperbolic) geodesics
By Alden Walker.
- The package TQFT
computes the matrices of the action of the mapping class group
on Verlinde modules of a surface. By Norbert A'Campo and Gregor
Masbaum, for Pari.
is a program for computing the action of mapping classes on
laminations on punctured surfaces using ideal triangulation
coordinates. By Mark Bell.
is a program for performing calculations in the
curve complex of a surface. By Mark Bell.
SnapPea is a general purpose program for manipulation of
3-manifolds, with an emphasis on finite volume hyperbolic
3-manifolds. Allows entering of manifolds as Dehn surgery on
link complements and from an extensive census of small-volume
- SnapPy, is a
modern 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. By Marc Culler and Nathan Dunfield, using Jeff Weeks's
- Jeff Weeks's original SnapPea.
- A. C. Manoharan's Windows
port. Note: This version also runs under Intel Linux using WINE, a Windows emulator. WINE
can be hard to install, so it's best have a Linux distribution
that includes it.
- Oliver Goodman's Snap, for
computing arithmetic invariants of hyperbolic 3-manifolds.
- Damian Heard's
which, unlike SnapPea, allows orbifolds where the singular set
contains trivalent vertices.
- Additions to
SnapPea, mostly for generating link projections, from Nathan
- Tables of properties of the SnapPea census manifolds, from Nathan
- Joe Christy's
of knots and links in SnapPea format.
- Morwen Thistlethwaite's census of cusped
manifolds that can be built from 8 ideal tetrahedra.
is a program for verified computations for hyperbolic 3-manifolds.
Other general 3-manifold programs.
- t3m, is a
general Python framework for
studying 3-manifolds and is a self-styled "box of tinker toys
for topologists". It can do normal surface theory via FXrays and is designed
to interact with SnapPeaPython. By Marc Culler and Nathan Dunfield.
- Regina, a
general program for studying 3-manifolds including support for
normal surfaces and angle structures. By Ben Burton.
- Heegaard, is for studying
3-manifolds via their Heegaard splittings. By John Berge.
and Cusp two programs from Andrew Casson for geometrizing
also known as the 3-manifold Recognizer, a general 3-manifold
program based around the notion of a
which (roughly) is a dual notion to a triangulation. This
Windows program that can recognize many Seifert fibered
and graph manifolds, among other things. By Sergei
V. Matveev and others.
- Software for constructing a manifold from a "twisted
face-pairing" by Cannon,
Floyd, and Parry.
a program for constructing triangulations from mapping class
descriptions of surface bundles and Heegaard splittings by Mark
Bell, Tracy Hall, and Saul Schleimer.
on 3-manifolds with small triangulations by Roberto Frigerio,
Bruno Martelli, and Carlo Petronio. Includes a complete list of
all closed 3-manifolds that can be triangulated with at most 9
computer hyperbolic structures on 3-manifolds with totally
geodesic boundary. By Bruno Martelli. Unix source.
- Programs and data about the Virtual
Haken Conjecture: census manifolds and
orbifolds. By Nathan Dunfield, Bill Thurston, and Frank
is a program for computing twisted Alexander polynomials, which
give insight into the Thurston norm and whether a 3-manifold
fibers over the circle. By Stefan Friedl.
- Kirby Calculator, a
program for manipulating surgery diagrams of 3-manifolds using
Kirby calculus. By Frank Swenton.
- For a library specific to the 2 and 3 torus, see the Novikov Torus Conjecture Library.
Normal Surface Theory
- FXrays is a fast
engine for finding extremal rays of polyhedral cones. Designed
to be used with t3m
which has support of normal surfaces, it is a small C program
which could easily be incorporated into other programs. By Marc
- See also Regina and t3m.
- Curt McMullen's klein for
generating pictures of limit sets of Kleinian groups (C source.)
- David Wright's
Kleinian Groups Software in Fortran.
- Masaaki Wada's OPTi
for visualizing quasi-conformal deformations of
once-punctured-torus groups (Macintosh).
- Subdivision programs to try to construct the sphere at
infinity, by Cannon, Floyd,
- David Dumas's Bear for
examining all kinds of punctured torus groups (e.g. producing
Bers slices). (C Source.)
Foliations and other dynamics
- A library for investigating foliations of surfaces embedded
in the 3-torus, the The
Novikov Torus Conjecture Library by Roberto De Leo.
Includes support for elementary topology of T^3. In C++.
- For dynamics of surface homeomorphisms and their related
foliations, see 2-dimensional manifolds.
- A library Mulitfario for
computing manifolds that arise in dynamical systems, e.g. fixed
points, periodic orbits, heteroclinic and homoclinic
connections, invariant manifolds, etc. C and Fortran source.
Floer homology and gauge theory
- A program BordProg for computing Heegaard
Floer homology using the bordered theory of Lipshitz, Ozsváth,
and D. Thurston. (Sage module)
- See also gridlink and hfk below.
- Geomview has a module
visualizing the insides of 3-manifolds.
- A program for exploring
non-Euclidean spaces (Riemann surfaces, hyperbolic 3-manifolds)
via the notion of "kinematical topological spaces." By Pavel
S. Pankov and others. For Windows.
- CurvedSpaces by
Jeff Weeks. For Windows and OS X.
Knot Theory and related topics
- Morwen Thistlethwaite's and Jim Hoste's Knotscape
(Unix). A preliminary version for Mac OS X is here.
- Hugh Morton's knot theory
- Rob Scharein's KnotPlot.
a program for visualizing Seifert surfaces for knots in the
3-sphere. For Windows. Written by Jarke van Wijk.
- Alexander Shumakovitch's KhoHo, a package for
computing Khovanov homology, which is related to the Jones
- Dror Bar-Natan's The Knot
Atlas, featuring online tables of knots and links with
pictures and polynomial invariants. Also includes a Mathematica
package for computing polynomial invariants of knots and links
which contains the information in the tables.
is an online database containing many different
properties of the knots with at most 12 crossings.
an online program for generating drawings of knots and links.
Includes access to all prime alternating knots of 22 or fewer
crossings, from PAKG.
- Nathan Dunfield's program to compute
boundary slopes of Montesinos knots.
a program for studying incompressible surfaces in 2-bridge link
complements. By Jim Hoste and Patrick Shanahan.
Knot Simplifier, a program by Dynnikov and others for
studying link projections using Ivan Dynnikov's 3-page book
techniques (Java). It can be used to recognizing the unknot and
- Gridlink is
a tool for manipulating rectangular link diagrams (also called
"arc presentations") used by Ivan Dynnikov in this paper,
which are now used as a framework for studying Heegaard knot
Floer homology. Gridlink is written by Marc Culler in Python,
and should run on all platforms.
- hfk, a
program for computing Heegaard knot Floer homology, by John Baldwin and
- A new
program for computing Heegaard knot Floer homology, by Jean-Marie Droz.
- The program cs
computes SU(2) and SO(3) representation curves for 2-bridge
knots, as well as associated Chern-Simons invariants on Dehn
surgeries. By Karl Schmidt and Alexander Pilz (Sun and
Mac, Unix source available on request).
- A variety of programs by
Andrew Bartholomew for examining braids and knots, including
virtual ones, and computing their invariants. Includes a module
for generating MetaPost diagrams for links.
- Rig is a GAP package
for computations related to racks, quandles, and Nichols algebras,
including rack and quandle homology and Nelson's polynomial
is a Python program for enumerating elements of a finitely-presented rack,
by Jim Hoste and Pat Shanahan.
- KnotKit is a C++
package for computing some knot and manifold invariants
appearing in low-dimensional topology, including Khovanov
homology, Szabo's geometric spectral sequence, Batson-Seed link
splitting spectral sequence, The Lipshitz-Sarkar Steenrod square
on Khovanov homology, and others. By Cotton Seed and Josh
- See also SnapPea.
- See also Twister.
Combinatorial/Geometric Group Theory
- MAGNUS from CCNY
a package for Knuth-Bendix in monoids, and automatic groups by
Derek Holt (a descendent of the Warwick automatic groups
package) (Unix/C source). The
MAF (Monoid Automata Factory) is
a C++ reworking of kbmag2.
- Scallop is part of a family of
programs for understanding stable commutator length in free
groups, written by Danny Calegari
and Alden Walker. Overview
- The ACME package
by Colin Ramsay for studying the Andrews-Curtis conjecture.
an MPI-based tool for exploring the Andrews-Curtis conjecture.
By Kelly Davis.
Here are some packages for computing the homology and cohomology of simplicial complexes and groups:
- Linbox, a C++ library with GAP and Maple interfaces.
- HAP: Homological Algebra Programming, a GAP package
- Moise, a Maple topology package by Andrew Hicks.
a Lisp program for computing homology, cohomology, and homotopy
groups. It implements several spectral sequences, can build the
first stages of the Whitehead and Postnikov towers, and has a
particular emphasis on iterated loop spaces.
- CHomP, the Computational
Homology Project, has a set of tools for computing the homology
of a collection of n-dimensional cubes, with a view
towards applied applications in dynamical systems, chaos theory,
and pattern characterization.
Polymake can explore the
combinatorics and geometry of convex polytopes and
polyhedra. It includes simplicial complexes, matroids,
polyhedral fans, graphs, and tropical objects.