SnapPy¶
What is SnapPy?¶

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 2.8 (May 2020): New features include:
Raytraced interior views of a hyperbolic 3-manifold via the
inside_view
method, see also images and demo video.Verified computations: Several new features:
Complex volume (and thus the Chern-Simons invariant) for both cusped and closed manifolds, see
complex_volume
.Disjoint cusp neighborhoods by the method
cusp_areas
which usescusp_area_matrix
.Cusp shapes (see
cusp_info
).Finding all
short_slopes
in disjoint embedded cusp neighborhoods.
The census
HTLinkExteriors
has been extented to 15 crossing knots (contributed by Malik Obeidin).The census
CensusKnots
has been extended to triangulations with 9 ideal tetrahedra.Support for SageMath 9.0 and macOS Catalina.
Development moved to GitHub.
Version 2.7 (July 2019): New features include:
Python 3 is now recommended over Python 2 on all platforms; the default Mac and Windows apps use Python 3 rather than Python 2. The only difference most users will notice is that one must type
print(blah)
instead ofprint blah
.Verified computations: performance improvements by switching to the Krawczyk test.
Support for SageMath 8.8.
Installation instructions extensively updated.
GUI improvements, especially on macOS. These include improved support for dark mode and tabs on macOS Mojave and preliminary support for macOS Catalina.
Documentation¶
- Installing SnapPy
- Screenshots: SnapPy in action
- Tutorial
- The snappy module and its classes
- Using SnapPy’s link editor
- Links: planar diagrams and invariants
- Number theory of hyperbolic 3-manifolds
- Verified computations
- Other components
- News
- Credits
- Reporting bugs and other problems
- To Do List
- Development Basics
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.