SAM 3D Body (3DB) is a promptable foundation model designed for single-image full-body 3D Human Mesh Recovery (HMR). Developed by Meta Superintelligence Labs, it demonstrates state-of-the-art performance with strong generalization capabilities and consistent accuracy across diverse, in-the-wild conditions. It forms one part of the broader SAM 3D framework, which provides unified tools for object and human mesh reconstruction.
Code, datasets, and model checkpoints are publicly available in the official Hugging Face repository.
SAM 3D Body estimates the complete human pose—including the body, feet, and hands—from a single input image. It addresses the accuracy bottlenecks of traditional HMR tools by decoupling skeletal movements from surface shapes.
Key traits of SAM 3D Body:
The model uses a unified encoder-decoder setup paired with specialized auxiliary blocks. It can be initialized with heavy-duty backbones like DINOv3-H+ (840M parameters) or ViT-H (631M parameters) and supports integration with standard detectors (like ViTdet or SAM3) alongside FOV models (such as MoGe2) to refine real-world camera alignments.
The system architecture relies on two key functional components:
SAM 3D Body is intended for:
Limitations:
To get started, follow the environment initialization guidelines inside INSTALL.md to secure proper Python paths and checkpoint verification.
# Download weights from HuggingFace to a local directory
hf download facebook/sam-3d-body-dinov3 --local-dir checkpoints/sam-3d-body-dinov3
# Execute standard inference using default ViTdet detector and MoGe2 FOV configuration
python demo.py \
--image_folder <path_to_images> \
--output_folder <path_to_output> \
--checkpoint_path ./checkpoints/sam-3d-body-dinov3/model.ckpt \
--mhr_path ./checkpoints/sam-3d-body-dinov3/assets/mhr_model.pt
# Alternative run utilizing SAM3 as the primary detection alignment layer
python demo.py \
--image_folder <path_to_images> \
--output_folder <path_to_output> \
--checkpoint_path ./checkpoints/sam-3d-body-dinov3/model.ckpt \
--mhr_path ./checkpoints/sam-3d-body-dinov3/assets/mhr_model.pt \
--detector_name sam3
import cv2
import numpy as np
from notebook.utils import setup_sam_3d_body
from tools.vis_utils import visualize_sample_together
# Initialize the 3DB estimator layer
estimator = setup_sam_3d_body(hf_repo_id="facebook/sam-3d-body-dinov3")
# Load and convert the target image frame
img_bgr = cv2.imread("path/to/image.jpg")
img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB)
outputs = estimator.process_one_image(img_rgb)
# Generate visual overlay and write out to storage
rend_img = visualize_sample_together(img_bgr, outputs, estimator.faces)
cv2.imwrite("output.jpg", rend_img.astype(np.uint8))
@article{yang2026sam3dbody,
title={SAM 3D Body: Robust Full-Body Human Mesh Recovery},
author={Yang, Xitong and Kukreja, Devansh and Pinkus, Don and Sagar, Anushka and Fan, Taosha and Park, Jinhyung and Shin, Soyong and Cao, Jinkun and Liu, Jiawei and Ugrinovic, Nicolas and Feiszli, Matt and Malik, Jitendra and Dollar, Piotr and Kitani, Kris},
journal={arXiv preprint arXiv:2602.15989},
year={2026}
}