SnapPea is free software designed to help mathematicians, in particular low-dimensional topologists, study hyperbolic 3-manifolds. The primary developer is Jeffrey Weeks, who created the first version as part of his doctoral thesis, supervised by William Thurston. It is not to be confused with the unrelated android malware with the same name. The latest version is 3.0d3. Marc Culler, Nathan Dunfield and collaborators have extended the SnapPea kernel and written Python extension modules which allow the kernel to be used in a Python program or in the interpreter. They also provide a graphical user interface written in Python which runs under most operating systems (see external links below). The following people are credited in SnapPea 2.5.3's list of acknowledgments: Colin Adams, Bill Arveson, Pat Callahan, Joe Christy, Dave Gabai, Charlie Gunn, Martin Hildebrand, Craig Hodgson, Diane Hoffoss, A. C. Manoharan, Al Marden, Dick McGehee, Rob Meyerhoff, Lee Mosher, Walter Neumann, Carlo Petronio, Mark Phillips, Alan Reid, and Makoto Sakuma. The C source code is extensively commented by Jeffrey Weeks and contains useful descriptions of the mathematics involved with references. The SnapPeaKernel is released under GNU GPL 2+ as is SnapPy. Algorithms and functions At the core of SnapPea are two main algorithms. The first attempts to find a minimal ideal triangulation of a given link complement. The second computes the canonical decomposition of a cusped hyperbolic 3-manifold. Almost all the other functions of SnapPea rely in some way on one of these decompositions. Minimal ideal triangulation SnapPea inputs data in a variety of formats. Given a link diagram, SnapPea can ideally triangulate the link complement. It then performs a sequence of simplifications to find a locally minimal ideal triangulation. Once a suitable ideal triangulation is found, SnapPea can try to find a hyperbolic structure. In his Princeton lecture notes, Thurston noted a method for describing the geometric shape of each hyperbolic tetrahedron by a complex number and a set of nonlinear equations of complex variables whose solution would give a complete hyperbolic metric on the 3-manifold. These equations consist of edge equations and cusp (completeness) equations. SnapPea uses an iterative method utilizing Newton's method to search for solutions. If no solution exists, then this is reported to the user. The local minimality of the triangulation is meant to increase the likelihood that such a solution exists, since heuristically one might expect such a triangulation to be "straightened" without causing degenerations or