quackd
Copyright 2026 Rok Benko and the quackd contributors

Licensed under the Apache License, Version 2.0.

quackd is an independent community project. It is not affiliated with or
endorsed by Pollen Robotics or Hugging Face. "Microduck" is used nominatively
to describe compatibility.

This project builds on, interoperates with, and is grateful to:

  * Microduck (pollen-robotics/microduck) — the robot's onboard daemon stack
    (robotd, mediad, padd, tofd, configd, updaterd, btd) and its JSON-RPC
    contract (duck-ipc-proto). Apache-2.0.
    https://github.com/pollen-robotics/microduck

  * microduck_rl (pollen-robotics/microduck_rl) — the training stack that
    produces the ONNX policies the robot runs, and the MuJoCo model the
    physics backend walks. Code Apache-2.0. Its 3D model files
    (robot_walk.xml and 38 STL meshes) are CC BY-NC-SA and are NOT included
    in this project: --robot microduck:mujoco and the browser demo fetch them
    from upstream at a pinned commit at run time, into ~/.quackd/cache or the
    visitor's browser. Those non-commercial and share-alike terms apply to
    your use of those files, not to quackd's code.
    https://github.com/pollen-robotics/microduck_rl

  * microduck-policies (pollen-robotics/microduck-policies, on the Hugging
    Face Hub) — the ONNX policies a Microduck ships with. Apache-2.0.
    alpha_walking.onnx and alpha_stand.onnx are fetched at a pinned revision,
    hash checked and run. quackd runs them, did not train them, and
    redistributes neither.
    https://huggingface.co/pollen-robotics/microduck-policies

  * MuJoCo (google-deepmind/mujoco) — the physics behind
    --robot microduck:mujoco, and as its official WebAssembly build the
    physics in the browser demo. Apache-2.0. Optional extra quackd[mujoco],
    imported only inside connect(). Nothing vendored.
    https://github.com/google-deepmind/mujoco

  * ONNX Runtime (microsoft/onnxruntime) — what runs the robot's own walking
    policy on the CPU, and onnxruntime-web in the browser demo. MIT.
    Optional extra quackd[mujoco]. Nothing vendored.
    https://github.com/microsoft/onnxruntime

  * Model Context Protocol Python SDK (modelcontextprotocol/python-sdk). MIT.
    https://github.com/modelcontextprotocol/python-sdk

  * DrEureka (Ma et al.) — the "LLM-written rewards" idea behind the
    learned-verbs roadmap. https://eureka-research.github.io/dr-eureka/

  * LeRobot (huggingface/lerobot) — the robot and policy interfaces the
    lerobot adapter targets. Apache-2.0. Optional extra quackd[lerobot].
    https://github.com/huggingface/lerobot

  * roslibpy (gramaziokohler/roslibpy, MIT) and rosbridge_suite
    (RobotWebTools/rosbridge_suite, BSD-3-Clause) — the client library and
    the protocol the rosbridge adapter speaks. Optional extra
    quackd[rosbridge]. Message definitions come from ros2/common_interfaces
    (Apache-2.0).
    https://github.com/gramaziokohler/roslibpy

  * python-zeroconf (LGPL-2.1) and paho-mqtt (EPL-2.0 / EDL-1.0) — LAN
    discovery and the MQTT flock bus. Optional extra quackd[lan], imported
    lazily and never on the default path.
    https://github.com/python-zeroconf/python-zeroconf

  * Open Duck Mini (apirrone/Open_Duck_Mini) — the open source 3D printed
    biped the open_duck adapter targets, and the source of its walk policy.
    Apache-2.0. Nothing vendored: no ONNX policy, no CAD, no meshes and no
    sounds are distributed with quackd. You fetch them onto your own robot.
    https://github.com/apirrone/Open_Duck_Mini

  * Open Duck Mini Runtime (apirrone/Open_Duck_Mini_Runtime) — the on-robot
    runtime that quackd's bridge daemon imports. It carries NO LICENSE FILE,
    so all rights are reserved by its authors: quackd vendors none of it,
    depends on none of it, and never redistributes it. You install it on your
    own robot from upstream. Method and constant names are cited as facts.
    https://github.com/apirrone/Open_Duck_Mini_Runtime

  * XLeRobot (Vector-Wangel/XLeRobot) - the open source dual-arm mobile
    manipulator the xlerobot adapter targets. Apache-2.0. quackd speaks its
    ZeroMQ host protocol and imports none of it: upstream is not an
    installable package. Nothing vendored, no kinematics copied, no CAD and
    no meshes distributed. Names, ports and wire keys are cited as facts.
    https://github.com/Vector-Wangel/XLeRobot

  * AlohaMini (liyiteng/AlohaMini) and its driver fork
    (liyiteng/lerobot_alohamini) - the bimanual robot on a lift the alohamini
    adapter targets. Apache-2.0; the fork's driver files additionally carry
    HuggingFace copyright headers, as a fork of huggingface/lerobot.
    quackd speaks its ZeroMQ host protocol and imports none of it: the fork
    is unpublished and calls itself `lerobot`. The host wrapper quackd ships
    in bridge/alohamini/ wraps upstream's own host at runtime on your robot
    and vendors no upstream code. URDF and BOM are referenced, never
    distributed.
    https://github.com/liyiteng/AlohaMini

  * ToddlerBot (hshi74/toddlerbot) - the open source humanoid the toddlerbot
    adapter targets. Its code is MIT. **Its design files, including
    everything under descriptions/ (STL and MJCF), are CC BY-NC-SA 4.0 and
    therefore non-commercial: quackd distributes none of it.** No keyframes,
    no checkpoints, no meshes and no calibration are included. The daemon
    quackd ships in bridge/toddlerbot/ runs on your robot inside upstream's
    own environment, imports upstream there, and vendors nothing. Method,
    file and config names are cited as facts.
    https://github.com/hshi74/toddlerbot

No logos, meshes, CAD, ONNX policies, keyframes, checkpoints, sounds,
videos, or other brand assets from any of these projects are distributed
with quackd. Where an upstream's design files are non-commercially
licensed, as ToddlerBot's and microduck_rl's are, quackd includes none of
them at all.
