SOLE-R1
sole-r1Reasoning-based robot trajectory evaluation.
Documentation
Submit robot videos and trajectories to foundation reward models through a simple Python interface.
1pip install sublinear-sdk
Choose the example that matches your robot-learning workflow.
Pass a loaded LeRobotDataset object directly to the client.
1from sublinear import Sublinear2from lerobot.datasets.lerobot_dataset import LeRobotDataset34client = Sublinear(api_key=API_KEY)56lerobot_dataset = LeRobotDataset("jackvial/so101_pickplace_recap_merged_v2", video_backend="pyav")78response = client.responses.create(9 model="sole-r1",10 task_description="Pick up the cube and place it in the target location marked by the X.",11 lerobot_dataset=lerobot_dataset12)13print(response.rewards)14print(response.success)
Pass the path to a local MP4 video file.
1from sublinear import Sublinear23client = Sublinear(api_key=API_KEY)45response = client.responses.create(6 model="sole-r1",7 task_description="Fold the clothing.",8 video_path="episode.mp4"9)1011print(response.rewards)12print(response.success)
Pass RGB frames directly from memory as a list or NumPy array.
1from sublinear import Sublinear2import numpy as np34client = Sublinear(api_key=API_KEY)56# Shape: [number_of_frames, height, width, channels]7video_frames = np.load("video_frames.npy")89response = client.responses.create(10 model="robometer",11 task_description="Fold the clothing.",12 video_frames=video_frames13)1415print(response.rewards)16print(response.success)
Generate an annotated video showing the model reward assigned to each frame.
Plot the response using the same input format supplied during inference.
1from sublinear import video_plot23video_plot(4 outputs=[{"model": "sole-r1", "rewards": response.rewards}],5 plot_save_path="/annotation/episode.mp4",6 lerobot_dataset=lerobot_dataset7)
Plot the response using the same input format supplied during inference.
1from sublinear import video_plot23video_plot(4 outputs=[{"model": "sole-r1", "rewards": response.rewards}],5 plot_save_path="/annotation/episode.mp4",6 video_path="episode.mp4"7)
Plot the response using the same input format supplied during inference.
1from sublinear import video_plot23video_plot(4 outputs=[{"model": "sole-r1", "rewards": response.rewards}],5 plot_save_path="/annotation/episode.mp4",6 video_frames=video_frames7)
| Parameter | Type | Description |
|---|---|---|
model | string | Reward model identifier. |
task_description | string | Natural-language description of the desired robot task. |
video_path | string | Path to a local MP4 video. |
lerobot_dataset | LeRobotDataset | A loaded LeRobot dataset. |
video_frames | list | ndarray | RGB video frames supplied directly from memory. |
sole-r1Reasoning-based robot trajectory evaluation.
robometerDense task-progress reward estimation.
toprewardVisual reward estimation across robot tasks.
roborewardGeneral-purpose robot reward prediction.
Create an account and generate your first API key.
Get started