There are exactly five Platonic solids, and one inequality in whole numbers forbids a sixth
Not four, not six, not infinitely many. Geometry and topology reach one inequality by separate routes, and five pairs of whole numbers satisfy it.
In two dimensions you can go on forever. A regular triangle, a square, a regular pentagon, a hexagon, a heptagon. Every whole number of sides gives you a shape, and there is no largest one.
In three dimensions there are five.

That asymmetry is the thing I find strange and have found strange for as long as I have known about it. Adding a dimension should give you more room, not less. And the answer is not a hard theorem. It is an inequality a ten year old can check.
Two numbers describe any of them
A solid built from identical regular faces, with every corner identical, is pinned down by exactly two whole numbers. How many sides each face has, and how many faces meet at each corner. Call them p and q. Both have to be at least 3, because you cannot build a face from two lines or a corner from two faces.
That is all the freedom there is. Pick a p and a q, and either a shape exists or it does not.
Why it fails, from the corner
Stand at one corner and look at the faces meeting there. Each face contributes an angle. Lay them flat on a table and they either leave a wedge of space, meet exactly, or overlap.
You need the wedge. If the angles around the corner add up to exactly a full turn, the faces lie flat and you have a tiling of the floor rather than a corner. If they add up to more, they overlap and cannot be folded into anything.
So the angles have to come to less than a full turn. A regular shape with p sides has interior angles of a known size, q of them meet, and turning “less than a full turn” into arithmetic gives you this:
1/p + 1/q > 1/2
That is the whole constraint. A solid exists when the two reciprocals beat one half.
Then the same inequality from somewhere else entirely
Count corners, edges and faces on any solid and subtract the edges from the sum of the other two. You always get 2. That is Euler’s formula, and it has nothing to do with angles: it does not care about lengths, or how fat the shape is, or whether the faces are flat.
Run it through. Every face has p edges and every edge is shared by two faces. Every corner has q edges and every edge has two ends. Substitute both into Euler’s formula and the whole thing collapses to a statement that some bracket has to be positive.
The bracket is 1/p + 1/q > 1/2. The same inequality, reached from counting rather than from folding.
Those two routes share nothing. One is about the size of an angle and the other refuses to measure anything. When two arguments that have no machinery in common land on the same line, that line is usually the real reason, and here it is.
Counting the answers
Now it is arithmetic. Which whole numbers, both at least 3, satisfy it?

Five pairs. (3,3), (4,3), (3,4), (5,3) and (3,5). Everything else in the infinite grid is on the wrong side of the curve.
The picture is the part I wanted, because it turns “exactly five” from a fact into something obvious. The curve drops steeply and then flattens out just above 2, and the grid only has whole-number points. There is a small pocket of room near the corner and five points land in it. Nothing about the shape of the curve leaves space for a sixth.
Checking it against shapes I actually built
I did not want to take the counts from a table. The vertices are built from coordinates. The faces are then discovered from those coordinates, by testing which points share a common supporting plane. The corners and edges are counted off the result.
Then the solved answer and the measured one go side by side.
| solid | corners, edges, faces | corners + faces − edges | sides, faces per corner |
|---|---|---|---|
| tetrahedron | 4, 6, 4 | 2 | 3, 3 |
| cube | 8, 12, 6 | 2 | 4, 3 |
| octahedron | 6, 12, 8 | 2 | 3, 4 |
| dodecahedron | 20, 30, 12 | 2 | 5, 3 |
| icosahedron | 12, 30, 20 | 2 | 3, 5 |
Every row agrees with what the inequality predicted, and every row gives 2.
There is a third thing in there that I had not expected to be so clean. At each corner, measure the wedge left over when you lay the faces flat, then add up those leftovers over every corner of the solid. You get exactly 720 degrees, for all five of them.
Not roughly, and not on average. The tetrahedron has four corners leaving 180 degrees each. The dodecahedron has twenty corners leaving 36 each. Four times 180 and twenty times 36 are both 720.
Which means you can divide 720 by the leftover at one corner and it hands you the number of corners on the whole solid. A local measurement, taken at one corner, telling you a global count.
Three shapes, not five
Take any of them and put a new point at the centre of each face. Those points are the corners of another solid from the list.
The cube has 6 faces and 8 corners. The octahedron has 8 faces and 6 corners. Do it to a cube and you get an octahedron, and doing it again brings you back. The dodecahedron and icosahedron are the same trade, 12 and 20 the other way round. The tetrahedron turns into itself.
So there are really three pairs, one of which is a shape paired with itself.
The film is that pairing from an unexpected direction. There is a family of ways to measure distance, and the set of points within distance 1 of the origin changes shape depending on which one you use. Measure the ordinary way and you get a sphere. Two other settings give a cube and an octahedron exactly.
Those two settings are duals of each other in the sense that the measuring systems use, which is a completely separate meaning of the word from faces swapping with corners. The film moves continuously from one to the other, and it passes through the sphere at the exact midpoint, because the sphere is the setting that is its own dual.
Both meanings of the word turn out to describe one motion. That is the whole night in a sentence: a shape and a way of measuring, agreeing about what it means to be paired.
One thing worth recording about how the rendering got built. Before drawing any solid I pointed the new triangle renderer at a single lit triangle, and the test failed. I spent a while suspecting the depth buffer before finding the actual problem, which was that I had placed the test triangle edge-on to the camera. There was nothing to see and the renderer was right. The gate was broken, not the thing it was gating, and that is worth knowing because a gate you trust is worse than no gate at all.
