Hyperbolic Plane Modelling applet

If you take a collection of equilateral triangles and stick them together with 3, 4 or 5 at a vertex then you will get the tetrahedron, octahedron and icosahedron respectively. If you have 6 at a vertex then you will get a flat plane. But what if you have 7 meeting at each vertex. Well at first you might think that this is impossible as you need to fit 420° into 360°. But in fact it will work, you will just find that the surface buckles. That is what this applet does.

Such an object, where you are trying to fit in more than is possible on a flat surface is a model of what is known as the hyperbolic plane. This was one of the first non-Euclidean geometries to be discovered - that is systems obeying Euclid's first 4 axioms but not the 5th. In fact the surface of a sphere is generally counted as a non-Euclidean geometry, (although it wasn't seen as such at first because it doesn't have infinitely long lines). The surface of a sphere has a constant positive curvature and clearly has an embedding in 3 dimensional space, but what about the hyperbolic plane which has a constant negative curvature? This applet shows that it's hard to fit it smoothly into 3 dimensional space, but in fact there are smooth embeddings of finite sections of the hyperbolic plane into 3D space.

You do not appear to have Java enabled on this browser. (Note that Java is no longer supplied by default on Windows systems). The latest Java environment can be downloaded and installed from the Java website

How the applet works

This applet starts by setting up a system of triangles with 7 meeting at each vertex (in a set of concentric circles). It then uses an algorithm to minimize the deviation of the length of the sides from 1, thus making them into equilateral triangles. At the same time it attempts to make the model as smooth as possible. The algorithm works by minimizing a function of 3N variables, where N is the number of vertices. It starts at a point in 3N dimensional space and then chooses a line in that space and uses a 1D minimization algorithm to minimize along that line. It then chooses another line and so on. The line choice uses derivatives of the function, and there is a choice whether or not to use derivatives in the 1D minimization - although it should in theory be more efficient, it doesn't actually seem to make much difference.


You can click and drag with the mouse to rotate the model on the screen. The Zoom slider allows you to zoom in and out. This applet is computationally intensive, and so you might want to give your computer a rest with the Pause checkbox. The speed of running can be varied with the Speed slider. The Shake button changes the position of each vertex by a random amount, to see if a better configuration can be found. The above controls can be used while the applet is running.

The Size selector chooses how many concentric circles there are initially. The Smoothing slider changes the relative importance of smoothing in the algorithm. The 'Derivitive in 1D minimization' button chooses whether to use the derivative information in the minimization along a line. Pressing the Restart button restarts the applet with the chosen parameters.