Skip to content

Architecture

ManiMux composes policy inference, real-robot execution and experiment operation.

flowchart LR
    Sensors["Sensors + robot feedback"] --> Adapter["Observation / action adapter"]
    Adapter <--> Client["Policy framework client"]
    Client <--> Model["Independent model service"]
    Adapter --> Strategy["Inference strategy"]
    Strategy --> Timeline["Action timeline"]
    Timeline --> Executor["Executor"]
    Executor --> Robot["Robot assembly + controllers"]
    Robot --> Sensors
    Strategy -.-> GUI["RoboGUI + recording"]
    Robot -.-> GUI

The main loop reuses these boundaries across configurations. Inference scheduling owns requests and chunk handoff; the timeline samples references; the executor produces commands; controllers own hardware connections. RoboGUI controls the rollout lifecycle and displays evidence through runtime messages.

Boundary Contract Details
Framework → client PolicyModel Policies
Client → robot action representation PolicyAdapter, ActionChunk Adapters
Scheduling → timeline InferenceStrategy, ActionTimeline Runtime
Reference → command Executor, RobotCommand Execution
Robot → hardware RobotBase, ArmController, SensorBase Components
Runtime → user RoboGUI messages, saved rollout records Research workflow

Units, timestamps, group order and action meaning are part of each contract. The same interface does not imply identical device capabilities or that every model/robot combination has been physically tested.

Start a new integration with the extension map. Model implementations stay in their owning framework. Teleoperation and demonstration collection are outside ManiMux; runtime recording and offline replay remain part of the platform.