Topology Related Software for Sage

Various people expressed the wish to have Algebraic Topology in Sage. This Wiki is for collecting suggestions. The first version is based on this thread.

Disclaimer: Here we are not (yet) talking about standard packages. Some of them can only be optional, due to lack of support for various platforms or due to licence problems. Also we do not claim that all the suggestions below are interesting enough for considering inclusion. Please feel free to remove items if you think they are clearly inappropriate.

One wish was to compute the homology of simplicial complexes, which might be doable with various packages. This is partially related with the study of point cloud data (persistent homology). But there are also various pieces of software that are specialized on questions in Low-Dimensional Topology and are partially related with (riemannian) geometry and decision problems (e.g., 'determine whether or not two 3-manifolds are homeomorphic').

List of Suggestions

There is one section for each of the items (follow the links). Many of our suggestions were taken from Nathan Dunfield's list.

About algebraic topology (in the sense of homology, cohomology and stuff):

About 2-dimensional topology:

About 3-dimensional manifolds:

About knots

About visualization

Brief descriptions of the individual packages

Homology and Co.

topaz

This used to be a module of Polymake, but AFAIK it was removed due to build problems. Frank Lutz used the module in older versions of Polymake for his research.

Patch of John Palmieri

The patch is here. John, could you provide a link to the corresponding ticket once you open it?

Plex

Plex is a software package for computing persistent homology of finite simplicial complexes, often generated from point cloud data. Originally developed for MATLAB, there is also a stand-alone Java version.

Hap

Hap is a Gap package developed by Graham Ellis and Paul Smith. It can be used to make basic calculations in the cohomology of finite and infinite groups.

Spkg of David Green and Simon King

Based on C-programs of David Green, Simon King created Cython modules for the computation of cohomology rings of finite p-groups with coefficients in GF(p). Currently this seems to be by far the most powerful framework for computing modular cohomology of finite p-groups. Results can be found here. It seems that we are close to making a spkg out of it. Next project would be to study Steenrod actions.

Kenzo

Kenzo implements several spectral sequences, can build the first stages of the Whitehead and Postnikov towers, and has a particular emphasis on iterated loop spaces. It is in Lisp (may be a problem), and I have no idea about license.

CHomP

CHomP 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. Both sources and binaries are available.

Surfaces

Circle packings

Just a link to the Circle packings software of Ken Stephenson...

Java applets for curves on surfaces

Here are some Java applets due to Moira Chas for dealing with curves on surfaces: Conjugacy problem in closed surface groups, a certain pairing that I can not name in this Wiki since the person inventing it has a name containing an expensive metal, minimal intersection number, Turaev cobracket,...

Three-Dimensional Manifolds

Snap

Snap seems to be evolved from SnapPea (see below) and can compute arithmetic invariants of hyperbolic 3-manifolds. It seems to be a package for Pari, and is due to Oliver Goodman.

t3m

t3m is a Python framework for doing computations in 3-manifolds. It includes SnapPea, which seems to be a quite mature project for computations concerning hyperbolic 3-manifolds. At least, when attending conferences about low-dimensional topology, quite a few speakers use it. SnapPea contains a census of small volume hyperbolic manifolds, and there are extensions and data bases, for example: Generating link projections or tables of knots and links in SnapPea format.

t3m also includes a program of Berge that allows manipulation of Heegaard diagrams. Moreover, t3m provides tools for computing mod 2 Heegaard-Floer link homology (this is a very hot topic!).

Last but not least, t3m can compute normal surfaces, which is a major brick for Wolfgang Haken's recognition algorithm of sufficiently large manifolds. For that purpose, FXrays is used. This is a small, fast C implementation of an algorithm for finding extremal rays of polyhedral cones with filtering, and might be of independent interest to Sage.

3-manifold recognizer

The 3-manifold recognizer was developed by the research group of Sergei Matveev at Chelyabinsk State University. It provides a very successful and fast heuristics for recognizing whether two given closed 3-dimensional manifolds are homeomorphic. Although there is no guarantee that it succeeds in all cases, it was able to classify all 13396 manifolds that can be presented by a singular triangulation of up to 11 tetrahedra.

However, I am not sure if it is open source and if it provides sufficient support on various platforms. So far, I only know a program for Windows, and the last version is of 2006.

Knots

This is one of the most interesting topics in knot theory. Heegaard-Floer link homology is quite difficult to compute. t3m can do it modulo 2.
There is a c++ program written by by John Baldwin and William Gillam.
There is also a Python program due to Jean-Marie Droz and Anna Beliakova. The program is available here. It requires the Python package 'psyco'.