This project is joint work by Remi Coulon, Sabetta Matsumoto, Henry Segerman, and Steve Trettel to render accurate images of the eight Thurston geometries and their quotients. We are working hard to make a version of this software accessible to anyone who wants to explore, and encourage you to check out the GitHub repository and our papers on the topic (both technical and expository) for much more information. This website hosts various demonstrations we have created along the way, as well as tutorials and documentation for the code. Enjoy!

Exploring the Simulations

Below there are many grids of images coming from our simulations - each image is actually a link to the code which produced it, which runs live in your browser. To access the simulation, simply click the picture. Many utilize keyboard the following keyboard controls. For orientation: the keys Q,E to rotate the screen about its center and A,D and W,S to rotate your field of view. For movement: the arrow keys move your position into/out of the screen as well as left/right, and the keys '/ to move up and down. If the simulation is running slowly on your screen, make your browser window smaller. These images are being produced by simulating light rays in curved spaces for every pixel, so a smaller screen = less pixels = faster performance.

A First View of the Geometries

A similar scene (several balls of different colors) in eight compact manifolds, each equipped with one of the eight different Thurston geometries.

Rendering Curved Spaces

Seeing Along Geodesics

The images we compute depict an 'inside view' of the manifold, by tracing light rays along geodesics. To help appreciate and interperet these images, here are a couple of visualizations introducing this idea.

Seeing In Non-Simply Connected Manifolds

Another factor complicating the inside view of a manifold is its topology: light rays traveling along homotopically distinct paths between an observer and object can cause t hat object to be seen in multiple directions.

Light Intensity in Curved Spaces

The issue of lighting scenes correctly is particularly subtle in curved spaae. Not only can light arrive along many geodesics connecting an object to the light source, but the intensity of light recieved depends on the nature of the exponential map near the given trajectory (more precisely, on the collection of Jacobi fields along that geodesic). Below we illustrate this by showing the correct light intensity in Nil geometry across a couple of different scenes, each lit by four light sources of different colors.

Geometrizing a Space

Finally, while the discussion above all assumes the manifold of interest already comes equipped with a homogeneous metric, the following couple simulations introduce the idea of putting such a metric on a space.

Diving into the Code

We are working to make this project user friendly by providing a means of building a scene similar to ThreeJS. We have built a number of basic primitive objects (spheres, planes, cylinders, etc) and compact manifolds for each geometry, and to build your own scene using these amounts to writing a scene description such as below, which renders the following example.


Below are links to the documentation for the code. This includes tutorials for getting a scene up and running, or going further and adding your own objects / geometries / groups, as well as general documentation for the javascript and glsl portions of the project.


We will find a better way to do this so the examples are visible on the main screen. But for now - all the examples written in the new code are listed in the following link.

Exploring the Isotropic Geometries

Any fun examples in Euclidean geometry will go here eventually, but you already know what $\mathbb{E}^3$ is like, and the 3-torus is already above, so for now lets move on to less familiar spaces!

Spherical Geometry

The three dimensional 'surface' of a four dimensional ball is an isotropic geometry of constant positive curvature. Geodesics initially diverge sublinearly, before reconverging at the antipode to their source. The area of geodesic spheres grows with the square of the cosine of its radius.

Hyperbolic Geometry

Hyperbolic space is isotropic, with constant curvature negative 1. Geodesics diverge exponentially, and the surface area of geodesic spheres is exponential in their radius. There is an extremely rich collection of hyperbolic 3-manifolds, which remian an active topic in research.

Exploring The Product Geometries

$\mathbb{S}^2\times\mathbb{E}$ Geometry

The product of a sphere and a line is not isotropic, and contains totally geodesic spheres and euclidean cylinders. The rate of geodesic divergence depends on their initial starting direction. Geodesic spheres grow sub-quadratically in area (and are immersed for large radii).

$\mathbb{H}^2\times\mathbb{E}$ Geometry

A product of the hyperbolic plane and a line, this geometry is not isotropic, and contains both totally geodesic hyperbolic and euclidean planes. The rate of geodesic divergence depends on their initial starting direction, and spheres grow (coarsely) exponentially with radius.

Exploring Nil, SL2R and Sol

Nil Geometry

Nil is a homogeneous geometry built from the 3-dimensional Heisenberg group. It is anisotropic, with a single axis of rotational symmetry. Generic geodesics in Nil spiral around this symmetry axis.

SL2R Geometry

This geometry is built from the unit tangent bundle to the hyperbolic plane. Due to the negative curvature of $\mathbb{H}^2$ traversing a loop in this plane causes additional vertical motion- corresponding to holonomy around the loop.

Sol Geometry

The homogeneous geometry Sol is built from a three dimensional (solvable) Lie group. It is the least symmetric three dimensional geometry, with no continuous symmetries fixing a point. Sol contains two hyperbolic planes through each point. Away from these, geodesics come in two families of spirals about orthogonal axes.