Before we started working on the project, we knew we wanted to work with a Leap Motion. Once we had gotten one, we had trouble thinking of what to do with it. We knew we wanted something that could utilize the Leap Motion's unique capability for learning. Ultimately we decided to bring a new way of learning to the classroom using the Leap Motion for modeling chemical structures.
What it does
Our app has two components: a game written in Unity using the Leap Motion, and a website using Heroku. When a student does a task in the game, it submits that data to the server which then updates the website, showing that student's progress in real time.
How we built it
The teacher-facing web page was built on Heroku using Flask and Bootstrap for the front-end. The student-facing component was made using Unity, Leap Motion SDK, and custom-built 3D models.
Challenges we ran into
One of the challenges was getting data from the Leap Motion game to the web-page. Particularly, the sending of images was challenging. We ending up solving this by using base-64 encoding for the images. While the data was on the server, another challenge proved to be updating the web page in real-time. We attempted to solve this using WebSockets, but that proved another challenge in itself.
Accomplishments that we're proud of
Despite the troubles with networking, we think the end result is really impressive. We're mostly proud of making an app that is able to easily transport data between multiple different platforms in real-time.
What we learned
For all of us, we were working in environments outside of our comfort zone. All of us came away from this having learned a lot more about networking. The Leap Motion itself was also a first for all of us; working with it was a lot of fun.
What's next for Iodine Monoxide
Currently, our app supports only lessons made in Unity. A key feature that our app could use is a more extensible interface for the teacher to make lessons from the web page without ever having to touch Unity.