<?xml version="1.0" encoding="UTF-8"?><feed
	xmlns="http://www.w3.org/2005/Atom"
	xmlns:thr="http://purl.org/syndication/thread/1.0"
	xml:lang="en-US"
	>
	<title type="text">mtbdesignworks Blog [Miegakure, 4D Toys, Marc ten Bosch]</title>
	<subtitle type="text">Miegakure</subtitle>

	<updated>2025-08-11T23:42:07Z</updated>

	<link rel="alternate" type="text/html" href="https://marctenbosch.com/news" />
	<id>https://marctenbosch.com/news/feed/atom/</id>
	<link rel="self" type="application/atom+xml" href="http://marctenbosch.com/news/feed/atom/" />

	<generator uri="https://wordpress.org/" version="6.9.4">WordPress</generator>
	<entry>
		<author>
			<name>marc</name>
					</author>

		<title type="html"><![CDATA[4D Toys now available for Meta Quest]]></title>
		<link rel="alternate" type="text/html" href="https://marctenbosch.com/news/2025/08/4d-toys-now-available-for-meta-quest/" />

		<id>https://marctenbosch.com/news/?p=3294</id>
		<updated>2025-08-11T23:42:07Z</updated>
		<published>2025-08-11T23:42:07Z</published>
		<category scheme="https://marctenbosch.com/news" term="4D Toys" />
		<summary type="html"><![CDATA[It feels like the first true version of the game. You sit on your actual living room floor playing with strange objects from another dimension.]]></summary>

					<content type="html" xml:base="https://marctenbosch.com/news/2025/08/4d-toys-now-available-for-meta-quest/"><![CDATA[

<p>It feels like the first true version of the game. You sit on your actual living room floor playing with strange objects from another dimension.</p>

<center><video style="display: inline-block;" src="https://marctenbosch.com/blogdata/videos/MetaQuest.mp4" autoplay loop width="500" height="500" ></video></center>

<center><a href="https://www.meta.com/experiences/4d-toys/29620813234233757"><img decoding="async" width="350" src="https://4dtoys.com/meta.svg" style="margin-top: 30px" /></a></center>


]]></content>
		
		<link href="https://marctenbosch.com/blogdata/videos/MetaQuest.mp4" rel="enclosure" length="1566642" type="video/mp4" />
			<link rel="replies" type="text/html" href="https://marctenbosch.com/news/2025/08/4d-toys-now-available-for-meta-quest/#comments" thr:count="1" />
			<link rel="replies" type="application/atom+xml" href="https://marctenbosch.com/news/2025/08/4d-toys-now-available-for-meta-quest/feed/atom/" thr:count="1" />
			<thr:total>1</thr:total>
			</entry>
		<entry>
		<author>
			<name>marc</name>
					</author>

		<title type="html"><![CDATA[4D Toys Update 8: Rotating the 3D Slice, 2D Faces Projections, Marble scenes, and many more!]]></title>
		<link rel="alternate" type="text/html" href="https://marctenbosch.com/news/2023/03/4d-toys-update-v-1-8-rotating-the-3d-slice-2d-faces-projections-marble-scenes-and-many-more/" />

		<id>https://marctenbosch.com/news/?p=3019</id>
		<updated>2023-09-22T15:40:56Z</updated>
		<published>2023-03-13T20:15:54Z</published>
		<category scheme="https://marctenbosch.com/news" term="4D Toys" />
		<summary type="html"><![CDATA[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 [&#8230;]]]></summary>

					<content type="html" xml:base="https://marctenbosch.com/news/2023/03/4d-toys-update-v-1-8-rotating-the-3d-slice-2d-faces-projections-marble-scenes-and-many-more/"><![CDATA[
<p>Hi!</p>

<p>This is a Mega-Update ®<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /> that focuses on features that people have been requesting for a long time.<br><br>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&#8217;s like six different variations!<br><br>But in any case, here is a large batch.</p>

<center><iframe title="YouTube video player" src="https://www.youtube.com/embed/U9TK65sVI_4" allowfullscreen="allowfullscreen" width="560" height="315" frameborder="0"></iframe></center>


<h3>1. Rotating your 3D slice arbitrarily in 4D</h3><br>

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&#8217;t belong to your slice anymore, or at best is off to the side in 3D.<br><br>
<center><div style="display: inline-block; margin: 20px;"><video style="display: inline-block;" src="https://marctenbosch.com/blogdata/videos/CubeSlide.mp4" autoplay loop width="512" height="288"></video></div></center>
<br>
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!<br>
<br>
Incidentally, you can also hold a shape while you rotate your slice and it will rotate with you!<br>
<br>
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&#8217;s main mechanic. This is important because axis-aligned rotations are the easiest to understand!<br>
<br>
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.<br>
<br>
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&#8217;s just that you cannot see the slope. (There&#8217;s a 2D/3D level that show this).<br>

<center><img decoding="async" src="https://marctenbosch.com/miegakure/data/4dtoys/rotator01.png" style="display:inline-block; margin: 20px; " width="150" height="150"><img decoding="async" src="https://marctenbosch.com/miegakure/data/4dtoys/rotator02.png" style="display:inline-block; margin: 20px; " width="150" height="150"></center>

(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)<br>
<br>
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.<br>
(I wrote about this in more detail in <a href="https://marctenbosch.com/news/2017/06/4d-toys-a-box-of-four-dimensional-toys/">the 4D Toys release post</a>)
<!-- <br/>
<br/>
It's interesting because the people who ask for features in 4D Toys are more "experts" at understanding 4D space. So they will get more out of these features, but I still think they should be there. -->
<br><br>&nbsp;





<h3>2. Projection of the 2D Faces of the 4D objects</h3><br>

<center><div style="display: inline-block; margin: 20px;"><video style="display: inline-block;" src="https://marctenbosch.com/blogdata/videos/FaceProjectionCubes.mp4" autoplay loop width="512" height="288"></video></div></center>

An often requested feature! This is like the 1D Lines projection from <a href="https://marctenbosch.com/news/2020/12/4d-toys-version-1-6-wireframe-projections/">Update 1.6</a>. When enabled, the 2D faces of objects are projected onto the current slice.<br>
<br>
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&#8217;s about it because it&#8217;s very easy for the projections to overlap too much.<br>
<br>
I&#8217;ve had an even cooler version of that in Miegakure since the beginning&#8230; and which will show up in 4D Toys at some point! <br>
<center><div style="display: inline-block; margin: 20px;"><video style="display: inline-block;" src="https://marctenbosch.com/blogdata/videos/AbacusCityRotate.mp4" autoplay loop width="512" height="288"></video></div></center><br>
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 &#8230; sorry).<br>
<center><div style="display: inline-block; margin: 20px;"><video style="display: inline-block;" src="https://marctenbosch.com/blogdata/videos/ColoredWire.mp4" autoplay loop width="512" height="288"></video></div></center>
<!-- All of these views are so mathematical...-->
<br><br>&nbsp;







<h3>3. A lot of structures made to play with &#8220;marbles&#8221; and roll them around</h3><br>

<center><div style="display: inline-block; margin: 20px;"><video style="display: inline-block;" src="https://marctenbosch.com/blogdata/videos/Marble1.mp4" autoplay loop width="512" height="288"></video></div></center><br>

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&#8217;s also neat to see them move on the projection then re-appear into your slice.<br>

<center><div style="display: inline-block; margin: 20px;"><video style="display: inline-block;" src="https://marctenbosch.com/blogdata/videos/Marble2.mp4" autoplay loop width="512" height="288"></video></div></center><br>

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






<h3>4. Constant Torque scenes</h3><br>
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&#8217;s fun to stop one rotation while the other keeps happening.<br>

<center><div style="display: inline-block; margin: 20px;"><video style="display: inline-block;" src="https://marctenbosch.com/blogdata/videos/RotateLong.mp4" autoplay loop width="512" height="288"></video></div></center>

<br><br>&nbsp;





<h3>5. The 1D version of the 2D &#8220;Davinci&#8221; 4D Objects</h3><br>

<center><div style="display: inline-block; margin: 20px;"><video style="display: inline-block;" src="https://marctenbosch.com/blogdata/videos/24CellLines.mp4" autoplay loop width="512" height="288"></video></div></center><br>

This is similar to the shapes I made that were inspired by these Davinci Drawings (see this <a href="https://marctenbosch.com/news/2014/04/what-is-that-shape-at-the-end-of-the-trailer-hd-screenshot/">blog post</a>), but it is the 1D version instead of the 2D version.<br>
<br>
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).<br>

<center><a href="http://marctenbosch.com/miegakure/data/leonardo-ti.jpg"><img decoding="async" style="width: 200px; margin: 10px;" src="http://marctenbosch.com/miegakure/data/leonardo-ti.jpg" alt="Leonardo da Vinci's Polyhedra"></a></center>

<br>
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).<br>
<br>
I don&#8217;t want to spoil it but it looks cool when you turn on the 2D Face projection!<br>




<h3>6. A static Klein bottle with a sphere that you can roll inside</h3><br>

<center><div style="display: inline-block; margin: 20px;"><video style="display: inline-block;" src="https://marctenbosch.com/blogdata/videos/KleinSphere.mp4" autoplay loop width="512" height="288"></video></div></center><br>

This allows to get a feel for what &#8220;inside&#8221; 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&#8230; 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.<br><br>&nbsp;



<h3>7. A 120 cell (faces) and a sphere together</h3><br>

I made this to test the collision a while back. It&#8217;s fun to see the sphere push around or roll around inside the 120 Cell. <br><br>&nbsp;



<h3>8. Auto-Follow the last touched shape</h3><br>

While active, your slice always moves to the position of the last shape you touched. It&#8217;s fun to use on marble scenes to follow a marble around at a weird slice orientation.<br>

<center><div style="display: inline-block; margin: 20px;"><video style="display: inline-block;" src="https://marctenbosch.com/blogdata/videos/Marble3.mp4" autoplay loop width="512" height="288"></video></div></center><br>

<p><b>** 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 **</b></p>

<p><a href="https://4dtoys.com">Buy 4D Toys</a></p>

<h3>Miegakure development is progressing nicely</h3>I&#8217;ve been giving monthly updates on <a href="https://www.patreon.com/marctenbosch">Patreon</a>.

<center><div style="width: 100px; padding: 10px; margin: 20px; background-color: #f86753; border-radius: 10px"><a href="https://patreon.com/marctenbosch" style="border: none;"><img decoding="async" style="margin: auto; " src="https://marctenbosch.com/top/toppatreon.png"></a></div></center>
]]></content>
		
		<link href="https://marctenbosch.com/blogdata/videos/CubeSlide.mp4" rel="enclosure" length="22317526" type="video/mp4" />
<link href="https://marctenbosch.com/blogdata/videos/AbacusCityRotate.mp4" rel="enclosure" length="813" type="video/mp4" />
<link href="https://marctenbosch.com/blogdata/videos/ColoredWire.mp4" rel="enclosure" length="813" type="video/mp4" />
<link href="https://marctenbosch.com/blogdata/videos/Marble1.mp4" rel="enclosure" length="3331938" type="video/mp4" />
<link href="https://marctenbosch.com/blogdata/videos/FaceProjectionCubes.mp4" rel="enclosure" length="2689780" type="video/mp4" />
<link href="https://marctenbosch.com/blogdata/videos/Marble2.mp4" rel="enclosure" length="17466311" type="video/mp4" />
<link href="https://marctenbosch.com/blogdata/videos/RotateLong.mp4" rel="enclosure" length="10819712" type="video/mp4" />
<link href="https://marctenbosch.com/blogdata/videos/24CellLines.mp4" rel="enclosure" length="409600" type="video/mp4" />
<link href="https://marctenbosch.com/blogdata/videos/KleinSphere.mp4" rel="enclosure" length="6461758" type="video/mp4" />
<link href="https://marctenbosch.com/blogdata/videos/Marble3.mp4" rel="enclosure" length="838201" type="video/mp4" />
			<link rel="replies" type="text/html" href="https://marctenbosch.com/news/2023/03/4d-toys-update-v-1-8-rotating-the-3d-slice-2d-faces-projections-marble-scenes-and-many-more/#comments" thr:count="2" />
			<link rel="replies" type="application/atom+xml" href="https://marctenbosch.com/news/2023/03/4d-toys-update-v-1-8-rotating-the-3d-slice-2d-faces-projections-marble-scenes-and-many-more/feed/atom/" thr:count="2" />
			<thr:total>2</thr:total>
			</entry>
		<entry>
		<author>
			<name>marc</name>
					</author>

		<title type="html"><![CDATA[Monthly Updates now on Patreon]]></title>
		<link rel="alternate" type="text/html" href="https://marctenbosch.com/news/2022/11/monthly-updates-now-on-patreon-discord-server/" />

		<id>https://marctenbosch.com/news/?p=2966</id>
		<updated>2024-04-26T01:55:28Z</updated>
		<published>2022-11-29T00:43:44Z</published>
		<category scheme="https://marctenbosch.com/news" term="4D Toys" /><category scheme="https://marctenbosch.com/news" term="Miegakure" />
		<summary type="html"><![CDATA[You can support the development of Miegakure and related work with this Patreon I originally made for my quaternion article/video (Let&#8217;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 [&#8230;]]]></summary>

					<content type="html" xml:base="https://marctenbosch.com/news/2022/11/monthly-updates-now-on-patreon-discord-server/"><![CDATA[
<p>You can support the development of Miegakure and related work with this <a href="https://patreon.com/marctenbosch">Patreon</a> I originally made for my <a href="https://marctenbosch.com/quaternions/">quaternion article/video</a> (Let&#8217;s remove Quaternions from every 3D Engine: An Interactive Introduction to Rotors from Geometric Algebra).</p>

<center><div style="width: 100px; padding: 10px; background-color: #f86753; border-radius: 10px"><a href="https://patreon.com/marctenbosch" style="border: none;"><img decoding="async" style="margin: auto; " src="https://marctenbosch.com/top/toppatreon.png"></a></div></center>

<p>In many ways Miegakure is more than a game:</p>

<ul>
<li>It is revolutionizing how people explore scientific concepts with games</li>
<li>Its <a href="https://www.youtube.com/c/mtbdesignworks">YouTube channel</a> is an educational tool in its own right with millions of views and many thousands of subscribers</li>
<li><a href="https://marctenbosch.com/ndphysics/">Scientific research</a> developed for the game is published alongside it, etc… </li></ul>

<p>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!</p>

<p>I will also post exclusive previews of what we are working on!</p>

<p>Thank you for supporting the small team behind the game!</p>


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

<!-- center><div style="width: 100px; padding: 10px; background-color: #7289DA; border-radius: 10px"><a href="https://discord.gg/t9a9yH37hK" style="border: none;"><img decoding="async" src="https://marctenbosch.com/top/topdiscord.png"></a></div></center>

<p>I have also started a <a href="https://discord.gg/t9a9yH37hK">discord server</a>.</p --!>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>marc</name>
					</author>

		<title type="html"><![CDATA[The Klein Bottle and the 4th dimension [4D Toys v 1.7]]]></title>
		<link rel="alternate" type="text/html" href="https://marctenbosch.com/news/2021/12/4d-toys-version-1-7-klein-bottles/" />

		<id>https://marctenbosch.com/news/?p=2883</id>
		<updated>2023-09-22T15:24:25Z</updated>
		<published>2021-12-14T17:15:26Z</published>
		<category scheme="https://marctenbosch.com/news" term="4D Toys" /><category scheme="https://marctenbosch.com/news" term="Mathematics" />
		<summary type="html"><![CDATA[One of the shapes people requested the most for 4D Toys is the Klein Bottle, so I finally added it! I originally wasn&#8217;t very keen on adding the Klein Bottle for a strange reason: because it&#8217;s a 2D shape when sliced it would give thin 1D lines, which are obviously too thin to be interesting [&#8230;]]]></summary>

					<content type="html" xml:base="https://marctenbosch.com/news/2021/12/4d-toys-version-1-7-klein-bottles/"><![CDATA[
<p>One of the shapes people requested the most for 4D Toys is the Klein Bottle, so I finally added it!</p>
<center><iframe loading="lazy" title="YouTube video player" src="https://www.youtube.com/embed/N_4VaG7ZQE8" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></center>
<p>I originally wasn&#8217;t very keen on adding the Klein Bottle for a strange reason: because it&#8217;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.</p>
<p>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&#8217;t think it&#8217;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.</p>
<p>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.</p>
<p> </p>
<video style="display: inline-block;" src="https://marctenbosch.com/blogdata/videos/KleinMake.mp4" autoplay loop  width="256" height="144"></video>
<video style="display: inline-block;" src="https://marctenbosch.com/blogdata/videos/MobiusMake.mp4" autoplay loop  width="256" height="144"></video>
<p> </p>
<p>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&#8230;</p>
<p>It was obvious to me that the same construction could be done in higher dimensions to make what I call a &#8220;Spherinder Klein Bottle&#8221; which is a 3D version of the 2D Klein Bottle. Well, technically the &#8220;thickened&#8221; 2D Klein bottle in 4D Toys is also three-dimensional, but in a less interesting way since it&#8217;s just the Cartesian product of the 2D Klein Bottle with a 1D circle&#8230; Anyway, interestingly it looks almost simpler when sliced than the 2D Klein bottle.</p>
<p>Relatedly, because people have asked me before: yes there is a Klein bottle in <a href="https://miegakure.com">Miegakure</a>, and it shows up in a yet another unexpected way.</p>
<p>As always, thank you for your patience and enthusiasm!</p>
<p>By the way, I&#8217;ve decided to more seriously update the <a href="https://www.patreon.com/marctenbosch">Patreon</a> I originally made for my <a href="https://marctenbosch.com/quaternions/">quaternion article/video</a>. 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!</p>
]]></content>
		
		<link href="https://marctenbosch.com/blogdata/videos/KleinMake.mp4" rel="enclosure" length="7081084" type="video/mp4" />
<link href="https://marctenbosch.com/blogdata/videos/MobiusMake.mp4" rel="enclosure" length="5125228" type="video/mp4" />
			<link rel="replies" type="text/html" href="https://marctenbosch.com/news/2021/12/4d-toys-version-1-7-klein-bottles/#comments" thr:count="16" />
			<link rel="replies" type="application/atom+xml" href="https://marctenbosch.com/news/2021/12/4d-toys-version-1-7-klein-bottles/feed/atom/" thr:count="16" />
			<thr:total>16</thr:total>
			</entry>
		<entry>
		<author>
			<name>marc</name>
					</author>

		<title type="html"><![CDATA[Miegakure Update September 2021]]></title>
		<link rel="alternate" type="text/html" href="https://marctenbosch.com/news/2021/09/miegakure-update-september-2021/" />

		<id>https://marctenbosch.com/news/?p=2726</id>
		<updated>2021-09-08T12:43:10Z</updated>
		<published>2021-09-08T09:03:59Z</published>
		<category scheme="https://marctenbosch.com/news" term="Miegakure" />
		<summary type="html"><![CDATA[Hi, here is the update since last time! Among other things: &#8211; 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 [&#8230;]]]></summary>

					<content type="html" xml:base="https://marctenbosch.com/news/2021/09/miegakure-update-september-2021/"><![CDATA[
<figure class="wp-block-image size-large" style="width: 100%; margin: auto; margin-top: 30px"><a href="https://www.instagram.com/p/BxVj_AuFH7g/"><img decoding="async" src="https://marctenbosch.com/miegakure/data/concepti/59699250_128999614949879_8765084278068410709_n.jpg" alt=""></a></figure>



<p>Hi, here is the update since last time! Among other things:</p>



<p>&#8211; 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.</p>



<p>&#8211; 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&#8230;). I improved and added new types of procedural textures. One example is Gabor noise, which is great for anisotropic patterns.</p>



<p>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&#8230;) 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. </p>



<p>&#8211; 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.</p>



<p>&#8211; 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!</p>



<p>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 <a href="https://www.instagram.com/kellan_jett/">Kellan Jett</a>; 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.</p>



<figure class="wp-block-image size-large" style="width: 100%; margin-top: 30px;"><a href="https://www.instagram.com/p/BhPZzBqnfaT/"><img decoding="async" src="https://marctenbosch.com/miegakure/data/concepti/29737656_213547729401695_2311225754286817280_n.jpg" alt=""></a></figure>



<p>&#8211; For a fun few days break I also quickly cleaned up a mechanic that I wasn&#8217;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!</p>



<p>&#8211; We also did the final polish on many &#8220;one-off things&#8221; in the game (I shall remain vague about this for now ahah).</p>



<p>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!</p>



<p>As always, thank you for your patience and enthusiasm.</p>
]]></content>
		
					<link rel="replies" type="text/html" href="https://marctenbosch.com/news/2021/09/miegakure-update-september-2021/#comments" thr:count="65" />
			<link rel="replies" type="application/atom+xml" href="https://marctenbosch.com/news/2021/09/miegakure-update-september-2021/feed/atom/" thr:count="65" />
			<thr:total>65</thr:total>
			</entry>
		<entry>
		<author>
			<name>marc</name>
					</author>

		<title type="html"><![CDATA[SIGGRAPH 2020 talk for my technical paper: N-Dimensional Rigid Body Dynamics]]></title>
		<link rel="alternate" type="text/html" href="https://marctenbosch.com/news/2021/01/siggraph-2020-talk-for-my-technical-paper-n-dimensional-rigid-body-dynamics/" />

		<id>https://marctenbosch.com/news/?p=2625</id>
		<updated>2021-01-05T18:55:39Z</updated>
		<published>2021-01-05T18:55:38Z</published>
		<category scheme="https://marctenbosch.com/news" term="4D Toys" /><category scheme="https://marctenbosch.com/news" term="Mathematics" /><category scheme="https://marctenbosch.com/news" term="Miegakure" /><category scheme="https://marctenbosch.com/news" term="Tech" />
		<summary type="html"><![CDATA[It&#8217;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]]></summary>

					<content type="html" xml:base="https://marctenbosch.com/news/2021/01/siggraph-2020-talk-for-my-technical-paper-n-dimensional-rigid-body-dynamics/"><![CDATA[
<p><iframe loading="lazy" src="https://www.youtube.com/embed/JpxZQxXxMWY" allowfullscreen="allowfullscreen" width="650" height="365" frameborder="0"></iframe></p>



<p>It&#8217;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!</p>



<p><a href="https://marctenbosch.com/ndphysics/" data-type="URL" data-id="https://marctenbosch.com/ndphysics/">Link to the paper</a></p>
]]></content>
		
					<link rel="replies" type="text/html" href="https://marctenbosch.com/news/2021/01/siggraph-2020-talk-for-my-technical-paper-n-dimensional-rigid-body-dynamics/#comments" thr:count="6" />
			<link rel="replies" type="application/atom+xml" href="https://marctenbosch.com/news/2021/01/siggraph-2020-talk-for-my-technical-paper-n-dimensional-rigid-body-dynamics/feed/atom/" thr:count="6" />
			<thr:total>6</thr:total>
			</entry>
		<entry>
		<author>
			<name>marc</name>
					</author>

		<title type="html"><![CDATA[4D Toys Version 1.6: Wireframe Projections]]></title>
		<link rel="alternate" type="text/html" href="https://marctenbosch.com/news/2020/12/4d-toys-version-1-6-wireframe-projections/" />

		<id>https://marctenbosch.com/news/?p=2606</id>
		<updated>2020-12-15T21:30:37Z</updated>
		<published>2020-12-15T19:15:01Z</published>
		<category scheme="https://marctenbosch.com/news" term="4D Toys" />
		<summary type="html"><![CDATA[4D Toys Update (iOS) (Steam VR + Mouse &#38; 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&#8217;s an &#8220;old school&#8221; way of displaying 4D objects which you [&#8230;]]]></summary>

					<content type="html" xml:base="https://marctenbosch.com/news/2020/12/4d-toys-version-1-6-wireframe-projections/"><![CDATA[
<div class="wp-block-image"><figure class="aligncenter size-large" style="width:700px"><img decoding="async" src="https://marctenbosch.com/miegakure/data/4dtoys/wireframeprojections.png" alt=""></figure></div>



<p><a href="https://4dtoys.com/">4D Toys</a> Update (<a href="http://4dtoys.com/ios">iOS</a>) (<a href="http://4dtoys.com/steam">Steam</a> VR + Mouse &amp; Keyboard).</p>



<p>New button: <strong>Wireframe Projections</strong>.</p>



<p>When enabled, the edges of objects are projected onto the current slice.</p>



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



<p>It&#8217;s an &#8220;old school&#8221; way of displaying 4D objects which you may have seen before!</p>



<p>Try it in the 2D Levels!</p>



<p>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.</p>



<center><div style="display: inline-block; overflow: hidden; height: calc(381px - 44px);"><iframe loading="lazy" src="https://gfycat.com/ifr/incredibleelatedjabiru?controls=0" scrolling="no" width="600" height="381" frameborder="0"></iframe></div></center>



<p>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.</p>



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



<center><div style="display: inline-block; overflow: hidden; height: calc(381px - 44px);"><iframe loading="lazy" src="https://gfycat.com/ifr/fittinggiftedduckbillcat?controls=0" scrolling="no" width="600" height="381" frameborder="0"></iframe></div></center>



<p style="font-size: 13px">
Note: for simplicity each 4D toys update is now called 1.x, where x is the number of the update.</p>
]]></content>
		
					<link rel="replies" type="text/html" href="https://marctenbosch.com/news/2020/12/4d-toys-version-1-6-wireframe-projections/#comments" thr:count="18" />
			<link rel="replies" type="application/atom+xml" href="https://marctenbosch.com/news/2020/12/4d-toys-version-1-6-wireframe-projections/feed/atom/" thr:count="18" />
			<thr:total>18</thr:total>
			</entry>
		<entry>
		<author>
			<name>marc</name>
					</author>

		<title type="html"><![CDATA[Miegakure Update November 2020: art direction in 4D]]></title>
		<link rel="alternate" type="text/html" href="https://marctenbosch.com/news/2020/11/miegakure-update-november-2020-4d-art-direction/" />

		<id>https://marctenbosch.com/news/?p=2542</id>
		<updated>2020-11-11T21:54:14Z</updated>
		<published>2020-11-11T21:38:15Z</published>
		<category scheme="https://marctenbosch.com/news" term="Art" /><category scheme="https://marctenbosch.com/news" term="Miegakure" />
		<summary type="html"><![CDATA[Development on Miegakure is going well. Modeling the large buildings is very far along and will be done soon. I polished many things across the entire game. In July I recorded my SIGGRAPH 2020 Talk about my Technical Paper on n-Dimensional rigid body dynamics, and will post it publicly soon. I started working with a [&#8230;]]]></summary>

					<content type="html" xml:base="https://marctenbosch.com/news/2020/11/miegakure-update-november-2020-4d-art-direction/"><![CDATA[
<p>Development on Miegakure is going well. </p>



<p>Modeling the large buildings is very far along and will be done soon. </p>



<p>I polished many things across the entire game.</p>



<p>In July I recorded my SIGGRAPH 2020 Talk about my <a href="https://marctenbosch.com/news/2020/05/siggraph-2020-technical-paper-n-dimensional-rigid-body-dynamics/" data-type="post" data-id="2461">Technical Paper on n-Dimensional rigid body dynamics</a>, and will post it publicly soon.</p>



<p>I started working with a new artist to *really* nail down the final look of the game and environments across the whole game in a more integrated way. In the process we finally fully switched the engine to Physically Based Rendering (It was an easy switch, actually, contrary to what could be expected!)&#8230; and it makes the game look even better. </p>



<p>These were my thoughts as we nailed down the look of the game, and about how 4D space constrains our art direction in Miegakure:</p>



<p>In Miegakure we procedurally generate many 4D meshes and 3D textures. Just like 3D objects have a surface that is 2D, 4D objects have a surface that is 3D! The game also has many regular 3D meshes (with 2D textures) which are embedded in the 4D world, by giving them 4D thickness. </p>



<p>At first it might seem difficult to generate procedural 3D textures which are as detailed as 2D ones made by hand. And we need both at the same time!</p>



<p>In order to have details that aren&#8217;t noisy during transition, for a while I was using a combination of a 2D texture and a 3D texture, where the 2D texture contained more detail but was not affected by the slicing, and was just projected onto the sliced object&#8217;s surface. This was a hack, which you can see in the trailers: the high frequency detail of the texture just either slides or streches. </p>



<center><iframe loading="lazy" src="https://giphy.com/embed/589kIkTTmzY3K" width="250" height="177" frameBorder="0" class="giphy-embed" allowFullScreen></iframe></center>



<p>However too much 3D texture detail looks bad during the &#8220;transition&#8221; anyway. (The transition is what I call the time when the slice rotates 90 degrees after you press the 4D rotate button.) If the slice goes through many tiny objects as it rotates, the time each tiny object will be visible will be very short. This would look like many appearing/disappearing objects. The smaller the objects, the quicker they will be appearing/disappearing. In this video of an MRI of a fruit, the tiny seeds look noisier than the larger overall shape as the slice changes (but the colors are all grayscale and the size is still fairly big so it doesn&#8217;t look bad). So if a 3D texture has too much small detail, even if it looks good as a static 2D slice, it will look very noisy during the transition. So actually we don&#8217;t want to generate too much 3D texture detail, even if we can!</p>



<p>By the way there is a noise issue in 3D too: when the 3D camera moves over quickly changing detail it can create aliasing (a &#8220;shimmering&#8221; effect). Much of our 3D handmade content (large buildings, trees…) was already made to be less noisy in that sense. Stylized games have an easier time avoiding this problem since they often contain large flat regions of color.</p>



<p>Also, note that we can replace texture detail by geometric detail. This is part of what happened in the games industry with the transition to Physically-Based Rendering. Textures in PBR are not supposed to contain lighting/shadow information, only material information. For example, a rock texture might just be a simple gray color, and if we want actual cracks in the stone we model them as geometry (or normal maps) instead of dark lines in the texture. One of the goals of PBR is to make sure that the props will look good under many lighting conditions: for example a texture where the dark shadows are already stored in the texture (as opposed to computed using the light source) makes it harder to do that. <a href="https://marmoset.co/posts/pbr-texture-conversion/">Here is an example comparison/explanation.</a> </p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://marctenbosch.com/miegakure/data/pbrcompare.png" alt="" width="391" height="145"/><figcaption>Traditional and PBR textures</figcaption></figure></div>



<p>So it is in some sense more correct to use geometric detail instead of texture detail anyway. And most of the time it is simpler to procedurally generate geometry, so!</p>



<p>Miegakure can display more 4D geometric detail now compared to when development started. But there is obviously a similar limit for geometric detail where too much looks noisy.</p>



<p>So we can&#8217;t have too much texture/geometry detail, but on the other hand I don&#8217;t want the game to have very large flat section of colors like so many games have these days. I think it doesn&#8217;t work very well with the dioramas seen from far away, where all the visuals are condensed in a small section of the screen. I think it&#8217;s fine for the visuals to be simple if they fill a large area like the entire screen, but if they don&#8217;t then it does not give enough interesting stuff to look at.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://marctenbosch.com/miegakure/data/journey.png" alt="" width="318" height="212"/></figure></div>



<p>The slicing mechanic also forces upon the game a certain level of realism. For example the tree canopies need to look good when sliced. We could model the canopy with a small number of large flat planes to give a nice painterly/low-noise vibe. This looks good in a regular game, but not when sliced, because the inner structure of the planes is revealed. It just looks like a bunch of simple intersecting planes instead of many tiny leaves creating a canopy. So we need to model leaves more realistically, but we can always make them mostly the same color to reduce noise, as shown here:</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://marctenbosch.com/miegakure/data/treesredarch.png" alt="" width="191" height="321"/></figure></div>



<p>So to summarize: we want detail (enough to look good when sliced, and in dioramas, etc&#8230;), but not so much that it looks noisy (in the 3D and 4D sense). Compared to texture detail, geometric detail is easier to make and more correct (in the PBR sense and in how it doesn&#8217;t require 4D hacks). The final result is a combination of these constraints. It looks much more polished than before. I can&#8217;t wait to show it!</p>
]]></content>
		
					<link rel="replies" type="text/html" href="https://marctenbosch.com/news/2020/11/miegakure-update-november-2020-4d-art-direction/#comments" thr:count="26" />
			<link rel="replies" type="application/atom+xml" href="https://marctenbosch.com/news/2020/11/miegakure-update-november-2020-4d-art-direction/feed/atom/" thr:count="26" />
			<thr:total>26</thr:total>
			</entry>
		<entry>
		<author>
			<name>marc</name>
					</author>

		<title type="html"><![CDATA[4D Toys Version 1.5: Anti-Gravity, Export Mesh for 3D Printing, 4D Accelerometer]]></title>
		<link rel="alternate" type="text/html" href="https://marctenbosch.com/news/2020/08/4d-toys-version-1-2/" />

		<id>https://marctenbosch.com/news/?p=2515</id>
		<updated>2020-12-09T23:05:20Z</updated>
		<published>2020-08-19T16:57:51Z</published>
		<category scheme="https://marctenbosch.com/news" term="4D Toys" />
		<summary type="html"><![CDATA[Here is another 4D Toys Update (iOS) (Steam VR + Mouse &#38; Keyboard). It adds three buttons: Export Mesh: Exports a 3D mesh of what is currently visible on screen. These meshes can then be 3D printed, etc… (Unfortunately 4D printing is not yet available in this universe :P). Find the meshes in your Documents [&#8230;]]]></summary>

					<content type="html" xml:base="https://marctenbosch.com/news/2020/08/4d-toys-version-1-2/"><![CDATA[
<div class="wp-block-image"><figure class="aligncenter size-large" style="width:700px"><img decoding="async" src="https://marctenbosch.com/miegakure/data/4dtoys/print3d.jpg" alt=""></figure></div>



<p>Here is another <a href="https://4dtoys.com/">4D Toys</a> Update (<a href="http://4dtoys.com/ios">iOS</a>) (<a href="http://4dtoys.com/steam">Steam</a> VR + Mouse &amp; Keyboard).</p>



<p>It adds three buttons:</p>



<ul class="wp-block-list"><li><strong>Export Mesh</strong>: Exports a 3D mesh of what is currently visible on screen.<br><br>These meshes can then be 3D printed, etc… (Unfortunately 4D printing is not yet available in this universe :P).<br><br>Find the meshes in your Documents folder. (On iOS you can access it by connecting your iDevice to your computer and using Finder).<br><br>Note that Shapeways&#8217; algorithm for filling the inside of meshes sadly fails on some of the coolest meshes like the Star Polychora from the last update, since they are filled with lots of polygons on the inside (btw it&#8217;s fun to poke your head inside these meshes in VR!).</li></ul>



<ul class="wp-block-list"><li><strong>Anti-Gravity</strong>: Creates an anti-gravity field that makes objects float. Besides the obvious coolness, this allows to see rotations that are unrestricted from the constraints of the collision with the ground.<br><br></li><li><strong>4D Accelerometer</strong> (iOS only): Swaps the forward/backward direction of the accelerometer with the 4th dimension.<br><br>That is, tilting your device toward/away from you will result in a force along the 4th dimension instead.</li></ul>



<p>A new page of shapes has been added, with one new level for each button. Visiting each of these levels unlocks the corresponding buttons. Also, all special buttons are now gathered into a new menu button. This lays the groundwork for easily adding new features in future updates!</p>



<center><div style="display: inline-block; overflow: hidden; height: calc(381px - 44px);"><iframe loading="lazy" src="https://gfycat.com/ifr/whirlwindinsecureargusfish?controls=0" scrolling="no" width="600" height="381" frameborder="0"></iframe></div></center>



<p>Btw, the SIGGRAPH conference started and my talk on nD Rigid Body Dynamics is now online (I will post it publicly in a few weeks). The Q&amp;A session is on Wed Aug 26 at 9:00AM PDT!</p>
]]></content>
		
					<link rel="replies" type="text/html" href="https://marctenbosch.com/news/2020/08/4d-toys-version-1-2/#comments" thr:count="11" />
			<link rel="replies" type="application/atom+xml" href="https://marctenbosch.com/news/2020/08/4d-toys-version-1-2/feed/atom/" thr:count="11" />
			<thr:total>11</thr:total>
			</entry>
		<entry>
		<author>
			<name>marc</name>
					</author>

		<title type="html"><![CDATA[SIGGRAPH 2020 Technical Paper: N-Dimensional Rigid Body Dynamics]]></title>
		<link rel="alternate" type="text/html" href="https://marctenbosch.com/news/2020/05/siggraph-2020-technical-paper-n-dimensional-rigid-body-dynamics/" />

		<id>https://marctenbosch.com/news/?p=2461</id>
		<updated>2020-05-07T16:04:42Z</updated>
		<published>2020-05-07T16:04:42Z</published>
		<category scheme="https://marctenbosch.com/news" term="4D Toys" /><category scheme="https://marctenbosch.com/news" term="Mathematics" /><category scheme="https://marctenbosch.com/news" term="Miegakure" /><category scheme="https://marctenbosch.com/news" term="Tech" />
		<summary type="html"><![CDATA[Excited to announce that my technical paper &#8220;N-Dimensional Rigid Body Dynamics&#8221; was accepted to SIGGRAPH 2020! Very proud to present research developed for 4D Toys &#38; Miegakure at such a prestigious conference. Here is the link to the paper and the abstract: I present a formulation for Rigid Body Dynamics that is independent of the [&#8230;]]]></summary>

					<content type="html" xml:base="https://marctenbosch.com/news/2020/05/siggraph-2020-technical-paper-n-dimensional-rigid-body-dynamics/"><![CDATA[
<script type="text/x-mathjax-config">
MathJax.Hub.Config({ tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}, messageStyle: "none" });
</script>
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<style>
.inmargin { position: relative; left: calc(50% - 100px); }
</style>



<iframe loading="lazy" src="https://www.youtube.com/embed/0t4aKJuKP0Q" allowfullscreen="allowfullscreen" width="650" height="365" frameborder="0"></iframe>



<p>Excited to announce that my technical paper &#8220;<a href="http://marctenbosch.com/ndphysics">N-Dimensional Rigid Body Dynamics</a>&#8221; was accepted to <a href="https://s2020.siggraph.org/conference/program-events/technical-papers/">SIGGRAPH 2020</a>! Very proud to present research developed for <a href="http://4dtoys.com">4D Toys</a> &amp; <a href="http://miegakure.com">Miegakure</a> at such a prestigious conference.</p>



<p>Here is the <a href="https://marctenbosch.com/ndphysics/">link to the paper</a> and the abstract:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>I present a formulation for Rigid Body Dynamics that is independent of the dimension of the space. I describe the state and equations of motion of rigid bodies using geometric algebra. Using collision detection algorithms extended to nD I resolve collisions and contact between bodies. My implementation is 4D, but the techniques described here apply to any number of dimensions. I display these four-dimensional rigid bodies by taking a three-dimensional slice through them. I allow the user to manipulate these bodies in real-time.</p></blockquote>



<p>Btw I believe it is basically unheard of to have work from an indie game presented in the SIGGRAPH technical papers track?</p>



<p>The paper is full of really fun and beautiful math (obviously Geometric Algebra based, <a href="https://marctenbosch.com/quaternions">see my recent article</a>) that makes me happy. One reviewer called the work “whimsical,” and they’re not wrong, ahah.</p>



<p>Most of this work (including writing the paper) is from ~2012, but I added a section on the (4D) <a href="https://www.youtube.com/watch?v=1VPfZ_XzisU">Dzhanibekov effect</a> at the suggestion of the reviewers. Many thanks to them for helping me greatly improve the paper.</p>



<p></p>
]]></content>
		
					<link rel="replies" type="text/html" href="https://marctenbosch.com/news/2020/05/siggraph-2020-technical-paper-n-dimensional-rigid-body-dynamics/#comments" thr:count="25" />
			<link rel="replies" type="application/atom+xml" href="https://marctenbosch.com/news/2020/05/siggraph-2020-technical-paper-n-dimensional-rigid-body-dynamics/feed/atom/" thr:count="25" />
			<thr:total>25</thr:total>
			</entry>
	</feed>
