
The controller gets you driving in minutes, but the SDK is where Microduck turns into a platform. This is the guided path from an unboxed robot to your first Python session - and the honest note that you can start today, before any hardware arrives, with the simulator.
Microduck is programmed from Python. The SDK exposes the robot's motors and sensors, and it lets you either command individual joints or hand control to a trained policy. Concretely, you can:
Under the hood, the robot runs its own daemons at a 50 Hz control loop: one process owns the motor bus, another handles updates, another the radios - all speaking one contract, so your script sends exactly the same calls the gamepad and the console do. Yes, there is even a voice mode, a chorale and a theremin in the command set. The duck has range.
You do not need hardware to write your first Microduck code:
The point of the local version is fidelity: it is the same software stack as the robot, so a script that works against the simulator is a script that works against your duck.
The exact API lives in the documentation and the repository, which are the source of truth as the SDK evolves. The shape of a first session is always the same four steps:
From there, the natural next step is training your own policy - the full loop is in the training guide.
| What | Where |
|---|---|
| The robot software and SDK (Apache-2.0) | github.com/pollen-robotics/microduck |
| Training environments - MuJoCo, PPO, sim-to-real, ONNX export | github.com/pollen-robotics/microduck_rl |
| Hosted simulator | Hugging Face Space |
| Documentation | microduck.homes/docs |
The robot is built to be worked on, not just with. Updates are verified, health-checked and reversible - and installable, rollback-able and pinnable - so a bad experiment never bricks a duck. The repository documents how to build a branch on your machine and install it onto the robot in about a minute, which makes the loop from idea to walking change unusually short for a robot this size.
Questions that the docs cannot answer usually get answered by other owners in the Discord, policies and scripts included.
Do I need Python to use Microduck? No. The controller covers day-to-day driving; Python is the on-ramp to everything deeper.
Which Python version do I need? The documentation lists the current requirements - treat it as the source of truth rather than any version number frozen into a guide.
Can I write code before my robot arrives? Yes - browser simulator today, the full local simulator with the real daemons when you want more fidelity.
Can I run my own script on the robot itself? Yes - the repository documents the dev workflow: build on your machine, push to the robot, about a minute.
What is the fastest way to break something? Sending unbounded joint commands and walking the robot near a table edge. The simulator exists so you can learn that lesson cheaply.
Where do I go to learn the training side? The training guide walks the whole sim-to-real loop, and the simulator guide covers the environments.