Inspiration
We were inspired by games such as Punchout and Wii Sports Boxing, but we wanted to remove the remove aspect and try and make it as light weight as possible.
What it does
You use your computer camera to detect your movement as well as your punches, trying to reduce your opponent to zero health before they can do the same to you.
How we built it
We used pose prediction in Python with OpenCV in order to determine what kind of punches are thrown, whether it be a jab, uppercut, or hook. The game itself was built in the Unity engine and is connected to the python code via websockets.
Challenges we ran into
The best way to accomplish our goal was to use 2 gyroscopes and an accelerometer with an ESP32, but unfortunately the hardware checkout did not have the supplies and neither did the Micro Center we drove to. We ended up making the whole thing in OpenCV instead, using Computer vision to simulate arm movements, which does also have the side effects of making our project not need any more physical hardware than our computer.
Accomplishments that we're proud of
We were proud of how quickly we were able to pivot and come up with new ideas as soon as we figured out that we could not use accelerometers as we originally planned. This was a skill that we had a problem with before, and it may have cost us a hackathon podium or two.
What we learned
We learned about pose detection and how to connect python to Unity C# while also rushing to make sure all the different parts of the projects were integrated.
What's next for Knockout
Amending the tracking system to also incorporate gyroscopes and accelerometer addons so that tracking can be more precise, and implementing multiple levels with different opponents.
Built With
- computervision
- opencv
- python
- unity
- websockets
Log in or sign up for Devpost to join the conversation.