Inspiration

Our birds have severe stage fright! They are secret disco fanatics, but they are too shy to perform while a human is watching them. We wanted to create an experience where the only way to see the "show" is to stop looking.

What it does

  • The app uses a webcam to monitor the user’s eyes in real-time.
  • Eyes Open: The birds are frozen in their "idle" pose because they are too nervous to dance.
  • Eyes Closed/Blinking: The birds finally feel safe! They start dancing to disco music.
  • The Reveal: As soon as you open your eyes, a record scratch plays, the music stops, and the birds immediately freeze back into their shy poses.

How we built it

As beginners with no prior experience in Pygame, OpenCV, or MediaPipe, we learned to combine these tools to track facial landmarks. We used MediaPipe to calculate the "Eye Aspect Ratio" (EAR) to tell if the user's eyes are open or shut.

Challenges we ran into

The most significant technical hurdle was dependency management. We encountered several conflicts between the latest versions of MediaPipe and our graphics libraries. We had to spend time troubleshooting environment errors and ultimately downgraded to earlier library versions to ensure a stable "handshake" between the webcam feed and the Pygame display.

Additionally, fine-tuning the blink detection was a major challenge. We had to account for different lighting conditions and head positions to ensure the EAR threshold (0.22) was sensitive enough to catch a quick blink but stable enough not to trigger the disco accidentally while the user was just looking around.

Accomplishments that we're proud of

We are incredibly proud of the fact that we went from zero knowledge of computer vision or these libraries to a fully functional, interactive application in less than 24 hours. Building a project that responds to biological signals felt like magic to us.

What we learned

We learned the fundamentals of Python and how to implement professional-grade computer vision libraries. We also finally mastered the art of saving and exiting Vim!

What's next for Bird Watching

We plan to add more characters with unique personalities and expand the interactivity. We want players to be able to "interact" with the shy birds even when they are frozen—such as picking them up, flicking them, or performing a "pepper spray" gesture in front of the camera to make the birds sneeze while they are trying to stay still!

Built With

Share this project:

Updates