This page covers what happens inside PoseMirror. For what it does and how to use it, go to the app itself.
▶ Open the free 3D drawing mannequinWhy it reads poses instead of letting you build them
3D drawing mannequins have been around for years, but reproducing a pose from a photo means dragging joints one at a time, and it keeps going. The author draws manga and gave up at that step more than once.
So the idea was inverted: rather than assembling a pose, read it out of the photo. If you have a reference image, the remaining work is just choosing an angle to look from.
Technology
- MediaPipe Pose (Google AI): detects 33 full-body joint landmarks from an image. It runs as WebAssembly in the browser, which is why the image never has to be uploaded anywhere. Finger joints are not part of those 33 points, so fine hand shapes cannot be reproduced.
- Unity WebGL: renders the 3D model and drives the bones, applying rotations derived from the estimated joint positions to a humanoid rig.
- C# / JavaScript: the layer converting MediaPipe coordinates into Unity bone rotations. This was the hardest part — the coordinate-system mismatch produced 180° bone twists and repeated local-vs-world rotation mistakes.
Images stay in the browser
Analysis happens entirely on your device; uploaded images are not transmitted or stored (privacy policy). The only exception is a photo that failed detection and that you choose to send; it is viewed only by the developer and deleted after 30 days. That is what makes it usable without an account.
Credits and terms of use
- Human 3D model: BodyParts3D, © The Database Center for Life Science, licensed under CC BY 4.0, adapted by Kabe-Tech. Kabe-Tech built a body that wraps the muscle and bone parts and transferred their colors onto it.
- Some preset poses: The data used in this project was obtained from mocap.cs.cmu.edu. The database was created with funding from NSF EIA-0196217.
Drawings you make while looking at the app are yours to publish or sell. Copying or redistributing the app, its human model or its pose data is not allowed. See the Terms of Use for details.