Published: Nov. 9, 2021

View of a castle in Popo

Creating a virtual reality environment typically requires those creating the environment to be well-versed in coding.

Julia Uhr, an ATLAS PhD student and researcher in the ACME Lab, has created a fun 3D visual programming language that empowers novice coders to create customized VR environments while inside those environments.

Called POPO (Pop On Pop Off), the coding language’s 3D block structure executes instructions from the top-down and from the center-out, allowing programmers to construct their code as complex, branching 3D structures, which helps them visualize the logical and spatial relationships between the code elements. 

“POPO explores how the embodied interaction of grabbing code blocks and snapping them together like Legos can emphasize the playfulness and creativity of programming,” says Uhr, who is advised by Professor Ellen Do (ATLAS Institute, computer science), Assistant Professor Daniel Leithinger (ATLAS Institute, computer science) and Ajume Wingo, associate professor of philosophy.

Users wear VR headsets and use controllers to manipulate the objects in 3D space to build the environment they desire.

To write code in POPO, users choose spheres in the virtual environment to make variables. The spheres can be combined with other shapes, such as “If” blocks and “For” loops to create instructions. The instructions can then be executed in VR by pressing a play button. Running the code adds objects, animations or interactions to the VR scene. 

“The cool thing is that you can write the exact same code in many different configurations,” Uhr says. “You can use that to make it look cool, or to organize your code in more interesting ways or to emphasize different parts of your code because looking at it from different angles shows different parts of it.”

Once these parts are put into a complex function, they form a branching shape, and the different branches can be used as other options for organizing the user’s code and building it as a visual object. 

“The goal is to make programming fun and creative and to help others learn while building VR worlds,” Uhr says.