PoseDance: Build a TikTok Trainer

Rate this content
Bookmark

Do you scroll through TikTok, amazed at the goofy, yet complicated dance moves featuring today's youths? Those kids are popping off while you're sitting around, coding SQL queries. Fortunately, we are technologists, and there's no problem we can't solve, including getting better at TikTok dancing. In this talk, I'll show you how I perfected my moves building PoseDance, your friendly TikTok trainer. We'll discuss how I leveraged PoseNet, which allows you to pinpoint body motion and draw a 'skeleton' on a video. Combined with a webcam mapping your own dance skeleton, a bit of math to compare the matching points, Azure functions to authenticate a user, and PlayFab as a game-friendly backend to keep scores and create a leaderboard, you've got the perfect quarantine pastime, making a perfect fool of yourself in front of a webcam. Come dance with me!

This talk has been presented at JSNation Live 2020, check out the latest edition of this JavaScript Conference.

FAQ

PoseDance is a TikTok trainer app created by Jen Looper. It uses PoseNet and the Canvas API to help users dance as well as popular TikTok dancers by comparing their movements to a TikTok video.

PoseDance was created by Jen Looper, a Cloud Advocate Lead at Microsoft.

PoseDance utilizes PoseNet for pose detection, TensorFlow.js for machine learning, and the Canvas API to draw skeletons on video frames.

PoseNet uses TensorFlow.js to detect 17 key body points in real-time from images or videos. It constructs a skeleton by estimating the positions of these key points.

PoseNet can be used for sports analysis, yoga pose correction, and any application requiring pose detection in images or videos.

PoseDance was designed to be inclusive by featuring differently-abled dancers. The app does not make judgments but measures and displays key body points.

PoseDance compares the positions of key body points from the user's webcam feed to those in a TikTok video. The difference in positions is used to calculate a score.

Challenges include handling large machine learning models, ensuring responsiveness, and managing asynchronous calls to load models, webcam feed, and videos.

You can visit aka.ms/posedance to use the app and access its source code on GitHub.

Yes, contributions are welcome. You can send pull requests to the PoseDance GitHub repository, which is linked from the app's main page.

Jen Looper
Jen Looper
31 min
18 Jun, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
PoseDance is a TikTok trainer app that uses PoseNet for real-time pose detection. It leverages TensorFlow.js to analyze 17 key body points and draw skeletons on videos. The app integrates with Azure Functions and PlayFab for backend management and scoring. PoseNet's capabilities make it suitable for various applications such as sports, yoga, and even medical uses. The app is designed to be inclusive, considering differently-abled dancers. Building PoseDance involved handling large models, webcam integration, and ensuring responsive design. The scoring system, which currently has performance issues, may be reworked to improve accuracy and speed.

1. Introduction to PoseDance and TikTok

Short description:

Hi everyone, in this part, I'll be introducing PoseDance, a TikTok trainer app. We'll discuss the idea of building a skeleton using the Canvas API and video to improve your dancing skills. I'm Jen Looper, a Cloud Advocate Lead at Microsoft, and I'll also cover what TikTok is, delve into PoseNet, explain its inner workings, and share insights on how I built PoseDance. Stay tuned for an exciting demo!

Hi everyone, I'm so excited to be here to speak to you today about a very interesting app that I've created. It's called PoseDance and what it is is it's a TikTok trainer. So we're going to talk a little bit about PoseDance, the idea of building a skeleton, using the Canvas API and video to allow yourself to dance just as well as those awesome kids that we are all wasting time watching on TikTok.

My name's Jen Looper, you can always find me on Twitter at Jen Looper and I'm a Cloud Advocate Lead at Microsoft. So the agenda today is to talk a little bit about what TikTok is, we're going to talk about PoseNet, we're going to dig a little bit deeper into what is running behind the scenes in PoseNet and how it was built. We're going to talk a little bit about how I built PoseDance and then I'm going to do a demo for you, you're going to love it.

2. Introduction to TikTok

Short description:

TikTok is a popular mobile app that evolved from Musical.ly. It's known for short videos, particularly dances. Despite being a waste of time, it's incredibly fun. Stay tuned for more information and resources about TikTok.

Okay, so what is TikTok? If you're not up to date on what TikTok is, it is the greatest mobile app currently in the market, just to let you know. It's based on Musical.ly, which was a little app that was released a couple years ago to have the kids do music videos and it evolved into TikTok, which is for some, you know, because of this evolution from Musical.ly I feel like it's very amenable to people dancing on this app. It is a complete waste of time, but it is also very, very fun. It's a lot like Vine, which was little short videos, the videos on TikTok are about a minute each, but you can patch a bunch of little videos together to get to that 60 second limit and it's famous for dances and I'm going to share this slide deck later, you can find me on Twitter and I'll share the link out and there's a lot of little articles referenced in these slides that you can take a look at of how I spent a week on TikTok and only lost a week on TikTok. All right.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

From Code to Scale! Build a Static Web App in Minutes
JSNation Live 2020JSNation Live 2020
31 min
From Code to Scale! Build a Static Web App in Minutes
The Talk discusses the development of web applications and the challenges involved, such as code management, CI/CD, routing, security, and scalability. It explores the use of Azure Static Web Apps for building and deploying static web apps with features like authorization, authentication, and serverless technology. The process of creating a static web app on Azure Portal is demonstrated, along with resource creation, deployment, and custom domain setup. The Talk also covers API deployment, authentication, authorization, and role-based access control. Azure Static Web Apps is highlighted as a globally distributed solution for building web apps.

Workshops on related topic

Going on an adventure with Nuxt 3, Motion UI and Azure
JSNation 2022JSNation 2022
141 min
Going on an adventure with Nuxt 3, Motion UI and Azure
WorkshopFree
Melanie de Leeuw
Melanie de Leeuw
We love easily created and deployed web applications! So, let’s see what a very current tech stack like Nuxt 3, Motion UI and Azure Static Web Apps can do for us. It could very well be a golden trio in modern day web development. Or it could be a fire pit of bugs and errors. Either way it will be a learning adventure for us all. Nuxt 3 has been released just a few months ago, and we cannot wait any longer to explore its new features like its acceptance of Vue 3 and the Nitro Engine. We add a bit of pizzazz to our application with the Sass library Motion UI, because static design is out, and animations are in again.Our driving power of the stack will be Azure. Azure static web apps are new, close to production and a nifty and quick way for developers to deploy their websites. So of course, we must try this out.With some sprinkled Azure Functions on top, we will explore what web development in 2022 can do.
Azure Static Web Apps (SWA) with Azure DevOps
DevOps.js Conf 2022DevOps.js Conf 2022
13 min
Azure Static Web Apps (SWA) with Azure DevOps
WorkshopFree
Juarez Barbosa Junior
Juarez Barbosa Junior
Azure Static Web Apps were launched earlier in 2021, and out of the box, they could integrate your existing repository and deploy your Static Web App from Azure DevOps. This workshop demonstrates how to publish an Azure Static Web App with Azure DevOps.
How to develop, build, and deploy Node.js microservices with Pulumi and Azure DevOps
DevOps.js Conf 2022DevOps.js Conf 2022
163 min
How to develop, build, and deploy Node.js microservices with Pulumi and Azure DevOps
Workshop
Alex Korzhikov
Andrew Reddikh
2 authors
The workshop gives a practical perspective of key principles needed to develop, build, and maintain a set of microservices in the Node.js stack. It covers specifics of creating isolated TypeScript services using the monorepo approach with lerna and yarn workspaces. The workshop includes an overview and a live exercise to create cloud environment with Pulumi framework and Azure services. The sessions fits the best developers who want to learn and practice build and deploy techniques using Azure stack and Pulumi for Node.js.
Introduction to Machine Learning on the Cloud
ML conf EU 2020ML conf EU 2020
146 min
Introduction to Machine Learning on the Cloud
Workshop
Dmitry Soshnikov
Dmitry Soshnikov
This workshop will be both a gentle introduction to Machine Learning, and a practical exercise of using the cloud to train simple and not-so-simple machine learning models. We will start with using Automatic ML to train the model to predict survival on Titanic, and then move to more complex machine learning tasks such as hyperparameter optimization and scheduling series of experiments on the compute cluster. Finally, I will show how Azure Machine Learning can be used to generate artificial paintings using Generative Adversarial Networks, and how to train language question-answering model on COVID papers to answer COVID-related questions.
Publishing, Automating and Monitoring your JS App on Azure
React Summit Remote Edition 2021React Summit Remote Edition 2021
138 min
Publishing, Automating and Monitoring your JS App on Azure
Workshop
Suzanne Daniels
Nick Trogh
2 authors
In this workshop you're going to deploy a JS app to our Azure Services. Obviously, we don't want to do this manually, so you're going to use GitHub actions to streamline this experience. Now that our App is on Azure, we want to make sure that we're aware of crashes and performance issues, so we'll add some App Insights in the mix. During the workshop, we'll show some cool features you could leverage!