OpenTau 0.14 ports Xiaomi-Robotics-1, adds best-of-N action sampling, and brings an experimental π0.5 with test-time-training memory. It also fixes a RoboCasa bug that scrambled every action, and it renames the gRPC key, which matters before you upgrade a server.
OpenTau 0.14 ports Xiaomi-Robotics-1, adds best-of-N action sampling, and brings an experimental π0.5 with test-time-training memory. It also fixes a RoboCasa bug that scrambled every action, and it renames the gRPC key, which matters before you upgrade a server.
Slide text
OpenTau
v0.14.0
Release notes
Xiaomi-Robotics-1
Best-of-N sampling
pi05_ttt memory
RoboCasa actions
Other fixes
gRPC auth rename
Upgrading
OpenTau 0.14.0
OpenTau 0.14 adds Xiaomi-Robotics-1 and fixes RoboCasa action order
The biggest addition is a new policy type, xr1, a port of Xiaomi-Robotics-1. A Qwen3-VL-4B vision-language model fills a key-value cache at each of its 36 layers, and a 36-layer diffusion transformer reads that cache, layer by layer, to produce the action chunk by flow matching.
Slide text
OpenTau
v0.14.0
Release notes
Xiaomi-Robotics-1
Best-of-N sampling
pi05_ttt memory
RoboCasa actions
Other fixes
gRPC auth rename
Upgrading
OpenTau 0.14.0 » Xiaomi-Robotics-1
The new xr1 policy is a port of Xiaomi-Robotics-1
Qwen3-VL-4B
vision-language backbone, 36 layers
key/value cache, one per layer
36-layer DiT
flow-matching action head
"type": "xr1"4 frames per camera reach the backbone as 3 two-frame videos
Against the reference checkpoint the port is bit-identical, from the prompt tokens to the decoded action chunk. In RoboCasa simulation its success rates land within the confidence intervals of the published ones. To reproduce them, start from the shipped eval config, which puts the wrist camera last and loads both object registries.
Best-of-N sampling denoises several noise draws per observation and lets a critic keep one chunk. The vision-language prefix runs once, so on an RTX 5090 eight candidates take about 156 milliseconds, against 153 for one. Replicating the observation instead takes about 390. It is off by default, covers pi05 and pi06 only, and its one critic picks the consensus chunk, which is not a judge of quality.
Slide text
OpenTau
v0.14.0
Release notes
Xiaomi-Robotics-1
Best-of-N sampling
pi05_ttt memory
RoboCasa actions
Other fixes
gRPC auth rename
Upgrading
OpenTau 0.14.0 » Best-of-N sampling
Best-of-N: eight candidate chunks for under 2% more latency
One critic, "medoid": picks the consensus chunk, needs N ≥ 3, is not a quality model
pi05_ttt is a new, experimental policy that ports RoboTTT onto π0.5. A test-time-training layer follows attention in each of the action expert's 18 layers, and its fast weights update at every timestep, so memory carries across steps. Around it come paired demonstration and rollout episodes, trainable-only snapshots, and inference diagnostics.
Slide text
OpenTau
v0.14.0
Release notes
Xiaomi-Robotics-1
Best-of-N sampling
pi05_ttt memory
RoboCasa actions
Other fixes
gRPC auth rename
Upgrading
OpenTau 0.14.0 » pi05_ttt memory
pi05_ttt gives π0.5 a memory that learns at test time
timestep t
attention
TTT layer
t + 1
attention
TTT layer
t + 2
attention
TTT layer
In each of the action expert's 18 layers, fast weights carry memory across timesteps.
Paired episodes for one-shot imitation
dataset_mixture. pair_episodes
Trainable-only snapshots
save_trainable_params
Inference-only diagnostics
ttt_inference_ alpha_scale
If you evaluate in RoboCasa, this fix changes your numbers. OpenTau's in-process environment read the 12-number action with base motion first. RoboCasa puts the end effector first, so the arm command drove the base. Episodes still ran, and only the success rate fell. Treat every earlier RoboCasa number as understated, and re-run your baselines.
Slide text
OpenTau
v0.14.0
Release notes
Xiaomi-Robotics-1
Best-of-N sampling
pi05_ttt memory
RoboCasa actions
Other fixes
gRPC auth rename
Upgrading
OpenTau 0.14.0 » RoboCasa actions
RoboCasa evals sent every action in the wrong order
How 0.13 read the 12-D action
base motion4
mode1
EE position3
EE rotation3
grip1
RoboCasa's order, used from 0.14
EE position3
EE rotation3
grip1
base motion4
mode1
Every earlier RoboCasa success rate is understated and not comparable to new ones. Affects env.type: robocasa; the external WebSocket client path was correct.
A few more fixes. Older π0.5 checkpoints with pre-rename normalizer keys load again. Multi-rank LIBERO eval across all tasks no longer crashes. The gRPC server works after torch compile in max-autotune mode. And the value policy reads a learned readout token, instead of padding that limited it to the mean return.
Slide text
OpenTau
v0.14.0
Release notes
Xiaomi-Robotics-1
Best-of-N sampling
pi05_ttt memory
RoboCasa actions
Other fixes
gRPC auth rename
Upgrading
OpenTau 0.14.0 » Other fixes
Fixes for crashes and silent failures you may have hit
Multi-rank LIBERO eval over all tasks no longer crashes
env.task_ids: null
gRPC works after torch.compile max-autotune
sample_actions runs on one dedicated thread
The value policy reads a learned <val> token
it read padding and could only emit the mean return
One change breaks existing setups. The gRPC server's API key moved: clients send x-api-key, and the server reads INFERENCE_API_KEY. The old names are gone. A client on the old header fails closed, with an error naming the right one. A launcher still exporting the old variable fails open, and the server runs unauthenticated without a warning.
Slide text
OpenTau
v0.14.0
Release notes
Xiaomi-Robotics-1
Best-of-N sampling
pi05_ttt memory
RoboCasa actions
Other fixes
gRPC auth rename
Upgrading
OpenTau 0.14.0 » gRPC auth rename
Breaking: the gRPC API key has a new header and env var
Client header
x-tuner-api-key
→
x-api-key
Server env var
TUNER_INFERENCE_API_KEY
→
INFERENCE_API_KEY
Old client: fails closed
Gets UNAUTHENTICATED, and the message names x-api-key.
Old launcher: fails open
The new variable is unset, so the server starts with no auth and no error.
To upgrade, run pip install with the upgrade flag. When you do, rename the gRPC key on servers that use auth, drop sequence stride from sequence configs, and re-run RoboCasa baselines. If a pinned older OpenTau reads checkpoints you save, upgrade it too, since their configs now carry two keys it rejects. That is OpenTau 0.14: Xiaomi-Robotics-1, best-of-N, and RoboCasa actions in the right order.
Slide text
OpenTau
v0.14.0
Release notes
Xiaomi-Robotics-1
Best-of-N sampling
pi05_ttt memory
RoboCasa actions
Other fixes
gRPC auth rename
Upgrading
OpenTau 0.14.0 » Upgrading
When you upgrade, rename the gRPC key and re-run RoboCasa baselines
$ pip install --upgrade opentau
Rename the gRPC key on servers that use auth
Delete sequence_stride from sequence configs, or set it to action_chunk
Re-run RoboCasa baselines before comparing
If a pinned older OpenTau reads your checkpoints, upgrade it too: saved configs now carry n_candidates and action_chunk_critic_path