Practical overview
When it fits
Use it when a development workflow needs image-based 3D body reconstruction or when video-derived pose data must be exported as BVH or MPEG ARF. Choose CUDA for video workflows approaching real time; CPU-compatible models are available for single-image or low-frequency use.
Who it is for
- Developers building image-based 3D pose-estimation tools in C++.
- Motion-capture and animation workflows that need per-person BVH output from video.
- Researchers or developers who need body-and-hand keypoints, mesh data or avatar animation exports.
Documented uses
- Estimate 3D body pose and camera translation for people in an image.
- Export body and hand keypoints, including CSV output.
- Generate multi-person BVH motion-capture files from video.
- Package skeleton, skinning, mesh and animation data in MPEG ARF output.
Requirements & limits
The repository is public and identified as MIT-licensed.
- The standard BF16 backbone and decoder require a CUDA GPU; CPU use requires separate FP32 and FP16 model files.
- The documented CPU performance makes video processing impractical, while single-image or low-frequency processing is described as feasible.
- Windows is documented as headless-only: CLI and offline BVH extraction are supported, but the live OpenGL overlay viewer is not built.
- The project offers distinct output choices: BVH for motion-capture skeleton data and MPEG ARF for data that also carries mesh and skinning information.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Build the engine and prepare its models
Set up the C++ binaries and model files using the documented setup script.
Before you start
- A cloned Sam3Dbody Cpp repository
- A CUDA-capable GPU for the standard BF16 models, or CPU-compatible models selected with the CPU setup options
Steps
Clone the repository and change into its directory.
Run the command below to download models, build the C++ binaries and create a Python virtual environment.
bash scripts/setup.shFor a machine without a CUDA GPU, run the command below to obtain CPU-runnable backbone and decoder models.
bash scripts/setup.sh --cpu-only --cpu-backbone
Expected outcome
The setup script prepares the documented binaries and model files; the CPU option selects the separate FP32 backbone and FP16 decoder.
Guide limitations
- The standard BF16 backbone and decoder do not load with the ONNX Runtime CPU execution provider.
- The documentation says CPU video processing is impractical because inference is slow; CUDA is required for use approaching real time.
Export multi-person video as BVH
Use the documented video wrapper and BVH option to produce motion-capture files per detected person.
Before you start
- A built project with the required models available
- A video clip to process
Steps
From the repository root, run
./scripts/video.sh --from clip.mp4 --bvh ./p.bvh --headless.Use the generated per-person BVH files in Blender, BVHTester or another DCC application.
Expected outcome
The documented example produces files such as `p_0.bvh` and `p_1.bvh`, with identities tracked across frames.
Guide limitations
- The example assumes the build and model setup are already complete.
- The live OpenGL overlay viewer is not built on Windows; the documentation identifies offline BVH output as an option there.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 13 October 2026
- Original website title
- AmmarkoV/SAM3DBody-cpp · Official homepage title · retained in its source language

