One of our team members runs a program, Girls Make Apps, for young girls to learn how to code. For beginners, being able to visualize code is incredibly helpful. MIT Scratch, one of the most popular visual programming languages used to teach computer science to children, was what we based our project's infrastructure around. While Scratch is 2-dimensional, we were able to take the concept and add a third dimension to it by using virtual reality.
What it does
Given a menu of action and control blocks, the user can choose and move around their blocks to create a program that animates a certain sprite.
How we built it
We used Unity to set up the VR environment and wrote scripts in C# to build the backend of the application. Our current platform is the HTC Vive, so the user interacts with the environment using the hand controllers, which we take input from and use to manipulate the cubes.
Challenges we ran into
Our decision to come to this hackathon was quite last minute–we drove down to Maryland from New York and arrived at the end of the first day so we did not have much time to work on our project (we also fell asleep for seven hours in the middle of writing code...). The setup for our Vive took a couple of hours, as we didn't have stands for the base stations and had to create our own using cardboard boxes and duct tape. We had never made a full Vive application before, so it was difficult to get used to the idiosyncrasies of the device and understand how to properly integrate it with Unity.
Accomplishments that we're proud of
We're proud of just being able to create a working application for the Vive in the short amount of time we had.
What we learned
While hackathons are good opportunities for being able to try out new technologies, we learned we should have prepared our hackathon idea plan beforehand so we would actually have a logical path of where to take our project and not get caught up in the semantics but focus more on building the foundations of our prototype.
What's next for Code Cubes
In the future, we hope to add more functionality to our program. We have a limited set of cubes now to keep the UI uncluttered, but in an upcoming redesign, we will be able to organize the menu in a certain way to allow for increased capabilities.