It’s rare that weird, brain-bending ideas and video games meet, but in my experience, when they do, it’s pretty glorious. Portal, Prey, Antichamber, The Stanley Parable, and SUPERHOT are examples I’ve played personally. Also Miegakure (if it ever comes out, grumble grumble) will probably land instantly in that category, being a 4D puzzle game. But my most recent weird-game obsession has been HyperRogue. HyperRogue is awesome. Like Dwarf Fortress, it’s got a bit of a retro look with clean, minimalist graphics. And like Dwarf Fortress, it’s pretty obvious that a lot of love has gone into it. Here’s what the game looks like:
Like many roguelikes (modeled after the ancient ASCII game Rogue), it’s played on a sort of chessboard. It looks at first glance like one of those board wargame or D&D-type hexagonal chessboards, but instead of being just hexagons, it’s got heptagons (7-sided polygons) too. You know what? That reminds me of the description of another geometric object:
(Screenshot from the awesome polyhedron program polyHédronisme)
That is a truncated icosahedron, but I’d wager that most people know it better as either A) a soccer ball/football, or B) a molecule of C60: a fullerene, a buckyball.
Don’t worry. It’ll be clear in a moment what the hell I’m going on about. You see, HyperRogue takes place in the hyperbolic plane. A flat piece of paper is a Euclidean plane. The surface of a globe (or the Earth, or a buckyball) is a sphere. The hyperbolic plane is the third brother in the trio, so to speak, and it’s the weird brother. Their relationship makes more sense to me if I think in terms of polygons. Here’s another picture:
(From the Wikimedia commons.)
The Euclidean plane (the hexagonal tiling above) consists of hexagons, each of which is bordered by six hexagons. The buckyball (football/soccer ball) farther above, representing spherical geometry, consists of pentagons, each of which is bordered by five hexagons. And at the very top of the page, the world of HyperRogue, representing the hyperbolic plane, consists of heptagons (7-sided polygons), each of which is bordered by seven hexagons. The hyperbolic plane is what would happen if you tried to sew up a soccer ball using heptagonal and hexagonal pieces of leather, rather than the usual pentagonal and hexagonal ones. Here’s what that looks like:
(From the page of Frank Sotille, who has awesome templates so you can make your own hyperbolic football. I would’ve done it myself, but all of my Scotch tape has vanished.)
The only buckyball-type tiling that lays flat is the one with hexagons surrounded by hexagons. Pentagons surrounded by hexagons curves into a sphere, and heptagons surrounded by hexagons curls up into what HyperRogue’s creator calls a hypersian rug.
But here’s a more intuitive (though less precise) way to understand the hyperbolic plane. Consider the flat Euclidean plane. Pick a point. Draw a circle centered on that point. Measure the circumference of that circle. Draw another circle with the same center, but twice the radius. Measure the circumference of that circle. The farther you get from your starting point, the larger the circumference, but the increase is very predictable and linear. As a matter of fact, the circumference (the “amount of space”) you cover as you increase the radius of your circle increases exactly like this:
(Graphed with FooPlot.com)
Now do the same thing on a sphere: centered on the north pole, draw a very small circle with a given radius (with the radius measured across the curved surface of the sphere, not straight from point to point). Draw another circle with twice the radius. Up until you hit the equator, the circumference will increase, but eventually it maxes out and goes back down:
(Circumference in the Euclidean plane in black, circumference on the sphere in red)
There’s another important effect to consider here: the sphere’s radius matters. That plot assumed a sphere of radius 1. Here’s what it would look like with a sphere of radius 2:
It doesn’t make much sense to ask for the “scale” or “radius” of the Euclidean plane, because the answer is “infinity.” Any Euclidean plane is indistinguishable from any other, no matter how you swell or shrink it. Spheres, though, are distinguished by their radii: each has an inherent positive curvature.
Of course, on a sphere, the largest circle you can draw has a radius (measured across the surface of the sphere) of ½πR. the circumference of that circle lies right on the sphere’s equator. After that, the circumference decreases as the radius increases, because your circle’s shrinking as it approaches the opposite pole. It reaches zero when the radius is πR, and your radius-line stretches from one pole to the other.
The Euclidean plane has zero curvature. The sphere has positive curvature. The hyperbolic plane has negative curvature. The “radius” of a hyperbolic plane is defined as 1 / sqrt(-K), where K is a measurement called “Gaussian curvature.” (For comparison, the Gaussian curvature of a sphere is 1/(R²) ). K is the thing that’s zero for the plane, positive for the sphere, and negative for the hyperbolic plane. For a hyperbolic plane of K = -1, with a “radius” of 1, the circumference increases like this:
(Hyperbolic circumference is the green line. The red line for a sphere with R = 1 (K=1) is included for comparison.)
That’s the weird thing about hyperbolic geometry: a sphere of infinite radius behaves exactly like the Euclidean plane (it is the Euclidean plane). But as the radius shrinks, the sphere contains less and less space (so to speak). To put it another way: if you were knitting a Euclidean plane (which people do, because mathematical knitting is a thing, which is awesome), then you’d need to knit in twice as much thread at radius 2 than you’d needed at radius 1. To knit a sphere, you’d need to knit less than twice as much thread in at twice the radius. And to knit a hyperbolic plane, you’d need to knit in more than twice as much yarn at twice the radius (according to the formula 2 * pi * R * sinh(r/R), where R = 1/sqrt(-K), and r is the radius measured through the plane; the equivalent relation for the sphere is 2 * pi * R * sin(r/R)). Where the Euclidean knit would give you a flat circular rug, and the spherical knit would give you a hacky-sack ball, the hyperbolic knit would give you something like this:
(Knitted by Daina Taimina, exhibited on the website of the Institute for Figuring.)
But the weird thing is that you can still do almost exactly the same geometry on the hyperbolic plane that you can do in the Euclidean plane. In fact, that’s why hyperbolic geometry is interesting: apart from a couple of weird quirks, it behaves just like a plane. That means you can make rigorous, valid, geometric proofs in the hyperbolic plane.
The Euclidean plane gets its name from Euclid of Alexandria, who is responsible for the infinite misery of people (like me) who just couldn’t get along with high-school geometry. But he condensed many centuries of Greek (and other) geometry into a set of postulates (axioms) from which you can prove pretty much anything that’s true in geometry. Here they are:
- You can draw a straight line between any two points.
- You can extend an existing straight line as far as you like.
- Using a compass, you can draw a circle with any center and any radius you want.
- All right angles are the same.
- If you’ve got two lines running alongside each other and another line running through both of those, and the angles on the insides of the intersections add up to less than a right angle, then the lines will intersect if you extend them far enough, and they’ll intersect on the side where the angle-sum is less than two right angles.
That last one, called the parallel postulate was a thorn in geometry’s side for a long time, because it seems a lot less elegant than the others, and it seems like the kind of thing you might be able to prove from the other axioms, which would mean it’s not an axiom, since axioms are your starting rules and theorems are what you prove using them. A less messy way to write the parallel postulate is:
5. Given any straight line, and given a point which doesn’t lie on that line, there is exactly one straight line through that point which never intersects the first line (the second line being the parallel).
Spherical geometry and hyperbolic geometry are both based on changing the parallel postulate. In spherical geometry, it becomes:
5. Given any straight line, and given a point which doesn’t lie on that line, there are zero straight lines through that point which never intersect the first line.
Or, to put it in simpler terms: because you’re on a sphere, lines that should be parallel (that is, lines which form a total of two right angles when intersected by a third line), inevitably intersect. Think of the north and south poles as two points. Draw the prime meridian from North to South. Now draw another line passing through the equator at 1° East longitude, 0 ° North latitude. At that point, the two lines are as parallel as lines get: they form ninety-degree intersections with the equator, and therefore, the interior angles on either side form exactly two right angles. But keep drawing those lines, and they’re going to intersect at the south pole, even though they should, according to Euclidean intuition, have stayed parallel.
In hyperbolic geometry, the parallel postulate is modified to the other extreme:
5. Given any straight line L, and given a point P which doesn’t lie on that line, there are an infinite number of straight lines through P which do not intersect L.
That’s the Poincaré disk model, which fits the infinite hyperbolic plane into a finite circle. It’s elegant and simple, and it’s the model HyperRogue uses, so I’m going to stick with it. The red lines are the boundaries of the infinite set of lines which pass through P but never intersect L. It looks like the red lines intersect L at one end each, but the Poincaré disk model distorts distances more and more the closer you get to the edge. A picture’s worth a thousand words, so here’s a series of circles of equal radius starting from the center of the disk and moving outward:
(Both images rendered with the awesome (and free) geometry software GeoGebra)
I know they don’t look like circles of equal radius, but that’s just an artifact of the projection. The same way a Mercator map distorts Greenland so that it looks like it’s bigger than North America (when in reality it’s not much bigger than Quebec or Mexico), the Poincaré disk model distorts distances the closer you get to the edge of the circle. As a matter of fact, that bounding circle, as measured within the hyperbolic plane, is infinitely far from the center. You can’t ever reach it: it’s infinitely far from everywhere. So those intersections that seem to exist in the picture with the red and blue lines, they don’t actually exist, because you’d have to go infinitely far to get there. And keep in mind that, from any given point, it feels like you’re at the center of a Poincaré disk, so those lines don’t actually get closer to the line L the way the projection makes it seem. The projection is a necessary evil. You can do spherical geometry on an ordinary globe and remove all distortion, but you saw how messy and rumpled the hyperbolic version of a globe became: just look at the red crochet thing above. That’s not gonna happen. You have to live with the distortion.
The cool thing about the Poincaré disk model, though, is that it preserves angles, which makes it easy to do the kind of straightedge-and-compass geometry that’s so handy for geometric proofs.
And guess what? Just like we experience the world an almost-flat Euclidean space (relativity says it’s not perfectly flat, but it’s very close in our neighborhood, which I have to say to stop the nitpickers from yelling at me), there are three-dimensional spaces with spherical curvature, and there are three-dimensional spaces with hyperbolic curvature. In the next part, I’m going to talk about life in a highly-curved hyperbolic space. But before I go, let me leave you with a picture of something. In the Euclidean plane, you can only pack six equilateral triangles (all angles and edge-lengths the same) around a single point. The result looks like this:
In the hyperbolic plane, though, you can fit seven equilateral triangles around a vertex, and it looks like this (and don’t forget, those triangle are just as perfect and equilateral as the ones above; it just doesn’t look like it, because of the projection):
You can actually fit eight triangles around a vertex too, although the triangles have to be larger (largeness being a slightly complicated concept in hyperbolic geometry, but we’ll get to that next time):
And actually, it’s perfectly allowable to fit an infinite number of equilateral triangles around every vertex. That looks like this:
And remember, those triangles are still perfect and equilateral and regular. Hyperbolic space is weird. Remember that thing Christopher Lloyd said in Back to the Future? Get ready: we’re gonna see some serious shit.