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.

2019/07/23: Added the Knot Floer Homology Calculator

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
tori.

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
homeomorphisms:
- By Toby Hall for DOS, Windows, and Unix.
- BH by W. Menasco and J. Ringland for Unix (C++ source).
- XTrain by Peter Brinkman in Java: binary, source code, old webpage (via the WayBack Machine).

- Teruaki, 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.
- Programs 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 on them. 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.
- Flipper is a program for computing the action of mapping classes on laminations on punctured surfaces using ideal triangulation coordinates. By Mark Bell.
- Curver 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 manifolds.

- 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 original kernel.
- Jeff Weeks's original SnapPea. For Macintosh.
- 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 Orb, which, unlike SnapPea, allows orbifolds where the singular set contains trivalent vertices.
- Additions to SnapPea, mostly for generating link projections, from Nathan Dunfield.
- Tables of properties of the SnapPea census manifolds, from Nathan Dunfield.
- Joe Christy's table of knots and links in SnapPea format.
- Morwen Thistlethwaite's census of cusped manifolds that can be built from 8 ideal tetrahedra.
- HIKMOT
is a program for
**verified**computations for hyperbolic 3-manifolds.

- 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.
- Geo and Cusp two programs from Andrew Casson for geometrizing 3-manifolds.
- Spine, also known as the 3-manifold Recognizer, a general 3-manifold program based around the notion of a spine, 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.
- Twister, a program for constructing triangulations from mapping class descriptions of surface bundles and Heegaard splittings by Mark Bell, Tracy Hall, and Saul Schleimer.
- Data 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 tetrahedra.
- ographs 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 twist knot orbifolds. By Nathan Dunfield, Bill Thurston, and Frank Calegari.
- KnotTwister 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.

- 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 Culler.
- 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, and Parry.
- David Dumas's Bear for examining all kinds of punctured torus groups (e.g. producing Bers slices). (C Source.)

- 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.

- A program BordProg for computing Heegaard Floer homology using the bordered theory of Lipshitz, Ozsváth, and D. Thurston. (Sage module)
- The successor to the preceding item BFH_python by Bohua Zhan and others.
- See also gridlink and hfk below.

- Geomview has a module Maniview for 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.

- Morwen Thistlethwaite's and Jim Hoste's Knotscape (Unix). A preliminary version for Mac OS X is here.
- Hugh Morton's knot theory programs.
- Rob Scharein's KnotPlot.
- SeifertView, 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 polynomial.
- 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.
- KnotInfo, is an online database containing many different properties of the knots with at most 12 crossings.
- Knotilus, 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.
- bdyslopes, a program for studying incompressible surfaces in 2-bridge link complements. By Jim Hoste and Patrick Shanahan.
- Book 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 split links.
- 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 William Gillam.
- The Knot Floer homology calculator, a program for computing Heegaard knot Floer homology, by Zoltan Szabo.
- 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 invariants.
- RackEnumeration 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 Batson.
- See also SnapPea.
- See also Twister.

- MAGNUS from CCNY (Unix).
- kbmag2 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 and source repository.
- The ACME package by Colin Ramsay for studying the Andrews-Curtis conjecture.
- Andrews-Curtis, 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.
- Kenzo, 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.