RTMW3D
Real-Time 3D Body Pose Estimation (Multi Person)
RUN
RTMW3D
RTMW3D is a real-time multi-person 3D whole-body pose estimation pipeline running entirely in the browser via ONNX Runtime Web. It uses two ONNX models:
- RTMDet-s — a fast person detector (~3 MB) that locates bounding boxes for each person in the frame.
- RTMW3D-x — a whole-body 3D pose model (~369 MB, cached after first download) that estimates 133 keypoints per person and outputs root-relative 3D coordinates.
Up to 4 people can be tracked simultaneously. Each person is assigned a distinct color in both the 2D overlay and the 3D view. The 3D view is interactive — drag to rotate, scroll to zoom.
Pipeline
- Each video frame is letterboxed to 640×640 and fed to RTMDet-s to detect people.
- Each detected bounding box is cropped and padded to 288×384 (model aspect ratio) and fed to RTMW3D-x.
- The model outputs SimCC probability distributions for X, Y, and Z. Argmax decoding gives pixel-space XY and root-relative depth Z.
- Keypoints are back-projected to image space (2D overlay) and converted to metric coordinates (3D view).
Model info
| Property | Value |
|---|---|
| Detector | RTMDet-s |
| Pose model | RTMW3D-x (OpenMMLab) |
| Keypoints displayed | 17 body (COCO subset of 133 wholebody) |
| 3D coordinate system | Root-relative metres, Y-up |
| Max people | 4 simultaneously |
| Runtime | WebGPU (preferred) → WASM fallback |
| Model size | RTMDet-s ~3 MB · RTMW3D-x ~369 MB (browser-cached) |
CSV output columns
One row per person per frame. Columns:
frame— zero-indexed frame numbertimestamp— Unix ms timestamptag— manual tag valueperson— 1-indexed person ID- Per keypoint:
_x,_y(image pixels),_x3d,_y3d,_z3d(metres, root-relative),_score(0–1 confidence)
17 COCO body keypoints
nose · left_eye · right_eye · left_ear · right_ear · left_shoulder · right_shoulder · left_elbow · right_elbow · left_wrist · right_wrist · left_hip · right_hip · left_knee · right_knee · left_ankle · right_ankle
Source
Models: OpenMMLab RTMPose · ONNX weights: Soykaf/RTMW3D-x on HuggingFace