g1_backend checkpoints
Exported whole-body control policies for the Unitree G1, packaged for the
g1_backend deployment stack
(importable as sim2real) and for
tele_humanoid_benchmark's
g1_bridge.
These are deploy artifacts converted from upstream research code, not original training runs. See Provenance before redistributing.
Weights only β the manifests live in git
A checkpoint family is a manifest plus its weights, and the two are versioned separately:
policy.yaml/policy.jsonβ the entry point each backend loads. They pin joint order, scales and observation layout, so they have to move in lockstep with the code that reads them. They are tracked ing1_backend's git, not published here.*.onnx/*.ptβ this repo. Too large for git, and they change far less often.
So a g1_backend checkout already has every manifest and only needs the
weights. (This repo carried the manifests until 2026-08-10; a checkout from
before they were tracked in git needs a git pull first.)
Install
From a tele_humanoid_benchmark checkout (resolves the g1_backend repo root
for you, filters to weights, skips files already present, supports per-family
download):
python -m robocasa.scripts.download_g1_checkpoints --all
python -m robocasa.scripts.download_g1_checkpoints --family sonic
Or directly:
unset all_proxy ALL_PROXY # the Hub client's httpx does not speak SOCKS
hf download bwrooney/g1_backend-checkpoints --local-dir <g1_backend>/checkpoints
--local-dirmatters. This repo holds the family folders at its root, so downloading without pointing atcheckpoints/scatterssonic/,amo/,heft/,scalebfm/andalmi/into theg1_backendrepo root β where, unlike undercheckpoints/, they are not gitignored.
Do not fetch these on the robot. The G1 runs with
HF_HUB_OFFLINE=1; checkpoints reach it viasync-robot.sh.
Contents
981 MiB, 10 weight files, five families. Each lands next to the policy.yaml
its family's git checkout already provides.
| family | path | consumed by | size |
|---|---|---|---|
sonic |
sonic/low_latency/g1/ |
g1_bridge/backends/sonic.py |
924.7 MiB |
heft |
heft/pmg/ |
g1_bridge/backends/generic.py |
23.2 MiB |
amo |
amo/ |
g1_bridge/backends/amo.py |
18.6 MiB |
scalebfm |
scalebfm/humanoid_transformer_m/ |
g1_bridge/backends/generic.py |
12.4 MiB |
almi |
almi/flat_dual/ |
g1_bridge/backends/almi.py |
2.2 MiB |
almi/flat_dual/
lower.onnx 1,293,550 legs: obs(100)+history(500) -> 12
upper.onnx 965,073 waist+arms: obs(144) -> 17
amo/
amo_jit.pt 17,819,339 TorchScript whole-body policy
adapter_jit.pt 1,661,974
adapter_norm_stats.pt 1,996
heft/pmg/
policy.onnx 24,324,327
scalebfm/humanoid_transformer_m/
policy.onnx 13,021,189
sonic/low_latency/g1/
planner_sonic.onnx 773,952,989 GR00T kinematic planner
model_decoder.onnx 149,763,762
model_encoder.onnx 45,933,505
SONIC ships an encoder/decoder pair rather than a single fused
policy.onnx; g1_backend's SplitOnnxBridgeTracking is selected
automatically when that key is present. ALMI likewise ships a pair, but a
concurrent one: lower and upper are independent actors whose outputs are
concatenated into one 29-D action every tick (DualBranchPolicyMixin, selected
by upper_model_path in its manifest).
Scope
This release contains exactly the five families above. Some code and docs in the two repos reference paths that are not part of it:
sonic/release/*βg1_bridge/sonic_utils/ckpt.pydeclares areleasevariant; onlylow_latencyships, and it is the default (--sonic-ckpt new).sonic/low_latency/smpl/policy.yamlβ a fallback ing1_bridge/configs/g1_sonic.json, overwritten at runtime before it is read.sonic/release/smpl/human_joints_info.pklβ used bysim2real/teleop/smpl_stream.py.heft/pmg/policy-semantic.yamlβgeneric.py'sdefault_policy_config, whichPOLICY_CONFIGSsupersedes.mimic-lite/*,bfm-zero/*,holomotion/*and other families listed in theg1_backendREADME.
None of these are on the benchmark's runtime path.
Provenance
Converted deploy artifacts from upstream research projects, not original training runs:
- sonic β NVIDIA GEAR-SONIC / GR00T-WholeBodyControl (low-latency variant)
- scalebfm β ScaleBFM (
humanoid_transformer_m) - almi β mjlab-loco
Mjlab-Velocity-Flat-Unitree-G1-Dual,model_10000.pt, exported byscripts/export_almi_onnx.py(each branch verified against a torch reimplementation of mjlab'sEncoderMLPModelforward pass) - amo, heft β converted for this deployment stack
License: the upstream terms differ per family and are not asserted here.
license: other is a placeholder β check each upstream project's terms before
redistributing or using commercially.