Blockly aims to teach computer programming via a gamified setting in virtual reality.
In each level,
users have a target 3D structure (e.g., a castle),
and they need to exactly recreate the structure by creating a program that generates it.
By working through levels of increasing difficulty,
users gradually learn core concepts in programming,
such as variables, loops, and functions.
Most importantly,
users learn how to break down complex technical tasks into smaller, more manageable subtasks.
When users have finished our tutorial and now know how to program in Blockly,
they can then use Blockly to explore the world of generative art in VR on their own.
We have designed Blockly to use a gesture-based language for constructing programs.
The goal of the design for this language is to make programming in it feel natural and fun.
Check out our project pitch and final demo videos below:
Meet the team that's making it happen
Yuma Tou
Erik Hoberg
Logan Weber
Sea-Eun Lee
5th Year Master's Student
5th Year Master's Student
5th Year Master's Student studying programming languages
Merging was a struggle, but we finished integrating all of our separate changes and made sure they worked together. There were a few things left to connect components (ie. getting looping to work, clicking the UI popups, adding verification for whether or not the user completed the level in the intended way). We also redid the UI and added deletion of blocks. We created a presentation for class on Tuesday and created a Spatial room for Thursday’s lecture.
Yuma: Updated puzzle verification upon level completion to make sure that the user created a module for levels that require creating a module. Added backend code to support deletion (when the user uses the emit gesture at a position where there already is a block, it will delete the block).
Sea-Eun: Redid the UI related to levels and tutorials and moved it to the Blockly scene so that it could be seen in the Quest.
Logan: Decorated Blockly with temple assets. Implemented pinch interaction for UI. Exported models from Blockly into Spatial room.
Erik: Merged looping code with master branch. Added the logic to loop the user’s currently selected module. Looked into integrating pinching with the module UI and merging UI components into the Blockly scene, but ultimately failed.
Plan for next week
Prepare for the final presentation and demo day together.
No individual breakdowns for this week - everyone will be practicing their portions of the presentation and coming together for a dry rehearsal!