Press / Wallpaper Auto Cycle



Check out this interview with Jonathan Blow on Giant Bomb because

1) The Witness is going to be awesome!

2) At the end of the interview (47:00 time mark), Jonathan is asked:

What was the last game you played that you feel “This has something”.

Jonathan responds with Miegakure and Manifold Garden! He says “it feels like a game that really knows what it wants to do” and “just goes straight there and doesn’t mess around with other things”.

Wow! Incredibly honored!


If you can read French, IndieMag wrote about Manifold Garden!


Très franchement, nous sommes particulièrement emballés par ce jeu aux “géométries impossibles” et soyez certains d’être les premiers informés dès la mention d’une date de sortie pour ce Manifold Garden !

Merci beaucoup IndieMag!

Manifold Garden Wallpaper Auto-Cycle

Ever wanted to automatically fetch and cycle through Manifold Garden images for your wallpaper? Now you can!

Thanks to @pkqk, there’s now a shell script to automatically fetch images from the Manifold Garden tumblr page and cycle through them as your wallpaper.



Line Drawer, Tree Generator, and Video Game Art Gallery

Long overdue update. Been super busy lately. Let’s get to the good stuff.

Line Drawer

Finally got the line drawer tool working.

Having to place each line as a separate prefab and making sure it was oriented the right way, in the right order in the hierarchy etc, was just a massive pain. Glad I don’t have to do that anymore.

Using the line drawer, the line that is formed is just a single mesh. It’s actually pretty similar to the way water is drawn in the game as well. The entire waterfall is one single mesh that’s redrawn every frame.

To use the line drawer, I just have to place down a series of markers:


At each point of the marker, there is a visual peg that helps me see the orientation. This was mainly for debugging purposes when I was first writing the code, just to make sure that the orientation of each marker was correct.

The red arrow is the forward direction of the marker. The white arrow is the right direction. The blue cube is the position of the right vertex and the yellow cube is the position of the yellow vertex.

The tool keeps a list of each marker as it’s placed, and uses their position to calculate whether a bend is right or left and sets the vertices accordingly. For example, if bending to the right, that means the right vertex will be on the inside corner, while the left vertex is on the outside corner.

There’s a bit of list gymnastics with this, where you have to wait until the next marker is placed down before you can set all the info on the current marker. For example, let’s say we’re on marker #5. We don’t know whether marker #5 bends to the right or to the left, or upwards or downwards, until marker #6 is placed. So only after #6 is placed, can we use that info to send the bend on #5.

As you can see, we can also change the normal of the different markers and the tool adjusts accordingly:


Tree Generator


Still working on this, but we’re almost there.

David started the tool and got a lot of the basics in place.

Instead of using matrices passing them from parent to child to handle translation and rotation, he set it up so that it’s using the world coordinates to do position offset and deciding which faces to extrude. As such, there is actually no rotation going on.

The key to the tree generator is that it needs to fill in a defined space. I’ll be designing level, and there’ll be a 15 x 30 x 20 volume of space for a tree that goes in. The generator needs to create a tree that fills that. It can be smaller but no bigger.

This is why it doesn’t make sense to use only a pre-made set of trees. We don’t get enough variations for all the different sizes that we need.



The way the algorithm works is using “trunk paths”. A “trunk path” is a single line of vertical and horizontal tree pieces. The further along the trunk path is, the higher the likelihood of a “split”. Once a split happens, we get either 2 or 3 new trunk paths.

The beginning of trunk paths are color coded yellow. Vertical trunk paths are dark blue. Horizontal trunk paths are light blue.

Branches start out as red, and are pink or white, depending on vertical or horizontal.

The end of the branch should always go up and is color coded black.

I need to add a raycast system so branches don’t grow into each other. To prevent tree parts from growing back onto themselves, we use lists to keep track of the direction and then make sure new pieces don’t grow in the direction of the inverse of the last two horizontal directions.

Video Game Art Gallery – Exhibition Opening

Video Game Art Gallery exhibited a number of prints I had made with Manifold Garden two weeks ago.

It was part of the Chicago Architecture Biennial, and was supported by the Graham Foundation.

The opening was on Friday, October 16th. Here are some photos from the event:

ManifoldGarden_VGA_01 ManifoldGarden_VGA_02 ManifoldGarden_VGA_03 ManifoldGarden_VGA_04 ManifoldGarden_VGA_05 ManifoldGarden_VGA_06 ManifoldGarden_VGA_07 ManifoldGarden_VGA_08

Line Drawer Tool Basic UI

Got a lot done today on the tool.

It now works from within an editor window instead of needing a script on an object.

I also have rectangles that project on the geometry which shows where are the areas to place subsequent markers.

The brush itself also changes color to show you where you can place the next marker.


Started working on mesh generation. It’s actually pretty much the exact same system that we’re doing for water mesh generation, so I’m starting by copying that over.

It’s a little less complicated, so I’ll be deleting a bunch of stuff I don’t need to clean it up and go from there.

Should have basic line mesh generation done by tomorrow.

Line Drawer Tool Continued

Made good progress on the line drawer tool today.

Mostly this consisted of ripping out the relevant parts I needed from the asset I got, and deleting everything else. I also had to made it work slightly differently. Basically, I needed to apply to every object in the scene (at least the geometry), and not just the one that I have selected.

I now have it where I can raycast from my mouse cursor in the scene view, and place a box on whatever geometry is right beneath the cursor.


The red box is the geometry I’ve placed.

The black circle bullseye thing is my “paintbrush” that lets me know I’m in this mode.

I need to make red boxes align to grid, and then create a mesh based on the red box position and order.

First Day of Unity Tools Programming

Long day of diving into Unity editor scripting. Not as productive as I would have liked, but finally getting somewhere by the end.

It’s been so long since I’ve had a whole day where I just focused on coding.

While I don’t particularly enjoy programming, it felt great to get back into that mindset again.

The mix of constant frustration and the joy/relief when you finally get something working.


So basically, I’m trying to write a tool that will let me make these lines easily:


At the moment, each line is made up a bunch of segments that I place individually, and it is a massive pain in the butt.

I’m going to be making a lot of these lines, so it’s best I main the process as painless as possible.

Lots of weird things about editor scripts in Unity, like the scene view not updating until I click on the inspector (uggghhh!)

I managed to get the blue lines to follow my cursor around in the scene view:


Eventually, I got a asset from the asset store that does mesh painting. It’s not exactly what I need, but it has a feature that would be really useful.

I’m starting to go through the code to extract to relevant stuff I need, and then will build the tool from there.