Jive 🎶🕺

Inspiration

As we were leaving Garba, we thought it would be so nice if we could dance to Bollywood music all the time especially since we had been apart from our family for so long. We thought, what better way to do that than create a Just Dance-esque interface where you are able to choose a song that you want and play a game in a matter of seconds? It can be our way of staying connected or even feeling that home away from home!


What it does

Jive is a browser-based dance game powered by real-time pose estimation. Players can:

  • Upload a video or dance with their webcam
  • See live skeleton overlays of their movements
  • Get scored on accuracy, timing, and style

How we built it

  • Pose tracking: TensorFlow.js + MediaPipe for real-time skeleton/keypoint detection
  • Scoring: Custom similarity engine (cosine mapping, joint distances, angle metrics, smoothing)
  • Frontend: React + Next.js for the game UI

Challenges

  • Running pose estimation smoothly in-browser
  • Normalizing movements across different camera positions
  • Aligning vector overlays with dancers across video contexts
  • Dependency conflicts between React, MediaPipe, and TensorFlow
  • Balancing accuracy with low-latency real-time performance

Accomplishments

  • Built a working dance game that scores players in real time
  • Created a custom pose similarity engine blending multiple metrics
  • Developed live hints that actually help dancers improve mid-game
  • Got everything running entirely in-browser with no special hardware

What we learned

  • Combining ML pose estimation with vector math for real-time scoring
  • Importance of smoothing + normalization for consistent results
  • Deep troubleshooting of npm dependency/version conflicts

What’s next

  • Multiplayer dance battles
  • Auto-generated choreography for any song
  • Community platform for sharing dance challenges
  • Optimized mobile browser support so you can play anywhere
Share this project:

Updates