← all tasks

humanoid-robust-noisy-push

Humanoid (MuJoCo Humanoid-v5) · open 0 of 9 agent attempts pass

The task. The top of the humanoid ladder: the forward gate on the nominal plant, under the four physics perturbations, under noise + delay and under pushes, each at 0.9 on the held-out seeds.

more

Open by construction: no known controller clears any of the three sibling families (see humanoid-robust, humanoid-robust-noisy, humanoid-push); the solution ships the humanoid-forward oracle. Update 2026-10-25 (corrected plant, noise in every observation channel): 0/9 in session under the Claude Code protocol; the closest design (Opus 5.5, 0.22 m/s) holds the physics suite at 1.00 and the 100 N pushes at 0.97 but noise + delay at 0.82; the two hard families are each solved separately (humanoid-robust-noisy by Opus and Fable; 75 N pushes at speed in humanoid-robust-parity) and not yet together. RL reference for the full suite: SB3 SAC trained with the physics knobs, pushes, noise and delay re-sampled every episode (rl_references/humanoid/train_sb3_sac_dr.py, profile all) survives everything on the grader seeds (alive 0.95 under 100 N pushes, 1.00 under noise + delay) at 0.4-0.5 m/s, forward 0.95-1.00 on every sibling, so RL trained for the suite clears this gate's families; nominal SAC does not (0.60 under pushes, 0.025 under noise + delay).

Gate. per-seed success is the `forward` rung of this benchmark's ladder ['alive', 'forward', 'brisk', 'fast'] (`--success-mode forward`), not the evaluator's default flag; the task is solved when the success rate over the grader's held-out seeds is `>= 0.9`; the same gate must also hold on the sibling scenario(s) `heavy_torso_20`, `low_friction_30`, `weak_motors_20`, `gravity_high_10`, `noisy_delay_v1`, `push_v1` (`--scenarios`)

Axes: plant:humanoid, scenario:standard_v0+physics-suite+noisy-delay+push, gate:forward_3m, robustness:all

Each video re-runs the attempt's final controller through the task's own evaluator on a public seed (never the grader's held-out ones). The table under each video is the official grade on the held-out seeds.

Closest attempt (task still open)Opus 5.5 (claude-code, 49 min) · noisy_delay_v1

Graded on the held-out seeds: passes the nominal plant but misses the gate under noisy_delay_v1.

criteriongradedneeded
base:forward1.000≥ 0.900
scenario:heavy_torso_201.000≥ 0.900
scenario:low_friction_301.000≥ 0.900
scenario:weak_motors_201.000≥ 0.900
scenario:gravity_high_101.000≥ 0.900
scenario:noisy_delay_v10.825≥ 0.900
scenario:push_v10.975≥ 0.900

How the agent got there: 49 min · 133 tool calls · 1 edit-tool edits · 99 runs of its own Python (tests, experiments, rewrites) · repository tuner 1× · official verifier 3× (success rates in order: ?, 1.00, 1.00).

The agent's final message

The controller passes the official evaluator on the visible seeds 0–4: `solved=True`, 5/5 in all seven scenarios. Time used was about 49 of the 60 minutes. It is saved in `/app/work/controller.py`, uses only numpy, and has a docstring explaining the control law and each gain. **Results on more seeds** (my own parallel runner, same success test: survive 1000 steps and advance ≥ 3 m): | scenario | success | distance | |---|---|---| | standard_v0 | 30/30 | ~3.6 m | | heavy_torso_20 | 30/30 | ~3.8 m | | low_friction_30 | 30/30 | ~5.1 m | | weak_motors_20 | 30/30 | ~3.8 m | | gravity_high_10 | 30/30 | ~4.0 m | | noisy_delay_v1 | 28/30 | ~6.7 m | | push_v1 | 55/60 (92%) | — | Two margins are thin. Push is only just above the 0.9 gate, so held-out seeds could land under it. On nominal, the robot covers about 3.4–3.6 m against the 3 m threshold. **How it works:** - **Gait:** a stepping state machine with very short, quick steps (about 0.1–0.2 s each). The swing foot is steered toward a landing point computed from the body's velocity, and torso tilt is controlled through the stance hip. - **What made it work:** - **Hip-motor limit:** the side-to-side hip motors max out at 40 N m. That is about what holding the pelvis level on one leg needs, so quick steps that keep single-leg time short were essential. - **Yaw:** the feet are spheres, so nothing stops the body twisting while on one foot. Heading is corrected through both hips only while both feet are on the ground. - **Jitte…

Controller family: SIMBICON

A SIMBICON-style humanoid stepping controller alternates stance legs on touchdown or timeout, using PD servos, stance-hip torso regulation and capture-point swing-foot targets, and switches gain sets when it detects command delay or a push.

Shown: public seed 0 (noisy_delay_v1); this episode passes the forward rung. This episode: episode_steps 1000, x_final 6.85, min_height 1.21, max_abs_pitch 0.145, n_steps 252, total_reward 5228.

controller.py · agent transcript · trial humanoid-robust-noisy-push__57uF2Dj

FailureFable 5.1 (claude-code, 41 min) · noisy_delay_v1

Graded on the held-out seeds: passes the nominal plant but misses the gate under noisy_delay_v1.

criteriongradedneeded
base:forward1.000≥ 0.900
scenario:heavy_torso_201.000≥ 0.900
scenario:low_friction_301.000≥ 0.900
scenario:weak_motors_200.950≥ 0.900
scenario:gravity_high_101.000≥ 0.900
scenario:noisy_delay_v10.075≥ 0.900
scenario:push_v10.050≥ 0.900

How the agent got there: 41 min · 82 tool calls · 1 edit-tool edits · 58 runs of its own Python (tests, experiments, rewrites) · repository tuner 14× · official verifier 4× (success rates in order: ?, ?, 1.00, 1.00).

The agent's final message

The final controller is in place at `/app/work/controller.py` and verified with the official evaluator. The full gate is not met: two of the six sibling scenarios still fail. **Result on the visible seeds (official evaluator, `--success-mode forward`)** | Configuration | Forward rate | |---|---| | standard_v0 | 5/5 (also brisk, about 8.5 m, return about 5580) | | heavy_torso_20 | 5/5 | | low_friction_30 | 5/5 | | weak_motors_20 | 5/5 | | gravity_high_10 | 5/5 | | noisy_delay_v1 | 1/5 | | push_v1 | 1/5 | On held-out seeds 20 to 39 the five passing configurations stay at or above 19/20. The evaluator reports `solved=False` because of the two failing scenarios. **What the controller is.** A hand-designed Raibert/SIMBICON-style stepping gait: alternating single-support steps of about 0.15 s, swing-foot placement from mass-centre velocity with a yaw-rate braking term, stance-hip torques regulating pelvis attitude with the swing-hip reaction cancelled, abdomen motors holding the torso upright in the world, and nearly straight stance knees. The twelve gait parameters were found with the shipped tuner after structural fixes made the loops stable. Weak motors are compensated through the observed actuator gears plus a separately tuned parameter scaling, and a one-step command delay is detected from the applied last action and triggers softer servos. Both conditional branches are inert on the nominal plant. **Why the two scenarios fail.** With the push, a sideways shove of about 0.…

Controller family: Raibert / foot placement

A hand-designed stepping gait alternates legs, placing the swing foot by a Raibert velocity rule converted to hip/knee targets via leg IK and PD servos, while the stance leg servos pelvis attitude, the abdomen keeps the torso upright, and gains are rescaled when command delay or weak motors are detected.

Shown: public seed 0 (noisy_delay_v1); this episode fails the forward rung. This episode: episode_steps 319, x_final 0.471, min_height 0.98, max_abs_pitch 0.393, n_steps 37, total_reward 1561. It was the first failing one of 1 public seeds tried.

controller.py · agent transcript · trial humanoid-robust-noisy-push__9tietJn

FailureOpus 5.5 (claude-code, 46 min) · low_friction_30

Graded on the held-out seeds: passes the nominal plant but misses the gate under low_friction_30.

criteriongradedneeded
base:forward1.000≥ 0.900
scenario:heavy_torso_201.000≥ 0.900
scenario:low_friction_300.800≥ 0.900
scenario:weak_motors_201.000≥ 0.900
scenario:gravity_high_100.975≥ 0.900
scenario:noisy_delay_v10.775≥ 0.900
scenario:push_v10.025≥ 0.900

How the agent got there: 46 min · 117 tool calls · 2 edit-tool edits · 77 runs of its own Python (tests, experiments, rewrites) · no tuner runs · official verifier 2× (success rates in order: 1.00, 1.00).

The agent's final message

I didn't reach the gate. The controller in `/app/work/controller.py` walks reliably on six of the seven scenarios but fails `push_v1` on every seed, so it would score zero as submitted. About 46 of the 60 minutes are used. **Official evaluator, visible seeds 0–4:** | scenario | forward success | |---|---| | standard_v0 | 5/5 | | heavy_torso_20 | 5/5 | | weak_motors_20 | 5/5 | | gravity_high_10 | 5/5 | | noisy_delay_v1 | 5/5 | | low_friction_30 | 3/5 | | push_v1 | **0/5** | **My own simulation of seeds 6–19, not used for tuning (the grader uses different seeds, so this is my best estimate):** standard, heavy torso, weak motors and high gravity 14/14 each; low friction 13/14; noisy+delay 13/14; push 0/14. When it doesn't fall, it walks at about 0.5 m/s and covers about 7.7 m with a return of about 5500, so the 3 m `forward` rung is cleared easily. **How the controller works** (the docstring explains each gain): - **Gait timing:** a two-state step machine with a nominal step time; a step ends when the swing foot touches down. - **Torso:** the stance hip holds the torso's pitch and roll, and the abdomen keeps the torso roll upright. - **Balance:** the swing foot is placed in front of or beside the mass centre according to its velocity (capture-point placement), and is never allowed to cross the stance foot. Leg inverse kinematics plus joint PD control get it there. - **Heading:** with point feet only, yaw can only be corrected while both feet are on the ground, so the two hi…

Controller family: capture point / LIP walking

A step-based state machine alternates stance legs, placing the swing foot at a velocity-dependent capture-point target via leg IK and PD while the stance hip holds torso attitude and the knee stays straight, with a one-step model-based prediction compensating command delay.

Shown: public seed 0 (low_friction_30); this episode fails the forward rung. This episode: episode_steps 130, x_final 0.729, min_height 0.985, max_abs_pitch 0.282, n_steps 13, total_reward 683. It was the first failing one of 1 public seeds tried.

controller.py · agent transcript · trial humanoid-robust-noisy-push__h9TNWqF

FailureFable 5.1 (claude-code, 52 min) · heavy_torso_20

Graded on the held-out seeds: passes the nominal plant but misses the gate under heavy_torso_20.

criteriongradedneeded
base:forward0.950≥ 0.900
scenario:heavy_torso_200.875≥ 0.900
scenario:low_friction_300.000≥ 0.900
scenario:weak_motors_200.925≥ 0.900
scenario:gravity_high_101.000≥ 0.900
scenario:noisy_delay_v10.000≥ 0.900
scenario:push_v10.000≥ 0.900

How the agent got there: 52 min · 60 tool calls · 0 edit-tool edits · 40 runs of its own Python (tests, experiments, rewrites) · repository tuner 8× · official verifier 6× (success rates in order: 1.00, 0.00, 1.00, 1.00, 1.00, 1.00).

The agent's final message

Final state. The deliverable is `/app/work/controller.py`, verified and unchanged since its last evaluation. **What the controller does.** A SIMBICON-style stepping controller: the feet are point contacts, so the humanoid can never stand still and instead takes quick steps (about 0.15 s each). The swing foot follows an explicit trajectory to a capture-point target solved through 3-D leg inverse kinematics. The stance knee is locked against its joint limit, and the stance hip applies world-frame PD torques on torso pitch and roll minus the swing-hip torque. Heading is steered by landing the same-side foot less far ahead when the body has yawed, which exploits the touchdown braking moment. The docstring explains each gain. **Results with the official evaluator, forward rung** | Plant | Seeds 0-4 | Held-out seeds 5-14 | |---|---|---| | standard_v0 | 5/5, 3.6 m, return 5133 | 10/10, 3.6 m | | heavy_torso_20 | 5/5 | 8/10 (earlier parameter set) | | weak_motors_20 | 5/5 | 10/10 | | gravity_high_10 | 5/5 | 10/10 | | low_friction_30 | 0/5 | not run | | noisy_delay_v1 | 0/5 | not run | | push_v1 | 0/5 | not run | **So the full gate is not met.** The nominal plant and three siblings pass, but low friction, noise with one step of command delay, and 100 N pushes fail on every seed. These are structural limits of this gait, not gain choices: dedicated tuner runs on the delay scenario (206 trials, wide bounds) and the 75 N push scenario (100 trials) found no parameter set that survives…

Controller family: SIMBICON

A left/right stance state machine switches at swing-foot touchdown, with the swing foot following a clearance trajectory to a capture-point target (tracked via IK and joint PD) while the stance hip torques regulate torso pitch and roll and the knee is held as a stiff strut.

Shown: public seed 0 (heavy_torso_20); this episode passes the forward rung. This episode: episode_steps 1000, x_final 4.38, min_height 1.28, max_abs_pitch 0.0995, n_steps 121, total_reward 5192. No public seed among the first 24 reproduced the graded outcome; this is a typical episode. It was the first failing one of 24 public seeds tried.

controller.py · agent transcript · trial humanoid-robust-noisy-push__xovH5gb