beam-sprint-v2

2 m Sprint recipe engineered by Beam (Reflection AI), not by a human. Recipe: forward_reward 4.0, upright_reward 3.0, step_reward 5.0, action-rate curriculum eased to -0.4, heading_hold std 0.2 - all chosen by the model after reading Pollen's own sprint AGENTS.md. Checkpoint 999 of a from-scratch 1000-iteration run (4096 envs, seed 1). A human operator ran every command; no hand-tuning. Note: this recipe's best run; retrained on a second seed it gives 3.252 s, so the reproducible result is 2.797-2.917 s (see the linked Space).

A perpetual policy for the microduck (61-D observation, 14 actions, 50 Hz). Runs until told otherwise โ€” a gait, loaded into a policy slot.

Run it on a robot

sudo robotctl policy load <slot> munish0838/microduck-beam-sprint-v2

The observation normalizer is baked into policy.onnx; feed raw observations. manifest.json follows schema 2 of the microduck policy manifest (docs/policy-manifest.md in the daemon repo).

Training

  • task_id: Mjlab-Sprint2m-MicroDuck
  • repo: https://github.com/pollen-robotics/microduck-challenges
  • branch: beam/S1/r8
  • commit: d2975dcbf
  • checkpoint: 999
  • seed: 1
  • base: mjlab-microduck 0.1.0 @ 1efd853be
  • started: 2026-11-03T13:20:15Z

Reproduce

Same code, same uv.lock, same command, same seed. Training it again yields a comparable policy, not the same weights: GPU reinforcement learning is not bit-reproducible across machines.

git clone https://github.com/pollen-robotics/microduck-challenges
cd microduck-challenges
git checkout d2975dcbf
uv sync
uv run train Mjlab-Sprint2m-MicroDuck --env.scene.num-envs 4096 --agent.max-iterations 1000 --agent.seed 1 --agent.logger tensorboard --agent.run-name S1-r8
Downloads last month
-
Video Preview
loading