I was curious how one would go about rendering a triangle group using Möbius transforms. It took a while! I wanted to jot down the underlying theory so I wouldn’t forget it later. Perhaps these notes will be of interest to others as well. Here goes:
Given a triangle with angles π/l, π/m, π/n, you can tile a plane if 1/l + 1/m + 1/n = 1. For instance if l,m,n = 2, 4, and 4 respectively, then the sum of the angles of the triangle is π/2 + π/4 + π/4 = π, and you can tile a plane with isosceles right triangles which would look something like this :
That’s what a tiling of a Euclidean plane looks like. What does a tiling of a sphere look like?
The sum of the angles of a spherical triangle is always greater than π. There are only a few values for l,m,n that form a pattern covering the sphere just once without any overlaps or gaps. The possible values for (l,m,n) are:
(p p 1), (p 2 2), (3 3 2), (4 3 2), (5 3 2).
The sides of these triangles form great circles or geodesics.
Let’s look in detail at the (3 3 2) tiling. This fundamental region is a triangle with angles: π/3, π/3, π/2. This is another isosceles right triangle. The total sum of the angles is 7π/6. The area of a single triangle (for sphere radius = 1) is π/6. Since the total area of the unit sphere is 4π, it will take 24 of our triangles to the tile the sphere which looks like this:
There are 6 points where 4 vertices (each of angle π/2) meet, and 8 points where 6 vertices (each of angle π/3) meet. The symmetries consist of rotations and reflections.
Rotations: there are 3 axes with order 2 rotation and 4 axes with order 3 rotation (antipodal points share an axis). And we count the identity (no rotation) as one of the rotations. So altogether:
- 1 identity rotation (no rotation)
- 4×2 rotations, (not 4×3 since we don’t want to double count the identity),
- 3×1 rotations, (not 3×2 since we don’t want to double count the identity),
1 + 4×2 + 3×1 = 12 rotational symmetries altogether.
Reflections: The illustration immediately below shows 3 possible reflection planes for our tiling. But this is not all of the possible planes of reflection of course. Each plane in the illustration corresponds to one of the great circles (aka geodesics) traced out by the sides of the triangles: each such great circle is a plane of rotation. There are 6 of these great circles in this tiling. To these 6 reflections are added 6 so-called roto-reflections, in which, using the same 6 planes, a rotation by π is followed by a reflection.
The group of 12 rotations and 12 reflections corresponds to the group S4, which is of order 4! = 24.
So what about tetrahedrons? At some point this article has to mention tetrahedrons, given the title.
The group of all symmetries is isomorphic to the group S4, the symmetric group of permutations of four objects, since there is exactly one such symmetry for each permutation of the vertices of the tetrahedron.”
And indeed the following diagram also from wikipedia  shows that the rotations and reflections of a tetrahedron correspond exactly to those of the (3,3,2) triangle group that we have been working with.
This tetrahedral group “arises if we inscribe a regular tetrahedron in a sphere and mark its vertices together with the projections of the centers of the faces and the midpoints of the edges on the the sphere, the center of projection being the center of the sphere.” That article goes on to say that the defining relations of the group are:
where L, M, N are the reflections in the side of the (3,3,2) triangle.
So to summarize, there are 24 symmetries of the (3,3,2) triangle group and these consist of 12 rotations and 12 reflections.
Now, rotations are orientation-preserving transformations, whereas reflections are orientation-reversing motions. Triangle groups are not examples of Keinian groups. Kleinian groups are groups of möbius transformations, which are orientation-preserving.
Triangle groups were studied first in the 19th century and the study of Kleinian groups and eventually hyperbolic geometry grew out of those foundations. So lets pursue this analysis into the world of Kleinian groups.
“Every group of motions, which is generated by reflections has a subgroup of index two. This subgroup consists of directly conformal motions, that is of, möbius transformations.“
If we throw out the reflections, we are left with a set of 12 rotations. This subgroup is isomorphic with A4, the alternating group of permutations of four symbols. Wikipedia says: “The set of orientation-preserving symmetries forms a group referred to as the alternating subgroup A4 of S4″.
Generators for A4 satisfy these relations:
u³ = v³ = (uv)² = I
We can generate A4 with two three-cycles :
U = (123), and V=(124).
It is interesting to work out all the permutations of these generators and see that there are indeed only 12 of them:
So the set of generators we can use for A4 are: I, U, V, UU, UV, VU, VV, UUV, VVU, UVV, VUU, UVVU.
Nomenclature seems inconsistent across writers, but lets call the tetrahedral group that is isomorphic with S4, T*(3,3,2). And the tetrahedral group that is isomorphic with A4, we’ll call T(3,3,2). As above, the defining relations of T(3,3,2) are
u³ = v³ = (uv)² = 1,
where u = LM and v = MN and L, M, N are the reflections in the side of the (2,3,3) triangle .
From , we get some sample values for U and V:
Finding an appropriate fundamental domain was not easy, but a triangle with vertices at these corners works:
[0, -x + xi, x+xi]
where x= -0.366025393.
In spherical coordinates (phi, theta) these corners correspond to:
[(0,0), (-PI/4,len), (+PI/4,len)]
where len = acos((cos(PI/3.)+cos(PI/3.)*cos(PI/2.))/(sin(PI/3.)*sin(PI/2.))) = 0.955316618 rad.
Given this fundamental domain and the list of generators above, we can finally tile the Riemann Sphere with (2,3,3) tirangles using Möbius transformations! The fact that we are using only the orientation preserving symmetries means we get a triangle tiling that covers half of the sphere and leaves empty space elsewhere:
So to summarize, the triangle tiling was formed by repeatedly applying the 2 Möbius transformations to the given fundamental domain in the 12 combinations indicated by A4 symmetry. Implementation note: we are rotating this sphere not by rotating the camera or the mesh, but again by applying Möbius transformations to the texture as discussed in this article, which is why the equirectangular projection to the right in the picture above is morphing in that weird way.
In the first chapter of the book Finite Möbius Groups, Minimal Immersions of Spheres, and Moduli, Gabor Toth works out a set of Möbius transforms corresponding to all 3 polyhedral symmetry groups. These are different from the ones I used above. Here I apply his tetrahedral rotations to a so-called 360 photo (taken on a Ricoh Theta):
And just for kicks, here is the same process applied to another photo using his octahedral symmetries:
Octahedral symmetries are double those of the tetrahedron which makes intuitive sense when you consider that you can fit 2 tetrahedrons in a cube, e.g. :
 Coxeter, H. S. M. (1974) Regular Complex Polytopes, Cambridge Unitvesity Press, London. Page 19.
 Noneuclidean Tesselations and Their Groups. Academic Press, Oct 18, 1974. Page 73 on.
 By I, Cronholm144, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=2295116
 Geometry of Group Representations: Proceedings of the AMS-IMS-SIAM Joint Summer Research Conference Held July 5-11, 1987 with Support from the National Science Foundation. William Mark Goldman, Andy R. Magid. American Mathematical Soc., 1988 – Mathematics. Page 4.
 By Steelpillow (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons