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.


  • Version 2.8 (June 2020): New features include:

  • 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 of print 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.

  • Complete version history.


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.