Constructing Polyhedra from Repelling Points on a Sphere

by Simon Tatham, mathematician and programmer


Some time around 1993, I went for a university interview. In the waiting room, I met another guy who was waiting for an interview, and we got talking. He said that at school he had recently been doing a project on buckminsterfullerene, the strange polyhedral form of carbon in which sixty carbon atoms combine into the shape of a truncated icosahedron. In particular, his chemistry teacher had been speculating about why this curious shape should form, and had conjectured that if you took 60 points on the surface of a sphere, caused them to mutually repel (while still constrained to the sphere's surface) and let them move to an equilibrium state, they might naturally form into the vertices of the buckminsterfullerene shape.

This struck me as a fun idea to play with, so when I went home I cooked up some simulation software and gave it a try. Unfortunately, although I was perfectly competent to write the code for the repelling points, I didn't do so well at writing code to visualise the result helpfully. I was left with a vague feeling that I didn't get the buckminsterfullerene shape, but I couldn't have usefully described what I did get.

More recently I was asked by a friend to see if I could produce a solid with seven faces, for use as a stage prop representing a seven-sided die. It occurred to me that an interesting way to construct a reasonably symmetric seven-faced solid might be to do the same trick again: constrain seven mutually repelling points to the surface of a sphere and let them find equilibrium, but instead of using them as the vertices of a polyhedron, draw a tangent plane to the sphere at each point and see what polyhedron those planes enclosed.

It's now been ten years since I originally experimented in this area, and now I'm much better at maths, so this time I've managed to do a proper job, and create software which can sensibly draw the actual polyhedra obtained by these techniques. So here are some interesting results and some pretty pictures on the web for everybody else to enjoy.


My 1993 attempt at this problem used an extremely simple technique to display the results. I simply projected my sphere on to a circle on the screen, and displayed the points in two distinct forms according to whether they were on the front or the back side. So for 60 points, it would have looked something like this:

[303x304 greyscale PNG, 38KB]

From this diagram you can observe that the points are arranged in something like a triangular lattice, and deduce that therefore the solid depicted is probably not the buckminsterfullerene structure which is composed of pentagons and hexagons. But it's not easy, in general, to figure out what sort of polyhedron is represented by one of these diagrams; how about this one, with 13 points?

[302x302 greyscale PNG, 22KB]

I know I couldn't stare at that set of points and work out what sort of polyhedron it would end up looking like. So I wrote some software to do the job for me. For those who are interested, I'll now describe the techniques I used; for everyone else, if you skip on to the next section there will be more pretty pictures :-)


So, having written all this code, I then applied it to various numbers of points and produced some actual results.

Some obvious results you might expect to see would be the five Platonic solids. Some of these do in fact work the way you'd expect; applying the vertex construction to 4, 6 and 12 points does create a tetrahedron, an octahedron and an icosahedron:

[227x196 greyscale PNG, 2KB] [222x247 greyscale PNG, 2KB] [258x271 greyscale PNG, 3KB]

And, of course, applying the face construction instead generates their duals. The tetrahedron's dual is another tetrahedron (not very interesting), but the other two generate a cube and a dodecahedron:

[205x209 greyscale PNG, 2KB] [242x247 greyscale PNG, 2KB] [266x258 greyscale PNG, 2KB]

Where it gets interesting is that although doing the face construction on six points produces a cube, doing the vertex construction on eight doesn't. Instead we get a more interesting solid:

[240x231 greyscale PNG, 2KB]

What's happened here is that instead of the points arranging themselves at the corners of a cube, they have "discovered" that by twisting one end of the cube 45 degrees relative to the other one, they can end up slightly further apart. So instead of a cube, we end up with a square antiprism: a square at each end, four triangles connecting edges of the top square to corners of the bottom one, and four more triangles connecting edges of the bottom square to corners of the top one.

This phenomenon illustrates what seems to be a general principle of the vertex construction: faces bigger than a triangle appear not to be stable. A square face, for example, will buckle into two triangles wherever it can; pentagons and hexagons are unheard of. (The two square faces at the ends of the solid shown above are actually the only case, in all of the examples I tried, in which a non-triangular face appears at all.)

So this is why the vertex construction cheerfully produced a tetrahedron, an octahedron and an icosahedron: they're the three platonic solids which are made of nice stable triangles. The cube doesn't work because it's made of squares, and so we would expect the dodecahedron not to work either. And, indeed, when we apply the vertex construction to 20 points, we get this:

[274x279 greyscale PNG, 3KB]

Far from a nice clean dodecahedron with twelve large flat pentagonal faces, we instead see a complete mess: an irregular solid composed of 36 triangles. And in fact this continues to be the case for larger and larger numbers of points. In particular, applying the vertex construction to 60 points gives a solid which is nothing at all like the truncated icosahedron structure of buckminsterfullerene:

[276x277 greyscale PNG, 4KB]

With its structure composed of rigid triangles, in fact, it seems to me that this solid is actually rather more reminiscent of Buckminster Fuller's geodesic dome structures than the molecule named after him is!

But that's enough of vertices. These vast expanses of triangles get quite boring after a while; you get some much more attractive-looking solids from the face construction, using each of the source points as the centre of a polyhedron face.

One of the initial motivations for this work was to find a reasonably symmetric seven-sided polyhedron. So given all this, it was the work of a moment to construct a point set of size 7, apply the face construction, and produce ...

[254x270 greyscale PNG, 2KB]

... a total disappointment! There are apparently no interesting solids with seven faces; instead all we get is a terribly boring pentagonal prism.

Some slightly larger numbers give some more interesting results. Here are the solids with 9, 10 and 11 faces:

[263x253 greyscale PNG, 2KB] [258x275 greyscale PNG, 2KB] [223x240 greyscale PNG, 2KB]

The 9-face solid is quite pretty in particular, I think. It's most easily visualised by imagining two tetrahedra glued together by one face, then squashed down into a fairly flat dipyramid. Then this dipyramid has been truncated at each of the three sharpest corners to produce a solid with six pentagons and three rhombi.

The 9-face solid has a mathematically interesting property, as well. Its skeleton – that is, the edges and vertices – is isomorphic to the graph you get if you write down all the possible ways to fully parenthesise the multiplication of five variables, e.g. (a(bc))(de), and join any pair of those parenthesisations with an edge if they differ by only a single transformation of the form (αβ)γ ↔ α(βγ). In other words, it is one possible representation of the three-dimensional associahedron. (This paper, for example, shows a picture that's recognisably similar.) That's a surprise, especially because we just constructed this solid by paying attention to the geometric arrangement of its nine faces – so there's no reason at all why it should turn out that the edges and vertices are significant in a totally different context! I don't know of any deep mathematical reason why this coincidence should have occurred; personally my guess is just that there aren't all that many fairly symmetric solids with 9 faces, and hence there's a good chance of a randomly selected one happening to also be the associahedron.

Finally, one last curiosity. I have shown above that sixty points on a sphere do not naturally converge into the vertices of the buckminsterfullerene truncated icosahedron. However, if we apply the face construction to 32 points, we get this:

[278x279 greyscale PNG, 3KB]

This is the truncated icosahedron! Or something very close to it, anyway. The hexagons on this solid are not quite regular; this is because of the constraint that all the faces of a solid created in this way have to be tangent to the same inscribed sphere. This is not true of the regular truncated icosahedron, in which the perpendicular distance from a face to the centre is different for the pentagonal and hexagonal faces. So although this solid is totally unstable in terms of vertices and nothing even close to it is generated by the vertex construction, it does turn out to be a natural choice for the face construction.


Here you can download the source code for all the software I used to generate these pictures, and also a program which generates nets for constructing of all the above polyhedra out of cardboard.

My own code is written in basic core Python, so it should run equally happily on Linux or Unix, Windows, or any other operating system which can run Python. (I've only tested it on Linux.) I did all the linear algebra myself the old-fashioned way without using any Python extensions, so these programs should run happily on any Python installation at all.

In addition to Python, you might need some other software to make sense of the results:

Here is the archive itself, in Unix .tar.gz format: polyhedra.tar.gz

For details of how to use the various programs in the archive, see the file called README.

This same suite of programs is also used for my polyhedral pictures collection.

(comments to
(thanks to chiark for hosting this page)
(last modified on Sat May 3 07:42:46 2014)