← all tasks

walker2d-forward

Walker2d (MuJoCo Walker2d-v5) · solved 19 of 20 agent attempts pass

The task. The planar biped of the deep-RL benchmarks, graded on a designed controller.

more

Solved by stock agents in one session (2026-10-23 sweep: 6/8 clear forward); the oracle is Opus 5.5's SIMBICON-style walker (fixed cadence, virtual torso actuator, world-frame swing-hip placement with speed feedback, tuner-fitted gains): 12.5 m, return 2558, brisk 40/40, and alive on 40/40 seeds under torso +20 %, friction -30 %, motors -20 % and gravity +10 %, where SB3-zoo TD3 (4701, 29.6 m) falls on every seed with weak motors.

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`

Axes: plant:walker2d, scenario:standard_v0, gate:forward_3m, rl-reference:td3-4701

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.

Best attemptOpus 5.5 (cursor-cli (pre-clock), 4 min) · standard_v0

Graded on the held-out seeds: passes every gate on the grader's held-out seeds.

criteriongradedneeded
base:forward1.000≥ 0.900

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

The agent's final message

The controller passes the task: it walks forward without falling on every seed I tried, covering about 12.4 m in 8 s. The gate needs 3 m on 90% of seeds. | Check | Result | |---|---| | Official evaluator, seeds 0–4, forward mode | `solved=True`, 5/5 succeed, mean 12.5 m, return about 2556 | | My own harness, 500 other seeds | 500/500 succeed, shortest walk 12.27 m | All seeds clear the alive, forward and brisk (10 m) levels; none reaches fast (20 m). The largest torso tilt is 0.74 rad, against the 1 rad fall limit. **How it walks.** `/app/work/controller.py` uses a simple state machine where one leg supports the body while the other swings: - **Leg switching:** the two legs swap roles every 0.3 s on a fixed timer. - **Torso:** the supporting hip holds the torso leaned back about 0.37 rad. The lean is needed because the hips can only swing the legs backward relative to the torso, so the torso has to tilt back for a foot to land ahead. - **Foot placement:** the swinging hip aims the thigh at an angle in world terms that grows with forward speed. Moving faster puts the next foot further ahead, which is what keeps it balanced. - **Knees and ankles:** the swinging knee bends for ground clearance and then straightens before landing. The supporting ankle adds a constant toe push-off, which drives the forward speed, and the swinging ankle keeps that foot level. The docstring explains each gain. I found the gains with a short random search over simulated runs on seeds 0–2, with no…

Controller family: SIMBICON

A two-state SIMBICON-style walker swaps stance and swing legs on a fixed timer, using a stance-hip PD to hold torso pitch, a world-frame swing-thigh PD whose target angle grows with forward speed, scheduled swing-knee flexion, and ankle PD with constant push-off torque, with gains found by random search.

Shown: public seed 0 (standard_v0); this episode passes the forward rung. This episode: episode_steps 1000, x_final 12.5, min_height 0.984, max_abs_pitch 0.73, n_steps 57, total_reward 2562.

controller.py · trial walker2d-forward__7iuFc3i

FailureFable 5.1 (cursor-cli (pre-clock), 30 min) · standard_v0

Graded on the held-out seeds: fails the main gate badly (success rate below 0.5).

criteriongradedneeded
base:forward0.000≥ 0.900

How the agent got there: 30 min · 61 tool calls · 14 edit-tool edits · 31 runs of its own Python (tests, experiments, rewrites) · repository tuner 8× · official verifier 2× (success rates in order: 0.00, 0.00).

Pre-clock session: the agent had no clock and may have stopped early believing its hour was over; treat a failure here as a lower bound.

The agent's final message

Done — final controller is at `/app/work/controller.py`. Honest outcome: **it does not pass the gate.** It reaches the `alive` rung on every seed tested (13/13, full 1000 steps, return ≈ 1025) but tops out at x ≈ +0.2 m, far short of the 3 m `forward` rung, so the expected grader score is 0. **What the final controller is:** an in-phase knee/ankle bounce around a statically stable crouch, with a torso-pitch PD shared by both hips and a knee height-feedback term. Parameters were found by the `hl_control.harbor.tune` TPE search (7 runs total) and revalidated alive on fresh seeds 5–20. A backup copy is at `controller_alive_backup.py`. **Why walking didn't close, after ~15 design iterations:** this plant has two cruel properties I verified empirically: 1. The hips can only extend backward (range [−150°, 0°]) and the ankle joint sits at the heel, so the swing foot can never be placed ahead of the center of mass, and a nose-up (backward) fall is uncorrectable — every early gait died that way at pitch = −1. 2. Once standing was stabilized (crouch: hip −0.05, knee −0.3, ankle dorsiflexed +0.15) and forward drive was found (ankle push-off plus synchronized hip pump — up to 2.3 m at 0.9 m/s with real flight phases), every forward gait hit the same wall: the feet fail to relocate forward fast enough, the legs do "the splits," and the torso sinks below the 0.8 m height limit after ~0.8–2.3 m of travel, around t ≈ 2–3 s. Things tried and rejected: position-PD clock gaits, a SIMBICON-s…

Controller family: CPG / clocked oscillator

An open-loop sinusoidal clock drives both legs in phase to bounce around a crouch, with joint PD servos, a torso-pitch PD on the hips and knee extension when the torso height drops, so the walker stays upright with slight forward drift.

Shown: public seed 0 (standard_v0); this episode fails the forward rung. This episode: episode_steps 1000, x_final 0.22, min_height 1.16, max_abs_pitch 0.213, n_steps 2, total_reward 1026. It was the first failing one of 1 public seeds tried.

controller.py · trial walker2d-forward__aijgHDF