SnapPy

What is SnapPy?

SnapPy logo

SnapPy is a program for studying the topology and geometry of 3-manifolds, with a focus on hyperbolic structures. It runs on Mac OS X, Linux, and Windows, and 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. You can see it in action, learn how to install it, and watch the tutorial.

News

  • Version 3.2 (January 2025):

    • An alternative implementation of the length spectrum. It supports verified computations and is significantly faster in some cases. See length_spectrum_alt and length_spectrum_alt_gen.

    • isometry_signature now also works for closed manifolds.

    • A paper plane or eye ball in the inside_view showing the position and bearing of the user in the hyperbolic manifold. By default, we now show the paper plane instead of the edges of the triangulation so that the view is intrinsic to the manifold. The geodesics window now also features a button to put the camera onto a geodesic. Here are some examples:

      Paper plane near shortest geodesic of o9_00000 Paper plane very near shortest geodesic of o9_00000 Paper plane on shortest geodesic of m004 Paper plane coming out of a cusp of m125
    • A faster and more robust algorithm to the compute maximal cusp area matrix. The new algorithm is now the default for cusp_area_matrix(), cusp_areas(), short_slopes() and cusp_translations().

    • New options ignore_curves and ignore_filling_orientations for triangulation_isosig(). Also fixing a subtle bug where the filling coefficients returned by triangulation_isosig were not canonical when ignore_curve_orientations = True.

    • canonical_retriangulation() and isometry_signature() fail with exceptions rather than silently returning None. In particular, it now safe to compare isometry signatures (without further checks) to determine whether M and N are isometric hyperbolic manifolds:

      >>> M.isometry_signature(verified=True) == N.isometry_signature(verified=True)
      
    • Bug fix to slice_obstruction_HKL: earlier versions incorrectly allowed looking at mod 2 homology of the branched cover, where the theory does not directly apply.

    • New self-contained SnapPy application for Linux.

    • Support for Python 3.13 and SageMath 10.5.

  • Versions 3.1 (May 2023) and 3.1.1 (June 2023):

    • A method exterior_to_link for going from a link exterior to a link diagram taken from Dunfield-Obeidin-Rudd.

    • Covers now computed by the stand-alone low_index module, which uses multiple processor cores and is typically much faster than the old code. In some cases, it is dramatically faster than even GAP or Magma.

    • Added geodesics to the inside_view. Here are some intersecting tubes about closed geodesics in the manifold v3539(5,1):

      Geodesic tubes for v3539(5,1)
    • Added drilling any simple geodesic with drill_word and drill_words, not just those that are combinatorially simple.

    • Added ignore_orientation flag to triangulation_isosig.

    • Added include_words flag to length_spectrum for getting the word corresponding to a geodesic which can be given to drill_word.

    • Support for Python 3.11 and SageMath 10.0.

    • Modernized styling of the documentation.

  • Complete version history.

Documentation

Credits

Written by Marc Culler, Nathan Dunfield, and Matthias Goerner using the SnapPea kernel written by Jeff Weeks, with contributions from many others. If you use SnapPy in your work, please cite it as described here. If you encounter problems with SnapPy, please report them.

Released under the terms of the GNU General Public License, version 2 or later.

The development of SnapPy was partially supported by grants from the National Science Foundation, including DMS-0707136, DMS-0906155, DMS-1105476, DMS-1510204, DMS-1811156, and the Institute for Computational and Experimental Research in Mathematics. Any opinions, findings, and conclusions or recommendations expressed on this site are those of the authors and do not necessarily reflect the views of the National Science Foundation.