Inspiration

Dance training is often inconsistent and inefficient. Feedback can be limited or delayed, especially in large groups, making it hard for dancers to know exactly what to improve. At the same time, stretching and recovery are frequently overlooked, leading to soreness and preventable injuries.

There’s a clear gap: dancers need more accessible, personalized guidance, and instructors need better tools to support every individual effectively.

What it does

We combine built-in stretching and injury-prevention routines with AI-powered motion and expression analysis to give dancers clear accuracy scores and pinpoint exactly where they differ from the choreography. Instead of guessing, dancers get immediate, objective feedback they can act on.

How we built it

We began with a broad vision and collaborated through a shared document to refine our ideas. From there, we developed user personas and sketched key design concepts on a whiteboard, with selected colors and fonts. We then created our final designs using Canva. With the design finalized, we moved into implementation using Xcode and Swift. We also used Claude to help with development. For our chatbot and feedback features, we integrated the Gemini API to deliver personalized insights and accuracy analysis. To build the stretching module, we researched genre-specific routines and used ChatGPT to generate stylistic images. Finally, we designed our logo, produced a pitch video, and recorded a live demo by connecting the app preview to a mobile device.

Challenges we ran into

Generating the API key was very challenging, since it required purchasing the paid tier to access Gemini 2.5 Flash and also led to repetitive testing and debugging. First, we attempted to use the free tier, but were faced with a 429 RESOURCE_EXHAUSTED error. We then ran into a series of model compatibility issues. Once we had the right model, we hit a new issue where the API responses were being cut off and were formatted weirdly on the application. Repeated testing during debugging also caused us to hit rate limits on our own account, so we had to strategically space out test runs and use a secondary API key. We were able to overcome these issues by splitting them up and debugging together over time.

Accomplishments that we're proud of

We are especially proud that the accuracy scoring powered by the Gemini API is fully functional. We’re also happy with the user experience of the stretching feature. As dancers, we understand the need for both general stretching and targeted muscle work, and we intentionally designed this feature with those real user needs in mind.

What we learned

We gained hands-on experience working with the Gemini API and learned that APIs can be applied in far more ways than just building a simple chatbot. This process also taught us how to take a project from ideation to a functional prototype under a high pressure environment. Along the way, we strengthened our teamwork, learning how to collaborate effectively and leverage each of our individual strengths.

What's next for Veya

We plan to continue developing Veya over the summer into a fully functional application that we can implement within our own dance team. Our next steps include building a complete login system and creating a structured roster with role-based access. This will allow different members like choreographers access specialized features like uploading videos to the gallery and assigning tasks through a notifications system. We would also like to spend time further refining our accuracy system by creating a model ourselves instead of using the GeminiAPI. Along with these technical improvements, we will continue working on our business model and reach out to possible users and studios for testing.

Built With

Share this project:

Updates