I think almost everybody have already seen this great optical illusion.
It’s mind-blowing at first sight. Then it makes you wonder how it works. No, mirror is in fact not necessary, it just adds a little bit of miracle showing both sides at the same time. Those small pieces built in 3D printer force you to believe their top contour is planar. That’s all.
There have been several videos showing these pieces from any angle and explaining how they achieve the illusion effect. I’m going to show you how to make them, step by step. Using this tutorial you’ll be able to make your own special pieces.
OK, you need some 3D software to do it, and 3D printer if you want to hold them in your hand. I’ll use Blender 3D. It’s a great software, free and open source, with wide area of usage. In fact it’s #1 in 3D printing.
First thing: you need to define shapes to be seen from each side. I’ll use most simple shapes – square and circle. Just create them in 3D window of Blender, side by side. Just be sure both shapes have the same width to be able to mix together.
Then extrude the shapes in diagonal directions. These directions will define view angles to observe the illusion. They are orthogonal to each other. That’s why only one of the shapes will be visible.
Now comes the important part. Use boolean modifier to create intersection of extruded objects. (In my version of Blender – 2.76 – it looks like Union is doing Intersection and vice versa.) We need to create a piece where both profiles intersect.
This is the point when an imagination is required. We need to cut off all unnecessary vertices so that required shapes will remain visible from both sides. In this case we will keep horizontal (black) line of vertices and erase vertical one (orange).
The result is shown in following pictures. All three views show the same shape. As you can see, it’s square from one side and circle from other.
The rest is simple. Add some thickness to contour by extruding and scaling vertices inside and then extrude them down. Resulting model can be printed on 3D printer. I don’t have one so there are only virtual examples I made using this method.