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

Share this project:

Updates