Inspiration
We wanted to bring movement, expression, and social connection back into tech. Dance is one of the most joyful ways to stay active—but most online tools either lack feedback or feel isolating. We envisioned something playful, skill-based, and interactive: a way to challenge your friends to dance battles from anywhere, using AI to track your moves.
What it does
AI Dance Battle is a real-time, multiplayer dance battle web app. Two players join a shared session and dance along to the same reference video. Using computer vision and media pipe for pose estimation, we compare their movements in real-time. Cosine similarity scoring lets us determine who matched the choreography best. Players get immediate visual and numeric feedback, and a winner is declared.
How we built it
Frontend: Built with React.js. Includes a responsive split-screen layout for video feeds, scoring, and reference choreography.
Backend: FastAPI powers real-time communication.
Pose Detection: MediaPipe is used to extract 3D body landmarks from each frame.
Similarity Scoring: We use cosine similarity between normalized pose vectors for smooth, frame-by-frame accuracy.
Challenges we ran into
GitHub & Repo Bloat: Early versions had large media files and even nested Git repos. We fixed this with .gitignore rules and repo cleanup.
Similarity Score Calibration: We fine-tuned vector comparisons and tested edge cases to improve the feedback system.
Multiplayer with WebRTC: Integrating and deploying WebRTC was a major hurdle—peer connection stability, signaling, and syncing with WebSockets required deep coordination between frontend and backend. We had to pivot and implement our multiplayer with a different approach.
Accomplishments that we're proud of
Built a full-stack, real-time dance battle experience in just 24 hours.
Integrated pose estimation, video streaming, and scoring into a smooth workflow.
Developed a platform that actually made us want to keep testing, because it was genuinely fun.
What we learned
How to integrate computer vision with real-time multiplayer functionality.
The importance of robust data structures when working with pose vectors and scoring logic.
How synchronization and performance tuning are critical in live, peer-to-peer applications.
That making people move can be a surprising UX superpower.
What's next for AI Dance Battle
Custom dance uploads: Allow users to upload any dance or song as the reference.
Profiles & Leaderboards: Build a competitive, connected dance community.
Skill Levels: Offer a wide range of challenging and practice choreography to develop the skills of users.
Built With
- fastapi
- javascript
- mediapipe
- opencv
- python
- react
Log in or sign up for Devpost to join the conversation.