by Jeffrey Brock and David Dumas
Click on either image above for a larger version.
These images show the convex hull of the limit set of a Kleinian group, pictured in front of a page from the lecture notes of William Thurston's 1978 course The Geometry and Topology of Three-Manifolds
This Kleinian group is free on two generators, giving a hyperbolic structure on a genus-2 handlebody with two rank-1 cusps along curves on the boundary surface. The particular hyperbolic structure shown here corresponds to a critical point of Thurston's skinning map. (The existence of such a critical point was established by Jonah Gaster.)
These renderings were created for the frontispiece of the second edition of Outer Circles: An Introduction to Hyperbolic 3-Manifolds by Albert Marden (Cambridge University Press).
For another image in a similar spirit, see “Bug on notes of Thurston”.
Computation and rendering
The following procedure was used to create the images:
- Locate the skinning map critical point by searching for a tangency between a Bers slice and the algebraic variety of type-preserving representations of the four-punctured sphere which are restrictions of representations of the 3-manifold group.
- The implementation of this step was based cp1, a new python library for computations with complex projective structures.
- Earlier experiments of Kent and Dumas exploring the skinning map of this manifold used code from Bear in a similar way.
- Compute generators for the associated Kleinian group and a set of generating support planes for the convex hull boundary
- The bending lamination for the convex core of this hyperbolic structure is determined in Lemma 7.1 of Gaster's paper. This allows a generating set of support planes to be determined explicitly.
- Compute the orbit of the support planes under the group using Curt McMullen's program lim.
- Convert the circle orbits to a collection of spheres in R3 representing the support planes in the ball model of hyperbolic space.
- Create a POV-Ray scene file to show the convex hull by taking the difference of the unit ball and the balls bounded by spheres representing the support planes.
- Apply textures (refraction, reflection, colors, etc.) and integrate the background image into the scene file.
- Render rectangular tiles of the image, distributed across several computers.
- The final rendering required a total of 1425 CPU-hours.
- Combine the tiles using graphicsmagick command-line tools.
- Higher-resolution images (1650x2200):
- Source code—Coming soon.