YOCO: You Only Calibrate Once!

Fast Mocap Calibration for Dexterous Teleoperation, CoRL 2026

Yu Zhang, Yunqi Li, Yushi Du, Yi Ma, Yanchao Yang

Paper | Code | Website | Collection

YOCO generates a session-specific LoRA adapter from four paired hand poses in one forward pass, without test-time fine-tuning. One pretrained YOCO checkpoint supports normal inference and evaluation of both Tables 1 and 2.

Pretrained Models

Directory Model Pairs LoRA Rank
yoco/ YOCO, DiT depth 4, eight flow steps 4 32
frozen_estimator/ Required frozen estimator / MANO canonicalizer - -

Each directory contains model.pth, config.yaml, and norm_stats.pkl. Keep all three files together. Only load trusted checkpoints: the bundle includes pickle-based files. The saved architecture and normalization must not be changed.

Get Started

Install uv, then:

git clone --branch release/yoco-website https://github.com/Franklin-Zhang0/YOCO.git
cd YOCO
uv sync --frozen --extra cpu

The locked environment targets Linux x86_64 and Python 3.10. For the CUDA 12.4 dependency profile, replace --extra cpu with --extra cu124 on every uv command. See the repository's environment guide.

Obtain licensed MANO_LEFT.pkl and MANO_RIGHT.pkl separately and set their absolute directory. The model and dataset files are publicly downloadable; the collection is private for now. Authentication is optional for file downloads:

export MANO_PATH=/absolute/path/to/mano_models
uv run --frozen --extra cpu python scripts/download_reproduction_assets.py --models-only

The downloader uses immutable Hub revisions and validates file sizes and SHA256 hashes. The release manifest defines the checkpoint and dataset identities. No MANO model files are included.

Use The Model

from calibration_net.yoco import YOCO

model = YOCO.from_pretrained(
    "assets/models/yoco",
    canonicalizer_dir="assets/models/frozen_estimator",
    side="right",
    device="cpu",
)
model.calibrate(raw_pairs, target_pairs)
result = model.predict(raw_frames)
theta, joints = result.theta, result.joints

Both calibration arrays have shape (4, 21, 3) and contain matching raw/reference poses in meters, using MANO's 21-joint order. raw_frames is (21, 3) or (N, 21, 3). Outputs are 45 MANO pose angles in radians and 21 wrist-local, palm-aligned joints in meters. Optional betas sets the hand shape. Recalibrating starts an independent session; ordinary inference disables conditioning dropout. ROS and a robot URDF are not required.

For an NPZ containing raw_pairs, target_pairs, and raw_frames:

uv run --frozen --extra cpu python scripts/run_yoco.py --input observations.npz --output predictions.npz

The inference guide documents joint conventions, output shapes, and a complete released-data example.

Paper Evaluation

Use scripts/reproduce_paper.py, which runs all three seeds and verifies saved predictions automatically. The reproduction guide defines the prepared datasets, historical conditioning, cohorts, and metrics.

YOCO is verified against the release reference values for the selected conditioning mode. CPU legacy conditioning matches Table 2's rounded MPJPE (17.75 mm), not every value in the published row. Baselines use the paper's accuracy references; hardware timing is outside these checks.

Paper correction: "Tip-PA" in the main paper is a typo for tip_mpjpe_mm, the unaligned fingertip MPJPE, not a Procrustes-aligned error.

This bundle supports offline checkpoint evaluation, not full training-from-scratch reproduction, hardware timing qualification, or physical robot trials.

Access And Terms

No public redistribution license is granted for these weights at this time. Dataset and MANO licenses apply independently. Obtain MANO models directly under the MANO license. The companion prepared datasets are subject to their source terms; download access does not override those terms.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Dataset used to train Franklin0/YOCO

Paper for Franklin0/YOCO