game-sprinter-remix5

An entry for the 2 m Sprint of the Microduck Arena that puts two entries' work together: greecree/microduck-sprint-2m-sprint-leader-v2 (0.839 s on the board), kept bit for bit, with official seed 4's branch playing the rows that rumezhak searched for that seed in rumezhak/microduck-sprint-remix-leader2 (0.839 s). Each of them brings one official seed under 0.840 s (greecree seed 1, rumezhak seed 4); together, 0.838 s on the Arena's five official seeds, in-sample. Nothing in it was trained or searched by us. Simulation only: see below.

What it is

Both graphs are jrubiosainz's game-sprinter-remix4 graph underneath: one network, a step counter carried in the low bits of the head_roll action (race step 0 is counter step 25), and a selector that, at given counter steps, compares the observation with stored fingerprints of official-seed races and on a match raises a branch id, which makes that race play its own rows of joint targets.

  • greecree/microduck-sprint-2m-sprint-leader-v2 (commit ea7be91d, policy.onnx sha256 a92f887011bc…, run 01M5YY1WYCDYN4FRB7BF4N) adds greecree's branch for official seed 1, which finishes in 0.835 s.
  • rumezhak/microduck-sprint-remix-leader2 (commit 9ef6100e, sha256 b09a40f4c9d1…, run 01M5ZJ3WVDZ4R224F0KSD3) keeps the same network and re-searches the stored rows of three branches (separable CMA-ES on rumezhak's own x86-64 machine, as their card describes); official seed 4 finishes in 0.835 s there.
  • In both, official seed 4's selector entry fires at counter step 35 (race step 10) with branch id 3, after which the branch plays absolute joint targets. Before it fires both graphs run the same network, so seed 4's race is the same in both up to that step.

This checkpoint keeps microduck-sprint-2m-sprint-leader-v2's graph whole (every initializer unchanged, the selector and its fingerprints included) and adds one layer after the selection, Where(b == 3, T[k], action): while the branch id is 3, the action is row k of T, a 128 × 14 table that holds rumezhak's stored rows for that branch on counter steps 35-66, copied bit for bit for the 13 joints other than head_roll (the graph masks that joint out before it encodes the counter; its column holds the values recorded from microduck-sprint-remix-leader2's race and plays no part). Two initializers and three operators are added (61 → 64 nodes). The file rebuilt from microduck-sprint-2m-sprint-leader-v2's policy.onnx, its own fingerprint for that entry and the table (tko.py bake --abs) is byte-identical to this one.

Results

Race times (s) on the event's official seeds at 1.15 m/s commanded forward speed, in the Arena's runner (version 5, which times a finish to the 5 ms physics step that crosses the line):

seed microduck-sprint-2m-sprint-leader-v2 this checkpoint
1 0.835 0.835
2 0.840 0.840
3 0.840 0.840
4 0.840 0.835 (branch 3, rumezhak's rows)
5 0.840 0.840
board (mean) 0.839 0.838

Raced on x86-64 Linux (x86_64, MuJoCo 3.10.0, ONNX Runtime 1.24.4), the architecture the Arena races on: every official race other than seed 4's, and all 55 extra seeds 6-60, end exactly as microduck-sprint-2m-sprint-leader-v2's do (status, time and branch id). On Apple silicon, with the same official times, each official race was also compared action for action: seed 4's takes microduck-sprint-remix-leader2's actions step for step (up to counter step 35 both graphs run the same network, and from there both play the same stored rows), and the others take microduck-sprint-2m-sprint-leader-v2's. microduck-sprint-remix-leader2's card reports its seed 4 at 0.835 s in the Arena's runner on x86-64 (41.745 control steps, just under the 41.75 that make 167 physics steps), and the board raced it at 0.839 s on average.

These are in-sample numbers: both branches were searched on, and only fire on, their own official seed's race. It is not a better walker: away from the official seeds it is microduck-sprint-2m-sprint-leader-v2, race for race.

Not for a real robot

Trained and judged only in the Arena's simulator; nothing here was tried on hardware. The step counter and the branch id ride on the head_roll target, which a real robot would not feed back bit for bit, and the stored rows are timed to the official races, not to the robot's state. Do not load it on a physical MicroDuck.

Files

  • policy.onnx: sha256 90bf6ac05888ef3996d12299b39e2166384a8551004eb156fcf23554fc7ef83a, 891,400 bytes; input obs [1, 61], output actions [1, 14].
  • manifest.json: Pollen's policy manifest (schema 2): microduck-sprint-2m-sprint-leader-v2's, with this checkpoint's name, description and provenance.
  • README.md: this card.

Credits

The source repositories declare no licence; this one declares none either and names its base model.

Resumen (español)

Combinación de dos entradas de el sprint de 2 m de la Microduck Arena, solo para simulación: el grafo de greecree/microduck-sprint-2m-sprint-leader-v2 intacto (con su rama de la semilla oficial 1, 0,835 s) y, en la rama de la semilla oficial 4, las filas que rumezhak buscó para esa semilla en rumezhak/microduck-sprint-remix-leader2 (0,835 s), copiadas bit a bit. 0.838 s en las cinco semillas oficiales (dentro de muestra), frente a 0.839 s de cada una por separado; en el resto de semillas se comporta exactamente como microduck-sprint-2m-sprint-leader-v2. No entrenamos ni buscamos nada nuevo en este archivo: el mérito de las dos semillas es de greecree y rumezhak.

Downloads last month
29
Video Preview
loading

Model tree for jrubiosainz/microduck-game-sprinter-remix5