Platonic tilings of Riemann surfaces
Isometric embedding

I hate gluing together cardboard. And yet my house is full of polyhedra, pop-up cards and packaging concepts. Actually, I don't really hate gluing, but I always have too little time too work out ideas, and being in the middle of a sticky mess is one way of being reminded of this. There must be something good about it all.

This page is about some of the things I learned along the way, and which are not already covered in too many other web sites. One central theme that seems to be connected to all of it in many unexpected ways is: "Platonic tilings of Riemann surfaces", the new title of this page. (Tilings are also often called tessellations, something to consider when searching the web)

A number of subjects all come together here:
-Complex functions
-Group Theory
-Riemann surfaces
-Phase Flow Plots
-Hyperbolic tilings
-Mobius transformations
-The Modular Group
-Circle packings
-Isometric embeddings

We will need to talk about all of them, and see the big picture at the end. We have lots of pretty pictures on the way.

This story should start with polyhedra. But there are already many beautiful web sites on this, you might start here:
Pavilion of Polyhedriality

If you want to learn about higher dimensional geometry, and its relation to the universe, this is the best place:
John Baez

Cool animations:
Greg Egan

Tony Smith

Other stuff by me:

Nevertheless,  I recently made some raytraced polyhedra pictures myself. Click here for more.

Next we need to look at symmetries of the complex plane.
We could try complex functions, and see if they generate symmetry.
For example let's try:

  f(z) = z2 + c
Iterations of this function produce beautiful patterns: Fractals! The first mapping that comes to mind appears to lead to an entirely different subject. But because fractals turn out ultimately related to tilings, check out the images below.

Julia set generating a tiling
Tiles generated by the map z->z2

 Complex logistic map and tiling  Fractal tiling (click to enlarge)
Tiles generated by the maps z->z2 -0.1 and z->z2 -0.1+ 0.75i
Fractal tiling of the complex plane(Extra picture for search engine related reasons)

The images show regions of the complex plane depicted as colored tiles. The complex function sends each of these tiles to a tile of the same color, in such a way that each point of the complex plane is covered exactly once.To make sure the tiles do not overlap or leave gaps, we need to choosing a very specific tile as a starting point, called a fundamental region. (The fundamental region is not unique) In the case of the above fractals, the algorithm for the tiling uses inverse mapping: Each pixel is inverse iterated until its iterate ends up in a fundamental region. Then it is given the color of that part of the fundamental region. For artistic reasons, we split the fundamental region up into 8 parts with 8 different colors. But 2 parts would have worked too: One on the inside of the Julia set, one on the outside.

But there is a subtlety here: The complex function used is not a 1-to1 map: The inverse of the complex square, the complex square root, is 2-valued. So the iterations of this maps do not form a group. Specifically, this means that the inverse map for each tile leads to 2 tiles instead of 1.
 In a separate page, I look at fractional  iteration of fractals Continuous iterations. It is shown that fractal-generating maps can be made into a group by choosing a suitable Riemann surface to plot them on. We will look first at tilings that correspond to symmetry groups, and we get back to fractals later

Mobius transformations
To qualify as a group, a complex function must be single valued and invertible. The only functions that are OK, turn out to be those known as Mobius transformations:

z-> (az+b)/(cz+d)

The first of their many surprising properties is that Mobius transformations are a representation of the group of 2X2 matrices

  ( a  b )
  ( c  d )

But a subgroup of this is SU(2), which is closely related to 3-dimensional rotations, as we know from quantum mechanics. And 3 dimensional rotations have as beautiful subgroups, which we know as the 5 Platonic solids: the tetrahedron, the cube, the octahedron the dodecahedron and the icosahedron.
Click here for a is a nice animation film on Mobius transformations.

So to get our first finite group of transformations of the complex plane, we take the Platonics, find their representations in terms of SU(2) matrices, and turn these into Mobius transformations.

This allows us to make pictures:
\Symmetry of the Tetrhedral Mobius Group  Symmetry of the cubic Mobius group
The tetrahedral tiling and the cubic/octahedral tiling

Below is a picture of how a tiling on the complex plane is turned into a tiling of the Riemann sphere, by a stereographic projection . A stereographic projection can be thought of as the effect of a light on the North pole shining through a semi transparent sphere onto a plane. If the plane is the complex plane, then the sphere is the Riemann sphere. This is one way of defining the Riemann sphere. The cool thing about the Riemann sphere is that infinity becomes a single point: the North pole. It is a compactification of the complex plane. On the Riemann sphere, the Platonic symmetry of elliptic tilings is more clearly visible.

Stereographic projection of cubic tesselation
Stereographic projection, the Riemann sphere and a cubic tiling.
Stereographic projection, the Riemann sphere and a cubic tiling.(Extra picture for search engine related reasons)
There is a nice movie on Youtube about Mobius transforms and stereographic projections.

If you consider a straight line as a circle of infinite radius, then the pictures can be thought of of being constructed entirely with circles. Mobius transformations turn circles into circles. The colored patches can also be viewed as polygons. If you look closely, you will notice that all angles at which the edges branch from the vertices are nicely 360/n. This is initially not so apparent because the edges are curved. Look at the polygons formed by the red lines. In the tetrahedral tiling, the red lines demark polygons with 3 sides (triangles), and 3 of them meet in each vertex, just like in an ordinary tetrahedron. Although they are different in shape, the angles are all the same. In fact the shape differences are caused by our choice of coordinates, not by any internal asymmetry.
The blue lines demark the dual of the red tiling. If the red tilings are p-gons and the blue lines are q-gons we can describe the tiling using the Schlaefli symbol (p,q). In this article, we will use a slight variation on the Schlaefli symbol, and write (p,q,2). The colored patches of a (p,q,2) tiling have angles (π/p, π/q, π/2).  So the above 2 examples are (3,3,2) and (4,3,2).
 The angles of A triangle in flat space always add up to 180 degrees, so if (1/p+1/q+1/2) = 1, we have a tiling of flat space. This is called a parabolic tiling. If  (1/p+1/q+1/2) < 1, the tiling is called elliptic, and if (1/p+1/q+1/2) > 1, the tiling is called hyperbolic.
Note: In elliptic tilings, we consider infinity as a single point, so we are in effect on the Riemann sphere. So all colored patches are triangles, also the ones that protrude out of the picture towards infinity.
One last property before the next pictures: All lines are geodesics in their respective curved spaces.

Symmetry of the Dodecahedral Mobius group Symmetry of the Hexagonal Mobius groupCheckerboard symmetry
The dodecahedral/icosahedral tiling (5,3,2), the honeycomb (6,3,2) and the checkerboard (4,4,2). 
Dodecaheral tiling of the complex plane (Extra picture for search engine related reasons)
The honeycomb is parabolic (flat).
Below are the elliptic tilings (2,3,2) and (2,2,2) and (2,1,2). These can also be viewed as Platonic solids, but we don't always recognize a 2-gon ('digon) as a polygon. 

(2,3) tiling (2,2) tiling of complex plane(2,2) tiling of complex plane
The (2,3,2), (2,2,2) and (2,1,2) tilings 

You can choose any adjacent pair of green/white patches as a fundamental region of the group: All points on the complex plane are a unique image of a point of the fundamental region. This is in fact how I make these pictures. I figure out half of a fundamental region, color it green, and then transform it into lots of copies, using 2 generators of the group, until I cover the whole plane. "Lots" of copies? The amount of copies is of course exactly equal to the order of the group. Each tile also corresponds to a tile on a Platonic solid, by stereographic projection as illustrated by earlier graphics.

Wallpaper groups

There are 17 "Wallpaper groups", or symmetries of the Euclidean plane. They are all subgroups of the (6,3,2) and (4,4,2) tilings we already described. One way to describe subgroups, is to use coloring on the "parent" tiling. We count 2 tiles as "the same" if both their shape and color are the same. By painting patterns on the parent tiling, we can get a tiling that is no longer invariant under the original symmetry group, but still is under a subgroup. The fundamental domain for these subgroups will be a tile that consists of a number of fundamental domains of the parent tiling.
Below, the 17 possibilities are listed. They are described in the nice book The Symmetries of Things. This book should definitely be on your shelf if you like this web page. The classification is done by orbifold notation.
Fundamental domains are outlined in black. Note that the fundamental domain is not unique, for each case we could have chosen another one, or indeed another pattern with the same symmetry class.
Wallpaper0 Wallpaper0 Wallpaper0 Wallpaper0 Wallpaper0 
     *422                   422                4*2               2222                  2*22
Wallpaper0 Wallpaper0 Wallpaper0 Wallpaper0 Wallpaper0  
       *2222               22*                 22X                 *X                 XX 
 Wallpaper0 Wallpaper0 Wallpaper0 
      **                   O                      *333          
Wallpaper0 Wallpaper0 Wallpaper0 Wallpaper0
        *632                     632                3*3                      333

Hyperbolic tilings
So far, we have just portrayed the Platonics in an unfamiliar way. But now we will do a trick that is easy with Mobius transformations, but difficult without. All pictures so far are made with 2 generators that are cyclic with order 2 and p. p=3 gives the tetrahedron, p=4 the cube, p=5 the dodecahedron, and p=6 the honeycomb. and lets not forget little p=2. The 2 generators have the property that their product has order 3, related to that they have Schlaefli symbol (p,3,2)
But for p>6, life gets a bit hard in ordinary space, because a vertex of 3 heptagons doesn't fit in 360 degrees. That is why there is no Platonic solid with heptagons. But with Mobius transformations, we can go further!
We take 2 cyclic generators of order 7, chosen so that their product is of order 3. We then do the same trick, and get the following pictures: (The second one is with p=8)

Symmetry of the (7,3) Mobius group  Symmetry of the (8,3) Mobius Group
(7,3,2) and (8,3,2) hyperbolic tilings. 

The hyperbolic tilings have infinitely many tiles. An intriguing property is that our 2 generators never map out of the disk that we see in the last 2 pictures. This disk is called the Poincaré disk. It has all kinds of properties, but we get it for free by just iterating 2 Mobius transformations. We could also tile outside of the disk, but we need a second fundamental region, one outside instead of inside the Poincaré disk.

So what have we got so far? We have the well known Platonic polyhedra as tilings, the planar tilings and the hyperbolic tilings with their infinitely many tiles. So is there more? Yes! Reading Coxeters book "Complex regular polytopes", I came to understand that Cool factevery group that is presented by 2 generators, corresponds to a tiling of a Riemann surface. To see this we use a very nice way of constructing a "Cayley graph" of an arbitrary group presented by 2 generators. This method is used by Coxeter for the honeycombed tiling, and he remarks that it can be used for other tilings too. A Cayley graph shows the structure of a group by presenting its elements as vertices, and using color arrowed edges to represent which elements are mapped onto each other by generators. Each generator has a separate color. One thing you can do with a Cayley graph, is read of how to get from one element to another using generators. Just draw a path, and read off the generators from each edge.  The resulting string of generators is called a "word". All words can be visualized using the Cayley graph. Suppose we have 2 cyclic generators  Ap = Bq =1. Let C = (AB)-1, so that ABC=1. C is also cyclic, Cr =1. We can now construct a planar Cayley graph, such as the one below, which is for the tetrahedral group, for which A3 = B3 = C2 = 1.
We call C a generator, although it is actually dependent on A and B.

planar Cayley gragh of the tetrahedral group planar Cayley gragh of the tetrahedral group
A planar Cayley graph of the tetrahedral group. Similar "2-dimensional" Cayley graphs can be constructed for all tilings. These Cayley graphs are themselves a (p,q,r) tiling. The picture on the right illustrates how you can reconstruct the tetrahedral tiling from the Cayley-graph: It is the dual of the (p,q,r) tiling.

The above Cayley graph has the following properties:
-Each vertex has 6 edges connected. An arrow of each color leaves each vertex once and arrives there once.
-The arrows labeled A enclose a p-gon, in this case p =3
-The arrows labeled B enclose a q-gon, in this case q =3
-The arrows labeled C enclose a r-gon, in this case r =2, a "digon" which degenerated to a bidirectional arrow. But the red bidirectional arrows could also have been polygons, in case r>2.
-The p, q and r gons are never adjacent, but always have a white triangle in between them. The white triangles encode the relation ABC=1, as can be read of from the Cayley graph.
-In general, we can construct a "planar" Cayley graph, which has the Archimedean tiling (p,3,q,3,r,3). 

In general, a planar Cayley graph constructed this way is Archimedean, but in the case of the tetrahedral group the tiling is Platonic, because the "snub tetrahedron": happens to coincide with the icosahedron, with its 12 vertices.

The Cayley graph itself is already an Archimedean tiling., but from it we can construct a Platonic tiling corresponding to the group in question. For every node of the Cayley graph there is precisely one group element. Around each element there is a p-gon, q-gon and an r-gon, separated by 3 triangles. Connect a point in the p-gon, q-gon and an r-gon, to form a triangle around the group element. This triangle is a fundamental region for a tiling that has the group in question as its symmetry group. The right hand picture shows the result.

So now we can go on to find more tilings, by traveling through group-land and looking for groups presented by 2 generators. Below is a less obvious tiling, of the group presented by the generators:
1=A5 =B4=(AB)3

Tiling from group presentation
Tiling with symmetry group presented by 1=A5 =B4=(AB)3
(This picture was created using the freeware program 'qt4Tess'.)

This tiling does not have a  Schlaefli symbol, because the triangles do not form p-gons or q-gons. This would have been the case if one of our generators had period 2. But if we write an "ordinary" Schlaefli symbol (p,q) as (p,q,2), we could write this one as (5,4,3). (Or, we couls use orbifold notation, and write 543, or *543/543)

The modular group
 Many groups are quotient groups of  the Modular group . This is an incredibly cool group that is important in number theory. Perhaps my favorite property of the modular group is that I can generate it with 2 Mobius transformations:

  A:  z-> z+1 (a translation)
  B: z-> -1/z (inversion in the unit circle)

This property enables us to make a picture of it using the same software that I already made for the other pictures:
Tiling by the Modualr Group
The modular group.

The matrices of the modular group are composed of 4 integers:
    (a b, c d)
The determinant is 1.

Cool fact The intersections of the modular tiling with the real axis are exactly all the rational numbers! I got that from the book 'Indra's Pearls'. This book is quite related to this web page, so if you like this page, you might want to read it.
Furthermore, there is a structure that relates the matrices of a triangle in the modular to the rational number is are located its vertex on the real axis. Below is a picture of this.
Farey Tree  
The relation of a triangle with vertices {a/b, c/d, (a+b)/(c+d)} to matrices that map  its sub-triangles to the fundamental domain.

Note that the middle vertex is a function of the 2 outer vertices. Using this relation, you can construct the Stern Brocot tree, a scheme that lists each rational number exactly once:
Stern Brocot Tree
(Wikipedia image): Part of the Stern Brocot Tree

Note that infinity in the form of 1/0 is also used as a fraction.
Cool fact The stern brocot tree gives a 1-to-1 correspondence between the rationals and binary strings. If left is '0' and right is '1', then you can represent any rational by the driving instruction to get to it in the Stern Brocot tree. For example, the number 3/4 would be '011', while 4 would be '111'.
There is a discussion about this on the web log 'n category cafe'.

There is an interesting relation to the golden ratio, the "most irratrional number". This would have "Farey adres '1010101010101.....' as shown below
Golden ratio in the Stern Brocot tree
The golden ratio has Farey adres '1010101010101.....'

You get fractions composed of consequetive Fibonacci numbers, F(n+1)/F(n), which appraoches the Golden ratio as n->inf.

Another nice way the rational numbers are hidden inside the modular tiling is through Ford circles.
All tilings on this page also have a Circle Packing: A circle can be placed in each polygon in such a way that the circle just touches the circles on all neighboring polygons. If you do this for the modular tiling, you get Ford circles. Again, each rational number has exactly one Ford circle. Cool factThe radii of "kissing" circles are related by a magical formula called the "kiss precise".

Ford circles
Ford circles. Each rational number has a circle associated with it, and the circles form an Appolonian gasket, with all kinds of special properties.

Now let us see how other tilings are quotients of the modular group.
A quotient tiling is a sub-tiling that generates the parent tiling (without overlap) if  transformed by all elements of a subgroup of the parent symmetry.
If the subgroup is a "normal subgroup"(ie invariant under conjugation) then the quotient tiling is Platonic.

There is one easy way to get smaller groups from the modular group: Just replace the integers in the transformation by integers modulo n. (These groups are quotient groups of the subgroups formed by matrices congruent to identity modulo n.) It turns out that these groups are very interesting.

The subgroup generated by just the inversion is isomorphic to the (2,1,2) tiling (red triangles, N=2 )
The modulo 2 case is isomorphic to the (2,3,2) tiling (orange triangles included, N=6 )
The modulo 3 case is isomorphic to the tetrahedral tiling (yellow triangles included, N=12)
The modulo 4 case is isomorphic to the cubic tiling (green triangles included, N=24)
The modulo 5 case is isomorphic to the icosahedral tiling (I stopped drawing here, N=60)
Quotient groups of the modular group
The first quotient groups formed from the modular group.

The subtilings of the modular tiling do not look immediately much like Platonic solids. To further illustrate the connection, I made the images below. These show "Hyperbolic" versions of Platonic solids; Each (p,3,2) triangle in an "ordinary" Platonic replaced by a hyperbolic (∞,3,2) triangle in the hyperbolic version. All triangles in the modular tessellation are
also (∞,3,2) triangles, so we have a conformal mapping from the modular tessellation to the Hyperbolic Platonics. The zero angle vertices meet in "cusps". To keep the image finite, I used an angle of π/36 instead of zero. The number of triangles is the same, and the groups that transforms the triangles into each other are isomorphic. To go from the hyperbolic Platonic to the flat or spherical version, we can use Ricci flow, the technique used to prove the Poincaré conjecture. Cool fact Ricci flow sounds like heavy duty stuff, but discrete Ricci flow is simply changing the sizes of the triangle in the triangulation so that the local curvature "flows" to a prescribed value.
Hyperbolic tetrahedronTetra balltetrahedron
Hyperbolic, spherical and planar tetrahedron.
The hyperbolic triangles are 
π/2, π/3, and π/ (approximated by π/36).
The spherical triangles are 
π/2, π/3, π/3.
The spherical flat are π/2, π/6, π/3.

Click here for VMRL file

Hyperbolic cubeCubic ballCube
Hyperbolic, spherical and planar Cube.
The hyperbolic triangles are 
π/2, π/3, and π/ (approximated by π/36).
The spherical triangles are 
π/2, π/3, π/4.
The Planar triangles are π/2, π/4, π/4.
Click here for VMRL file
Hyperbolic dodecahedronDodeca ball Dodecahedron
Click here for VMRL file
Hyperbolc dodecahedron with constant negative Gaussian curvature (Extra picture for search engine related reasons)
Hyperbolic, spherical and planar Dodecahedron.
The hyperbolic triangles are 
π/2, π/3, and π/ (approximated by π/36).
The spherical triangles are 
π/2, π/3, π/5.
The planar triangles are π/2, 2π/5, π/5.

PovRayed circle packing
The  circle packing for the hyperbolic dodecahedron, rendered with POVray, using glassy beads.

Cool fact My hyperbolic Platonics have constant negative Gaussian curvature everywhere except at the cusps, where the curvature is positive infinity. In this sense, thy are nicer than the ones at the mathworld site. For more on constant negative Gaussian curvature, click here.

A cardboard model of the spherical dodecahedron:
CardBoard dodecaheral sphere

The plaster models below are made by Walther von Dyck, a 19th century German mathematician, who also discovered the Dyck tesselation of Fermat's quartic.
1888 plaster model by prof Dyck
1888 plaster model by prof Dyck1888 plaster model by prof Dyck
They are from a photo gallery of Groningen university.

So far, up to modulo 5, the the quotients of the modular tilings are isomorphic to the well-known platonic polyhedra. The number of triangles is the same, and the groups that transforms the triangles into each other are isomorphic. 
But if we go modulo 6, something new happens: A (2,3,6) tiling, but not the infinite honeycomb. This time, the tiling is finite. From the Euler characteristic we know that we have  a torus. Thus, we get a recipe for making a Platonic tiling on a Riemann surface of finite genus.
Going further, the next quotient is
a (2,3,7) tiling. Many yeas earlier, Felix Klein was doing just this, and that is how he discovered "Klein's quartic": A genus 3 surface tiled by 24 heptagons.

Again, it is not so easy to visualize the isomorphism. To aid this, I made the animation below.
I generated a slice of Gamma(7), by using reflections in the sides of the triangles. Then I slowly turn the (∞, 3, 2) triangles into (7,3,2) triangles, but keep the topology the same because it remains generated by reflections in the triangle sides.

Warp from Modular to Klein
Animation of a quotient of the modular tiling transforming into a (7,3,2) tiling.
Warping the modular tiling
(Extra picture for search engine related reasons)
Seven of the slices in the animation form the fundamental polygon of Klein's quartic. If we keep track of the rational numbers at the vertices, we also get the correct gluing instructions for making the polygon into a smooth genus 3 object.
Klein Quartic
Fundamental polygon for Klein's quartic

H. A. Verrill has a nice online Java applet that computes fundamental domains of Γ (the modular group), Γ0 and Γ1(2 modified versions of the modular group). Using this applet, I made a table for p = 1 to p = 11. n is the order of the group, c is the number of cusps, and g is the genus.

Γ Γ0 Γ1
p n c g n c g n c g
1 1 1 0 1 1 0 1 1 0
2 6 3 0 3 2 0 3 2 0
3 12 4 0 4 2 0 4 2 0
4 24 6 0 6 3 0 6 3 0
5 60 12 0 6 2 0 12 4 0
6 72 12 1 12 4 0 12 4 0
7 168 24 3 8 2 0 24 6 0
8 192 24 5 12 4 0 24 6 0
9 324 36 10 12 4 0 36 6 0
10 360 36 13 18 4 0 36 8 0
11 660 60 26 12 2 1 60 10 1

Farey sequance inscribed on tesselation
Fractions  modulo 4  on the cubic tiling.

Here is a nice link explaining the relation of the Modular group to the proof of Fermats last theorem.

Tilings with only one generator
So far, all tilings discussed had 2 generators. But a tiling with only one generator is also possible. Below is an example
Tilng generated by one Mobius transformaiton
Spiralled tiling with a single generator.

The tiling has 2 fixed points.
If you start from any point, and iterate the Mobius transformation, you end up in one of the fixed points, the attractive fixed point. The other fixed point is the attrator of the inverse transformation, that we might call the repelling fixed point.
You can think of this tiling as starting from a fundamental domain in the form of a small square near the repelling fixed point, stepping around in ever widening spirals around the point, until it starts orbiting the attractive fixed point. The tiles then spiral towards the attractive fixed point.

Cool fact Interestingly, these one-generator tilings are related to exact solutions to the simplest non-linear differential equation:

     dz/dt = Az2 +Bz + C        (eq.1)

This is a generalisation of  the Logistic differential equation, or Malthus-Verhulst equation:

     dz/dt = r*z(1-z)

Whose exact solution is:

  z = 1/(expt(-r*t)+1)

It turns out that the solution to the generalised equation (1) is:
    z = (a*expt(r*t)+b)/(c*expt(r*t)+d)        (eq.2)


   A= r/K
   B= r (1-2*z -∞ /K)
   C= r z -∞ (1+z -∞ /K)

   a= (K+z -∞)*(z0-z -∞)
   b= -z -∞ (z0-z -∞-K)
   c= (z0-z -∞)
   d= -(z0-z -∞-K)

z -∞ is the value for t=-∞
z 0 is the value for t=0
For t=∞, the value becomes z=(K+z -∞)

Note that the solution (2) is a Mobius transformation!

Riemann surfaces
 Before we go on, we have to look our next piece of the puzzle: Riemann surfaces. Complex functions are a bit hard to visualize, because we have 2 components that are a function of 2 components, so we need 4 dimensions. We will use color as a visualization aid. Suppose we color-code complex numbers, using brightness as a measure of magnitude, and the red/green/blue ratio as a phase. The identity map would look something like the left picture below:
Riemann surface of identity map  Riemann surface of z^2
Color coded complex map of the z (identity) and z2.

The right hand picture above is of z2. Each color now occurs twice, the phase has halved its periodicity.

If we make a picture of z1/2, we have to choose which square root we want, since there are 2. Lets draw both:
Riemann blade of z^1/2 Riemann blade of z^1/2
2 blades of the map z1/2

The 2 blades of the function z1/2 each contain only half the colors, and each contain a discontinuity in the coloring.
The nice idea Riemann had, was to take the individual blades of multivalued functions, and glue them together into a single surface in such a way, that the discontinuity in the colors is also removed. In this case we would cut along the positive real axis, and glue back using the colors as a guide. This can only be done by a self-intersection in 3D space, but 3D space sucks anyway. Riemann surfaces turn out to have incredible properties.
Note that there are points in which different blades have the same value. These are called branch points. In the above example, there is a branch point at the origin.

A slightly more complex surface is that of Fermat's quartic. The complex function for this is (-1-z4)1/4. It has 4 blades and 4 branch points.

Blade of Riemann surface of Fermat's quartic
The first of 4 blades of the Riemann surface of Fermat's quartic.

Before moving on with Riemann surfaces, I want to mention another way of depicting them.
Phase flow plots for depicting complex functions
While thinking about tilings and Riemann surfaces, I developed a visualization technique for complex functions, that I will call a 'phase flow plot'. Below is a phase flow plot of the complex plane f(z) = z.

Phase flow plot of f(z)=z 
Phase flow plot of f(z)=z.

Here is how the phase flow plot works:
1.    If the imaginary part is <0, we use color green, otherwise light gray. This produces a tiling of the plane with green/grey tiles.
2.    If the phase is very close to a set of preset values, (0, π/6, π/3, π/2…), we use a color associated with that phase. This produces lines of constant phase.
3.    If the magnitude is close to a set of preset magnitudes, the color is made dark grey. This produces lines of constant magnitude.
4.    Special magnitude lines are reserved to indicate poles and zero’s. These produce a black circle around a zero, and a white circle around a pole. (A pole is a point of infinite magnitude.)

Here are the colors I use for the phase:
 Color map for phase flow plot
The color map for phase flow plots.

One reason for using this method is that it shows more clearly the relationship between complex functions and tilings. Another reason is that it highlights cool property of complex functions: They are determined by the poles and zeros, and lines of constant phase are analogous to field lines flowing from poles to zeros. That’s why I call these plots phase flow plots.

In the map f(z) = z, the pole is at infinity, so it cannot be seen. Below  is a Mobius transformation of the map f(z) = z, the map f(z) = (z-i)/(z+i). Now we see more clearly both the a pole and a zero, and a flow of phase lines between them.

 Phase flow plot of f(z)=(z-i)/(z+i)
The function f(z) = (z-i)/(z+i), (A Mobius transformation of f(z) =z ) showing lines of constant phase flowing from pole to zero. A zero is a ‘south pole’: Its logarithm is -infinity.

Analogy between phase flow plots and  electric and magnetic fields
If phase flow plots reminds you of magnetic fields, it is because the correspondence is exact. Electric fields, magnetic fields, potential flows, heat conduction flows, are all solutions to the Laplace equation. The real and imaginary parts of a complex function also satisfy the Laplace equation. Since
    Log(z) = Log(|z|) + i Phase(z)
, we know that the logarithm of the magnitude satisfies the Laplace equation. Using the logarithm of the magnitude instead of the magnitude itself has some interesting consequences. First, zeros have a logarithm of –infinity, so they become ‘Negative’ or ‘South’ poles, with the complex poles corresponding to ‘Positive’ or ‘North’ poles.
Second, the ‘charge’ of a pole is, as in Gauss theorem, equal to the number of field lines emanating from it. It does not change if the function is multiplied by a constant. (The constant just adds a value to the logarithm of the magnitude.) This now reveals a really Cool fact: The charges are discrete!  In nature, the fact that electric charges come in multiples of the elementary charge seems mysterious, but for complex functions, it is a necessary consequence from the fact that poles and zero’s have integer order!

Let’s plot some more examples. Here is a Mobius transformation of f(z) = z2:
 Phase flow plot of f(z)=((z-1)/(z+i))^2
The function f(z) = ((z-i)/(z+i))2

In the above figure,  the pole and zero now have order 2. The charges have doubled. Notice also the tiling has changed: There a now 4 bigons. (A bigon is a polygon with 2 sides).

Phase plot
 A function with order 3 poles at zero and infinity, and 3 order 2 zero’s. f(z)=(z3-1)2/z3

In the above plot, the lines coming from a pole are divided among 3 zero’s, while the lines going to a zero come from 2 different poles. This means that there are ‘bifurcation points’, where the lines have to choose. In these points, the field strength is zero, or alternatively, the derivative of f(z) is zero. Sometimes these are normalised to correspond to unity, so we could call these points ‘ones’. But we’ll call them stationary points. In the above plot, the triangle vertices coincide with poles, vertices and stationary points. Each pair of green/gray tiles contains each complex number exactly once.

While we are at it, here some more phase flow plots:
 Phase flow plot of f(z)=sin(z)
The complex sine function, which has a row of zeros at nπ, and poles at infinity.

 Phase flow plot of f(z)=sin(sin(sin(z)))
Phase flow plot of the function sin(sin(sin(z))), just because it is pretty.

 Phase flow plot of f(z) = sn(z,1/4)
Phase flow plot of  the Jacobi elliptic function f(z) = sn(z,1/4). This function is double periodic, it has poles and zeros distributed over a rectangular grid.

 Phase flow plot of f(z) = sn(z,1/2 + i/3).
Phase flow plot of  the Jabobi elliptic function f(z) = sn(z,1/2 + i/3).

Phase flow plot of Riemann Zeta function
Phase flow plot of the Riemann Zeta function. This famous function has a pole at z=1, equally spaced zero's at z= 0, -2, -4,..., and irregularly spaced zero's on the "critical line" real(z) = 1/2. The Riemann Hypothesis, which is often cited as the top open problem of mathematics, is that these are the only zero's.

Note: I found out that people have been using plots somewhat similar to phase flow plots called "phase plots". There is an online expository article on them here. The authors mention that phase plots have been 'rediscovered' several times. Still, phase flow plots are slightly different.

The most important property of a Riemann surface is its genus. The genus of a surface is its number of "holes". A torus for example has genus 1, a sphere has genus 0. In a way, the stuff on this page is about generalizing Platonic tilings to surfaces of higher genus.  There is a famous relation called Euler's formula that relates the Faces (F), Edges(E) and Vertices(V) of a tiling to the genus (g) of a surface:

    F - E + V = 2 - 2g

F - E + V is called the Euler characteristic of the surface. It allows you to find the genus of a surface given a tiling, and imposes restrictions on which tilings are possible. For example, we can prove that a football must have 12 pentagons.

The formula for the Euler characteristics not so hard to prove. Just start with a particular case, lets say a cube. For a cube, we have F=6, E=12, V=8, and g=0, so it satisfies Euler's formula. Now whatever you do to the surface, it will not change the outcome of the formula. For example, if you split up an edge into 2 edges, you increase E to E+1, but also V to V+1. If you interconnect 2 vertices, you increase E top E+1, but also F to F+1.

If we take N disjoint genus 0 surfaces, the Euler characteristic will be 2N.
Now, we will start gluing them together.
Lets assume that the gluing always involves 2 identical faces on 2 distinct surfaces. The gluing process destroys these 2 faces, and destroys a loop that goes round one the faces. The loop consists of n Vertices and n edges, so we have for each glue operation:

  Glue 2 faces : F-> F-2, (V-E) stays constant,
                        Euler characteristic -> Euler characteristic -2

So each time we glue, we will reduce the Euler characteristic by 2.
As we continue gluing together the disjoint surfaces, we reduce the Euler characteristic by 2 for each glue operation, until we are back at Euler characteristic 2, with all surfaces connected into a single genus 0 object.
So far, we have glued together disjoint surfaces. But we could also glue part of a surface to itself.  We will reduce the Euler characteristic by 2. But at the same time, we will have increased its genus!

 Another way to define the genus is the maximum numbers of closed loops you can cut through the surface without letting it fall apart. This definition works for discrete networks as well as continuous surfaces, and it relates to the inverse of "gluing", that I talked about.

Automorphic functions
Platonic tilings are about symmetry, and complex functions themselves have can have symmetry. What we need to understand is how symmetry of a Riemann surface is related to the actual equations of the defining the surface. Some of the the previous pictures of Riemann surfaces, such as the the one of z2, already show some symmetry. This function is symmetric under the group of Mobius transformations {z, -z}.
Functions that are symmetric under a group of Mobius transformations (G) are called automorphic functions. Specifically, for any z, an automorphic function (f) has:
        f(G(z)) = f(z)
Let's build an automorphic function, in this case the one for the (2,3,2) tiling. One way to do it is to put poles and zero's on the vertices of the tiling. In this case, we put poles of order 3 at the vertices at ±i, and zero's of order 2 at 0, ±√(3).

    f(z) = z2(z2-3)2/(z-i)3(z+i)3.

The resulting automorphic function is shown below.
Automorphic function Phase flow plot of (2,3,2) tiling
Automorphic function associated with the (2,3,2) tiling. On the right is the phase flow plot.

One nice thing is that any function of an automorphic function is also an automorphic function. We can use this to build a "hyper-automorphic" function, by not using f(z), but  f(f(z)),  f(f(f(z))) etc. This produces functions that is not only automorphic, but each tile is itself  is automorphically subdivided into smaller tiles. We get automorphic fractals, as shown below
3 iteratated automorphic function 20 iterated automorphic function
The automorphic function, iterated 3 times and 20 times respectively. In the right image, we seem to see Mandelbrot-like structures.

We can find explicit expressions for the transformations under which automorphic fractals are invariant. If G is the group of Mobius transformations for the original function (f), then fn is invariant under a transformations set (F), that is simply a conjugation of G by fn:
    F = f -n G fn

Note that the elements of F are generally a multi-valued functions. So F is not a group. But the multi-valuedness in fact generated all the extra sub-dividing tiles.

Actually, a regular Julia set, like the one for f:z->z2 -0.1+ 0.75i  discussed earlier, can be seen as an automorphic fractal, since the map is an automorphic function for the group of Mobius transformations {z, -z}. Below is an image of f8(z).

7 iterated Julia
8 times iterated Automorphic function z->z2 -0.1+ 0.75i 
The Julia set function has an infinite pole at infinity, balanced by infinitely many order 1 zero's that are located on the Julia set.

An automorphic function that is very important is that of the modular group: the j-invariant. It has 3-fold zero's on the order 3 vertices, and infinite order poles on the cusps at the real axis. At the order 2 vertices, the value is equal to one. Below is a picture, borrowed from wikipedia.
wikipedia J invariant
(Wikipedia image:) Automorphic function for the modular group: the j-invariant.

Phase flow plot of the j invariant
Phase flow plot of the j-invariant.

Hyperbolic models
Let's look at some models of hyperbolically tiled surfaces.
As I said, the Euler characteristic imposes restrictions of the possible tilings of a surface. If we consider tilings of Schlaefli symbol (p,3), we get the following possibilities:

Table of (p,3) tilings that have the correct Euler characteristic.
  Genus:   0      1      2     3      4
p=3        3      0                        <-
p=3        4      0                        <-Tetrahedron
p=4        6      0
p=5        12     0                        <-dodecahedron
p=6        ∞     0/0                       <-honeycombed
p=7               0      12     24    36
p=8               0       6     12    24
p=9               0       4      8    12
p=10              0       3      6     9
p=12              0       2      4     8
p=14                             3      
p=18              0       1      2     3

Table of (p,4) tilings that have the correct Euler characteristic.
  Genus:   0      1      2     3      4
p=2        4      0
p=3        8      0                        <-octahedron
p=4        ∞     0/0                       <-checkerboard
p=5               0       8     16    24  
p=6               0       4      8    12
p=7               0                    8
p=8               0       2      4     6
p=9               0       4      8    12
p=10              0                    4
p=12              0       1      2     3

The red entries have the additional property that the quotient surface of a p-cycle also has the Euler characteristic of a Riemann sphere, the green entries that of a torus.

It is fairly easy to tile a torus in a Platonic way. You can do it with a square number of squares, for example. Here is one with 4 hexagons. The hexagons have been folded, so they are not so easy to recognize.

Platonic hexagonal tiling of torus
This figure does look a bit boring, I admit.

A somewhat prettier figure is the tiling of "Fermats quartic", with 12 octagons. All octagons are the equivalent, and are also folded in an identical way. This figure has genus 3. It has tetrahedral symmetry. I now realize it is not Platonic. I still have to make the Platonic tiling with 12 octagons of genus 3, which is known to exist.
Platonic octagonal tiling of genus 3 surface

The dual of this shape is a shape consisting of an inner icosahedron and an outer icosahedron, connected by 4 triangular holes:
Dual Fermat quartic

A platonic tiling of a genus 2 object by 6 octagons. (folded over the holes):
Platonic tiling of genus 2 object by 6 octagons

The dual of this one is an inner and outer octagon, connected by 3 slits on 3 disjoint edges:
2 joined octahedra with Genus 2

A platonic tiling of a genus 2 surface with 8 pentagons:
Tesselation of genus 2 surface with 8 pentagons

In the newsgroup sci.physics.research, we were discussing a heptagonal tiling of a genus 3 object, that we call "Klein's Quartic".
A summary of the discussion is on John Baez's page, here.
It was this discussion which triggered a lot of my interest on this subject. Before trying to understand Riemann surfaces and Mobius transformations, I was trying to glue together this Klein's Quartic.

The first construction with heptagons is a tiling of the outer shell of a genus 3 object, using 12 identical regular creased heptagons.
All heptagons are creased in the same way.

Hetagon tiling of Klein quartic

You can use this figure to build higher genus surfaces, by interconnecting the holes of this figure with other holes of the same figure or with holes of other copies of the same figure.

If you take 2 copies of it, and interconnect the loose ends, you get 24 heptagons, with 3 heptagons meeting at each of its 56 vertices. So I thought "Aha, Klein's quartic!". But no. You can travel around the edges, going Left-right-left-right, (LRLR) etc. after a while, you end up in the same place. This is what I call "driving instruction symmetry". Klein's  quartic has the property

  (LR)4 = 1.

For all points. This figure does not. I had a lot of difficulty trying to to build the correct surface, until I read part of Felix Klein's original article . Klein suggest that his figure should have octahedral symmetry, and that the 6 vertices of the octahedron are of at infinity. At infinity, the heptagons join up with the heptagons diametrically opposite. Because the surface has infinite points, it is perhaps justified not to try and glue together the heptagons at opposite sides of the octahedron. This makes life a lot easier! The resulting surface is shown below.

Klein's Quartic tiled with heptagons

Here is how to deform the open octahedral surface into a closed tetrahedral one:

Dough quartic 1   Dough quartic 2   Dough quartic 3

Maybe I should quit maths and start a bakery.,..

The idea of not gluing together opposite sites opens up a new possibility: what if we glue it to a copy of  itself. Thus, we get an infinite lattice, known as an infinite polyhedron. A web page on these is here.
Infinite polyhedra have all vertices identical, just like "ordinary" polyhedra. Their surface has negative curvature (i.e. it is hyperbolic). A unit cell of them glued to itself is again a closed Riemann surface. Some infinite polyhedra have the property that all faces are planar. For example, (3,3,3,3,3,3,3) is an  infinite polyhedron with planar faces, that looks like icosahedra connected by octahedra. It is the dual of a (7,3) surface, but not Klein's quartic: It is the dual of the cardboard model of the tetrahedral (7,3) surface. The infinite polyhedron that is the dual of Klein's Quartic is a (3,3,3,3,3,3,3) structure formed by interconnecting each square face of snub cubes with square antiprisms.

Looking at our heptagon models, it can be noted that they can be formed by taking a polyhedron built from triangles, and replacing the triangles by 3 heptagons (These 3 heptagons have the same color in the pictures).  This idea can be extended: We can do it to an icosahedron, as shown below.
Hetagon tiling of Klein quartic Klein's Quartic tiled with heptagons60 heptagons in genus 6 surface
The icosahedral figure has 60 heptagons, and  by joining the holes we get a genus 6 surface.
But we can go even further, because the the surfaces formed are (7,3), so they too can be thought of as composed of triangles. For example, the icosahedral figure would lead to a figure with 420 heptagons, producing a genus 36 surface. Surfaces Platonically tiled by (7,3) patterns are called Hurwitz surfaces. They have the special property that they posses the maximum number of symmetries for a surface with a given genus, namely 84(g-1). This follows from the fact that (7,3,2) triangles are the smallest (k,l,m) hyperbolic triangles.

Cool factThe Monster group is also a Hurwitz surface.

An alternative way to embed tilings in 3 dimensional space is to allow intersections. I used to dislike intersections, until I saw the work of Rinus Roelofs.
Rinus Roelofs has made cool sculptures, that can be seen as Platonic tilings of Riemann surfaces. To change the drawback of intersections into an artistic feature, he moves the faces slightly apart and cuts holes in them. Below is an example (chosen to clearly illustrate the connection with tiled Riemann surfaces)

Embedding a la Roelofs
A sculpture by Rinus Roelofs that can be viewed as a (6,3) tiling.

You can look at this sculpture as an inner tetrahedron and an outer tetrahedron. But each edge joins a face from the inner with a face from the outer. It turns out that Cool factthe edge of each 'hole' forms a knot!
The Euler characteristic of an inner plus an outer polyhedron is 2*2=4. After you identify the vertices of the inner and outer polyhedra, the Euler characteristic becomes
    Euler = 2*layers - vertices* (layers-1)

In the table below, I computed the genus for various combinations (The number of  faces meeting at a vertex needs to be odd)
                2    3    4
tetrahedron     1    2    3
cube            3    6    9
dodecahedron    9   18   27
icosahedron     5   10   15

On his website Rinus Roelofs has pictures of may of these, and of some of them he made physical models.
A common way to talk of the genus of a  Riemann surface is the number of  'Holes". In these surfaces, I do not see where the holes are. But the 'offical' defintion of the genus is the 'maximum number of cuttings along closed simple curves without rendering the resultant manifold disconnected'. So there should be a way to cut the double tetrahedroin, which has genus 1,  along a closed loop without letting it fall apart. This seems indeed to be the case: You can do it by cutting the tetrahedron along a Petrie polygon.

The surfaces by Rinus Roelofs remind of Seifert surfaces: A surface bounded by a knot. there is probably a relation, but I haven't cleared my mind on this yet.

Tilings of surfaces of constant negative Gaussian curvature
The Platonic polyhedra are tilings of  the sphere: the only complete surface of constant positive curvature. The sum of the angles of the faces meeting at each vertex is less than 360 degrees by a number called the angular deficit:  If the angular deficit is zero, then the surface is not (intrinsically) curved at that point. Now let us compute the total angular deficit of each Platonic polyhedron:

Tetrahedron:     4  X (360-4X60) =  720
Octahedron:      6  X (360-4X60) =  720
Cube:            8  X (360-3X90) =  720
Icosahedron:     2  X (360-5X60) =  720
Dodecahedron:    20 X (360-3X108)=  720

No, its the Gauss-Bonnet theorem at work!
The Gauss-Bonnet theorem relates the total curvature of a surface, that is the curvature integrated over the surface, with its topology. It states that the total curvature of a surface is equal to 2π times its Euler characteristic.
Just check for Klein's quartic:
Klein:    56 X (360-3X180X5/7)=  -4X360

The power of this theorem is that it works no matter how we deform the surface, or add extra tiles: The sum of the angular deficits remains the same.
OK, so this means that hyperbolic tilings tile a surface of negative curvature. But it would be nice if this surface had constant negative curvature, just like the sphere has constant positive curvature. Searching for such a surface, we quickly run into a discouraging theorem due to Hilbert: There is no complete regular surface of constant negative curvature in 3 dimensions. However, while reading some fascinating stuff on Circle Packings, I could not help thinking there must be a surface with constant negative curvature, that can be generated using circle packing algorithms. Especially, the so called Schwarz P surface looked suspiciously like my cardboard octahedral Klein surface.
At this point, I should mention that the Schwarz surface does have constant mean curvature, but not constant Gaussian curvature. We can approximate the surface locally in suitable coordinates (x,y) as:

    z = a x2 + b y2.

(x and y are not necessarily orthogonal in this case)
Then the mean curvature is (a + b), while the Gaussian curvature is a*b.
The latter fact has the honor of being called the "Theorema Egregium" of Gauss.
The mean curvature is important, because a surface of zero mean curvature, called a minimal surface,  is a property of soap bubbles (if they are not pressurized like in a spherical bubble). Many pictures of minimal surfaces are on the web. Note that zero mean curvature is compatible with negative Gaussian curvature.
Gaussian curvature is also called intrinsic curvature, because it can be determined completely independently of the space in which the surface is embedded in. You only need to know the angular deficits at each point, while for the extrinsic curvatures, you need to know the coordinates of the point in 3D, or whatever space you are in.

So I set out to deform Schwarz surface using my own circle packing algorithm. In a separate page, I will talk about this algorithms. But here, I will go straight to the end results, the first picture is below:

Constant Gaussian curvature surface tiled by (6,4)
To view this interactively in 3D, using VRML, click here.
Surface of constant negative Gaussian curvature, tiled by hyperbolic hexagons (Extra picture for search engine related reasons)

The picture shows how a (6,4) hyperbolic tiling covers a surface of Cool factconstant Gaussian curvature! Furthermore, the surface can obviously be used as an elementary cell in the fashion of infinite polyhedra. In this case, (4,6) infinite polyhedron as well it's dual  (6,4) infinite polyhedron,  can be seen as a tiling of a surface formed from units as seen above.
The surface has 8 congruent hyperbolic hexagons, which have 90 degree angles at their corners.
The figure can also be seen as 12 hyperbolic squares
The hexagons are split up into 12 congruent (π/4, π/6, π/2) triangles.
The vertices of the small triangles are centers of the circles of the circle packing. At each of the vertices, the angular deficit, weighted by the area of the packing circle, is the same.
If you cut out any of the 96 hyperbolic triangles, you could glue it exactly on top of any other, because they are hyperbolic congruents.
The circle packing of each of the 96 hyperbolic triangles is the same: they have the same radii as solution.

A cardboard model:
Cardboard model of (6,4,2) embedding)

Because the sum of angles at each vertex is greater than 360 degrees, I had use a zig-zag pattern of triangles, such that each vertex is at a cut-line, as shown below.
Here is the surface constructed with a square tesselation. This is based a circle packing with orthoganlly intersecting circles.
CirclePacking with orthogonally intersecting circles

A lattice of these objects connected together:
Lattice of constant Gaussian curvature

The surface has the remarkable property Cool factthat the "holes" of the lattice are congruent to the lattice itself!
Surface divides 3D space into congruent parts
The self-complement property arises because the complement is also tiled by exactly the same hyperbolic triangles. The property of self-complementarity is also present in the closely related the Schwarz surface, and in the  (4,6) infinite polyhedron and the (6,4) infinite polyhedron. These 4 surfaces are part of a family that can be continuously deformed into one another, while maintaining self-complementarity, a bit like self complementary Escher Drawings.
wikipedia image
(Wikipedia image) A "bitruncated cubic honeycomb", or (6,4) infinite polyhedron, part of the self-complementary family.

Yet another interesting related surface, a double ruled surface, also self complementary:
Double ruled triply periodic surface Double ruled triply periodic surface
I saw this surface on Tadeusz Dorozinski's website. I decided to make a quick and dirty model from string and sticks.
Each rhombic patch in the model is a hyperbolic paraboloid, which is a curves surface that can be made from 2 sets of straight lines. I didn't do all of the second (green) set, because this would be quite a bit of work.

One way to see that the self complementarity works, is that both the primary surface and the complementary surface are generated by the same symmetry plus a triangle bounded by the axis and the mirrors. Any triangle bounded by the axis and the mirrors will yield a self complementary surface.  Below is a picture of the reflection planes and rotation axis.
Symmetries of the surface
The self-complementary family of surfaces all share the same symmetry group. This symmetry group can be generated by 2 reflection planes, and a 180 degree rotation. The reflection planes and the axis of rotation surround a fundamental domain of the symmetry group (red/ yellow tiles)

Here is a rendering of the corresponding circle packing, each circle represented by a sphere.
Circle packing of (6,4) hyperbolic tiling
To get the above in vrml, click here.
Circle packing of surface of constant negative curvature(Extra picture for search engine related reasons)

So what happened to Hilbert's theorem? Isn't this surface supposed to be impossible?!
Well, the centers of the hexagons are a bit tricky. They are what I call "ripple points". If we again fit an Euclidean plane to these points, we locally get (now in polar coordinates)

    z = a r2 cos (3*theta)

A wavy pattern of wavenumber 3 around the origin.
On any line through the origin, we have

  d2z/ds2 = 2a.

So in a sense, the coordinate z is a smooth function of (x,y). However, we cannot find a good approximation for the form:

    z = a x2 + b y2.

So we do not have a formula for the extrinsic curvature on these points. While of course the intrinsic curvature is perfectly well defined from the angular deficit. Because the ripple points have no extrinsic curvature, they are not "regular"in the sense of Hilbert's theorem. So Hilbert was right, but we can still make very beautiful surfaces of constant negative Gaussian curvature, if we allow "ripple points".

From a reaction from Dan Asimov, I learned to the Nash Kuiper embedding theorem. This theorem states that there exist C1 isometric embeddings of the hyperbolic plane as a complete surface in 3-space. (Hilbert's theorem is about C2 isometric embeddings). 'Isometric' means lengths are preserved, C2 means twice differentiable.
I related subject I found is the Monkey saddle. This is almost like a ripple point, except that all curvature goes to zero in the 'Monkey saddle point'.

The circle packing algorithm adapts the size of each circle, so that the angular deficit of the triangles formed by connecting the circle to its neighbours is equal to a prescribed value. The algorithm outputs radii, from which a set of edge lengths follows: an edge has a length equal to the sum of the radii of the vertices it connects. From the edge lengths, we need to reconstruct the surface, using another algorithm. This second algorithm uses "Forces" proportional to the edge length error to move the vertex coordinates in the right direction. This sometimes produces crumpled surfaces, such as below:

Crumpled version of (6,4) constant curvature    Even more crumpled  
These crumpled surfaces have the correct intrinsic curvature, but the extrinsic curvature is a mess. To avoid crumples, we add a force that tries to keep face angles minimal. this force needs to be relaxed to zero as iterations progress, as they should not disturb the solution to the circle packing.

Below is part of the constant Gaussian curvature version of the Schwarz D-surface:
Schwarz D surface
The Schwarz D-surface is, like the P-surface, a triply periodic minimal surface. As I learned from a discussion with Stephen Hyde, you can take a hyperbolic hexagon from the Schwarz P-surface, and isometrically deform it (tie bend the paper model), so that its 6 sides attach to 6 straight edges of a cube. I''ll be making more of this soon,

When I started making circle packings, my goal was to tile a surface of constant negative curvature with 24 heptagons. So here it is:
Raytraced image of Klein's quartic
To view this interactively in 3D, using VRML, click here.

Here is a rendering of the circle packing:
CirclePacking of Klein Quartic

If you cut out any of the 336 hyperbolic triangles, you could glue it exactly on top of any other, because they are hyperbolic congruents.
The circle packing of each of the 336 hyperbolic triangles is the same: they have the same radii as solution.
The same applies for the 24 heptagons, and these don't even have to be bent: They also identical in a extrinsic sense.

The relation between N-dimensional lattices and tilings

Tilings may seem like the simple version of their higher dimensional analogs, N-dimensional lattices. But there is a surprising way in which tilings actually describe structures of dimensions 3 and higher! We got a hint of this already, when we discussed that all finite simple groups are tessellations of Riemann surfaces: so if a higher dimensional lattice has a symmetry group, it must also be related to a tiling.
One way to see lattices in a surface tiling is through the observation that consecutive reflections in circles that do not intersect are translations. As an example, project the (6,4) tiling on the Riemann sphere, by shining an imaginary light at the center through the translucent surface, as shown below.
Projection on Riemann sphere
Projection of the Schwarz P-surface on  to the Riemann sphere.

Next, we project the pattern on the Riemann sphere by our usual stereographic projection onto the plane. We get something like the truncated octahedron: 8 hexagons, with 6 squares, but the squares are "holes". Make these holes into circles, and use the circles as reflectors. In 3D, these reflections are just those that generate the translations of the Schwarz_P lattice. In 2D, the reflections are again circle inversions. In the picture below, the translation generating circles are colored black.

Tiling corresponing to a 3 dimensional lattice
(6,4) tiling, with the black lines representing reflections that generate translations. The  triangle boundaries that are green (ie not blue or red) are circles, just like the red, blue and black curves, but they do not correspond to actual circle inversions in the complex plane. If they were, we would have obtained the usual Poincaré disk tiled with (6,4,2) triangles.

So the figure we made, shows in effect an entire infinite 3D lattice, in 2D! In fact, the tiling is a multiple cover of the 3D lattice. In the tiling, for example, UP-LEFT is leads to a different tile than LEFT-UP, while in the 3D lattice, these tiles coincide,
Another remark about the above figure is that it looks different from the usual (6,4) tiling of the Poincaré disk. If you generate a tiling by reflections in the sides of a (π/2, π/4, π/6) triangle, you always get the Poincaré disk. But in the above picture, I never use reflections in the green lines, only in the red, black and blue lines. In that sense, it is a "quadrilateral group": It is generated by reflections in the sides of quadrilaterals, each with a green boundary line as a diagonal of the quadrilateral.
I believe this tiling is isomorphic to the (2,4,6) triangle group. But it more clearly shows the relation with the 3D lattice.

Lattice of constant Gaussian curvature

Stephen Hyde has some nice on line articles on his website which exploit the connection between 2D tilings and 3D lattices to help understand the latter. Lattices like these are an active research topic in Chemistry. Another interesting fact I learned from Stephen Hyde's articles, is that there are surfaces in chemistry that actually try to minimize variations in Gaussian curvature (about some average value), rather than mean curvature.

The "Indra's pearls" patterns are also related to latices: They are generated by 2 pairs of circle inversions, so they depict 2D lattices.

I tried making an lattice isometrically tiles with (7,3).
I  tried to torque the model a bit so that it connects to build an infinite polyhedral "zeolite" structure. This does not appear to work without crumpling.

They don't quite fit yet
The Klein Quartic figures do not quite fit into a lattice.

Isometric embedding of the hyperbolic plane.
Playing with circle packings, I wondered if I could actually render an isometric embedding of the hyperbolic plane. The only renderings I know that are on line are these crocheted models.
Start with a the (5,4) tiling. If you try gluing together this tiling with pentagons, you quickly find that the model tends to more and more curl up in a seemingly uncontrolled fashion. To create some order, I came up with a folding pattern. Divide the pentagons (excluding the "center piece") into 2 types, that we color red and green. The red and the green pentagons are folded as shown in the photograph below, which are (for gluing reasons) based on an Archimedean version (5,4,4,4). Each green pentagon then has 3 "children" in the outward radial direction (R), 2 green and one red. The red pentagons have 5 children, 3 green and 2 red. This pattern can be repeated indefinitely, yielding a wavy pattern with ever-increasing tangential wavenumber with increasing R. A cardboard model is shown below.

Elements for embeddingCardboard model of hyperbolic embedding
Photographs of a folding pattern for an isometric embedding of the hyperbolic plane. Only the first concentric rings of pentagons are constructed.

Next, I let loose the circle packing algorithm on this folding pattern. The algorithm starts with a solution for a circle packing which has constant negative Gaussian curvature. This packing is just a set of radii and a connection topology. Next the algorithm tries to embed the packing, by adapting the coordinates of the vertices so that each edge length is the sum of the radii associated with the 2 vertices it connects. Below is the result.
Embedding of hyperbolic planeRaytrace of embedding 
Rendering of an isometric embedding of the hyperbolic plane, based on a self similar folding pattern of the (5,4) tiling. Only the first concentric rings of pentagons are constructed.
Extra ring of pentagonsIsometric embedding of the hyperbolic plane
Extra ring of pentagons (click to enlarge)
I do not know for sure that the picture is actually a C1 isometric embedding, but it looks cool anyway.

Below is a "snub" version of the Klein surface.(7,3,3,3) I thought for a while that it can build an infinite skew polyhedron. But unfortunately, the triangles turn out to be not exactly equilateral. Nevertheless, I don't feel like deleting the picture just yet:

Snub Klein Surface

When I was on holiday, I had some heptagons with me to construct Klein's quartic. Vincent Lokin joined me in my struggle. He cut up his motorcycle tire (which was leaking), and bravely started sowing the pieces together. At that time, we had no idea what Klein's quartic should look like, so we thought maybe if we just join everything together, the flexible rubber would mold things in the right way. Unfortunately, it is rather difficult. Below is our " Zen and the Art of Motorcycle Geometry". Vincent suggested the name "24-7". (He is a banker, so he likes the 24 hour 7 days a week economy.)

Motercycle Tyre Geometry

With hind sight, rubber behavior probably doesn't help for finding a hyperbolic surface. The thing is, elliptic surfaces try to minimize area while maximizing the enclosed volume. We all know how something becomes round when you inflate it. But hyperbolic surfaces have "too much" surface. Most 3D realizations on this page have zero volume; the paper is folded so that the back side touches the back side of another part of the surface. Hyperbolic surfaces try to maximize area.

But it can be be done: Eveline Séquin succeeded in sowing a Quartic Quilt!

Finally, an animation of  a Mobius transformation. Can you spot the 2 fixed points?
Anaimated Mobius transformation