Before you start
You need Python 3.12, the Python SDK, and a Reactor API key with access to the hosted model. New to Reactor? How the API works explains sessions, camera tracks, commands, and messages.Request a chunk
- Connect a session to
reactor/praxis-1-yamwith the Python SDK and wait forREADY. Subscribe toaction_predictionandprediction_failedmessages before you send anything. - Publish the
top,wrist_left, andwrist_rightcamera tracks at 15 fps. Send RGBuint8frames in 16:10 aspect, at most 416 pixels on the longer side. For a first test, synthetic frames are enough. - Send
set_taskwith a task, for example{"task": "Pick up the pen from the center of the table, then place the pen in the bag"}. - Send
set_robot_state_jsonwith at least the last 25 rows of measured state at 15 Hz. See Robot state for the format. - Wait for the first
action_prediction. The session needs 25 frames of each camera first, so it arrives about two seconds after the cameras start. Check thatstepis0, that it has 21 rows, and that every value is finite. - To get the next chunk, send
set_executed_stepwith thatstep. The next reply hasstep: 1and 24 rows.
set_robot_state_json takes
{"robot_state_json": "{\"left\": {\"ee_pose\": ..., \"grip\": ...}, \"right\": {...}}"}, not a
nested object.
Replies to synthetic frames and sample state only check connectivity and reply shape. Do not execute
them on hardware. If no chunk arrives, send get_status: its waiting_for field says what the
session still needs.
Next, build a simulator adapter or use the integration
guide.