How small can Microduck's walker get?
Loading results…
Pollen's default walker is a 197,774-parameter network. duckbatch distils it into much smaller students on a single 4 GB laptop GPU. All the attempts share one simulator batch, and pre-registered rules kill or advance them. Decision models (Jev, GLiNER2.5-Decide) are measured against those rules as judges. Simulation only: nothing here has run on a real robot.
Size against walking quality
Each dot is a student that reached the final evaluation: held-out seeds, stumble pushes and domain randomization on, with the teacher in the same run. Walking is measured with the task's deliberate prone spawns and topple pushes off; getting up is measured with every episode spawned prone. The shaded band is the teacher's own spread across seeds; inside it, a student is indistinguishable from the teacher.
Planar velocity error, relative to the teacher
Falls per minute (walking)
Gets up from prone within 6 s
Table view
Drive them
Each finalist is a Hub repo in Pollen's policy format (policy.onnx +
manifest.json, schema 2). Pollen's browser simulator loads it directly:
The batch: who was cut, and by whom
Successive halving. Every attempt trains in the same env batch, and after each rung the judge decides: the rules first, then a decision model on cases the rules cannot call, then a person. Closed attempts hand their envs to the survivors.
Decision models as judges
Every case is rendered to the same text (numbers, ratios to the teacher, lab conventions; never which rule line was crossed) and every decision model answers every case. On the cases the rules settle, their answers are graded against the rules.
On-device cost
onnxruntime, batch 1, one thread: the way the robot's duck-control runs a policy.
Measured on the x86 laptop that trained them, not on the robot's RK3566, so read the ratios, not
the microseconds. Int8 is dynamic quantization; drift is the largest action change on recorded
observations.
Reproduce
git clone https://github.com/craigm26/duckbatch && cd duckbatch uv sync --extra sim --extra decide # Linux / WSL2, CUDA GPU (4 GB is enough) ./scripts/fetch_teachers.sh # Pollen's policies, pinned + sha256-checked uv run duckbatch probe # how many envs fit on your GPU uv run duckbatch batch menus/b002-student-size-longer.yaml # ~70 min on an RTX 3050 uv run duckbatch rejudge records/b002-student-size-longer # decision-model agreement # no GPU? run the same menu on Hugging Face Jobs (billed to you): uv run duckbatch hf-job menus/b002-student-size-longer.yaml --dataset <you>/duckbatch-records