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.
--Nathan Dunfield
This website partially supported by NSF various grants.
Recent additions
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:
- 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.
3-dimensional manifolds
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.
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.
- 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.
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
Culler.
- See also Regina and t3m.
Kleinian Groups
- 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.)
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)
- The successor to the preceding item BFH_python by Bohua Zhan and others.
- See also gridlink and hfk below.
Visualization
- 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.
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
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.
Combinatorial/Geometric Group Theory
- 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.
Algebraic Topology
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.
General polyhedra
-
Polymake can explore the
combinatorics and geometry of convex polytopes and
polyhedra. It includes simplicial complexes, matroids,
polyhedral fans, graphs, and tropical objects.
Topological data analysis
-
The Topology ToolKit,
an open-source library and software collection for topological data
analysis and visualization.