Skip to content

Latest commit

ย 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฆ† microduck-docker

The Microduck robot simulator โ€” in one command.

Docker Pulls Image size Build Architectures Buy me a book

Microduck is a 25 cm robot that walks on two legs, made by Pollen Robotics and open-sourced with Hugging Face. This image lets you watch it walk, teach it tricks, and train your own robot brain โ€” in your browser, on the computer you already have.

You do not need the real robot. You do not need to install Python, or a GPU, or know what a neural network is. You need Docker and one line:

docker run --rm -p 63317:63317 -p 8788:8788 srayuth089/microduck-docker

Then open http://localhost:63317 ๐ŸŽ‰


What you get

Everything is already inside the image โ€” no downloads on first run, no setup.

Inside the box What it means
๐Ÿง  9 pretrained robot brains walking, standing, kicking a ball, a forward rollโ€ฆ press play and watch
๐Ÿฆด The real robot model the actual 3D Microduck, with real joint limits and real physics (MuJoCo)
๐ŸŽ“ Teach panel ask for a trick in plain English โ€” "stand on one leg" โ€” and watch it learn
๐Ÿ‹๏ธ Full training toolkit train a brand-new walking brain on your own laptop's CPU in minutes
๐ŸŽฌ Video capture film your robot and export mp4/GIF to share
๐Ÿ–ฅ๏ธ Runs anywhere Intel, AMD, Apple Silicon, Raspberry Pi, even IBM mainframes

๐Ÿš€ Start here (5 minutes, no experience needed)

1. Install Docker

Docker Desktop โ€” free, for Windows, Mac and Linux. Install it, open it, wait for the whale icon to settle.

2. Run the duck

Copy this into a terminal (Mac: Terminal, Windows: PowerShell):

docker run --rm -p 63317:63317 -p 8788:8788 srayuth089/microduck-docker

The first time, Docker downloads the image (~1.5 GB, a few minutes). After that it starts in seconds. When you see this, it's ready:

  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚  ๐Ÿฆ†  Microduck is running!                     โ”‚
  โ”‚                                                โ”‚
  โ”‚  Open this in your browser:                    โ”‚
  โ”‚      http://localhost:63317                    โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

3. Open your browser

Go to http://localhost:63317. You should see two ducks: one walking, one standing.

To stop: press Ctrl+C in the terminal.


๐ŸŽฎ Things to try

Drive the duck

Click a duck to select it, then steer with W A S D. It balances by itself โ€” you only tell it where to go.

Swap its brain mid-stride

Open the policy panel and drag a different brain onto a duck. It changes behaviour without missing a step. Try dropping roulade on a walking duck.

Teach it a new trick ๐ŸŽ“

Open the Teach panel and type something like:

  • stand on one leg
  • wave
  • crouch

The lab starts training right there. Every ~15 seconds the duck reloads with what it just learned, so you watch it get better in real time. Drag the reward sliders to change what it is rewarded for โ€” that is the whole idea of reinforcement learning, and here you can feel it.

Film it ๐ŸŽฅ

The Capture panel takes a PNG, or films a clip and converts it to mp4 + GIF.


๐Ÿงช For teachers and tinkerers

See what brains are available

docker run --rm srayuth089/microduck-docker policies

Start with specific brains

docker run --rm -p 63317:63317 -p 8788:8788 \
  -e DUCKS="BEST_alpha_walking ball_kick_left roulade" \
  srayuth089/microduck-docker

Keep your training between runs

Add a volume so trained brains, videos and settings survive a restart:

docker run --rm -p 63317:63317 -p 8788:8788 \
  -v microduck-data:/data \
  srayuth089/microduck-docker

Train a walking brain from scratch

A few minutes on a normal laptop CPU:

docker run --rm -v microduck-data:/data srayuth089/microduck-docker \
  train --envs 32 --steps 3000000 --run-name my-first-duck

docker run --rm -v microduck-data:/data srayuth089/microduck-docker \
  export /data/runs/my-first-duck

Then start the viewer with the same volume and your duck appears in the roster, ready to race against the official one.

All the commands

Command Does
serve (default) start simulator + viewer
policies list available brains
version show exact upstream code this image was built from
train โ€ฆ train a walking policy (train-walk)
behavior โ€ฆ train a trick (train-behavior)
export โ€ฆ export a run to ONNX
eval โ€ฆ score a policy (falls, tracking)
render โ€ฆ render a rollout to mp4
bench โ€ฆ find the best worker count for your machine
shell a shell inside the image

Full details: docs/USER-MANUAL.md


โ“ Troubleshooting

The page is blank / "can't connect" Both ports matter. -p 63317:63317 serves the page; -p 8788:8788 carries the physics. Use http://localhost:..., not the 127.0.0.1 shown by other tools and not your LAN IP โ€” the lab only trusts localhost origins.

"port is already allocated" Something else is using the port. Move it: -p 8080:63317 then browse to localhost:8080.

It's slow / the fan is loud Physics is real work. Give Docker Desktop more CPUs in Settings โ†’ Resources, or run fewer ducks with -e DUCKS="BEST_alpha_walking".

Apple Silicon warning about platform Harmless if it appears โ€” native arm64 is published. Force it with --platform linux/arm64.


๐Ÿ—๏ธ How this is built

This repo contains no robot code of its own. On a schedule, GitHub Actions pulls the newest upstream code, builds it for every architecture, smoke-tests that the physics really runs, and pushes to Docker Hub. So the image tracks the official projects instead of drifting away from them.

microduck-lab  (trainer + viewer)  โ”€โ”
microduck_rl   (robot model, MJCF) โ”€โ”ผโ”€โ–บ GitHub Actions โ”€โ–บ Docker Hub (multi-arch)
MicroDuckModels (pretrained ONNX)  โ”€โ”˜

Every image records the exact commits it came from:

docker run --rm srayuth089/microduck-docker version

Architectures: linux/amd64, linux/arm64 (and ppc64le, s390x on request).

Build it yourself: docs/BUILD.md


๐Ÿ™ Credits

This is a packaging project. All the hard work belongs to:

Not affiliated with or endorsed by Pollen Robotics.

๐Ÿ“„ License

Packaging (this repo): Apache-2.0.

The image also contains upstream material under its own terms โ€” notably the 3D robot meshes, which Pollen releases under Creative Commons BY-SA-NC (non-commercial). Play with it, teach with it, learn from it. Do not sell it or ship it in a commercial product. See NOTICE.


Made for classrooms, kitchen tables and anyone curious about robots.

Buy Me a Coffee

More projects by srayuth โ†’

About

๐Ÿฆ† Microduck bipedal robot simulator in one Docker command โ€” MuJoCo physics, pretrained RL policies and a 3D browser viewer. Made for STEM classrooms.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages