Skip to content
SII-LiuLabPublic

About

An open-source harness for real-world manipulation inference and experiment management.

Resources

Stars

76 stars

Watchers

0 watching

Forks

Repository files navigation

ManiMux

Real robot experiments. One inference harness.

An open-source harness for real-world manipulation inference and experiment management.

Website · Documentation · Quick start · Try GUI · 中文

Python: 3.11 | 3.12 License: MIT Contributions welcome GitHub stars

Dream-1 demo · lossless autoplay · 1440p, 30 fps

Dream-1 on YAM, through RoboGUI. Watch a real-robot run with live camera views, robot state and predicted action chunks in one workspace.

News

Why ManiMux

  • One deployment workflow. Connect supported policies and robot stations through shared configuration, then inspect and control runs in RoboGUI.
  • Inference as an experiment variable. Compare serial, asynchronous and model-supported sampling strategies while recording their configurations and execution traces.
  • Records you can revisit. Keep trajectories, camera recordings and task-defined human evaluations together for replay, analysis and comparison.

Architecture

ManiMux sits between policy servers and robot hardware, coordinating observation/action adaptation, scheduling, execution, and experiment records. Model frameworks own inference; RoboGUI provides the operator workspace.

ManiMux architecture: observations and actions flow between policy serving, the runtime and a robot station interacting with a rotating world.

View the static diagram

Static ManiMux architecture diagram

Architecture and extension protocols · Inference guide

Feature Matrix

Embodiments Policy & Harness & API Inference
Arm Gripper Sensor Policy Harness API

✅ Integrated. Models are listed under their serving framework; station support varies. Unmarked hardware entries are experimental. See the support catalog and supported combinations for compatibility and validation scope.

Quick start

Requires Python 3.11 or 3.12 and uv.

Try RoboGUI offline

Launch the operator GUI with synthetic data — no robot, camera, or model server required. The key flags are --robot yam --demo.

git clone https://github.com/SII-LiuLab/manimux.git
cd manimux
uv sync --dev
uv run manimux-robogui --robot yam --demo --host 127.0.0.1 --port 8086

Then open http://127.0.0.1:8086 in your browser.

Flag Meaning
--robot yam Use the YAM RoboGUI preset (also: piper, aloha, tianji)
--demo Drive the UI with synthetic joint/camera streams; no hardware I/O
--host / --port Bind address for the local web UI

Other presets (same environment, different port if needed):

uv run manimux-robogui --robot piper --demo --host 127.0.0.1 --port 8087
uv run manimux-robogui --robot aloha --demo --host 127.0.0.1 --port 8087

Model environments and checkpoints are needed only for real-robot deployment below.

Run on a robot: one command for all services

A deployment is four services: the camera server, the model server (none for hosted APIs such as Dream-1), RoboGUI and the runtime that drives the robot. manimux up starts all of them at once, each in its own tmux session, and holds the terminal. Ctrl-C stops all of them at once, runtime first, so the robot is cleaned up before the cameras and model go away.

uv run manimux doctor --config <experiment.yaml> \
  --runtime-python envs/yam/.venv/bin/python --policy-python <model-env>/bin/python  # read-only
uv run manimux up --config <experiment.yaml> \
  --runtime-python envs/yam/.venv/bin/python --policy-python <model-env>/bin/python --open
# ... operate in RoboGUI (Prepare, Start, Finish) ...
# Ctrl-C  -> stops runtime, model, cameras and RoboGUI
  • Hosted model APIs such as Dream-1 have no model server: omit --policy-python and export their API key in this terminal first.
  • If runtime cleanup blocks (for example while waiting for hardware recovery), the terminal says so and keeps everything alive. Use RoboGUI recovery, or support all arms and payloads and press Ctrl-C again to force-kill every service.
  • Lost the up terminal? Rerun the same up command; it attaches to the running services, and Ctrl-C stops them.
  • From another terminal: uv run manimux status (service health) and uv run manimux attach --service runtime (runtime terminal; detach with Ctrl-B, then D).

Start the services by hand

The same four services, one terminal each, started in this order. Stop them with Ctrl-C in each terminal, runtime first.

# 1. Camera server
envs/yam/.venv/bin/python -m manimux.servers.camera.server \
  --config <experiment.yaml> --local manimux/configs/local/station.yaml
# 2. Model server (XPolicyLab recipes; skip for hosted APIs such as Dream-1)
<model-env>/bin/python -m manimux.servers.policy \
  --config <experiment.yaml> --local manimux/configs/local/station.yaml
# 3. RoboGUI
envs/yam/.venv/bin/python -m manimux.robogui.dashboard --robot yam --host 127.0.0.1 --port 8086
# 4. Runtime: connects robot, cameras and model, then waits for Prepare in RoboGUI
envs/yam/.venv/bin/python -m manimux run \
  --config <experiment.yaml> --local manimux/configs/local/station.yaml

See managed deployment for external model/camera services, separate trial roots and Franka.

Next, choose your workflow:

I want to… Start here
Deploy a model on a real robot Station setup → Deployment recipes
Run Dream-1 through its cloud API Dream-1 on YAM
Run Pi05 through XPolicyLab Pi05 on YAM
Let an agent plan with a VLA (RPent) RPent variant of either example: Dream-1 · Pi05
Compare methods and evaluate runs Experiment workflow · Records & replay

Contributing & community

Contributions to robot and policy integrations, inference strategies, RoboGUI, and documentation are welcome. Start with the contribution guide. For agent-assisted development, use the development skill.

Latest update · 2026-10-18: The ManiMux website and dedicated user guide are live.

Developer WeChat group

Join the ManiMux developer WeChat group to discuss integrations, experiments, and contributions. Scan the invitation below in WeChat.

ManiMux developer WeChat group invitation QR code

This invitation is valid until October 28, 2026. If it has expired, please open a GitHub issue to request an updated invitation.

Citation

If ManiMux supports your research, please cite this repository. The paper link is forthcoming.

@misc{manimux2026,
  title = {{ManiMux}: An Open-Source Harness for Real-World Manipulation Inference and Experiment Management},
  year = {2026},
  howpublished = {GitHub repository},
  url = {https://github.com/SII-LiuLab/manimux}
}

Please also cite the components, models and methods used in your work: XPolicyLab, StarVLA and PRM-as-a-Judge.

License

ManiMux is licensed under MIT. Third-party frameworks, SDKs and assets retain their own licenses; see third-party notices.

About

An open-source harness for real-world manipulation inference and experiment management.

Resources

Stars

76 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages