A motion capture studio setup that cost $100,000 a decade ago now runs at 30+ frames per second inside a browser tab, using nothing more than a $50 webcam. LiteRT.js-Mocap, a new open-source project by developer andrisgauracs, proves exactly how far browser-based AI inference has come. At 24 GitHub stars as of this writing and with just a single npm install && npm run dev command, the project delivers real-time human pose estimation that would have required a specialized lab with multi-camera rigs and marker suits just five years ago.
What LiteRT.js-Mocap Does
LiteRT.js-Mocap is an open-source browser application that captures real-time human pose data from a standard webcam feed and uses it to drive a rigged 3D character on screen. The entire pipeline webcam capture, AI inference, pose retargeting, and 3D rendering runs locally on the user's machine. No server uploads, no cloud API calls, no recurring subscription fees.
The workflow is straightforward. The webcam feed feeds into a MediaPipe BlazePose full model (33 keypoints, roughly 6 MB) running on Google's LiteRT.js runtime, which outputs landmark positions for every major joint in the body. Those landmark coordinates are then converted into bone rotations through a custom retargeting algorithm and applied frame by frame to a Three.js 3D character. Users see a live split-screen view: their webcam feed beside the animated character, with a real-time HUD showing FPS, inference latency in milliseconds, and the current acceleration backend (WebGPU or CPU).
Installation is minimalist by design. Clone the repository, run npm install, then npm run dev and visit http://localhost:5173. The model file, LiteRT Wasm runtime, and two example 3D characters ship with the repository and work offline after the initial install. No API keys, no cloud accounts, no third-party services.
Under the Hood: BlazePose Meets Three.js
The project is built across three cleanly separated layers. At the inference layer, Google's LiteRT.js runtime loads the BlazePose full model (Apache-2.0 licensed) and runs it using either WebGPU or CPU (XNNPACK/Wasm) acceleration. Users can switch backends at runtime from a dropdown in the top bar. The difference is visible instantly: roughly 7 milliseconds per inference on WebGPU versus roughly 25 milliseconds on CPU, tested on an Apple Silicon MacBook. The app detects missing WebGPU support automatically and falls back to CPU with a visible notice, so it works on any modern browser.
At the retargeting layer, the genuinely hard engineering lives. BlazePose outputs landmark positions, but a 3D rig needs bone rotations. The retargeting math solves this by computing the live direction of each body segment shoulder to elbow, hip to knee, spine segment to spine segment in the relevant bone's parent space. It then applies the shortest-arc rotation from the bind-pose direction to the live-pose direction, preserving the rig's built-in twist. The pelvis and chest receive full orientation bases using hip line crossed with spine and shoulder line crossed with spine, which is what drives the character to lean, turn, and rotate naturally. The solver runs strictly parents before children so every bone sees its parent's already-updated rotation before computing its own.
Three additional features stand out. First, the partial-framing support: if only the upper body is visible in frame, leg landmarks are extrapolated with low visibility scores, and each leg is gated using smoothed knee and ankle visibility with hysteresis. The HUD shows the current tracking mode (FULL BODY, PARTIAL, or UPPER BODY). Second, a mirror toggle applies true mathematical reflection x-flip combined with left/right landmark swap so the character mirrors the user's movements. Third, session recording and export to both JSON and BVH formats is built in, meaning captured motion data can be imported into Blender, Maya, or other 3D applications via standard motion capture import workflows.
Users can also swap in their own 3D characters. Dropping a GLB file into the characters directory and adding a bone-mapping entry to a single configuration file is all that is required. No changes to the retargeting code are needed. The project ships with two characters: RobotExpressive.glb (a fun IK-style rig) and Xbot.glb (a standard Mixamo humanoid), both from the official three.js examples repository under MIT license.
Why This Matters for Founders
The cost curve for computer vision has collapsed faster than most founders realize. What required multi-camera studio setups, Vicon marker suits, and dedicated GPU workstations a decade ago now runs in a standard browser tab on a laptop. This has direct, practical implications across several startup categories.
Fitness technology is the most obvious application. Instead of building an iOS or Android app that requires a phone mount, smartwatch, or dedicated camera hardware, a fitness startup can now deliver real-time form tracking for weightlifting, yoga, pilates, or physical therapy entirely through a browser. No installation friction. No app store approval. No data leaving the device. The user opens a URL, grants camera access, and gets immediate feedback on their squat depth, shoulder alignment, or spinal curvature.
Gesture-based UI control becomes accessible without purchasing a Leap Motion controller or relying on cloud-based gesture recognition APIs. Accessibility tools that let users with mobility challenges control applications through head or torso movements can be built as a single web page. Game input for indie developers who want to use their own body as a game controller no longer requires a mocap suit rental or studio booking.
The privacy architecture is also worth highlighting. Every video frame stays on the device. No biometric data is transmitted to any server. In an era where regulators in Hawaii, the EU, and multiple US states are passing laws specifically restricting how biometric data can be collected and processed, the local-first approach is not just a technical choice it is a regulatory advantage. Products built on this stack face fewer compliance burdens than those that send webcam data to a cloud endpoint for processing.
The project also serves as a benchmark for what browser-based AI can handle. With WebGPU inference at 7 milliseconds per frame, the bottleneck is no longer the model it is the webcam capture rate and the rendering loop. That means developers building on this stack have headroom for additional processing: gesture classifiers, activity recognition models, or multi-person tracking could all be layered on without dropping below real-time performance.
Who This Is For
LiteRT.js-Mocap is relevant for three distinct audiences. First, web developers who want a hands-on introduction to browser-based AI inference with real-time video. The codebase is clean, well-organized, and the two key files the LiteRT.js integration in src/pose/detector.js and the retargeting math in src/retarget/retarget.js are heavily commented as educational artifacts. It is one of the best practical examples available of the complete pipeline from webcam capture to AI inference to 3D rendering, all in the browser.
Second, indie founders building health, fitness, or accessibility applications who want to prototype motion-based features without a hardware budget. The project demonstrates what is possible with free tooling and a standard webcam, and the code can be forked and adapted for specific use cases without starting from scratch.
Third, game developers and animators who want an affordable, zero-friction way to capture motion data for 3D character animation at home. The BVH export feature means captured motion data can be brought into Blender or other 3D applications for cleanup, refinement, and reuse. At effectively zero marginal cost per capture, this opens up motion data as a resource for indie game development in the same way that free 3D model repositories opened up asset creation.
The project is fresh its first commit was July 17, 2026 and at 24 stars, its community is just forming. But it represents a milestone worth tracking: the moment when real-time human pose estimation became a npm install away. For any application that benefits from understanding human movement, the barrier to entry just dropped from a PhD in computer vision to basic proficiency in JavaScript.

