The Klein Bottle and the 4th dimension [4D Toys v 1.7]

One of the shapes people requested the most for 4D Toys is the Klein Bottle, so I finally added it!

I originally wasn’t very keen on adding the Klein Bottle for a strange reason: because it’s a 2D shape when sliced it would give thin 1D lines, which are obviously too thin to be interesting to look at. But people kept requesting it, and after thinking about it I figured I could give thickness to the lines by sweeping a circle across the 2D surface to get a 3D surface. This would look way better than simply extruding the Klein Bottle in 4D.

I also wanted to use this update as an opportunity to make a great video about Klein Bottles because the current ones on YouTube are in my opinion unnecessarily confusing. For example I don’t think it’s good to start with how the Klein bottle is two Möbius strips glued together. And I knew I could make better illustrations of the constructions.

Also, and importantly, none of the previous Klein bottle videos on YouTube properly explain the 4D part of it (the fact that a Klein Bottle has to self-intersect in 3D, but not in 4D). I was uniquely suited to fix that, ahah.

In the end, I am very proud of the illustrations I came up with. For example: showing the exact same perspective/construction for the Möbius Strip and the Klein Bottle really makes it clear what is going on! And as a bonus you get how the Klein Bottle is made out of two Möbius strips in an incredibly straightforward way…

It was obvious to me that the same construction could be done in higher dimensions to make what I call a “Spherinder Klein Bottle” which is a 3D version of the 2D Klein Bottle. Well, technically the “thickened” 2D Klein bottle in 4D Toys is also three-dimensional, but in a less interesting way since it’s just the Cartesian product of the 2D Klein Bottle with a 1D circle… Anyway, interestingly it looks almost simpler when sliced than the 2D Klein bottle.

Relatedly, because people have asked me before: yes there is a Klein bottle in Miegakure, and it shows up in a yet another unexpected way.

As always, thank you for your patience and enthusiasm!

By the way, I’ve decided to more seriously update the Patreon I originally made for my quaternion article/video. In many ways Miegakure is more than a game: It is revolutionizing how people explore scientific concepts with games, its YouTube channel is an educational tool in its own right with millions of views and many thousands of subscribers, scientific research developed for the game is published alongside it, etc… If you would like to support us, the Miegakure team would be very grateful. I will also post exclusive previews of what we are working on!

Miegakure Update September 2021

Hi, here is the update since last time! Among other things:

– We polished the main characters with improvements to the 3D models, inverse kinematics for the feet, cloth simulation, better collision detection, etc.. That kind of polish seemed very important since the player is looking at the main character all the time. We also fixed issues with the character rig we were using.

– I cleaned up and improved the way shaders are implemented in the game, so that it is very easy to create new textures (ex: as grass, sand, rocks…). I improved and added new types of procedural textures. One example is Gabor noise, which is great for anisotropic patterns.

During development I often programmed specific systems because I had no idea that it was possible to do much better. For example, I had specific systems for drawing specific types of object (cubic-shaped rocks, buildings, vegetation…) which all got replaced by only two or three systems (ex: tetrahedral meshes). So now I worked everything around them, and simplified the code, which allowed complexity to be put elsewhere where it is more needed.

– Similarly, I finalized the sound code, since at this point it is clear what we actually needed. For example: all sounds now change in a similar way based on what should be heard across the 4th dimension.

– We finished all the large building scenes except one, and put them in the game with the final (PBR) lighting and they really look super great!

The game looks much more refined and polished compared to what we have shown so far. Some changes also make it much more immersive. I love our concept art by Kellan Jett; it is really original and gives the world a truly unique feel. We worked hard to bring it to life in 3D (well, actually 4D ahah) and do it justice. The fact that the game gives the sense of a world, and not just a series a puzzles in an abstract place is very exciting to me.

– For a fun few days break I also quickly cleaned up a mechanic that I wasn’t sure was going to be in the game, and made the few puzzles for it. The game is going to be very rich and dense!

– We also did the final polish on many “one-off things” in the game (I shall remain vague about this for now ahah).

Generally I have now done a final polish pass on almost every part of the game, and now basically the only thing left, for realsies, is we need to go through most levels and give them a final look, by placing (and sometimes making) props, and creating specific types of 4D objects/textures! (As I said before, all the puzzle design has been done for a long time). So this is a pretty exciting time!

As always, thank you for your patience and enthusiasm.

SIGGRAPH 2020 talk for my technical paper: N-Dimensional Rigid Body Dynamics

It’s very exciting for work from a game (and a first for an indie game) to be presented in the SIGGRAPH Technical Papers program! Thank you all for your patience during development of the game, as you can see it can get pretty involved, ahah!

Link to the paper

4D Toys Version 1.6: Wireframe Projections

4D Toys Update (iOS) (Steam VR + Mouse & Keyboard).

New button: Wireframe Projections.

When enabled, the edges of objects are projected onto the current slice.

That means that no matter where the slice is, the edges of the objects will always be visible.

It’s an “old school” way of displaying 4D objects which you may have seen before!

Try it in the 2D Levels!

I had fun going back to every level to check it out. It lets you see the movement of the objects even if you are not in the same slice.

As with the previous update, there is a new page at the right-most end of the level select hub. After you play the relevant level there the button will be unlocked.

The 2D/3D version gives an idea of what exactly these lines are showing:

Note: for simplicity each 4D toys update is now called 1.x, where x is the number of the update.