The
robot capability is in beta - see the Robots reference.The environment
The env module only declares; it runs no policy of its own. It wires three things together: a bridge that drives the simulator, aRobotEndpoint that exposes the bridge as a capability, and two-yield task templates. This is demos/inventory/envs/libero/env.py, abbreviated:
env.py
hud serve env.py --host 0.0.0.0 --port 8765). This env lives in HUD’s demos/ examples tree, a sibling of the hud-python SDK; build it from the parent directory that holds both demos/ and hud-python/ so the image can install the SDK from local source:
The agent
A stock LeRobot checkpoint needs no custom Model or Adapter:run_libero.py
Run it
DockerRuntime sets the placement, and each rollout is self-contained:
- The container is created fresh with
docker run, publishes its control port, is connected to, and is removed when the episode ends. - The agent reads the env’s contract from the manifest at connect time and wires cameras, state, and actions itself - there is no shared config between this script and the image.
- The robot WebSocket binds to container-loopback and rides that single control port through capability tunneling.
Read the trace
WithHUD_API_KEY set, every episode streams to the platform automatically: the trace viewer plays the camera frames back under a scrubber, with diamond markers at each step where the policy predicted a fresh action chunk - scrub between markers to watch a chunk execute, click one to jump to the decision point.
See also
Robots reference
Contracts, bridges, sim threading, and the harness API.