ActionCodec2: A Streaming Action Tokenizer
TL;DR A streaming action tokenizer for autoregressive VLAs that quantizes each control step against the decoder's reconstruction, so trajectory error stays within a set tolerance, at 8.8 tokens per second. In the same VLA it reaches 73.9% task progress zero-shot on a real Franka, against 50.8% for FAST, with 50 ms latency instead of 607 ms.
What they do
Most action tokenizers for autoregressive VLAs encode one to two seconds of motion as a chunk that must be fully decoded before any action runs, and small per-step errors add up: in LIBERO replays, FAST reconstructs single actions within 1 mm but drifts about 40 mm per episode. ActionCodec2 is a streaming tokenizer, fitted without gradient training, that releases each control step as soon as its tokens are out while bounding the trajectory error.
How it works
- Error-feedback quantization. The encoder mirrors the decoder’s reconstructed state and picks the fixed motion primitive that returns the tracking error inside the tolerance (5 mm, 0.02 rad). Primitives only cover one step of motion: 17 per axis at 1.2 m/s and 15 Hz, against 400 bins for absolute positions in a 4 m workspace. They derive the exact minimum for translation and constant-factor-tight bounds for rotation.
- Set-BPE. Losslessly merges co-occurring atoms across coordinates and neighboring steps with no fixed coordinate order, using 6.6-10.7% fewer tokens than BPE.
- Universal version. Fitted on about 20k hours from 24 embodiments with 4,096 tokens: 8.8 tokens/s for end-effector control at 15 Hz.
Results
- With the same G0.5 VLA: 98.2% on LIBERO, 93.8% on SimplerEnv and 79.5% on LIBERO-Plus, above FAST, OAT, X-Tokenizer and ActionCodec.
- Real Franka, trained on DROID and tested zero-shot in unseen scenes: 73.9% task progress vs 50.8% for FAST and 52.8% for X-Tokenizer, with 50 ms latency vs 607 and 467 ms (one control period is 66.7 ms).
- Under a 20 Hz real-time clock, streaming execution reaches 91.0% on LIBERO vs 73.1% when the same predictions wait for the full chunk.
- Feeding the measured state back within a chunk raises success from 64.7% to 79.0% under randomized physics in simulation.
Limitations
The pretrained tokenizers cover end-effector speeds up to about 1.2 m/s, and on highly dynamic motion their compression may fall below that of chunk tokenizers. Real-robot tests use one Franka arm and four task suites.
Videos
Figures




Abstract
Most action tokenizers for autoregressive vision language action (VLA) models compress motion into chunks that must be decoded in full before their actions become executable. We introduce ActionCodec2, a non-neural streaming tokenizer that releases actions incrementally while keeping trajectory reconstruction error within a prescribed tolerance. Its encoder quantizes each step relative to the decoder's reconstructed state, so the selected motion primitive corrects residual error rather than allowing errors from independently quantized increments to accumulate. Finding the smallest such primitive set is a geometric covering problem; we derive the exact minimum for translation and constant-factor-tight bounds for rotation. Set-BPE then losslessly merges co-occurring primitive symbols across coordinates and neighboring steps, without a fixed coordinate ordering. A universal version fitted on 20k hours of data from 24 embodiments averages 8.8 tokens per second for 15 Hz end-effector motion on this corpus. With the same VLA backbone, ActionCodec2 outperforms the compared tokenizers on three simulation benchmarks and in zero-shot real-robot evaluation. Its streaming representation allows policies to incorporate state feedback within an action chunk, substantially improving performance over open-loop execution under randomized dynamics, external disturbances, and moving objects. The same tokens also can serve as a direct control interface for VLM agents, which compose successful action sequences into reusable macros. These agent-built macros reduce control decisions and thinking-token usage across attempts and transfer to a held-out task. More results are available at https://zibindong.github.io/actioncodec2-page/
Summaries are written automatically from each paper's text. Figures and videos come from the paper and its project page; all credit goes to the authors.
