OpenTau 0.14 adds Xiaomi-Robotics-1 and fixes RoboCasa action order

2 hours ago

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.

Ask about this presentation

Chapters

  1. 0:00OpenTau 0.14
  2. 0:21Xiaomi-Robotics-1
  3. 0:42xr1 parity
  4. 1:03Best-of-N sampling
  5. 1:36pi05_ttt
  6. 2:01RoboCasa actions
  7. 2:25Other fixes
  8. 2:47gRPC auth rename
  9. 3:11Upgrading
Show transcript
  1. 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
    Tensor

    OpenTau 0.14 adds Xiaomi-Robotics-1 and fixes RoboCasa action order

    xr1 policy best-of-N sampling pi05_ttt memory RoboCasa actions fixed gRPC auth renamed
  2. 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
  3. 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.

    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

    xr1 matches the reference checkpoint bit for bit

    OpenTau xr1 Published RoboCasa success rate
    CloseFridge
    98%
    94%
    TurnOnMicrowave
    48%
    56%
    OpenDrawer
    96%
    94%
    CloseBlenderLid
    40%
    36%
    Eval config: configs/examples/xr1_robocasa365_eval_config.json
  4. 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

    Shared prefix Naive replication
    N=1
    153 ms
    154 ms
    N=2
    153 ms
    188 ms
    N=4
    155 ms
    256 ms
    N=8
    156 ms
    392 ms
    N=16
    191 ms
    698 ms
    N=32
    278 ms
    naive: out of memory
    pi05, RTX 5090, bf16, batch 1, chunk 50, 10 Euler steps
    Off by default
    • n_candidates defaults to 1
    • pi05 and pi06 only
    • One critic, "medoid": picks the consensus chunk, needs N ≥ 3, is not a quality model
  5. 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
  6. 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.
  7. 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

    Pre-rename π0.5 checkpoints load again
    normalize_actions.* → normalize_discrete_actions.*
    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
  8. 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.
  9. 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
    github.com/TensorAuto/OpenTau/releases/tag/v0.14.0

What happened in AI today, in your inbox

One short email each evening. Read it and you’re caught up.

Built in New York with ❤️