Jump to content

Students sync up their dance team’s moves with an app that provides real-time video analysis

Frustrated with not being able to master their dance routines, students at the University of California, Berkeley created an application to provide real-time feedback. Their app, SyncUp—which provides side-by-side video analysis of choreographer and dancer movements—has potential for use in fitness, healthcare, and other fields.

If there’s one thing freshmen Avinash Jain and Joe Zou love almost as much as computer science (CS), it’s dance. So they were thrilled to join the University of California, Berkeley’s AFX Dance group in September 2018.

“Joining a college dance team was both exhilarating and tiring,” Jain says. “We had a flurry of new songs and pieces to practice. No matter how much effort we put in, it was incredibly difficult to accurately identify what specific moves we were performing wrong, and how we compared to the actual choreographer teaching the piece.” That gave Jain and Zou an idea.

They teamed up with fellow computer science students and dance enthusiasts Andi Gu and Nikhil Mandava. The four began developing an application to help dancers see exactly what moves were out of sync with the choreography and how they could improve them.

“We wanted to create a web platform where users could upload and view their own video and compare it side-by-side with their choreographer’s video,” Jain says. “We needed a server to host and render our entire web platform, a database for users to upload, store, and access video files, [and to] manage the users’ videos and compare them post-processing for easy analysis. In both of these scenarios, we came to Google Cloud to see what products we could use like Firebase Realtime Database, Cloud Storage, and App Engine.”

Using a body detection library for real-time multi-person keypoint detection, they began developing algorithms to analyze dancers’ movements. A few weeks later, they debuted their SyncUp app at the Bay Area collegiate hackathon Cal Hacks 5.0 in November 2018.

“Google Cloud is our go-to tool for our hackathon projects. So thinking about our content storage and back end for SyncUp, we chose Google Cloud and its products.”

Joe Zou, student, University of California, Berkeley

Scaling up the dance app

Longtime friends Jain and Zou had used Google Cloud to build hackathon projects in high school, including a grocery store app to map a shopper’s fastest route through the aisles. “Google Cloud is our go-to tool for our hackathon projects,” Zou says. “So thinking about our server storage and back end for SyncUp, we chose Google Cloud and its products.”

The students appreciate Google Cloud for its ease of use and suite of tools. They worked with Firebase, a comprehensive mobile and web application development platform, and Cloud Firestore, a flexible and scalable NoSQL cloud database. “Firestore encourages a bit more unstructured data,” Jain says. “And that proved to be really helpful for us simply because of the nature of the data we store.” They chose to use Cloud Storage to stream and store SyncUp's large video files.

“Hosting our app required quite a lot of computational power, and a lot of the hosting solutions [available] simply couldn't scale up fast enough,” Andi Gu says. “If we had more than five users simultaneously, our server would become extremely slow. We needed to find a hosting platform that provided the resources to scale up easily. That’s when we found App Engine. Google Cloud provided a comprehensive suite of tools that united all our resources in one platform. That helped resolve a lot of the challenges we faced developing SyncUp.”

Google Cloud provided the powerful tools and storage they needed to build a highly scalable app on a fully managed serverless platform. Google Cloud's Education Credits program allowed the students try Google Cloud at no cost and without a credit card.

“Google Cloud provided a comprehensive suite of tools that united all our resources in one platform. That helped resolve a lot of the challenges we faced developing SyncUp.”

Andi Gu, student, University of California, Berkeley

Collaborating on next steps

The students placed third overall at Cal Hacks and won a Best Use of Google Cloud prize. They were also accepted into Berkeley Skydeck, the university’s prestigious startup accelerator. To help them move SyncUp forward, Google Developer Programs Engineer Nick Felker provided support as the team’s volunteer technical mentor.

Felker guided them on how to use some of Google Cloud’s latest technologies. “Nick helped us understand how we can use brand new technologies such as Google Cloud TPUs (tensor processing units) or up-and-coming AI (artificial intelligence) and ML (machine learning) techniques inside of our application,” Jain says.

As the young entrepreneurs work on taking SyncUp to the next level, they rely on Google Workspace’s collaboration and productivity tools to stay connected. “We use Google Docs, Google Sheets, and Google Drive for our planning and documentation,” Gu says. “Our whole architecture was developed in Google Docs.” They also use Google Meet to meet virtually when they can’t all be in the same place at the same time.

Kicking off beta testing

In spring 2019, the students began beta testing SyncUp with 20 AFX Dance team members. “Our app encourages meaningful, rigorous practice through comparative analysis,” Zou says. “The dancers really seem to enjoy the side-by-side videos. Our algorithms quantify the similarities between the two postures—the choreographer and the dancer—so dancers can understand their mistakes and learn how to fix them.” The app also gives dancers the power to improve their technique and train independently, without taking up class and instructor time.

The team believes SyncUp could be used in other disciplines that teach repetitive movements, such as yoga, martial arts, and physical therapy. They’ve reached out to dozens of West Coast studios and clinics, enrolling select groups in their next wave of development and testing.

To other students considering Google Cloud to build something, Jain offers this advice: “Start small. Think of one Google Cloud tool, one API, or one database you want to try. Then slowly add on from there.” Like dancing, take it step by step. Adds Jain, “I would honestly say the sky’s the limit when it comes to Google Cloud.”

Sign up here for updates, insights, resources, and more.