We were extremely interested in virtual reality hardware and software, and wanted to make a reasonably challenging project with them. Upon finding out that MLH provided Oculus Rifts, we decided do something that we felt would be both interesting and a learning experience - Ping Pong.

What it does

Using the Leap a Leap Motion Sensor attached to the front of an oculus rift, the player is able to control two hands, one holding a ping pong paddle, the other used for serving and getting the ball, in order to play Ping Pong.

How we built it

We decided to create a remote control using an Arduino board and some accelerometers, and promptly got to work. However, we soon realized these accelerometers had too low of a sample read to provide accurate enough movements to the Unity game. After realizing there was nothing we could do, we reworked our project from the ground up using a Leap Motion Sensor and using controller free gesture control instead. We used Leap Motion's Orion Beta SDK to integrate Leap Motion with Unity. In addition, we used Unity's built in 3D Physics engine, as well as Visual Studio to edit some of the code

Accomplishments that we're proud of

Setting up the input between the Unity program and the Leap Motion Sensor proved to be quite challenging, especially getting it to work accurately enough. However, we realized that it would work when binding the ping pong paddle with the palm object in the hand using a fixed joint. Additionally, we're proud of the textures that we created using Unity. Even though they were quite basic, no one on our team had extensive experience with Unity as well as C#. Finally, we're proud of getting the Oculus Rift to actually work on our setup, as our video card outputs were not optimal.

What we learned

First of all, we learned not to reach our hands too far when using the Rift, as the monitor was knocked off the table.

What's next for Pongulus

A more polished user interface, as well as better improvements in physics as well as added content are all thing that could be added in the future

Share this project: