TL;DR. Streaming-WAM enables streaming world-action prediction for continuous robot control. Instead of waiting at each chunk boundary, the robot continues executing its current action chunk while a Stream Update prepares the next video and action chunks in the background.
An action-conditioned World-Action Model uses committed actions (
Compared with FastWAM on LIBERO, Streaming-WAM achieves 98.35% average success with 3.0× and 2.6× Total Time speedups on Long and Short tasks, respectively, together with a 12.0× Chunk Time speedup. On RoboTwin 2.0, it improves total success by 4.74 percentage points, from 87.0 to 91.74 over FastWAM-Joint, while delivering a 1.4× Total Time speedup and a 12.0× Chunk Time speedup. On the real robot Stamp paper task, it reduces Total Time from 90 s to 38 s (2.4× faster) and achieves a 5.6× Chunk Time speedup. On Block manipulation, it completes the rollout in 26 s versus 60 s for Joint WAM, with 96.67% success versus 100.00%.
Below, we share several practical findings and design details behind efficient streaming world-action prediction.
| Asset | Status |
|---|---|
| Streaming-WAM inference and training code | ✅ Available in this repository |
| Accelerated Streaming-WAM runtime | ✅ Available in this repository |
| LIBERO and RoboTwin recipes | ✅ Available in this repository |
| FastWAM-Joint-CD checkpoint | ✅ Available on Hugging Face |
| Streaming-WAM checkpoint | ✅ Available on Hugging Face |
| Technical report | ⏳ Coming soon |
The reference environment uses Python 3.10, PyTorch 2.7.1/cu128, and Triton
3.3.1. pyproject.toml is the canonical dependency definition.
git clone https://github.com/SJTU-DENG-Lab/Streaming-WAM.git
cd Streaming-WAM
python -m pip install -U uv
uv syncuv installs PyTorch and torchvision from the official cu128 wheel index. A
compatible NVIDIA driver is required; the host CUDA Toolkit does not need to
match the wheel's bundled CUDA 12.8 runtime exactly.
git clone https://github.com/Lifelong-Robot-Learning/LIBERO.git third_party/LIBERO
uv pip install -e third_party/LIBERO --no-deps
uv run huggingface-cli download Wan-AI/Wan2.2-TI2V-5B \
--local-dir checkpoints/Wan2.2-TI2V-5BLIBERO is supplied as an external source checkout through LIBERO_HOME_PATH.
Its expected source tree contains libero/libero/{benchmark,bddl_files, init_files,assets}. A datasets/ directory is optional for rollout-only use.
Place a compatible Streaming-WAM checkpoint and its dataset statistics on disk, then run:
PYTHON_BIN=.venv/bin/python \
GPU_IDS=0,1,2,3 \
BACKBONE_PATH="$PWD/checkpoints/Wan2.2-TI2V-5B" \
LIBERO_HOME_PATH="$PWD/third_party/LIBERO" \
CHECKPOINT_PATH=/path/to/ac_stream_checkpoint.pt \
STATS_PATH=/path/to/dataset_stats.json \
bash examples/libero/scripts/launch_streamingwam_libero_ac_stream_4gpu.sh \
--ac-stream-acceleratedThe launcher defaults to one trial for every task in libero_spatial,
libero_object, libero_goal, and libero_10. See the
LIBERO guide for checkpoint formats, training,
single-task rollout, and evaluation controls.
We evaluate FastWAM-Joint and its streaming variant on LIBERO and RoboTwin 2.0, and apply the same streaming design to X-WAM on RoboCasa. All evaluations use four NVIDIA H100 GPUs.
We compare against general purpose robot policies and WAM baselines on task performance, and against WAM baselines on inference efficiency. CD denotes one-step consistency distillation. On LIBERO, we also ablate action conditioning and the slot encoder to assess each component. Best and second best task results are shown in bold and underlined, respectively.
LIBERO evaluation covers four suites: Long, Spatial, Goal, and Object, with 10 tasks per suite and 50 trials per task. We report average success across suites; Episode Time is reported separately for Long and Short tasks in the efficiency results.
| Method | Long | Spatial | Goal | Object | Average ↑ |
|---|---|---|---|---|---|
| OpenVLA | 53.7 | 84.7 | 79.2 | 88.4 | 76.5 |
| π₀ | 85.2 | 96.8 | 95.8 | 98.8 | 94.1 |
| π₀.₅ | 92.4 | 98.8 | 98.0 | 98.2 | 96.9 |
| Motus | 97.6 | 96.8 | 96.6 | 99.8 | 97.7 |
| FastWAM | 95.2 | 98.2 | 97.0 | 100.0 | 97.6 |
| FastWAM-RTC | 79.20 | 92.80 | 91.40 | 93.20 | 89.15 |
| FastWAM-Joint | 97.60 | 99.20 | 98.40 | 99.20 | 98.60 |
| FastWAM-Joint-CD | 97.20 | 99.60 | 98.60 | 100.00 | 98.85 |
| Streaming-WAM (Ours) | 96.80 | 98.80 | 97.80 | 100.00 | 98.35 |
| Streaming-WAM w/o Action Conditioning | 90.20 | 97.20 | 95.40 | 99.20 | 95.50 |
| Streaming-WAM w/o Slot Encoder | 92.60 | 98.40 | 96.40 | 98.00 | 96.35 |
RoboTwin 2.0 evaluates 50 tasks with 100 rollout episodes per task. Clean reports the easy setting and Random reports the hard domain-randomization setting.
| Method | Clean ↑ | Random ↑ | Total ↑ |
|---|---|---|---|
| π₀ | 65.92 | 58.40 | 62.20 |
| π₀.₅ | 82.74 | 76.76 | 79.80 |
| Motus | 88.66 | 87.02 | 87.80 |
| Motus from WAN2.2 | 77.56 | 77.00 | 77.30 |
| FastWAM-Joint | 86.40 | 87.60 | 87.00 |
| FastWAM-Joint-CD | 86.20 | 85.80 | 86.00 |
| Streaming-WAM (Ours) | 91.68 | 91.80 | 91.74 |
RoboCasa follows the standard 24-task protocol, with 50 trials per kitchen manipulation task and average success reported across tasks.
| Method | Average Success ↑ |
|---|---|
| π₀.₅ | 41.4% |
| π₀-FAST | 61.2% |
| π₀ | 62.5% |
| Cosmos Policy | 67.1% |
| X-WAM | 75.42% |
| X-WAM-CD | 75.33% |
| Streaming-WAM (Ours) | 75.35% |
We evaluate standard Joint WAM inference, its distilled 1V2A variant, and Streaming-WAM over 30 trials per method on each real robot task: Stamp paper and Block manipulation. The Stamp paper setup uses a single NVIDIA GeForce RTX 5090 at a 30 Hz control frequency. Streaming-WAM succeeds in 27 of 30 Stamp paper trials (90.00%) and 29 of 30 Block manipulation trials (96.67%). Relative to Joint WAM, it reduces Chunk Time by 5.6× and 5.4×, and Total Time by 2.4× and 2.3×, respectively. On Block manipulation, Joint WAM achieves the highest success rate (100.00%), while Streaming-WAM completes the rollout in 26 s versus 60 s.
Stamp paper
| Method | Chunk Time | Total Time | Successes | Success Rate ↑ |
|---|---|---|---|---|
| Joint WAM | 682.1 ms | 90 s | 26 / 30 | 86.67% |
| Distilled WAM (1V2A) | 150.3 ms | 61 s | 17 / 30 | 56.67% |
| Streaming-WAM (Ours) | 122.6 ms | 38 s | 27 / 30 | 90.00% |
Block manipulation
| Method | Chunk Time | Total Time | Successes | Success Rate ↑ |
|---|---|---|---|---|
| Joint WAM | 616.3 ms | 60 s | 30 / 30 | 100.00% |
| Distilled WAM (1V2A) | 143.7 ms | 31 s | 23 / 30 | 76.67% |
| Streaming-WAM (Ours) | 113.2 ms | 26 s | 29 / 30 | 96.67% |
Task success alone does not characterize runtime efficiency. We therefore report Chunk Time, the latency required to prepare the next action chunk, and Episode Time, the duration of a complete rollout, including inference, execution, and replanning.
| Benchmark | Method | Chunk Time | Episode Time |
|---|---|---|---|
| LIBERO | FastWAM | 493.0 ms | 16.31 s Long / 8.25 s Short |
| LIBERO | FastWAM-RTC | 142.3 ms | 6.23 s Long / 3.20 s Short |
| LIBERO | FastWAM-Joint-CD | 114.2 ms | 6.89 s Long / 3.74 s Short |
| LIBERO | Streaming-WAM | 41.0 ms | 5.36 s Long / 3.15 s Short |
| LIBERO | Streaming-WAM w/o Action Conditioning | 35.1 ms | 5.20 s Long / 2.92 s Short |
| LIBERO | Streaming-WAM w/o Slot Encoder | 36.3 ms | 5.31 s Long / 3.01 s Short |
| RoboTwin 2.0 | FastWAM-Joint | 652.1 ms | 32.97 s |
| RoboTwin 2.0 | FastWAM-Joint-CD | 165.2 ms | 25.21 s |
| RoboTwin 2.0 | Streaming-WAM | 54.4 ms | 23.89 s |
| RoboCasa | X-WAM | 374.07 ms | 17.36 s |
| RoboCasa | X-WAM-CD | 134.37 ms | 13.04 s |
| RoboCasa | Streaming-WAM | 115.98 ms | 9.49 s |
Across all three benchmarks, Streaming-WAM reduces both runtime measures while maintaining or improving task success. On LIBERO, it achieves a 12.0× Chunk Time speedup over FastWAM and Episode Time speedups of 3.0× and 2.6× on Long and Short tasks, respectively, with 98.35% average success. On RoboTwin 2.0, relative to FastWAM-Joint, Streaming-WAM reduces Chunk Time from 652.1 ms to 54.4 ms and Episode Time from 32.97 s to 23.89 s, while increasing overall success by 4.74 percentage points, from 87.0 to 91.74. On RoboCasa, relative to X-WAM, Streaming-WAM achieves a 3.2× Chunk Time speedup and a 1.8× Episode Time speedup, with comparable average success (75.35% versus 75.42%).
streamingwam/
├── backbone/ # Wan2.2 and Cosmos-Predict2 adapters
├── wam/ # MoT, Shared-DiT, and Streaming-WAM model wrappers
├── modules/ # DiT, ActionDiT, attention, and scheduler modules
├── inference/ # consistency sampling and Streaming-WAM runtime
├── checkpointing/ # native and FastWAM checkpoint adapters
├── training/ # trainers, losses, and entrypoint
└── data/ # dataset and text-cache utilities
examples/
├── libero/ # LIBERO recipes, rollout, and launchers
└── robotwin/ # RoboTwin recipes and deployment adapters
The arXiv entry is not public yet. For now, please cite the project page:
@misc{huang2026streamingwam,
title = {Streaming-WAM: Streaming Your World-Action Model for Real-Time Robot Manipulation},
author = {Xuyao Huang and Yixuan Wang and Zengyao Ye and Haoran Wen and Zhijie Deng},
year = {2026},
howpublished = {Project page},
organization = {Shanghai Jiao Tong University and Li Auto Inc.},
url = {https://sjtu-deng-lab.github.io/Streaming-WAM/}
}Released under the Apache License 2.0.
Streaming-WAM builds on ideas and open-source work from FastWAM, StarWAM, X-WAM, StarVLA, DreamZero, LIBERO, Wan2.2, and Cosmos-Predict2.