Google's 5.5MB Pose Model Runs at 60fps in the Browser, No Backend
Client-side pose estimation that runs at 60fps on a budget CPU eliminates the cost and latency of server-side inference. Any web app can now add real-time body tracking with a 5.5MB download and no backend infrastructure.
A 5.5MB model from Google's MediaPipe library performs full-body pose estimation entirely in the browser, tracking 33 keypoints across images, video files, and live webcam streams. The lite model achieves roughly 95% accuracy and runs at 60fps even on an entry-level AMD 5500 CPU, with inference taking about 25ms per frame. GPU acceleration is available through WebGL, and a toggle lets developers switch between GPU and CPU delegates to find the faster path for their hardware.
The implementation uses MediaPipe's Tasks Vision API loaded from a CDN, requiring only 10 lines of JavaScript to initialize. A requestAnimationFrame loop throttled to 50ms intervals keeps video and camera feeds smooth without saturating the main thread. The skeleton is drawn in four color-coded groups — head, spine, arms, and legs — with line widths that adapt to canvas size.
A simple heuristic using the y-coordinate gap between shoulders and hips classifies poses as standing, sitting, or lying down. The normalized coordinate output (x, y, z, and confidence score) makes the data immediately usable for downstream applications. Serving the app requires COOP and COEP headers for WASM support, shown here with a minimal Bun server.
Running pose estimation at 60fps on a budget CPU without a GPU suggests the lite model's architecture is aggressively optimized for inference speed over marginal accuracy gains.
The ability to hot-switch between GPU and CPU delegates at runtime is unusual and lets developers benchmark on actual hardware rather than guessing which path is faster.
Using a single VIDEO running mode for both still images and video simplifies the API surface considerably compared to earlier MediaPipe versions that required separate pipelines.
The standing/sitting/lying heuristic is crude but effective — a reminder that many practical pose classification tasks don't need a second model when simple geometry works.