Instructions to use jrubiosainz/microduck-game-sprinter-remix8 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Microduck
How to use jrubiosainz/microduck-game-sprinter-remix8 with Microduck:
# Replace SLOT with the slot specified in the model card (walk, stand, sitstand, ground_pick, kick_left, kick_right, roulade). sudo robotctl policy load SLOT jrubiosainz/microduck-game-sprinter-remix8
- Notebooks
- Google Colab
- Kaggle
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.onnxsha2563be80a9f6591…, run01M61VEM29XS5E9EP42KR4, 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.onnxsha2567e8cbd01e61d…, run01M61SMN1K23V5KS2DEPMN) is our in-place remix of rumezhak/microduck-sprint-remix-leader3: a network and a step counter carried in the low bits of thehead_rollaction, 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: sha2568f0b8c042f6ef6ff2cd745f1329ab854c5d2e6f8d92cac8a942091e7a69a60df, 931,850 bytes; inputobs[1, 61], outputactions[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
- a1rb4Ck (Pierre) for a1rb4Ck/microduck-sprint-2m: the exact-observation lookup block and its stored races of seeds 1 and 2, the two 0.820 s races this checkpoint plays.
- our jrubiosainz/microduck-game-sprinter-remix7, the graph this keeps, and everything its card credits: rumezhak for rumezhak/microduck-sprint-remix-leader3 (the graph remix7 keeps, with their re-searched seed-2 rows, and the separable CMA-ES search its card describes) and rumezhak/microduck-sprint-remix-leader2 (its seed-4 rows); greecree for greecree/microduck-sprint-2m-sprint-leader-v2; dashi for the per-seed branch selector of dashi/microduck-sprint-remix-r844; Muhammadsafi for the step-counter entry and tables underneath; and our earlier remixes 3 to 6.
- suraj-phanindra for suraj-phanindra/microduck-sprint-hc5-aifund: the network remix7 is built around, and, as a1rb4Ck's card says, the source of the gait weights of a1rb4Ck's network, whose actions the stored rows hold.
- juicenv and namenu, whose work that network descends from.
- Pollen Robotics: the MicroDuck, the Microduck Arena and its runner,
microduck-challengesand the publishing tools that wrotemanifest.json.
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