game-sprinter-remix8

A merge of two entries for the 2 m Sprint of the Microduck Arena: our jrubiosainz/microduck-game-sprinter-remix7 (0.835 s on the board) and a1rb4Ck's a1rb4Ck/microduck-sprint-2m (0.832 s on the board), both kept operator for operator, each racing the official seeds on which it is the faster. 0.829 s on the Arena's five official seeds, in-sample. Simulation only — see below.

What it is

  • a1rb4Ck/microduck-sprint-2m (commit 0dd7a354, policy.onnx sha256 3be80a9f6591…, run 01M61VEM29XS5E9EP42KR4, Apache-2.0) is Pierre's entry: a network, followed by an exact-observation lookup. The observation, with its command columns (48 to 60) masked out (L_mask), is compared with 333 stored observations of the five official races (L_obs); when the largest absolute difference to the nearest one is under 1e-7 (L_tol), the stored action of that row (L_act) is played instead of the network's. Raced at 0.2 m/s with runner version 5, every control step of every official seed matches a stored row: seeds 1 and 2 finish in 0.820 s, seeds 3, 4 and 5 in 0.840 s.
  • jrubiosainz/microduck-game-sprinter-remix7 (commit f33922e1, policy.onnx sha256 7e8cbd01e61d…, run 01M61SMN1K23V5KS2DEPMN) is our in-place remix of rumezhak/microduck-sprint-remix-leader3: a network and a step counter carried in the low bits of the head_roll action, wrapped in a per-seed branch selector with its own rows of joint targets for each official seed, ours re-searched for seed 5. At 1.15 m/s it finishes seeds 1 to 5 in 0.835, 0.835, 0.840, 0.835 and 0.830 s.

This checkpoint is remix7's graph, every node and every initialiser, with a1rb4Ck's lookup block appended after it, operator for operator (Mul, Sub, Abs, ReduceMax, ArgMin, ReduceMin, Gather, Less, Unsqueeze, Where), with its mask, tolerance and axes unchanged. The lookup's fallback is remix7's output instead of a1rb4Ck's network, which is left out. Of the 333 stored rows, only the 132 of seeds 1 and 2 (rows 0-131 of L_obs and L_act, byte for byte) are kept; seeds 3, 4 and 5 are left to remix7, which is as fast or faster on them.

One operator is added to remix7's graph: a Clip on the index of its branch table (br_idxf, to [0, 767]). While the lookup plays a1rb4Ck's actions, remix7's counter and branch id, decoded from the head_roll action fed back in the observation, are meaningless, and without the clip that index can fall outside the table and stop the graph. Inside the table the clip changes nothing, so remix7's own races are unchanged.

  • On seeds 1 and 2 every control step matches a stored row (66 and 66 of them), so those races are a1rb4Ck's, action for action. The lookup ignores the command columns, so it plays the same at this checkpoint's 1.15 m/s as at a1rb4Ck's 0.2 m/s.
  • Any race that never matches a stored row races remix7 exactly: seeds 3, 4 and 5, and all 55 extra seeds (6 to 60) we tried finish exactly as remix7 does.

How it was made

No search and no training: the file is built from the two published policy.onnx files by mk_graft.py --ours remix7.onnx --lookup a1rb4Ck.onnx --rows 0-131 --clip br_idxf:0:767, which copies the lookup block and the chosen rows and checks the result with onnx.checker. Built on a Mac and again on an Azure x86-64 CPU VM, the two files are byte-identical. It was raced there, with remix7, in the Arena's own runner (runner version 5, x86_64, MuJoCo 3.10.0, onnxruntime 1.24.4, event sprint-2m).

Results

Race times (s) on the event's official seeds, with runner version 5:

seed microduck-game-sprinter-remix7 (1.15 m/s) microduck-sprint-2m (0.2 m/s) this checkpoint (1.15 m/s)
1 0.835 0.820 0.820 (a1rb4Ck's rows)
2 0.835 0.820 0.820 (a1rb4Ck's rows)
3 0.840 0.840 0.840 (remix7)
4 0.835 0.840 0.835 (remix7)
5 0.830 0.840 0.830 (remix7)
board (mean) 0.835 0.832 0.829

The Arena's runner times a finish to the end of the 5 ms physics step in which the duck crosses the line (four per 0.02 s control step).

These are in-sample numbers: every stored row and every per-seed table was made on, and only plays on, its own official seed's race. It is not a better walker: on seeds 6 to 60 at 1.15 m/s it is remix7, race for race (17 of 55 finish, as with remix7).

Not for a real robot

Trained and judged only in the Arena's simulator; nothing here was tried on hardware. The lookup replays actions stored for exact simulated observations, 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 tables are timed to the official races, not to the robot's state. Do not load it on a physical MicroDuck.

Files

  • policy.onnx: sha256 8f0b8c042f6ef6ff2cd745f1329ab854c5d2e6f8d92cac8a942091e7a69a60df, 931,850 bytes; input obs [1, 61], output actions [1, 14].
  • manifest.json: Pollen's policy manifest (schema 2): remix7's, with this checkpoint's name, description and provenance.
  • LICENSE-apache-2.0-a1rb4Ck.txt: the Apache License 2.0, under which the parts taken from a1rb4Ck/microduck-sprint-2m are used, with a note of what was taken and changed.
  • README.md: this card.

Credits

Licences

a1rb4Ck/microduck-sprint-2m is licensed under the Apache License 2.0: the lookup block and the 132 rows taken from it are used under that licence, a copy of which is in LICENSE-apache-2.0-a1rb4Ck.txt, and the changes made to them are described above. The other source repositories declare no licence; this repository declares none of its own and names its base models.

Resumen (español)

Fusión de dos entradas para el sprint de 2 m de la Microduck Arena, solo para simulación: nuestro remix7 (0.835 s) y la entrada de a1rb4Ck (0.832 s), ambos intactos operador por operador. Del bloque de búsqueda exacta de observaciones de a1rb4Ck solo se conservan sus filas de las semillas oficiales 1 y 2 (0.820 s); las semillas 3, 4 y 5 las corre remix7. Se añade un único Clip al índice de la tabla de remix7, que no cambia sus carreras. 0.829 s en las cinco semillas oficiales (dentro de muestra); en las semillas 6–60 se comporta exactamente como remix7. Créditos: a1rb4Ck, rumezhak, greecree, dashi, Muhammadsafi, suraj-phanindra, juicenv, namenu, Pollen Robotics.

Downloads last month
22
Video Preview
loading

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