Inspiration

We have always wanted to learn to dance, but we're pretty shy and scared of judgement or embarrassment. We figured we weren't the only one with this problem, so we wanted to make an effective way to learn dance technique on your own.

What it does

DanceAI uses an AI pose estimation model to provide instant feedback on your dancing (compared to a baseline). As a user, you can check out different tracks for different dance styles (ballet, hip hop, k-pop, etc.), and practice easy, medium, and advanced choreographies. You can also add your own choreographies for others to try. Lastly, there is a forum separated by styles of dance where you can connect with others to make the learning experience more fun.

How we built it

We built it using HTML/CSS/JS for frontend, Flask for backend, MongoDB Atlas for database, and the Python MediaPipe package for pose estimation.

Challenges we ran into

The first challenge we ran into was getting a good pose estimation model that worked on videos rather than real-time browser estimation, since we wanted to compare a user's dance to a baseline video. A second challenge was using videos without storing them locally (since they take up a lot of space), which we used the VidGear Python package and YouTube embeddings for.

Accomplishments that we're proud of

We're proud to make a fully functional site that has all the core features we planned.

What we learned

We learned a lot about different Python packages and using pose estimation on a website. We also learned about implementing a machine learning model within Flask.

What's next for DanceAI

The future steps for DanceAI involve more dance styles and lessons plans, better feedback about actual posture rather than just a score, and the ability for users to compete on each other's choreographies.

Built With

Share this project:

Updates