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
andlength_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: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()
andcusp_translations()
.New options
ignore_curves
andignore_filling_orientations
fortriangulation_isosig()
. Also fixing a subtle bug where the filling coefficients returned bytriangulation_isosig
were not canonical whenignore_curve_orientations = True
.canonical_retriangulation()
andisometry_signature()
fail with exceptions rather than silently returningNone
. 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
.Added drilling any simple geodesic with
drill_word
anddrill_words
, not just those that arecombinatorially 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 todrill_word
.Support for Python 3.11 and SageMath 10.0.
Modernized styling of the documentation.
Version 3.0.3 (December 2021):
Runs natively on Macs with Apple Silicon processors (M1, M2, and variants).
Version 3.0.2 (November 2021):
Support for SageMath 9.4 and 9.5, Python 3.10, and macOS Monterey.
Version 3.0 (April 2021): New features include:
Incorporates Zoltán Szabó’s program for computing Knot Floer homology, see
knot_floer_homology
. This can compute the Seifert genus of a 25 crossing knot in mere seconds!Topological slice obstructions of Herald-Kirk-Livingston, see
slice_obstruction_HKL
.Faster “local” algorithm for
jones_polynomial
.Cohomology fractals added to
inside_view
.Convention changes: Sign of knot signature (now positive knots have negative signatures), choice of braid generators (now positive generators give positive crossings).
Updates to methods
cusp_translations
,cusp_areas
,short_slopes
. AlsoLink
now accepts DT codes.Support for SageMath 9.3, Python 3.9, and macOS Big Sur.
macOS app now code-signed and notarized.
SnapPy now requires Python 3.6 or newer.
Version 2.8 (June 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 extended 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.
Version 2.6.1 (August 2018): New features include:
Support for SageMath 8.3, Python 3.7, and macOS Mojave.
Computing ideals defining SL(2, C) character varieties. Contributed by Jean-Philippe Burelle, based on this paper.
Many bug fixes.
Version 2.6 (Nov 2017): New features include:
Support for macOS High Sierra, SageMath 8.1, and Windows systems using non-Latin alphabets.
Many bug fixes, including improved Python 3 support.
Version 2.5 (Feb 2017): New features include:
Rigorous computation of hyperbolic volume.
STL export of Dirichlet domains for 3D printing, contributed by Jose Sanchez.
Support for Python 3, SageMath 7.5, 7.6, and 8.0, and many more versions of Python on Windows.
Much improved infrastructure for testing and distributing SnapPy.
Version 2.4 (May 2016): New features include:
Added census of Platonic manifolds.
Rigorous computation of cusp translations.
Added decorations to triangulation isomorphism signatures for encoding peripheral curves.
Faster verification of non-tetrahedral canonical cell decompositions.
Improvements to the link and planar diagram component, mostly contributed by Malik Obeidin, include:
Bar-Natan’s super-fast tangle-based algorithm for computing the Alexander polynomial.
Can now compute the Seifert matrix and express a link as a braid closure.
Conversion to/from SageMath links and braids.
Many under-the-hood improvements.
New Windows installer.
Version 2.3 (March 2015): New features include:
Major improvements to the link and planar diagram component, including link simplification, random links, and better documentation.
Basic support for spun normal surfaces.
New extra features when used inside of Sage:
HIKMOT-style rigorous verification of hyperbolic structures, contributed by Matthias Goerner.
Many basic knot/link invariants, contributed by Robert Lipschitz and Jennet Dickinson.
Sage-specific functions are now more easily accessible as methods of Manifold and better documented.
Improved number field recognition, thanks to Matthias.
Better compatibility with OS X Yosemite and Windows 8.1.
Development changes:
Major source code reorganization/cleanup.
Source code repository moved to Bitbucket.
Python modules now hosted on PyPI, simplifying installation.
Version 2.2 (June 2014): Includes Ben Burton’s census of orientable cusped manifolds with 9 tetrahedra.
Version 2.1 (February 2014): New high-precision manifolds (ManifoldHP) which compute hyperbolic structures (and everything related) in quad-double (212 bit) precision.
Version 2.0 (September 2013): Many new features, including:
A manifold browser window for easily examining a particular manifold.
Many improvements to the link editor, including
A smoothed view mode with image export to EPS/PDF/SVG/TikZ.
Producing a fully editable link from combinatorial data like a DT code.
Splitting manifolds along surfaces of non-negative euler characteristic.
Generalizing the ptolemy obstruction class to allow computation of PGL(3,C)-representations and improving usability of the ptolemy module.
CensusKnots now includes knot exteriors with 8 tetrahedra.
Version 1.8 (May 2013) improves handling of DT codes and adds the HTLinkExteriors census, which provides identification for knots and links up to 14 crossings.
Version 1.7 (November 2012) incorporates the ptolemy module for studying representations of 3-manifold groups into pSL(N, C).
Version 1.6 (August 2012) includes a new way to make links and some support for arbitrary precision calculation.
Version 1.5 (February 2012) includes much improved manifold censuses.
Version 1.4 (December 2011) uses the current release of IPython, which has been completely rewritten.
Version 1.3.10 (July 2011) incorporates Twister.
Version 1.3 (February 2011) has a completely redesigned cusp horoball viewer and many bug fixes!
Version 1.2 (December 2010).
Version 1.1 (February 2010).
Version 1.0 (August 2009) Initial version.