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
2021/09/21: Added Database KnotInfo.
2020/07/20: Added the Topology Toolkit.
2020/03/01: Many broken links fixed.
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.
- 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.
- 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.