I was lucky enough to score a Samsung Odyssey Windows Mixed Reality Headset at a good price around the end of last year. I’ve had a lot of fun playing Virtual Reality (VR) games with it, especially throughout the boredom of the coronavirus quarantine. As a creative individual, I began to question the capabilities of VR as a design medium. With a small 3D printing project idea in the back of my head, I set out to try and 3D model my vision in VR. I tried three different free applications to accomplish this goal: Kanova, Microsoft Maquette, and Google Blocks with varying degrees of success. Keep reading to learn about my project from start to finish!
I’ve always had a fascination with all sorts of mechanical puzzles, the most infamous of these being the Rubik’s Cube. I remember the first time I got the cube in my hands as a kid, I was obsessed with it and spent months attempting to solve it. By now I’ve become a pro at solving the original cube, but there are so many other shapes that I’m still working to master! In the year 2020, one can now find huge communities dedicated to solving, collecting, and creating these types of puzzles. (One of my favorite communities is TwistyPuzzles.com.)
The reason I mention all of this is that some day soon, I plan to design and 3D print my own puzzle prototypes. But this type of project is a bit of a tall order. For example, here are the insides of the original 3X3 Rubik’s Cube:
That’s a lot of pieces! With this in mind, I decided I wanted to begin this artistic endeavor by emulating a more simple, mechanical fidget-type toy that had been sitting on my desk for a while:
There isn’t really a puzzle to solve with this toy, but there is something that feels good about making different shapes with it! Additionally, it essentially consists of a repeating block shape with a hole through it’s center and ridges on it’s sides, and an elastic string through each of the blocks to hold them together. It’s a pretty simple design, and something I thought would be fun to replicate and 3D print.
But I didn’t want to sit at my computer and use boring 3D modeling software! I wanted to enter a virtual world and sculpt the shape with my hands (or controllers)! The question was… Would this be possible? The answer? Kind of.
As mentioned earlier, I worked with three different (free) VR applications that advertised giving the user the ability to create and export 3D models. Kanova was the first application I tried. Kanova describes itself as a “simple, easy to use, VR enabled, 3D sculpting application.” And I will say that it definitely does a great job of allowing the user to feel like they are actually sculpting and working with their hands. There were a multitude of tools like the chisel, that allowed me to create and subtract material in a design, but there was next to nothing by way of getting objects to snap together geometrically. This is definitely more of an application for 3D artists than, for example, an industrial designer. I’ll say that I really liked working with the mirror modifier… It was satisfying (and a bit trippy) to seamlessly make mirrored objects with one controller motion. Below you’ll see an attempt I made at creating a bicycle frame that turned into more of snail monster.
The next application I tried was Microsoft Maquette. As a UX/UI Designer, I was particularly interested in using this application because, though still in beta, my research told me that it was one of the most user-friendly options for creating virtual environments and experiences. While I marveled at the detailed and informative onboarding process, and the wonderfully intuitive groupings of tools, the biggest issue I had with Maquette was that it just wasn’t really built for designing models. While the tool is obviously leaps and bounds ahead of the competition in the way of laying out scenes with already-created 3D models, it doesn’t provide a very robust set of tools for creating your own models, or snapping models together in enough of a geometrically relevant way.
This left me to experiment with Google Blocks. Despite Google’s hunger for user data and taking over all technology platforms (a claim I can not strictly confirm), I have always loved Google products. They are usually simple, intuitive, devoid of major bugs, and free of charge (if you don’t count selling your soul). And in my experience, Blocks really held up to this experience. I wanted to create a simple geometric cube with some cuts through it, and with a decent amount of effort, I was able to achieve this.
My first efforts involved trying to create a cube and cutting through it as I mentioned above. But this wasn’t really possible, as there is an eraser tool in Blocks, but not a “negative extrude” option. Using the eraser tool on an object simply removes the whole object. So in order to make my “modified cube” design, I knew I would need to create “additively” instead of “subtractively”. I thought that perhaps creating a rectangular prism, duplicating it three times, and arranging them appropriately would get me what I wanted, but the “snap to geometry” feature (initiated by holding the trigger on your left controller) just didn’t work well with these shapes, so I ultimately scrapped this approach.
It appeared that there weren’t many options forward here. My desired model was a shape that I could have easily created using any desktop 3D modeling software. The problem I was running into with all of these applications thus far was the fact that none of them really had incredible geometry snapping abilities and most importantly they only showed units when scaling objects. It again appeared that the main focus of the applications was primarily creating 3D immersive scenes in VR, and not modeling…
But I found a loophole! In typical Google-product fashion, there was a cool feature that the other platforms hadn’t implemented well. This was the extrude feature. When I created a shape, I found I was easily able to extrude features by finite units and snap them to other geometry. And so my final plan was born. I decided to snap 27 identical cubes together to form one giant cube, remove unneeded intermediate cubes, and then extrude as needed to achieve my design.
The series of images above should give you a good understanding of my process, but if it didn’t, all you really need to know is that the process was a little convoluted and unnecessary, there were times the “snap to geometry” features still didn’t work right at first, and the final model was a little janky because it was actually an amalgamation of several smaller models… But I made it work! And I have to say that there was something magical about shaping something in VR. It felt almost as if I was doing a wood-working project or some other form of applied art as opposed to just moving my mouse around on a desk. I was able to handle the model and move my body dynamically around it in space. It was exactly what I was looking for in this experience, and a whole lot of fun!
Exporting this model was a breeze, though Google requires that you first save the model to it’s 3D object sharing platform called Poly. After downloading my model from Poly, I was able to simply drag it into Cura, duplicate it a few times, and begin setting up my 3D print. To my surprise, there weren’t any issues with the model being incomplete or errant due to being created from multiple extruded cubes.
Viewing the gcode simulation in Repetier-Host identified that the cubes I made may not have been perfectly shaped. In the image below you can see some slightly uneven textures on the tops of the cubes. But at this point, I figured “close enough”.
I set up the printer and let it go for a couple of hours. No real issues here other than an initial hot end clog that I quickly fixed with patience and choice expletives.
Removing the support material in certain places was difficult for a lot of these pieces, but it was nothing pliers couldn’t solve. From here, I started feeding a rubber band through the cubes.
And voilà! My creation was finished. As I hoped, the twisty toy worked just as well as it’s wooden counterparts!
So… can you model simple geometrically-tight things for free in VR? Yeah! Is there a widely-available and developed app that makes this extremely simple yet? Maybe not.
In the meantime I’m going to keep experimenting with Google Blocks and keeping up with features they add. I’m really interested in seeing what new things VR will have to offer in the way of design software. I expect UX/UI design to play a huge role in what will make or break these types of applications in the future. Imagine the feature-rich Solidworks for example being implemented fully in VR. It’s something that I think will require a deep understanding of the primary features of the application, and an outstanding onboarding process. Here’s to the future!