We found that two of our group members would be taking their driving test soon, and we had each completed the MLH Ethical Hacking survey, which featured a question relating to autonomous cars. These sparked our idea to create something to help young drivers make ethical decisions on the road as well as test their reflexes. For example, how should they react if they had to swerve into another lane, or if their brakes suddenly jammed? We felt this was relevant in today's society as auto companies are moving towards autonomous driving, and many feel that these crucial decisions shouldn't be left for algorithms to decide. It would be important for drivers to make these decisions on the road, and we felt that training them would make for much safer roads.
What it does
Driving in Motion is a 3D car driving game that uses the Leap Motion sensor in order to detect the user's hand motions. They hold their hands as if they were holding a steering wheel and steer the car on screen. They use this technology to navigate through multiple different scenarios, such as the ones mentioned earlier. Our program can be run on any laptop and only requires a laptop and a Leap Motion, making it a portable experience as well.
How we built it
We decided to access the Leap Motion data using their Java API. We then programmed our own algorithm that determined the angle that the player's imaginary steering wheel was at. Then, we wrote this number to a file stored in the project. After that, we accessed this data in Unity and used it to drive the car.
Challenges we ran into
We had a lot of struggles during this hackathon. The Leap Motion sensor often disconnected and didn't get accurate readings, which was quite frustrating. Due to this, our code didn't always work properly, despite our logic being correct. Not having any prior experience in C# and Unity was also quite a struggle since no mentors specialized in these fields.
Accomplishments that we are proud of
We are proud that we came out with a working product using brand new technologies, after 24 hours on only 2 hours of sleep each.
What we learned
None of us had any experience in Unity or in using Leap Motion, so we all learned how to use these technologies. We also learned how to work better as a team to work on different aspects of the project and to bring all the parts together.
What's next for Driving in Motion
We definitely want to fix any inaccuracies that may occur with the Leap Motion. Although we didn't have the time to implement it, we had planned on creating an algorithm that compared previous states of the Leap Motion sensor in order to compensate for smudges. We would also like to add more scenarios to the game, as well as different modes.