This project is joint with Remi Coulon, Brian Day, Sabetta Matsumoto and Henry Segerman. To navigate in the geometries, use the arrow keys to move forward/backward, left/right (w.r.t screen) along geodesics, and /' for up/down. To rotate your view, use WASD, and QE to roll along the center of view.

The Constant Curvature Geometries


Euclidean Raymarch

The cubical tiling of Euclidean space provides a familiar starting point to exploring 3 dimensional geometries. This scene is ray marched, meaning rays travel along straight lines (geodesics) from the screen into the scene to determine what is rendered.

Hyperbolic Raymarch

Ideal cubes, meeting six to an edge, tile hyperbolic space. Like the Euclidean view above, these images are generated via raymarching along geodesics, providing an accurate view of the intrinsic geometry of hyperbolic space.

Spherical Raymarch

Instead of meeting six to an edge (hyperbolic) or four to an edge (euclidean), when cubes meet three to an edge, the configuration is forced to close up and forms the hypercube, a tiling of the 3-sphere.

Product Geometries

The product geometries $\mathbb{H}^2\times\mathbb{R}$ and $\mathbb{S}^2\times\mathbb{R}$.


A tiling of the hyperbolic plane by squares meeting six at a vertex, repeated periodically in the $\mathbb{R}$ direction.


The cubical tiling of the 2-sphere repeated periodically in the $\mathbb{R}$ direction, as well as just a single sphere in $\mathbb{S}^2\times\mathbb{R}$.

The remaining three.

Nil, Sol and SL2.



A single sphere in Nil, a collection of vertical pillars, and the tiling associated to the integer Heisenberg group.


The $xy$ plane in Sol, its parallel translates, and a tiling. (Unlike the other examples above these are all in teh same file with a pulldown menu to access)


Coming soon!