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.

2024/08/06: Added Knottingham.

2024/07/07: Added knoty.

2023/09/05: Added KnotFolio.

2021/09/21: Added Database KnotInfo.

- 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/Knot-Like Objects (KLO), 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.
- 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. Includes 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.
- Database Knotinfo is a Python wrapper for the KnotInfo and LinkInfo online databases. By Sebastian Oehms.
- KnotFolio is a browser-based program for drawing and manipulating topological knots and links. An unusual feature is that it can take images of knot diagrams (from papers or from pencil, chalk, or whiteboard drawings) and convert them to a combinatorial description (e.g. a DT code).
- Knoty, a Python package for generating interactive plots of Legendrian knots.
- Knottingham, software for interactive knot diagrams, using a phenomenological approach.
- 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. 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. - See also the Topology Toolkit.

- Polymake can explore the combinatorics and geometry of convex polytopes and polyhedra. It includes simplicial complexes, matroids, polyhedral fans, graphs, and tropical objects.

- The Topology ToolKit, an open-source library and software collection for topological data analysis and visualization.