Earlier this year I began a focused exploration into creating an experience in VR for creating and manipulating objects with the purpose of developing virtual (paper) prototypes. Originally, the plan was to create an application heavily inspired by currently existing VR prototyping apps like ShapesXR. The logic being that using a market tested version of what we hope to create for Penn State would be a good springboard into tailoring our application to better fit our needs.
And we weren’t wrong. I learned a lot from using ShapesXR and recreating some of the core functionality. Zac and I talked a lot about what I had been working on and what we liked and didn’t like about the functionality present in ShapesXR, and came to a pretty succinct conclusion.
We Want the Features, Not the Foundation
ShapesXR has a lot of good features we would be happy to adapt into our application, but its core systems aren’t precise enough for what we want people to be able to create. And this is something core to any VR experience. Humans are naturally fidgety creatures, we are not precise on our own or without experience. Add to that a headset and controllers whose weights we constantly have to counterbalance, and you’ve got an imprecise environment for creating what are supposed to be precise prototypes.
So for our prototyping application, how do we introduce this precision while maintaining the sense of scale and presence in VR? Well, after talking about it for a while Zac has two different systems in mind. And while he’ll tackle one way, he’s left the other way for me to think outside the box, or should I say, outside the block…
It’s Time to Craft Some Mines!
Well, not exactly. See, Minecraft uses a 3D graphical concept known as Voxels to store data specific to its world. Voxels have a lot of interesting properties, but the one we’re most concerned with for our exploration is their precision. Similar to pixels, a system knows where a voxel is based on its neighboring voxels, so their position in space is always relative. So when you place a block in Minecraft, its always perfectly align with its neighboring voxels. This is a really helpful work around to the imprecise nature of VR. By sacrificing a bit of player autonomy in object placement, we’re able to give them much more control and precision during the prototyping process.
There was just one problem. I didn’t know how to make Minecraft in VR! Luckily, Zac had done a bit of research and found b3agz’s Code a Game Like Minecraft In Unity Series which I’ve been watching and learning a ton of techniques and concepts related to voxel generation and management. There’s going to be a lot of editing done on my part to make these concepts work for our team, but so far the results have been promising. And when I’ve got a more concrete demonstration I’ll post an update, but for now I’ll leave you with a video showing the first rough draft of this version of the prototyping application: