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鈥檚 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.听

鈥淧OPO 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 鈥淚f鈥 blocks and 鈥淔or鈥 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.听

鈥淭he cool thing is that you can write the exact same code in many different configurations,鈥 Uhr says. 鈥淵ou 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鈥檚 code and building it as a visual object.听

鈥淭he goal is to make programming fun and creative and to help others learn while building VR worlds,鈥 Uhr says.