We ported forty-three publicly released walking policies for the Unitree G1 to one C++ interface and ran each on the same set of punched three-minute tours, in MuJoCo and PhysX. Nothing completes reliably. The best rows still fail about one tour in six, only thirteen complete half on average over both engines, and 38 of the 69 ranked rows complete at most 1% of tours in both engines. The leaders tie on completion, so for teleop we pick on what an operator feels: gr00t_wbc at its canonical 0.74 m.
What you can reuse
- The harness: forty-three G1 policies behind one C++ interface, in two physics engines, as seventy-one rows.
- The task: eighteen waypoints, one punch per segment, and arms the policy may not use for balance.
- The data: completion, error and cost per row and engine, plus small-command and leg-stiffness sweeps. Code + data, MIT; checkpoints under their authors’ terms. github.com/rhoyn/teleop-walking-bench
- Twenty-three of the policies, running in your browser.
1Nothing completes reliably, and teleop pays for every fall
In teleop the punches are the operator’s own: a reach that shifts the robot’s weight, a door that pushes back, a bump into a table. The arms are the operator’s, so the policy must balance without them, and a fall ends the episode. Here every segment lands a punch and the harness owns the arms: handoff completes 0/0% of its tours under that rule, 35/36% when allowed its arms.
Short of falling, a robot can drift off target, more the longer it walks; have a deadzone, where small stick inputs do nothing, so the operator pushes harder and overshoots; or creep when told to stand still, while the operator manipulates. Rows are in the README’s order, by mean survival over both engines. The names in bold are the twenty-three you can drive yourself at the end of the page. Every cell is MuJoCo / PhysX. Survival is mean seconds upright out of 180, the column the table is ranked on. Position and yaw error are measured at the end of each segment, or where the robot fell, whether or not it reached the target. The last three columns are what a completed walk cost: energy, vibration, and stomp, the work a foot does on the floor per touchdown. The last two rows are greyed out because they are unranked: each is a policy handed all twenty-nine joints instead of fifteen. handoff goes from 0/0% to 35/36% that way and clobot from nothing to 3/1%, which is the cost of the arms rule stated as a number. The four names marked * read the base linear velocity straight from the simulator, a sensor no real robot has; they are ranked, but not deployable as shipped.All 69 ranked rows as a chart · upper bar MuJoCo, lower PhysX
Show as a table · all 71 rows, every column
policy survival completed runs pos err yaw err walk energy walk vibr stomp gr00t_wbc_h070_p000 172.2 / 173.1 s 83 / 84% 2560 14 / 27 cm 5 / 6° 7.9 / 9.2 kJ 1.1 / 1.7 1.2 / 0.8 J htd_wbc_h066_p012 173.6 / 170.8 s 86 / 81% 2560 7 / 15 cm 10 / 9° 6.1 / 13.1 kJ 1.4 / 4.0 1.6 / 0.9 J htd_wbc_h066_p000 173.2 / 169.3 s 84 / 79% 2560 8 / 19 cm 10 / 6° 6.1 / 15.5 kJ 1.5 / 4.7 1.6 / 0.8 J htd_wbc_h070_p000 172.3 / 169.7 s 83 / 79% 2560 8 / 12 cm 14 / 12° 6.0 / 13.1 kJ 1.4 / 3.7 1.7 / 1.2 J gr00t_wbc_h066_p012 174.3 / 166.4 s 88 / 74% 2560 25 / 122 cm 17 / 12° 7.6 / 9.8 kJ 0.9 / 1.7 1.0 / 0.3 J htd_wbc_h074_p000 170.1 / 168.8 s 79 / 77% 2560 12 / 10 cm 21 / 13° 6.0 / 13.7 kJ 1.4 / 3.7 1.8 / 1.7 J gr00t_wbc_h066_p000 174.2 / 164.2 s 88 / 73% 2560 29 / 147 cm 22 / 14° 7.3 / 9.9 kJ 0.9 / 1.8 1.1 / 0.4 J gr00t_wbc_h074_p000 167.8 / 169.8 s 74 / 77% 2560 11 / 18 cm 4 / 4° 8.6 / 10.2 kJ 1.2 / 1.6 1.9 / 1.5 J morphmimic_gr00twbcplnr 158.2 / 168.0 s 68 / 81% 2560 89 / 75 cm 5 / 4° 11.8 / 14.2 kJ 1.6 / 2.0 1.0 / 2.2 J morphmimic_sonicplnr 151.8 / 169.9 s 62 / 84% 2560 59 / 41 cm 10 / 10° 11.1 / 14.1 kJ 1.8 / 2.3 1.8 / 3.6 J homie 155.5 / 155.7 s 54 / 54% 2560 16 / 16 cm 17 / 20° 11.9 / 11.3 kJ 1.8 / 2.1 3.0 / 2.8 J wbc_agile_velocity 148.8 / 159.5 s 48 / 63% 2560 16 / 16 cm 7 / 6° 13.1 / 13.5 kJ 2.2 / 2.8 4.9 / 4.5 J amo 151.2 / 154.0 s 54 / 57% 2560 18 / 49 cm 8 / 7° 14.8 / 17.9 kJ 2.1 / 2.4 2.3 / 2.3 J wbc_agile 145.1 / 133.0 s 38 / 25% 512 18 / 33 cm 8 / 10° 8.1 / 10.3 kJ 1.3 / 1.9 3.3 / 3.2 J zealot 133.4 / 117.0 s 27 / 15% 512 71 / 168 cm 46 / 62° 46.1 / — kJ 21.9 / — 1.3 / — J supermimic_rayzhao_gr00twbcplnr 125.6 / 121.7 s 41 / 36% 512 325 / 260 cm 27 / 29° 17.8 / 22.1 kJ 2.5 / 3.1 1.6 / 3.3 J supermimic_rayzhao_sonicplnr 121.7 / 120.5 s 37 / 38% 512 210 / 179 cm 25 / 27° 17.9 / 24.0 kJ 2.6 / 3.5 1.9 / 4.5 J supermimic_dyn_sonicplnr 111.6 / 122.0 s 24 / 31% 512 265 / 299 cm 23 / 23° 19.8 / 27.2 kJ 2.9 / 3.7 1.9 / 4.9 J supermimic_dyn_gr00twbcplnr 107.0 / 103.4 s 20 / 19% 512 266 / 283 cm 15 / 14° 18.0 / — kJ 2.5 / — 1.2 / — J mimic_lite_gr00twbcplnr 93.7 / 113.4 s 10 / 19% 512 230 / 168 cm 9 / 9° — / — — / — — / — run_residual 101.0 / 102.4 s 6 / 9% 512 1146 / 1174 cm 14 / 13° — / — — / — — / — sonic 118.4 / 81.2 s 24 / 5% 512 75 / 89 cm 13 / 17° 14.6 / — kJ 2.2 / — 2.9 / — J mimic_lite_sonicplnr 86.8 / 95.4 s 8 / 13% 512 148 / 127 cm 15 / 15° — / — — / — — / — supermimic_panhainan_gr00twbcplnr 60.6 / 111.0 s 2 / 24% 512 282 / 588 cm 20 / 13° — / 39.3 kJ — / 4.8 — / 5.7 J supermimic_kangzejian_sonicplnr 81.6 / 79.9 s 16 / 16% 512 132 / 129 cm 39 / 37° — / — — / — — / — supermimic_panhainan_sonicplnr 39.5 / 100.0 s 0 / 15% 512 331 / 751 cm 30 / 19° — / — — / — — / — wty_cpp 71.0 / 67.5 s 1 / 1% 512 28 / 33 cm 22 / 22° — / — — / — — / — falcon 69.8 / 58.3 s 0 / 0% 512 48 / 58 cm 15 / 16° — / — — / — — / — openwbt 42.2 / 83.9 s 0 / 1% 512 117 / 92 cm 26 / 16° — / — — / — — / — morphmimic_openwbtplnr 58.9 / 62.0 s 4 / 5% 512 164 / 184 cm 28 / 29° — / — — / — — / — supermimic_rayzhao_openwbtplnr 59.0 / 60.5 s 2 / 2% 512 354 / 320 cm 43 / 44° — / — — / — — / — asap 60.6 / 56.4 s 1 / 1% 512 211 / 172 cm 28 / 30° — / — — / — — / — schoi 58.5 / 51.2 s 0 / 0% 512 45 / 84 cm 22 / 27° — / — — / — — / — supermimic_dyn_openwbtplnr 52.4 / 54.4 s 1 / 1% 512 336 / 370 cm 29 / 28° — / — — / — — / — robomimic 56.0 / 49.8 s 3 / 2% 512 369 / 298 cm 25 / 25° — / — — / — — / — supermimic_kangzejian_gr00twbcplnr 54.5 / 49.7 s 10 / 7% 512 199 / 204 cm 31 / 32° — / — — / — — / — rl_gym 28.5 / 70.2 s 0 / 1% 512 156 / 75 cm 38 / 16° — / — — / — — / — supermimic_kyrieyoung_sonicplnr 49.8 / 46.1 s 1 / 1% 512 385 / 357 cm 42 / 41° — / — — / — — / — supermimic_kyrieyoung_gr00twbcplnr 51.6 / 44.1 s 1 / 0% 512 354 / 307 cm 44 / 44° — / — — / — — / — supermimic_panhainan_openwbtplnr 37.4 / 55.3 s 0 / 1% 512 450 / 913 cm 31 / 27° — / — — / — — / — mimic_lite_openwbtplnr 43.4 / 47.4 s 0 / 1% 512 195 / 180 cm 20 / 22° — / — — / — — / — supermimic_kangzejian_openwbtplnr 38.6 / 37.7 s 0 / 0% 512 255 / 256 cm 35 / 36° — / — — / — — / — supermimic_kyrieyoung_openwbtplnr 38.3 / 35.3 s 0 / 0% 512 498 / 468 cm 47 / 47° — / — — / — — / — rl_lab 40.0 / 33.6 s 0 / 0% 512 64 / 77 cm 71 / 72° — / — — / — — / — supermimic_m5_gr00twbcplnr 35.7 / 37.5 s 0 / 0% 512 497 / 494 cm 33 / 33° — / — — / — — / — supermimic_m5_sonicplnr 35.9 / 37.3 s 0 / 0% 512 594 / 589 cm 41 / 40° — / — — / — — / — supermimic_breezewrf_sonicplnr 33.0 / 37.3 s 0 / 0% 512 351 / 318 cm 47 / 45° — / — — / — — / — supermimic_breezewrf_openwbtplnr 31.7 / 36.3 s 0 / 0% 512 356 / 412 cm 50 / 51° — / — — / — — / — supermimic_breezewrf_gr00twbcplnr 30.5 / 33.8 s 0 / 0% 512 542 / 587 cm 47 / 45° — / — — / — — / — supermimic_m5_openwbtplnr 27.3 / 28.2 s 0 / 0% 512 593 / 591 cm 39 / 37° — / — — / — — / — handoff 22.8 / 25.6 s 0 / 0% 512 234 / 230 cm 30 / 31° — / — — / — — / — supermimic_omegai_gr00twbcplnr 22.2 / 24.7 s 0 / 0% 512 748 / 770 cm 31 / 32° — / — — / — — / — supermimic_omegai_sonicplnr 18.7 / 19.1 s 0 / 0% 512 936 / 988 cm 49 / 47° — / — — / — — / — supermimic_omegai_openwbtplnr 19.5 / 18.3 s 0 / 0% 512 1216 / 1121 cm 42 / 45° — / — — / — — / — bfm_zero 15.9 / 11.9 s 0 / 0% 512 487 / 514 cm 69 / 86° — / — — / — — / — josabb* 11.0 / 10.6 s 0 / 0% 512 144 / 172 cm 83 / 86° — / — — / — — / — huru* 7.9 / 8.2 s 0 / 0% 512 201 / 199 cm 69 / 77° — / — — / — — / — sunny* 7.7 / 8.4 s 0 / 0% 512 203 / 240 cm 76 / 75° — / — — / — — / — dm_march 9.0 / 4.8 s 0 / 0% 512 164 / 177 cm 90 / 91° — / — — / — — / — dm_agile 8.5 / 4.1 s 1 / 0% 512 57 / 53 cm 88 / 88° — / — — / — — / — holosoma 6.0 / 6.5 s 0 / 0% 512 79 / 100 cm 45 / 60° — / — — / — — / — rl_mjlab 5.7 / 5.3 s 0 / 0% 512 294 / 283 cm 73 / 78° — / — — / — — / — legged_rl_lab 4.1 / 3.8 s 0 / 0% 512 224 / 227 cm 85 / 86° — / — — / — — / — mturan33* 2.7 / 4.4 s 0 / 0% 512 224 / 246 cm 89 / 87° — / — — / — — / — wcompton 2.5 / 2.2 s 0 / 0% 512 129 / 142 cm 55 / 58° — / — — / — — / — g1_gym 2.5 / 1.9 s 0 / 0% 512 112 / 110 cm 87 / 92° — / — — / — — / — nanog1 2.1 / 2.2 s 0 / 0% 512 83 / 90 cm 58 / 60° — / — — / — — / — clobot 1.8 / 1.8 s 0 / 0% 512 130 / 125 cm 84 / 80° — / — — / — — / — stepdown 1.6 / 1.6 s 0 / 0% 512 93 / 92 cm 67 / 61° — / — — / — — / — handoff_with_arms 139.0 / 140.0 s 35 / 36% 512 13 / 15 cm 8 / 9° 7.8 / 12.7 kJ 1.3 / 2.5 3.4 / 3.9 J clobot_with_arms 87.0 / 73.3 s 3 / 1% 512 23 / 25 cm 14 / 16° — / — — / — — / —
2Which one to pick for teleop: gr00t_wbc at 0.74 m
On completion alone the leaders are a tie. htd_wbc_h066_p012 completes 0.4 points fewer tours than gr00t_wbc_h070_p000, 95% interval −1.7 to +0.8 over both engines, and ranks three to six overlap; the two 0.74 m rows sit a few points lower. So we pick on teleop needs: small commands, standstill drift, position accuracy.
gr00t_wbc at its canonical 0.74 m is the one that does all three. gr00t_wbc_h074_p000 completes 74/77% of tours and ends segments 11/18 cm and 4/4° from target. Its small-command error, 37%, is the best in the field, it drifts 0.001/0.002 m/s when asked to stand still, and 1.5× stiffer legs cost it 1% of its survival (9% at 2×). htd_wbc lands as close or closer, 7–19 cm against 11/18 cm, but has a deadzone on small commands (section 7).
At 0.70 m it gains about 9/7 points of completion, but small-command error rises from 37% to 65%. The 0.66 m rows are wrong for teleop: gr00t_wbc there ends PhysX segments 122–147 cm from target, and htd_wbc creeps at 0.124 and 0.153 m/s in PhysX when it should stand still.
gr00t_wbc is under the NVIDIA Open Model licence, commercial use permitted with attribution; htd_wbc is BSD-3-Clause.
3How the benchmark works
- Tour. Three minutes, eighteen waypoints ten seconds apart, 50 Hz control over a 2 ms step.
- Steering. A P-controller on position and yaw error, by default gain 1.5 with reached bands 10/20 cm and 0.05/0.12 rad (seven policies set their own). Commands are clamped to each policy’s own limits (0.3 m/s for gr00t_wbc and htd_wbc, 1.5 m/s for run_residual, no yaw for amo and dm_march), so the task differs per row.
- Punches. 0.1 s after each waypoint switch: a random one of all 29 joints, a random 3D direction, up to 40 N·s on a 35.1 kg robot, about 1.1 m/s.
- Falls. Pelvis below 0.20 m. Lenient: kneeling or sitting still counts as surviving.
- Porting. Authors’ gains, scales and clocks, at 50 Hz through TensorRT (TF32). The policy owns the fifteen leg and waist joints; the fourteen arm joints random-walk.
- Statistics. Every policy and engine gets the same tours. Wilson 95% intervals are ±1.3–1.9 points at n = 2560 and up to ±4 at n = 512, so the gaps between Figure 2’s groups are not noise.
More on the task and the campaign · punches, rounds, porting
Punches. Each lasts 0.08 s at up to 500 N. The ceiling ramps from a third of that at the start to the full 500 N by the 120th second, so the last minute is spent at the ceiling, and each punch draws half to all of it. Tours and punches are drawn from the run id before the run starts, so they cannot be dodged.
Rounds. 125,952 runs, both engines, in rounds of 512 run ids. The thirteen rows that complete at least half their runs, averaged over the two engines, ran five rounds of different run ids, 0–2559; the rest ran one. Five rounds are there for precision: a policy that falls most of the time needs no fourth decimal place. The runs column carries each row’s own count.
Arms. The arm joints are held by PD gains derived from each motor’s armature. They are never still and never borrowable for balance, because a controller that windmills to stay upright falls the moment its operator reaches for a door handle.
Glossary · row names, suffixes and columns
- MuJoCo / PhysX: the two physics engines. Every pair of numbers is MuJoCo first, PhysX second.
- gr00t_wbc, htd_wbc: the whole-body controllers of NVIDIA GR00T and of Humanoid Touch Dream (HTD). htd_wbc was listed as decoupled_wbc before. gr00t_wbc is HOMIE v2, so homie and gr00t_wbc are one family.
- _h070_p000: the commanded torso posture, height 0.70 m and pitch 0.00 rad; _h066_p012 is 0.66 m and 0.12 rad.
- _sonicplnr, _openwbtplnr, _gr00twbcplnr: where a motion tracker’s reference comes from (section 6).
- SuperMimic: every
supermimic_row is an independent community reproduction, named after its publisher or repository; the paper’s official checkpoint was not used. - kp, kd: the stiffness and damping gains of a joint’s PD controller.
- * and _with_arms: names marked * read the base velocity straight from the simulator; _with_arms rows were handed all twenty-nine joints and are unranked.
4The top eight are two policies in four postures
htd_wbc’s authors reviewed our adapter and suggested sweeping torso height and pitch (issue #1); we ran gr00t_wbc over the same four. Only height moves the score. For gr00t_wbc, 0.74 to 0.66 m buys fourteen points of MuJoCo completion for fourteen to eighteen centimetres of position error, and in PhysX the last step gives 10–12 points back. htd_wbc pays nothing in MuJoCo: 79/77% to 86/81%, error down from 12 to 7–8 cm. MuJoCo / PhysX. Values from the full table in section 1. A wider sweep over gr00t_wbc’s walk/balance switch found it inert.Show as a table · the eight posture rows, completion against position error
policy torso height, pitch completed pos err gr00t_wbc 0.74 m, 0 rad (canonical) 74 / 77% 11 / 18 cm gr00t_wbc 0.70 m, 0 rad 83 / 84% 14 / 27 cm gr00t_wbc 0.66 m, 0.12 rad 88 / 74% 25 / 122 cm gr00t_wbc 0.66 m, 0 rad 88 / 73% 29 / 147 cm htd_wbc 0.74 m, 0 rad 79 / 77% 12 / 10 cm htd_wbc 0.70 m, 0 rad (canonical) 83 / 79% 8 / 12 cm htd_wbc 0.66 m, 0.12 rad 86 / 81% 7 / 15 cm htd_wbc 0.66 m, 0 rad 84 / 79% 8 / 19 cm
5Completing is not going where you were sent
morphmimic_sonicplnr completes 84% in PhysX, level with the best, but ends segments 59/41 cm from target; gr00t_wbc at 0.70–0.74 m and every htd_wbc row land within 7–27 cm. Low error is not enough: wty_cpp ends 28/33 cm off, close to wbc_agile (18/33 cm) and amo (18/49 cm), yet completes 1/1%; falcon almost none (0.2/0.4%). Error is taken where a segment ends or the robot fell, so falling early flatters it.
Costs matter for the data. wbc_agile_velocity stomps hardest among the leaders, 4.5–4.9 J a touchdown, and htd_wbc vibrates two to three times as much as gr00t_wbc in PhysX.
6A tracker is only as good as its reference
mimic_lite, MorphMimic and eight SuperMimic reproductions follow a reference motion but ship no planner. _sonicplnr rows take it from sonic’s planner network; _openwbtplnr and _gr00twbcplnr from a planner policy, a second, unpunched MuJoCo G1 driven by openwbt or gr00t_wbc_h074_p000 that walks 15 ticks (0.3 s at 50 Hz) ahead.
morphmimic completes 4/5% with the OpenWBT planner policy, 62/84% with sonic’s planner and 68/81% with the GR00T WBC one. On a ninety-second tour morphmimic_sonicplnr did 71/92% while the walkers held steady: trackers lose ground as position error builds. None of the SuperMimic rows is the paper’s. Every The clearest pattern among them is data. rayzhao, trained on BONES-SEED and fine-tuned to get up and resist pushes, completes up to 41/36%; m5, breezewrf and omegai, trained on LAFAN1, fall within forty seconds on average. The split is not clean: panhainan, also on 40 LAFAN1 clips, reaches 24% in PhysX, and kangzejian, on BONES-SEED, at most 16%. That is a pattern across eight projects with many other differences, not a controlled experiment, and none of these scores says anything direct about the paper. The planner-policy robot follows the same command limits as openwbt and gr00t_wbc on their own, and a one-sided spring under its pelvis keeps it from falling.The SuperMimic reproductions · provenance and training data
supermimic_ row is an independent community reproduction, published after the paper on hardware from an A800 to a MacBook.
7On small commands, two robust policies barely move
gr00t_wbc_h074_p000 moves the commanded way in 97% of small walking commands and 99% of small turns. htd_wbc and homie score 99–101%: a deadzone. The operator cannot make the last ten centimetres of an approach. supermimic_dyn and morphmimic with the GR00T WBC planner policy come second and third, at 45% and 54%. More in Walk slowly and precisely. Two more benchmarks hold one command for 10 s with no punches — a yaw rate, or a planar velocity — drawn up to 1 rad/s and 1 m/s, 4096 run ids per engine, and score the small ones, 0.05 to 0.15 m/s or rad/s. Error is the median distance between measured and commanded velocity relative to the command: 0% is perfect, 100% is what standing still scores. Thirty-four rows are stable enough to be listed. Each row is scored at the first leg gain where it is stable — native, else 1.5×, else 2× — so the two gr00t_wbc 0.66 m rows were scored at 1.5×. Turning right at 0.1 rad/s is Figure 3. Run id 0, every listed row, PhysX and MuJoCo side by side, walking straight ahead at 0.1 m/s:How small commands are scored, and every listed row on video
8Stiffer legs are not a free upgrade
Every policy was rerun with the kp and kd of its twelve leg joints scaled by 1.5 and 2.0. At 2×, 43 of the 71 rows get worse; at 1.5×, 27. Most SuperMimic rows survive longer at 1.5×, and every row that completes enough to measure spends more energy and vibrates more. gr00t_wbc, htd_wbc and homie lose up to three percent of their survival at 1.5× and three to twelve at 2×. wbc_agile_velocity loses fifteen and forty-eight; openwbt, rl_gym and schoi lose most of theirs already at 1.5×. supermimic_dyn_gr00twbcplnr gains thirty-five percent at 1.5×. gr00t_wbc_h066_p012 goes from 8.7 to 12.8 to 21.7 kJ a walk. Compared over run ids 0–511 in both engines.Per-policy changes
9The engines agree on the field, not on the pick
Across all 69 ranked rows, survival in the two engines correlates at Spearman 0.97: they agree on who walks and who falls. Among the thirteen leaders, completion correlates at only 0.33. MuJoCo’s best is gr00t_wbc at 0.66 m, 88%; PhysX’s is gr00t_wbc at 0.70 m, 84%. Read both before picking a posture. Each row runs the same exported weights on the same tours and punches. Both engines use each policy’s own kp, kd and torque limits: MuJoCo as an explicit PD torque, PhysX through its articulation joint drives. Contact is solved differently: MuJoCo integrates soft convex constraints with its implicitfast integrator; PhysX runs a TGS solver with 8 position and 1 velocity iterations, maps contact stiffness and damping onto a compliant material with friction 1.0, and disables self-collision. Both step on the GPU, MuJoCo through MuJoCo Warp. The planner-policy robot behind a tracker always runs in MuJoCo. A policy that scores in both has survived a change of contact model it never saw in training, the closest thing here to a sim-to-real proxy.What differs between the engines
10A permissively licensed policy is level with the top
Of the forty-three, two are non-commercial (homie and bfm_zero, CC BY-NC), one is sim-only at its authors’ request, thirteen declare no licence and four grant none for the weights. htd_wbc is BSD-3-Clause: best on position error, cheapest walk in MuJoCo, level on completion, though not on small commands. Terms are in the NOTICE.
11Limitations
- Simulation, not a floor: a shortlist, not a verdict.
- Cost columns cover only the rows that finish often enough.
- Tracker references are ours, never tuned by their authors; a planner-policy row partly measures its planner policy.
- This article measures how publicly released walking policies survive and steer in simulation; it doesn’t explain any stack’s internals.
12Measure your own stack
Everything above runs from the repository on an NVIDIA GPU (the Makefile targets sm_89 by default).
| step | command |
|---|---|
| build | ./download_export_onnx.sh && make && make capture |
| one policy | ./run.sh --policy gr00t_wbc_h074_p000 --engine physx --runids 0-255 |
| full campaign | ./benchmark.sh --benchmark all |
| results | results/punches_gainx<G>/p<NN>.<policy>.<engine>.csv, one line per run id |
Read completion with an interval. Count the runs whose outcome is complete and put a Wilson 95% interval around the share: 192 of 256 is 75%, or anywhere from 69% to 80%. If two intervals overlap, run more run ids.
Adding a policy. Implement the seven methods of policy_api::Policy — init, step, kp, kd, owned, limits and name — then add the include, a factory branch and its NAMES entry.
13Try it yourself
Twenty-three of them run here: each downloads its real weights and runs at 50 Hz against MuJoCo in your browser, ported from the benchmark’s own policy.cpp. gr00t_wbc runs at 0.66 m, htd_wbc at 0.66 m / 0.12 rad (their best completion rows, not our teleop pick). Most fall over: below the top seven of these twenty-three, only run_residual completes over 1% (6/9%).
Starting on frozen — the stance the crane holds, with no policy running. Pick one above and it downloads that policy’s weights, a few MB on top of the physics engine.
Click it, then drive: W/S forward and back, A/D sideways, Q/E turn. Nothing punches it here, and each policy is capped at its own command range, so amo will not turn. wcompton’s weights are public but declare no licence. robomimic, g1_gym and stepdown ship only TorchScript and declare no licence, so their ONNX conversions can’t be redistributed. sonic is about 0.9 GB across three networks and bfm_zero 123 MB, too large for a browser download; the ten trackers need sonic’s planner or a planner policy running a second simulated robot, so they go with it. huru, josabb, sunny and mturan33 read the simulator’s base velocity, which the page does not supply.Why twenty-three and not forty-three