August 20, 2019
One of the main goals of the Yale Blended Reality project—perhaps even the major driver—is to make virtual reality (VR) more approachable to people outside of the computer sciences.
It’s clear that faculty advisor and artist Justin Berry has made this his mission statement.
Verb Collective—which he created with recent graduate Bobby Berry (no relation)—aims to give people with little or no coding experience the ability to easily create VR experiences. They did this by creating a modular set of simple scripts based on meaningful interactions or verbs such as push, open, grow, shrink or walk. Users simply paste the scripts directly into Unity—a VR gaming engine—tweak some preset variables and publish instantly to see the results. The idea is that someone can literally create a new experience on day one.
In a way, Justin and Bobby have created an open source low-code development platform directly in Unity. Each script is comprised of no more than 30 lines of code and can be easily tweaked through a series of variations. For example, a user can edit a single line of code to make a two-foot by two-foot cube expand to four feet by four feet in three seconds when a user types ‘k’ on the keyboard. Or it can expand to eight feet by eight feet in seven seconds when the user presses the trigger. And the coding process takes just a few seconds.
So far, Justin and Bobby have created 25 scripts with the aim of creating 25 more by the end of the summer. At that point, they hope to upload Verb Collective to the Unity Asset Store where other users can upload and publish additional scripts—creating an open source library of different actions that anyone can use.
Learn to Code by Creating Code
More than just a coding shortcut, Justin sees Verb Collective as a teaching tool. The simple way that the scripts are written and the way that users can tweak each line and see immediate results makes it easy to learn what each line of code does. Justin hopes that these non-coders build upon this beginner framework and eventually become seasoned Unity developers.
“I learned to code by Googling, and I think that’s true for most people,” explains Justin. “I’d just search for something I needed, cut and pasted it into Unity and tweaked it until it did what I wanted. Often, I didn’t even know what I changed to make it work. It was really just a shot in the dark.”
Now, Justin hopes that the simple snippets of code that he created can help people really learn what each line does and how to change it to make it do the desired action.
Recently, Justin and Bobby achieved a significant breakthrough by figuring out how to more easily build actions on top of actions—or triggered actions as Justin calls it. For example, the two-foot by two-foot cube referenced below can now be made to grow and move across the virtual room. Or, more practically, a user can make a door open when a button is pressed. This is important because of the complex process required to code triggered actions from scratch in Unity.
An experience that Justin created using Verb Collective shows just how simple making a VR experience can be. Putting on the headset transforms you to a virtual music studio where you can pick up and drop orbs in the path of a series of fast-moving panels. As the panels pass through the orbs, a chime resonates through the room. Put together a string of notes, and you’re able to compose a beat or run. The whole thing took him less than an hour to code.
Justin introduced Verb Collective in a class that he taught last semester called 3D Modeling for Creative Practice where students were required to make virtual rooms with triggered objects like the button opens a door example above. Justin estimates that only a third of the class had any practical coding experience—yet, everyone was able to create a wholly new experience in Unity.
“Ultimately, this isn’t about the language of code. It’s about just trying to make stuff, new experiences, VR worlds,” Justin explained. “You learn to paint by painting. You should be able to learn how to make VR experiences by making VR experiences.”