← Back
WB-WaM

WB-WaM/WB-WAM-Official

WB-WAM: Heterogeneous Body–Hand Pre-training for Humanoid Loco-Manipulation.

View on GitHub ↗https://wb-wam.github.io/ ↗
Stars
31
Forks
1
Watchers
31
Open issues
0
Contributors
1
Language
Python
License
Apache License 2.0
Default branch
main
Created Sep 25, 2026Updated Sep 26, 2026

Star growth

Today—
This week—
This month—

Star history will appear here once this repo has been tracked for a couple of days.

README

WB-WAM

Heterogeneous Body–Hand Pre-training for Humanoid Loco-Manipulation

Project Page arXiv Hugging Face Models & Datasets

English · 中文

WB-WAM paper teaser: three-stage training and real-robot tasks

Overview

WB-WAM is a world-action model for whole-body humanoid loco-manipulation. Through pre-training on heterogeneous data, intermediate training with PICO motion transfer, and robot-task post-training, it brings body, root, and dexterous-hand supervision into a unified action space and jointly learns visual dynamics and whole-body actions. During real-robot deployment, SONIC executes the body and root references, while hand targets control the dexterous hands directly. This repository provides training, data collection, Unitree G1 deployment, and HumanoidArena evaluation.

Real-robot hardware support: The released deployment supports only a Unitree G1 equipped with Wuji Hands and the G1 2-DOF camera head module (RealSense D455); other hand or camera configurations are not supported.

Wuji–G1 mounting adapter: download the STL model for the hand-to-robot connector.

Models: pre-train and mid-train · HumanoidArena post-train. Download selected checkpoints with scripts/download_models.py.

Datasets: Pico · Self-Collected.

PICO egocentric data collection and processing: Pico-Ego-Collector provides recording import, episode annotation, G1 retargeting, and LeRobot v3 export.

WB-WAM pipeline: heterogeneous pre-training, PICO intermediate training, robot post-training, video and action prediction, and real-robot control

Component Description
Training Intermediate training on PICO data and post-training on self-collected and HumanoidArena data.
Real-robot deployment Load a WB-WAM checkpoint and control the robot through SONIC.
Data collection SONIC/PICO or Humanoid-GPT; convert collected episodes into training data.
HumanoidArena evaluation Evaluate post-trained checkpoints in simulation.

Installation

Environment setup with an AI agent

Want an AI agent to set up environments, download selected assets, or prepare deployment? Give it the agent setup guide. It will follow your selected workflow, ask only the missing questions in short steps, and confirm downloads when needed.

The agent can configure and verify both the PC and robot environments, including installation, downloads, configuration files, Wuji left/right identification, camera and head-servo setup, and dry-run checks. After the intended live operation is authorized and the on-site operator is ready, it can also start, monitor and stop hand/body controllers, policies and data collection. You handle physical connections, wearable devices and the two independent hand-side observations.

Copy the prompt for the environment you need into your AI agent:

Please follow docs/agent_setup.md and help me set up the WB-WAM training environment.
Please follow docs/agent_setup.md and help me set up the WB-WAM real-robot deployment environment.
Please follow docs/agent_setup.md and help me set up the WB-WAM data collection environment.
Please follow docs/agent_setup.md and help me set up the HumanoidArena evaluation environment.

Shared WB-WAM environment for training and evaluation

Run the following commands from the repository root. Training and the WB-WAM policy server for HumanoidArena evaluation share one Python 3.10 conda environment. The Isaac simulator still requires a separate environment, as described in the evaluation guide.

conda create -n wbwam python=3.10
conda activate wbwam
python -m pip install --upgrade pip
python -m pip install torch==2.7.1+cu128 torchvision==0.22.1+cu128 \
  --extra-index-url https://download.pytorch.org/whl/cu128
python -m pip install -e ./training

Training also needs the system FFmpeg shared libraries for video decoding. On Ubuntu, install them if needed:

sudo apt-get update
sudo apt-get install -y ffmpeg

Set inference_python in benchmark/humanoidarena/runtime.local.yaml to this environment's bin/python. For datasets, pre-trained weights, and training commands, see the training guide. For simulator setup, assets, and evaluation commands, see the HumanoidArena guide.

Environments for real-robot deployment and collection

The real-robot WB-WAM policy and SONIC collector do not share the conda environment above or each other's environment:

Process Environment Setup
Real-robot WB-WAM policy bridge/.venv-wam bridge/scripts/setup_env.sh
SONIC/PICO collection and teleoperation .venv_teleop scripts/env/setup_envs.sh teleop
Robot-side camera and hand services Separate robot-side environment See deployment or SONIC collection

Humanoid-GPT collection also needs a separate controller environment.

Safety disclaimer

Anyone deploying or running this project’s code must have adequate safety awareness and be fully capable of controlling the robot and stopping it promptly in an emergency. The authors and maintainers of this project accept no responsibility for any personal injury or property damage resulting from deployment or use of this code.