Skip to content

Repository files navigation

ManiMux

A unified, composable platform for real-robot experiments.

Policy × Runtime × Embodiment

Platform Robo GUI
Component: XPolicyLab Component: PRM-as-a-Judge Python 3.11 and 3.12
Policies: 10 integrations, including 2 model-only paths Embodiments: 1 real robot and 1 simulation integration Inference: 8 modes
Collection: Teleop, UMI and DAgger; implementation status in roadmap Evaluation: human feedback and LLM judge

English · 简体中文

Features · Video · Architecture · Quick Start · Documentation · Citation

ManiMux brings data collection, policy deployment and evaluation onto a shared real-robot control foundation. Instead of rebuilding the deployment stack for every model or robot, choose the policy, runtime strategy, executor and embodiment through configuration. Standard interfaces separate model inference from hardware control, making integrations reusable across embodiments rather than tied to one model–robot pair.

One experiment workflow, visible in Robo GUI. Prepare and run trials, inspect live cameras, 3D state, trajectories and chunk handoffs, then review predictions, commands and robot feedback. XPolicyLab provides the model integration boundary; human labels and PRM-as-a-Judge support evaluation of the recorded experiments.

Collect with the control semantics you deploy with. Teleoperation reuses ManiMux's hardware interfaces and shared control profiles to align action timing, joint/gripper conventions and motion limits between demonstrations and policy execution. Optional execution smoothing stays an explicit choice—not a hidden difference in a separate deployment stack.

📖 Start with the Guideline for installation and setup, or use the Pi05 example below. Detailed model and method guides live in Documentation.

News

  • [2026-09-13] Initial version in development. We are building a shared foundation for configurable policy deployment, teleoperation collection and GUI-driven real-robot experiments.

✨ Features

Feature Status What it provides
Composable deployment Config-driven policy × runtime strategy × executor × embodiment
Cross-embodiment interfaces Shared contracts; YAM hardware and ManiUniCon simulation integrations
Inference methods Async, serial, RTC, PAINT and adaptive chunking
Robo GUI Rollout controls, cameras, 3D state, trajectories and chunk timelines
Teleop collection Leader policy + YAM GUI, with ManiMux follower control
Collection / deployment alignment Shared hardware interfaces, action timing and arm / gripper limits
Execution evidence Configs, observations, actions, commands, feedback, events and video
Evaluation Human labels + offline PRM / LLM judging
UMI / DAgger collection Collection roadmap

✅ denotes implemented functionality, not validation of every model / hardware combination. Support counts also include model-only and simulation paths.

🎬 Demo Video

Dual-arm YAM rollout with live cameras, 3D robot state and action-chunk handoffs.

ManiMux rollout with live cameras, robot state and action-chunk visualization

▶ Open the MP4 recording

🧩 Architecture

Policy inference and hardware execution are separate responsibilities. The inference strategy decides when and how to hand off a chunk; the executor turns its targets into robot commands.

%%{init: {"flowchart": {"wrappingWidth": 180, "curve": "basis", "nodeSpacing": 24, "rankSpacing": 28, "padding": 14}}}%%
flowchart LR
    OBS["<b>OBSERVE</b><br/>Cameras · robot state<br/>Build policy inputs"]:::stage

    subgraph THINK["<b>PREDICT</b>"]
        direction TB
        XPOLICY["<b>XPolicyLab</b><br/>Pi05 · XR-1 · GR00T<br/>LingBot · OpenWAM"]:::xpolicy
        NATIVE["<b>Legacy native</b><br/>MolmoAct2 · ABC"]:::native
        XPOLICY ~~~ NATIVE
    end

    PLAN["<b>ADAPT & SCHEDULE</b><br/>Async · RTC · PAINT<br/>Serial · adaptive<br/><br/>Adapter → Timeline"]:::handoff
    ACT["<b>EXECUTE</b><br/>Direct · Smooth · MPC<br/><br/>Executor + Safety<br/>Control profile"]:::stage
    ROBOT(["<b>ROBOT</b><br/>RobotDriver<br/>Hardware"]):::robot
    TELEOP["<b>COLLECT</b><br/>YAM GUI<br/>LeaderPolicy"]:::collection
    REVIEW(["<b>REVIEW</b><br/>Robo GUI · records<br/>Human labels<br/>PRM-as-a-Judge"]):::side

    OBS --> THINK --> PLAN --> ACT --> ROBOT
    TELEOP --> ACT
    ACT -.-> REVIEW

    classDef stage fill:#F6F8FA,stroke:#8C959F,stroke-width:1px,color:#1F2328
    classDef handoff fill:#FFF4E5,stroke:#E36209,stroke-width:2.5px,color:#1F2328
    classDef side fill:#FFFFFF,stroke:#8C959F,stroke-dasharray:4 3,color:#57606A
    classDef robot fill:#1F2328,stroke:#1F2328,color:#FFFFFF
    classDef xpolicy fill:#8957E5,stroke:#6633B8,color:#FFFFFF
    classDef native fill:#2F6FEB,stroke:#1B4DB1,color:#FFFFFF
    classDef collection fill:#1A7F55,stroke:#125C3D,color:#FFFFFF
    style THINK fill:#FFFFFF,stroke:#8C959F,stroke-dasharray:5 4,color:#1F2328
Loading

Model servers never command hardware. Teleoperation bypasses chunk scheduling and reuses the execution interfaces, while retaining its own collection GUI and recording format. New model integrations must follow the XPolicyLab-only route; the native paths shown here remain for compatibility pending migration.

GitHub: ManiMux · XPolicyLab · PRM-as-a-Judge

🚀 Quick Start · Pi05 on YAM

This example runs Pi05 pure-joint, step-30000, put-bottles with RTC. It assumes the YAM and OpenPI environments, checkpoint and local device configuration are already prepared; see the setup guide. For a hardware-free first run, use the mock example.

From the repository root, run these in four separate terminals. Reuse matching camera / Viewer services if already running; collection and inference must not control the same robot simultaneously.

# Terminal 1: cameras
envs/yam/.venv/bin/manimux-camera-server --config configs/cameras.yaml

# Terminal 2: Viewer
envs/yam/.venv/bin/manimux-viewer --robot yam --host 127.0.0.1 --port 8086

# Terminal 3: pure-joint 30k model server
XPolicyLab/policy/Pi_05/openpi/.venv/bin/python \
  scripts/servers/pi05_yam_server.py \
  --config configs/pi05/yam/server/put-bottles/joint-step30000.yaml

# Terminal 4: matching RTC runtime
envs/yam/.venv/bin/manimux serve \
  --config configs/pi05/yam/infra/put-bottles/rtc-joint-step30000.yaml

Open http://127.0.0.1:8086, then Prepare → Start rollout → Finish & Home. Normal rollouts need no label; experiment rollouts require a human label before the next trial. Keep the server and runtime configs paired: this example uses joint, not joint+EE.

📚 Guides

📝 Citation

If ManiMux supports your experiments, please cite the repository. For experiments using its XPolicyLab integration, please also cite the XPolicyLab paper.

@misc{manimux2026,
  title = {{ManiMux}: A Composable Platform for Real-Robot Experiments},
  year = {2026},
  howpublished = {GitHub repository},
  url = {https://github.com/SII-LiuLab/manimux}
}

@article{community2026xpolicylab,
  title = {{XPolicyLab}: A Unified Standard and Open Ecosystem for Robot Policy Evaluation and Deployment},
  author = {{XPolicyLab Community} and Chen, Tianxing and Chen, Yue and Nian, Tian and others},
  journal = {arXiv preprint arXiv:2608.09892},
  year = {2026},
  doi = {10.48550/arXiv.2608.09892},
  url = {https://arxiv.org/abs/2608.09892}
}

Physical robots require matching model contracts and hardware safety measures; software checks do not certify safety or task success. Upstream attribution: notices · licenses.

About

No description, website, or topics provided.

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages