Skip to content
humanoidrobots.training

bench.humanoidrobots.training · stand-hold-v1

Does the model stand?

Before you train a policy on a robot model, the model has to load and hold still. Every published MJCF in the browser sim is compiled headless in MuJoCo 3.14.0 (the same WebAssembly build the tab runs) and held for 10 s under one generic controller. A fall here is a fact about the model plus our controller, not a verdict on the robot.

Models

15

Hold a stand

11/15

Fell

4

Run

2026-09-24

Runner

32 cores · local

Results are 13 days old; the nightly run has not landed since.

Results

Sort by any column · default: passing first · RTF depends on the machine · results.json

Stand-hold benchmark results. Column headers sort the table.
Apptronik Apolloapptronik_apollopass98.5%98.8%-1.1 cm1.5°55.5×2.98 s80.9 kg32
Berkeley Humanoidberkeley_humanoidpass97.9%97.9%-1.2 cm4.5°49.0×1.30 s16.1 kg12
Booster T1booster_t1pass99.1%99.5%-0.0 cm4.9°29.5×0.41 s31.6 kg23
Booster T1 12-DoFbooster_t1_gympass94.8%95.6%-2.7 cm0.3°51.8×0.39 s31.6 kg12
Fourier N1fourier_n1pass99.8%99.8%-0.1 cm0.7°38.2×2.69 s39.7 kg23
PAL TALOSpal_talospass98.8%99.4%-0.4 cm1.9°6.0×0.72 s94.0 kg32
ROBOTIS OP3robotis_op3pass92.5%92.9%-2.1 cm0.6°33.6×1.87 s3.1 kg20
Unitree G1unitree_g1pass100.0%100.2%0.2 cm0.0°26.4×1.09 s33.3 kg29
Unitree G1 12-DoFunitree_g1_12dofpass99.6%99.7%-0.2 cm0.8°42.2×1.14 s32.1 kg12
Unitree H1unitree_h1pass99.6%99.6%-0.4 cm0.7°41.9×0.56 s51.4 kg19
Unitree H1 10-DoFunitree_h1_10dofpass98.8%98.8%-1.4 cm0.8°56.0×0.71 s51.6 kg10
Agility Cassieagility_cassiefell17.0%17.0%-84.8 cm88.3°8.9×0.46 s33.3 kg10
Dropbeardropbear · meshes simplifiedfell13.3%13.3%23.3 cm103.0°0.6×8.14 s61.3 kg19
PNDbotics Adam Litepndbotics_adam_litefell11.2%11.4%-83.0 cm90.1°55.1×4.13 s58.2 kg25
ToddlerBot 2XCtoddlerbot_2xcfell32.4%32.5%-19.8 cm149.8°15.9×2.52 s3.5 kg30

Method · stand-hold-v1

Controller
The browser sim's hold controller (packages/sim/src/engine.ts), mirrored headless: joint PD toward the stand keyframe (or qpos0) plus an ankle-strategy balance term from torso tilt, per-model gains from the @hs/sim manifest. No policy, no harness, no pushes.
Pass
Runs the full 10 s without a physics reset, the centre of mass never drops below 80% of its start height, and it ends within 10% of the start. Base drift is reported alongside.
Fell
The centre of mass drops below 60% of its start height at any point, or the physics diverges (NaN / auto-reset). Heights use the whole-body centre of mass because some models put the base origin near the floor.
Real-time factor
Simulated seconds divided by wall seconds for the 10 s run, single thread, no rendering. Depends on the machine; see environment.
Load time
Compile time: writing the pinned files into the WASM filesystem, mesh simplification when the model's runtime says so, MjModel.from_xml_path, and controller setup. Download time is excluded.
Models
Pinned to a commit of the model's own repo (see each model page). Some large meshes are simplified to fit the WASM heap, flagged per model.

Environment

MuJoCo
3.14.0 (WASM)
Node
v23.11.0
Platform
win32 10.0.26200 · x64
CPU
13th Gen Intel(R) Core(TM) i9-13980HX
Cores
32
Runner
local
Generated
2026-09-24T18:09:18.839Z

Reproduce

From the Hyperspawn suite monorepo (Coach operator agent, nightly via GitHub Actions):

pnpm --filter @hs/engine engine coach
pnpm --filter @hs/engine engine coach --only unitree_g1,booster_t1 --seconds 10

Model files are cached in engine/.cache/coach/models (about 700 MB). Output: this page's JSON plus a dated report under engine/reports/coach.

Next boards

Stand-hold is the floor. Policy evals (velocity tracking error and falls under the same pinned MJCF) rank on the leaderboard once policies arrive with an eval we can rerun; the in-tab walk tests are on each policy page.