Snakes on a (Projective) Plane
Topology, portals, and the structure of reality
Before we begin, PLAY THE GAME!
I created a game of snake played on the mind-bending four-dimensional topology of the projective plane. If you don’t know what that is, don’t worry, I’ll explain it in the post, but for now play the game and experience it for yourself!
I recommend beginning by playing in “World” view before switching to “Head-Centred” view, where things get really interesting. You may also want to start with the small size setting, which gives a sense of the weirdness of the game a little quicker. Here’s the link again for those in the back: Snakes On A Projective Plane
Mobius Strips and Klein Bottles
My last post, ‘The Mind-World Klein Bottle’, got me thinking about Klein bottles. Klein bottles are fantastic. A four-dimensional surface with no edges and only one side? Yes please.
This gave me the idea to create a game of snake played on a Klein bottle. Snake games often “glue” the sides together so that you portal through left to right and top to bottom, creating a torus topology. But what if we take one of those portals and add a twist? Then as you go through the left portal near the top, you come out the right side near the bottom, reflected. If we introduce “reflection portals” like this with no portals on the top/bottom, we would be playing on a mobius strip.
What if we had a normal portal gluing top and bottom and a reflection portal gluing left and right? Then we get a Klein bottle!
You can think of this as taking a mobius strip and gluing its opposite edges (which are really the same edge) together to form a cylinder. But as you’ll see if you try yourself this with a piece of paper or cloth, this cannot be done in three-dimensions, because it will at some point need to pass through itself. But if we use portals/4-dimensions, this is not an issue.
So I made it! Here’s Klein Bottle Snake.
Projective Planes
But that wasn’t enough for me. I couldn’t stop with just one twist. What happens if we add a twist to both portals?
Then we get the projective plane, another four-dimensional surface that cannot be embedded in three-dimensions without intersecting itself. You can think of it as what you get if you choose a point A on the edge of a mobius strip, then try to “glue” together every pair of points that are the same distance from A along the edge. If you have a strip of paper or fabric you can make a mobius strip and try this yourself, seeing how in three dimensions it is not possible, because the band will need to pass through itself. Still, if we allow self-intersections we can represent it in 3D as something like this:
But for the game, we can avoid self-intersections by using computer magic to portal through itself! If you haven’t already tried it, this is a good moment to go play the game and see the topology for yourself.
Life on the projective plane
A fun feature is playing the game in the Head-Centred view. In this view you take the snake’s point of view, with the game “camera” following the snake’s head, and get to “see through” the portals on the edges. Imagine there is a portal in front of you, and through it you see yourself from behind. But when you move your right hand, portal-you moves its left, and vice versa. If we imagine the two portals are close enough, you might reach through and lay your right hand on portal-you’s shoulder, and see portal-you reaching through a further portal with their left hand, and at the same moment feel someone laying a left hand on your shoulder.
Now suppose you step through the portal. You see portal-you going through their own portal ahead of you. You are now in a world which is entirely reflected, where left is right and right is left. All text except that on your own clothing appears backwards to you. But from the perspective of anyone else in the room, you are the one who went through one side and came out the other side mirrored, so that the text on your clothing is what’s backwards.
A further oddity comes from having two of these reflection portals at right angles to each other. Due to the geometry of reflections and translations, when you combine the two portals at 90 degrees to one another, the result is a 180 degree rotation around the corner where the portals meet. You may have experienced a similar effect seeing the reflection of your reflection in the corner of a dressing room with multiple mirrors — you see an image of yourself rotated about the point where the mirrors meet. In the same way you would see yourself looking back at you, rotated around the corner where the two portals meet. Unlike seeing yourself through just one portal, because this is reflected twice left and right would remain the same — you could even go up and shake your own hand across the portals.
17 Ways of Making the Same Game
While I was working on the game, I thought of multiple different ways I could design it, all giving the exact same gameplay experience. To help discuss this, I will call the region viewed in World view a “tile”.
Four Tile Torus, One Snake, Fixed World
The first way is to have a four tile setup with torus style straight portals on the edge of the four tiles taken together. Instead of having any actual reflection portals, the game is set up to create three “holographic” copies of the snake and food, taking the position of the one real snake’s body and one real food at each step, and projecting reflected/rotated images of them across the tiles, as if the tiles were the “different worlds” seen through the portals. Then the game would need to be set up so that eating/crashing into these projections has the same effects as the real thing.
For the Head-Centred view, the camera would just need to follow the head of the real snake around the torus, and also pull through what can be seen through the straight torus portals when they come into view.
For the World View, the camera could stay on just one tile, with the controls being reflected whenever the snake’s head crosses a border, such that the controls always align with the movements of the real or holographic snake seen on the screen. Alternatively, the camera could “jump” to the new tile whenever the snake’s head crosses the border, with the camera being reflected so that the new tile appears exactly as if the snake just portalled and came out reflected (eg if crossing to the right, what’s up would need to be shown as down and vice versa).
Four Tile Torus, Four Snakes, Fixed World
Another option is to have the same four tile setup as above, but instead of one real snake and three projections, the game begins with four separate real snakes, all controlled by the same arrow keys, except that the snakes’ controls and starting positions are reflected, so that eg hitting the left key sends two snakes left and two right. None of the snakes is privileged as the “real” snake. Meanwhile the food remains a projection, as described above.
The camera/controls of the World and Head-Centred views would have the same options available as those I described above.
Four Tile Torus, Fixed Head
Another option with the Four Tile Torus is to keep the head of one snake at the centre of the world, and have the world (including the other snakes/projections) move relative to it, rather than having the head move relative to the world. This would be compatible with both the four snakes and projections setup.
The Head-Centred view for this is just showing the central region of the torus, with no need for any jumping, reflections, or seeing through portals.
The World view meanwhile would need to move with the movements of the rest of the world, relative to the head, and need to be set up to see through portals like Head-Centred view has been so far, and have either the camera “jumping” with a reflection to another moving “world camera tile”, or have controls reflected each time the central head crosses the x/y position of the camera tile’s edges.
One Tile, One Snake
And another option is to have just one tile set up with real, fixed reflection portals between opposite edges, and just the one real snake and one real piece of food.
The World view would always remain fixed above this one tile, with no need to have the camera or controls reflect when the head crosses an edge.
The Head-Centred view meanwhile would follow the snake’s head, but also produce reflected images of what is “seen through the portal” as you approach the edges. Then when going through the portals the camera and controls would be reflected, so that along with the snake it is experienced as stepping into a reflected world, rather than being reflected oneself.
Interestingly, the one tile solution does not work nicely with keeping the snake’s head fixed at the centre. Or at least, it does not produce the exact same gameplay experience. I tried this initially, and it can be seen in the Klein Bottle Snake game by selecting “Projective plane (Psychedelic)” under Topology. The reflections are done with the projective plane wrapping, but because the portals are in effect moving relative to the snake’s body (except it’s head), it ends up cutting the body into little pieces. You can also see the difference from the fact that this approach will always have each part of the snake and map appear on screen exactly once, whereas in the Snakes On A Projective Plane gameplay when you approach tile corners some regions will be off screen entirely, and others will be seen twice, rotated around the corner.
If I am counting correctly, this gives us at least 17 different ways the game could be set up, with absolutely identical gameplay dynamics. There is no way, barring glitches, to determine which way the game is made just by looking at the gameplay.
“Ultimate Reality”
This is essentially the position we are in when it comes to questions of the nature of “ultimate reality”, beyond the world as it appears to us. We can study the physics of how things behave within the world as we perceive it, but is there anyway to get beneath the apparent structure of the world to the “underlying code”? We can narrow down the possibilities, since we know that the structure of the underlying code has to somehow produce/have the structure of the game as we experience it. It has to, because it is the game. But the same structure can be realized in multiple different ways, as we saw above.
Is the world fundamentally material or mental or some neutral third stuff? Does it even have a “fundamental” layer? Which things are real and which are convincing illusions? Does the world move relative to me or do I move relative to the world? Is the third person point of view more real than the first person point of view, or vice versa? We can, it seems, realize the structure of experience via any of these positions, like the different ways of writing my snake game. Our metaphysical theories are radically underdetermined by the data.
And yet... there is nothing meaningfully present in the code that is not expressed in the game. There are some comments and labels that may have no real impact, and maybe some vestigial elements that don’t do anything, but these are not really anything to do with the game as it is played, except accidentally. That means the structure of the game simply is the structure of the code. The different choices for how to instantiate that structure might sound completely different and look different as code, but they work out as the same thing.
Perhaps we should look at the different ways the game could be coded as merely different ways of representing the same structure/calculating the same operations. We can write the number 234 in roman numerals as CCXXXIV, and we know that neither representation is “correct”. There’s no fundamental layer of mathematics that decides between decimal vs roman numerals. Similarly we could calculate 2.75 x 4 as (3 - 0.25) x 4 = 3 x 4 - 0.25 x 4 = 12 - 1, or we could begin by converting to fractions and do 11/4 x 4 = 11. Are these different calculations, or are the they same? Is one of them mathematically correct while the other merely happens to get the right answer every time?
This is a feature of mathematics more generally: it recognises equivalent structures and treats them as equivalent. The projective plane is a case in point. It can be thought of as I have described it here, as being formed by gluing a strip’s edges together with two twists. But it can also be thought of as a disk where opposite points around its edge are identified with one another. Or as a mobius strip whose edge is glued to the edge of a disk. Or as the surface of a sphere with every point identified with the point on the opposite side (its “antipodal point”). Or as the Euclidean plane plus a “line at infinity” where parallel lines intersect at last, and from which they re-enter the Euclidean plane from the opposite direction.
Of course, there is a difference between the different representations. It changes how I have to interact with the code, and what computations are being done by the computer, for example. One way of designing the game may be far more efficient than another, whether in terms of the programmer’s efforts or the computer running it. But these things do not change the nature of the game itself.
Nor should learning how the game’s code is set up dictate how we think about the game while playing it. Structurally it’s all the same, so how we choose to think of things is just a choice of how we wish to conceptualize things, and one that should be fitted to the gameplay, not the code. Does the choice need to reflect a deeper “fundamental level” in order to be true? If that’s the case, we should not be thinking in terms of code at all, but in terms of machine language, or physical operations in the computer’s hardware, or interactions between subatomic particles.
We might also reverse our criteria for what we count as “the real game”. Is the code the real game, or is the real game the game as we play it and as I designed it to be played? Is the code just that vision broken down for the computer? It is true that the gameplay supervenes on the code and is in some sense caused by it, but it is also true that the gameplay is the final cause, the raison d’etre of the code without which it would never have been written.
Representational Pluralism
There is no one correct way to think about or represent the game — or, for that matter, the world. What is real is the structure, and that structure can be represented, expressed, and conceptualised in endless different ways for different purposes. Even as a player, there is no need to think of the World view or the Head-Centred view as more or less real than the other. Nor is there anything to dictate whether you think of the other snakes you see as distinct snakes, or as the same snake seen elsewhere, or as mere images.
This suggests a kind of pluralism concerning ontology and metaphysics. If two views are structurally equivalent representations of the world of experience, we don’t need to choose between them. We can move between them pragmatically, using whichever best suits the context.
We don’t need to worry about the nature of the underlying code. We just need to learn how to play the game.












Tremendous. Very, very cool. That four-fold structure is very important: because the two views are contrastive and precisely inverse you’re correct: there are four ways they can still ‘talk to each other’ in a 2x2 matrix
My further thoughts here: https://fourfoldphilosopher.substack.com/p/are-experiences-actual-or-potential?r=4bks72&utm_medium=ios
For a blog post Joseph, you’ve definitely gone the extra mile! Let’s go deeper regarding your analogy between us and this computer game snake. Just as it can’t get back to its code, I don’t think we can in the end either. Regardless of any of my figuring, I might just be the product of Descartes’ “evil demon”. But there is a big difference between me and this snake. I happen to be a value driven mind that can control the snake, though it otherwise presumably has no mind. So let’s try to exploit this apparent difference.
One of your metaphysical options was “material”. More modern would be the term “physical”, though I don’t think even that’s explicitly descriptive enough. I like “causal”, and with a “systemic” modifier to differentiate this from something that a god might affect. I presume that I exist under a world of perfect systemic causality, since this is the only option where science is not rendered obsolete (by gods or any other supernatural dynamics). Furthermore I, as a value based entity that experiences its existence, must then be a product of worldly causal dynamics.
Science suggests that mind is brain based. So given this scaffolding, what are the causal dynamics by which brain creates mind? The most popular position in academia today is that brain creates mind by means of the proper coding alone. In my post #3 I argue that this violates systemic causality — code can only exist as such by informing something causally appropriate. So what might my brain’s code be informing that is causally appropriate to reside as me? In my post #4 I argue that the only option with sufficient bandwidth and dynamism, is the electromagnetic field produced by synchronously firing neurons. Here brain may be considered a non-conscious computer, and mind would be a value driven computer which loops back as EMF that affects the brain. And why did brain evolve to create this value driven computer that is each of us? More open circumstances (perhaps during the Cambrian) may have required far greater autonomy.