PoseDance - Perfect your Dance Moves with a friendly TikTok Trainer!
Welcome to PoseDance!
PoseDance is your friendly TikTok trainer. It uses embedded videos downloaded from TikTok with PoseNet running on top, enabling the drawing of a 'skeleton' as each frame of a video is analyzed. Match your webcam's output to the video and get a high score!
This project is built using Vue.js with PoseNet installed as an npm package. This allows use of the TensorFlow-built models to be used via TensorFlow.js in the web app. It also makes the app PRETTY BIG, especially as you need to analyze two models, one for the video from TikTok, and one for your webcam.
For its backend it also uses PlayFab, a great PAAS for games. Register and login to record your high score!
It's hosted on Azure Static Web Sites, a nice way to host your static web apps and SPAS like this one.
Learn about the codebase
This repo has a Code Tour! What's a Code Tour, you ask? It's a neat little Visual Studio Code extension that, if installed locally, will allow you to view the code tour that I created to step through the code. Install that extension in VS Code and give it a try! Dance with us here: https://wonderful-ocean-007be220f.1.azurestaticapps.net/
Watch a video explanation of the technology behind the silliness.
Download a PowerPoint presentation on this project here.
Behind the Scenes
Learn more about PoseNet here.
Where can I learn more about TensorFlow.js?
Does TensorFlow.js support GPU?
There's a TFJS webgpu backend library you can try here.
What about WASM?
There's a new TFJS WASM backend as well!
cd app && npm install
Compiles and hot-reloads for development
npm run serve
Compiles and minifies for production
npm run build
Lints and fixes files
npm run lint