1
Install
relay needs Python 3.10 or newer.2
Set the server URL
Put Replace
WALLE_URL in your environment or in a .env file in your working directory. {model} stays as written: the client replaces it with the model you connect to..env
<workspace> with the Modal workspace the servers are deployed in. For a development server started with modal serve, add -dev before .modal.run.3
Get actions
first_call.py
actions[0] is the action to execute now, actions[1] the one after, and so on.4
Check what the server expects
Each server describes its model on connect. Read this before you build observations for a new model.
If a server has just been deployed or scaled up, the first connection waits while the model loads. That can take a few minutes.
PolicyClient waits rather than timing out, and later connections take under a second.Run the demo
The repository includes a demo. It sends synthetic frames, shows each action chunk as it arrives and reports latency percentiles at the end. It’s the quickest way to check your setup and see the latency from your network.get_observation() in examples/demo.py with your robot’s cameras and joint state to turn it into a real control loop.
Next steps
Observations
Camera, state and option keys for each model.
Control loops
Running a policy on a real robot, episode after episode.