a1-dreamwaq · five from-scratch arms · 2026-09-04 → 09-06

DreamWaQ Arm Ladder

Two hardware complaints went in — a backward-command flip-over and curb hesitation on the deployed tall36 policy. Five single-variable training arms came out the other side with the causes separated, two instruments corrected, and two deployment candidates.

The candidates


Deploy pick — all-rounder

Arm 4

tall36_sharp_s1/model_2999
16.4 min
to 60°C, 1×
73%
bwd −0.3 tracked
0/4
gauntlet falls

0.36 stance + sharpened tracking kernel + slow-command practice + gains covering the deployed 28/0.7. Best thermals ever measured here; no bottom-tier row in any test. Cost: tall36-level low swing.

Perturbation specialist

Arm 5 · seed 2

tall36_clear_seed2/model_2999
20.6 m
shove gauntlet
0.205
swing p90, best ever
8.6 min
to 60°C, 1×

Arm 4 + foot-clearance weight −2.5. Family-best tracking and shove tolerance — but it stalls at a 0.10 m step riser, so it is not the curb policy its swing numbers implied.

The overturn that decided it: swing height is not step-mounting ability. The highest-clearance policy ever measured here (arm 5 s2) got stuck at the first 0.10 m riser in all four terrace episodes — mounting a step needs the stance-leg push, not a high swing. The terrace row replaces swing stats as the curb gate.

MuJoCo gauntlet — distance walked in 30 s

Deploy-contract observation path, DC-motor torque derating, 10 ms actuation delay. Four episodes per condition; zero falls anywhere, so distance is the discriminator. tall36 is the hardware-proven baseline.

arm 4 arm 5 s2 tall36 (deployed)

Thermal headroom — minutes to 60 °C, walking

MuJoCo thermal model at 1× (real time constants), motors from 42 °C, no perturbation. Rankings are meaningful; the absolute minutes are sim, not hardware duty predictions. The whole tall lineage is 3–5× cooler than the previously deployed PRD13d; foot-clearance work costs ~6–8 min at either stance height.

The backward deadband — found and closed

The original complaint. Cause: under the soft tracking kernel, standing still already pays ~73% of the tracking reward at a 0.3 m/s command — and this lineage grows up with a stand-still term, so doing nothing is in its repertoire from birth. Fix: kernel annealed 0.5 → 0.25 + half of training commands drawn slow (arm 2 onward).

policyMuJoCo −0.5 cmd
achieved m/s
MuJoCo −1.0 cmd
achieved m/s
Isaac −0.3 cmd
tracked
tall36 (deployed)−0.12−0.740%
arm 1 0.34 + gains−0.25−0.78—
arm 2 + sharp kernel−0.38−0.8583%
arm 3 + clearance @0.34−0.35−0.8080%
arm 4−0.38−0.8273%
arm 5 s2−0.35—— *
PRD13d (pre-thermal deploy)−0.34−0.78—

* seed 1 of the same config tracked 100% at −0.3 in Isaac; seed 2's backward render was not run. Its stop-from-speed behavior (the run0078 flip trigger) is clean in both engines for every sharp-kernel arm.

Swing clearance — now a gait indicator, not a curb gate

Foot-swing height percentiles over identical Isaac rough-terrain renders. The terrace result above is why this metric no longer decides curb capability.

What each arm taught


armsingle change vs parentwhat it established
arm 1
tall34_widegains
base_height 0.36→0.34; gains DR widened to cover deployed 28/0.7 Height was not the deadband cause. Silent regression found: tall36 had deployed at gains outside its training randomization.
arm 2
tall34_sharp
tracking kernel annealed 0.5→0.25; 50% slow commands; gains raised not stretched The deadband was the reward's, not the gait's — fixed by intervention. Cost: swing collapsed; sharp tracking buys precision with low, quick steps.
arm 3
tall34_clear
foot_clearance weight −1.0→−2.5 The clearance term was priced too cheap, not shaped wrong. Swing recovered past tall36; deadband fix held.
arm 4
tall36_sharp
base_height back to 0.36 The tall stance is the thermal mechanism (straighter knee, shorter gravity arm on the calves): 8.5→16.4 min. Deadband fix independent of height.
arm 5 s1
tall36_clear_s1
arm 4 + clearance −2.5 Family-best Isaac numbers, yet 10/10 forward-initiation stands under the deploy-path harness. A seed's basin can hide a deploy trap Isaac metrics never show.
arm 5 s2
tall36_clear_seed2
same config, seed 2 Trap gone (3/3 initiates) — it was the basin, not the recipe. Deploy-loop initiation test is now a mandatory battery row.

Caveats that travel with these numbers