Author Archive

4D Toys Update 8: Rotating the 3D Slice, 2D Faces Projections, Marble scenes, and many more!

Monday, March 13th, 2023

Hi!

This is a Mega-Update ®™ that focuses on features that people have been requesting for a long time.

I have a ton of stuff in Miegakure that could be shared with 4D Toys but what takes development time is not the cool 4D stuff but all the UI/UX around it. First of all because there is the VR version, the mouse/keyboard version, and the touchscreen version, which all require slightly different custom interfaces, but also because I always want to have the 2D/3D levels to show the lower dimensional version of the same thing, in order to explain what is actually going on. So that’s like six different variations!

But in any case, here is a large batch.

1. Rotating your 3D slice arbitrarily in 4D


Obviously an often requested feature! The fun part was coming up with a simple interface: If you just rotate the 3D slice around the camera you might make the level completely invisible, because it doesn’t belong to your slice anymore, or at best is off to the side in 3D.


My goal was to design the interface to let players focus on the cool 4D stuff instead of the camera/slice orientation/position. For example there is still no real need to move the camera around the level, as the level is always in front of you no matter how you rotate in 4D!

Incidentally, you can also hold a shape while you rotate your slice and it will rotate with you!

The interface combines both continuous and discrete 90 degree rotations: you can use the arrows to rotate the slice in 90 degree increments, similar to Miegakure’s main mechanic. This is important because axis-aligned rotations are the easiest to understand!

The three colored lines represent the three horizontal dimensions. You can trade which of these dimensions you can see by using the new rotation controller.

For example: The level above is sloped, and you can either see the slope but not the 4th dimension, or you can see the 4th dimension but not the dimension that slopes down. So it looks like the level is flat sometimes, but it’s just that you cannot see the slope. (There’s a 2D/3D level that show this).
(If you can see the red and green lines but the white line is perpendicular to the screen, you are aligned normally, i.e. you can see the two regular horizontal dimensions but not the 4th dimension. But if you can see the white line, you have traded one of your regular dimensions for the 4th dimension)

The 2D/3D mode helps understand what that means, but you can also just play around with it! 4D Toys and Miegakure are two different complementary approaches to explaining the fourth dimension. 4D Toys is about playing with 4D in a high-bandwidth, undirected way, and Miegakure is one giant subtle and detailed tutorial.
(I wrote about this in more detail in the 4D Toys release post)

 

2. Projection of the 2D Faces of the 4D objects


An often requested feature! This is like the 1D Lines projection from Update 1.6. When enabled, the 2D faces of objects are projected onto the current slice.

That means that no matter where the slice is, the faces of the objects will always be visible. It’s an “old school” and very mathy way of displaying 4D objects which you may have seen before! The projections are useful to roughly see where there are 4D objects, but that’s about it because it’s very easy for the projections to overlap too much.

I’ve had an even cooler version of that in Miegakure since the beginning… and which will show up in 4D Toys at some point!

You can also enable the colored version of the wireframe mode by long-pressing the wireframe button (I realize this is pretty hidden right now … sorry).


 

3. A lot of structures made to play with “marbles” and roll them around



I made these scenes where you can play with marbles that roll around on interesting terrain shapes. They took very little time to make because of the 4D procedural mesh generation systems I built. I think the most fun part is seeing the spheres shrink/disappear then reappear/grow while they roll down a path that curves in the fourth dimension. It’s also neat to see them move on the projection then re-appear into your slice.



I found it interesting that it was kind of hard to come up with many more interesting paths than these… I think this is because 4D objects are just moving along 1D paths, even if these paths are embedded in 4D!

 

4. Constant Torque scenes


I added scenes with Tesseracts that are fixed at a point but with a torque that keeps them rotating. This includes a couple of scenes with a double rotation: two perpendicular planes of rotation at the same time. In four or more dimensions, an object can rotate in more than a single plane at the same time. It’s fun to stop one rotation while the other keeps happening.


 

5. The 1D version of the 2D “Davinci” 4D Objects



This is similar to the shapes I made that were inspired by these Davinci Drawings (see this blog post), but it is the 1D version instead of the 2D version.

In 3D each face is two-dimensional, and we can carve holes in each 2D face, which amounts to keeping the 1D lines of each face (just like the drawing below).
Leonardo da Vinci's Polyhedra

But in 4D each face is three-dimensional, so we can do two things! Take each 3D face (called a cell) and either make it hollow inside (which amounts to keeping its 2D faces, as before) or make each cell into something like the drawing below (which amounts to keeping its 1D lines).

I don’t want to spoil it but it looks cool when you turn on the 2D Face projection!

6. A static Klein bottle with a sphere that you can roll inside



This allows to get a feel for what “inside” a 2D Klein bottle in 4D even means. Also it makes it easier to look at the Klein Bottle while it is standing upright. In the past you had to use the anti-gravity feature… It is hard to keep the 4D version of the Klein Bottle upright because the Klein Bottle is a 2D object, and a 2D object in a 4D world is thin, like a 1D wire is thin in a 3D World.

 

7. A 120 cell (faces) and a sphere together


I made this to test the collision a while back. It’s fun to see the sphere push around or roll around inside the 120 Cell.

 

8. Auto-Follow the last touched shape


While active, your slice always moves to the position of the last shape you touched. It’s fun to use on marble scenes to follow a marble around at a weird slice orientation.

** As with the previous update, there is a page to the right of the level select hub. After you play the relevant levels the new buttons will be unlocked **

Buy 4D Toys

Miegakure development is progressing nicely

I’ve been giving monthly updates on Patreon.

Monthly Updates now on Patreon

Tuesday, November 29th, 2022

You can support the development of Miegakure and related work with this Patreon I originally made for my quaternion article/video (Let’s remove Quaternions from every 3D Engine: An Interactive Introduction to Rotors from Geometric Algebra).

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 have never asked before, even though I could have, because it would not have mattered. It matters now!

I will also post exclusive previews of what we are working on!

Thank you for supporting the small team behind the game!

I have been really liking the ability to post more often, and more privately on Patreon!

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

Tuesday, December 14th, 2021

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

Wednesday, September 8th, 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.