ArticleslgStudy

computer science

SnapPea

SnapPea is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand SnapPea rather than just read about it. In short: 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.

SnapPea — main illustration
SnapPea — illustration

Key takeaways

  • SnapPea belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect SnapPea to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of SnapPea from memory before moving on to harder problems.

Reference excerpt

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 overlapping of tetrahedra. From this description of the hyperbolic structure on a link complement, SnapPea can then perform hyperbolic Dehn filling on the cusps to obtain more hyperbolic 3-manifolds. SnapPea does this by taking any given slopes which determine certain Dehn filling equations (also explained in Thurston's notes), and then adjusting the shapes of the ideal tetrahedra to give solutions to these equations and the edge equations. For almost all slopes, this gives an incomplete hyperbolic structure on the link complement, whose completion gives a hyperbolic structure on the Dehn-filled manifold. Its volume is the sum of the volumes of the adjusted tetrahedra.

Canonical decomposition SnapPea is usually able to compute the canonical decomposition of a cusped hyperbolic 3-manifold from a given ideal triangulation. If not, then it randomly retriangulates and tries again. This has never been known to fail. The canonical decomposition allows SnapPea to tell two cusped hyperbolic 3-manifolds apart by turning the problem of recognition into a combinatorial question, i.e. checking if the two manifolds have combinatorially equivalent canonical decompositions. SnapPea is also able to check if two closed hyperbolic 3-manifolds are isometric by drilling out short geodesics to create cusped hyperbolic 3-manifolds and then using the canonical decomposition as before. The recognition algorithm allow SnapPea to tell two hyperbolic knots or links apart. Weeks, et al., were also able to compile different censuses of hyperbolic 3-manifolds by using the algorithm to cull lists of duplicates. Additionally, from the canonical decomposition, SnapPea is able to:

Compute the Ford domain Compute the symmetry group

Censuses SnapPea has several databases of hyperbolic 3-manifolds available for systematic study.

Cusped census Closed census

See also Regina incorporates aspects of SnapPea. Computational topology Thurston's 24 questions

References

External links SnapPea Jeff Weeks' site SnapPy Culler and Dunfield's extension Orb Damian Heard's extension, allows : hyperbolic manifolds with totally geodesic boundary orbifolds where the orbifold locus contains trivalent vertices

Illustrations

SnapPea: cusp view of the Borromean rings complement.  A fundamental parallelogram is drawn.
cusp view of the Borromean rings complement. A fundamental parallelogram is drawn.

Worked examples

Example 1 — a first encounter with SnapPea

Start with the simplest possible case. Write down what SnapPea claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to SnapPea before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about SnapPea ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of SnapPea

In research
SnapPea appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses SnapPea in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
SnapPea is common in secondary-school and first-year university syllabi. It links to neighbouring topics 3-manifolds, Computational topology, Free mathematics software, so understanding it makes those chapters shorter.
In everyday life
Look for SnapPea outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study SnapPea in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what SnapPea means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain SnapPea out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is SnapPea in simple terms?

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.

Why does SnapPea matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study SnapPea?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on SnapPea.

Tags

  • 3-manifolds
  • Computational topology
  • Free mathematics software
  • Free software programmed in C
  • Numerical software
  • Software using the GNU General Public License

Keep exploring