
RT-1 turned 130,000 teleoperation demonstrations into a 35M transformer that ran at 3 Hz. Its action tokenisation, real success rates, and what still holds in 2026.
RT-1 was the paper that made large-scale imitation learning for robots look like a serious engineering programme rather than a demo. It arrived on arXiv on 13 December 2022 as arXiv 2212.06817, carried 51 authors from Robotics at Google, Everyday Robots and Google Research, and was published at Robotics: Science and Systems 2023. Its claim was narrow and testable: a 35 million parameter transformer, trained by imitation learning on about 130,000 human teleoperation demonstrations, can perform over 700 language instructions on a real robot at 97 percent success and still run its control loop at 3 Hz.
RT-1 in eight lines
- •RT-1 is a 35 M parameter policy: a FiLM-conditioned EfficientNet-B3 image tokeniser (16 M) plus a decoder-only transformer (19 M).
- •Training data: about 130,000 teleoperated demonstrations, 744 instructions grouped into skills, 13 robots, 17 months of collection.
- •Every continuous action dimension is discretised into 256 uniform bins and predicted as a classification token, with a plain cross-entropy loss.
- •Reported success rates: 97 percent seen instructions, 76 percent unseen, 83 percent under distractors, 59 percent on new backgrounds.
- •Network inference measured at 15 ms, against a stated budget of under 100 ms for 3 Hz closed-loop control.
- •The most durable result is not the architecture. Cutting task diversity hurt generalisation more than cutting data volume did.
- •The action tokenisation survived into RT-2, RT-1-X and OpenVLA. It was abandoned by the flow-matching and diffusion policies that followed.
- •Weights are still public and still run under TensorFlow. The robot they were trained on, the Everyday Robots mobile manipulator, no longer exists.
What RT-1 actually is
Strip the marketing and RT-1 is a sequence model that maps six camera frames plus one instruction string to eleven integers. Those integers index bins. Each bin decodes back to a float that the robot's controller consumes as a delta command. There is no planner, no state estimator, no task graph. The whole policy is one forward pass, repeated three times a second until the model emits a terminate token or the episode hits a step limit.
| Property | Value as published |
|---|---|
| Full title | RT-1: Robotics Transformer for Real-World Control at Scale |
| Preprint | arXiv 2212.06817, v1 13 Dec 2022, v2 11 Aug 2023 |
| Venue | Robotics: Science and Systems 2023, proceedings paper p025 |
| Parameters | ~35 M total: 16 M image and instruction tokeniser, 19 M transformer |
| Vision input | 6 RGB frames at 300 x 300, ImageNet-pretrained EfficientNet-B3 |
| Language input | one instruction string, embedded with Universal Sentence Encoder |
| Action dimensions | 7 arm (x, y, z, roll, pitch, yaw, gripper), 3 base (x, y, yaw), 1 mode |
| Discretisation | 256 uniform bins per continuous dimension |
| Loss | categorical cross-entropy with causal masking |
| Control rate | 3 Hz closed loop |
| Measured network inference | 15 ms (paper Table 13) |
| Robot | Everyday Robots mobile manipulator: 7-DoF arm, two-finger gripper, mobile base |
| Code licence | Apache 2.0 |
The mode dimension is the part people forget. It is a three-way switch: control the arm, control the base, or terminate. RT-1 is a mobile manipulation policy, not an arm policy, and the base dimensions are part of the same token sequence as the wrist rotation. That matters if you try to port the idea to a fixed-base arm like the SO-100, where three of the eleven dimensions have nothing to predict.
The 97 percent over 700 instructions is a claim from the paper's introduction, not its abstract; the abstract states no success rate at all. Section 6.1 is more precise about what was measured: the seen-task evaluation covers over 200 tasks sampled from the training set, split as 36 picking, 35 knocking, 35 placing upright, 48 moving, 18 drawer open/close and 36 in-and-out-of-drawer. The 97 percent is measured on those 200-plus evaluation instructions, not on all 744 training instructions. The whole evaluation programme ran over 3000 real-world trials.
The 130,000 demonstrations, and how they were collected
Thirteen robots, seventeen months, one purpose-built room. The paper calls the collection sites robot classrooms: partial kitchen counters modelled on two real office kitchens, which were kept as held-out evaluation environments. Each robot drove itself to its station, told the human operator which instruction to demonstrate and how to randomise the scene, then recorded the episode. Demonstrations were captured with two VR remotes in direct line of sight, with the remote's 6-DoF displacement mapped onto the policy's own action space so that the transition dynamics stayed consistent between demonstration and rollout.
| Skill | Instruction count | Example instruction |
|---|---|---|
| Move object near object | 337 | move pepsi can near rxbar blueberry |
| Pick object from receptacle and place on counter | 162 | pick green jalapeno chip bag from paper bowl and place on counter |
| Pick object | 130 | pick iced tea can |
| Place object into receptacle | 84 | place brown chip bag into white bowl |
| Place object upright | 8 | place water bottle upright |
| Knock object over | 8 | knock redbull can over |
| Open / close drawer | 6 | open the top drawer |
| Additional long-instruction skills | 9 | pull napkin out of dispenser |
| Total | 744 | - |
That distribution is worth staring at. Two skills account for 499 of the 744 instructions. Placing upright and knocking over have eight each. RT-1 is not evenly multi-task; it is a picking-and-moving policy with a long tail. If you have ever built your own LeRobot dataset you will recognise the shape: the task you started with dominates, and the variations you added later are thin. The public dataset directory has the same skew.
The dataset itself is public. It ships as fractal20220817_data in TensorFlow Datasets: 87,212 train episodes, 111.38 GiB, images at 256 x 320, with the instruction carried both as a string and as a precomputed 512-dimensional sentence embedding. It later became one of the larger single components of Open X-Embodiment, whose own dataset figure names xArm and Google Robot as the two embodiments contributing the most trajectories.
Action tokenisation: 256 bins, and nothing clever
This is the single idea from RT-1 that spread furthest, and it is almost embarrassingly simple. Clip the action to the spec bounds, normalise to [0, 1], multiply by 255, cast to int. The released tokeniser is 157 lines. Here is the entire encode path, verbatim from the archived repository:
a = tf.clip_by_value(a, spec.minimum, spec.maximum)
# Normalize the action [batch, actions_size]
token = (a - spec.minimum) / (spec.maximum - spec.minimum)
# Bucket and discretize the action to vocab_size, [batch, actions_size]
token = tf.cast(token * (self._vocab_size - 1), tf.int32)a = action_tokens[..., token_index:token_index + 1]
a = tf.cast(a, tf.float32)
a = a / (self._vocab_size - 1)
a = (a * (spec.maximum - spec.minimum)) + spec.minimumInteger-typed dimensions such as the terminate flag are assumed to be tokens already and pass through with an argmax. Everything continuous gets the bucket treatment. RT1ActionTokenizer itself has no default bin count: vocab_size is a required constructor argument. The 256 comes one level up, from TransformerNetwork, which defaults to vocab_size=256 and passes that straight into the tokeniser. The tokeniser docstring's worked example builds eight tokens per action (terminate, three world-vector, three rotation-delta, one gripper) rather than the eleven the paper describes, because the spec in that example has no mobile-base dimensions.
Bin edges are uniform between the spec minimum and maximum. One outlier action in your training data widens the interval and every ordinary action collapses into a handful of central bins. OpenVLA hit this and changed the rule: it uses the same 256 bins but sets the interval to the 1st and 99th quantile of the training actions instead of the min and max, explicitly to stop outliers from destroying effective resolution. If you ever tokenise your own actions, do the quantile version. If your loss falls but the arm barely moves, this is one of the candidates on the loss-falls-policy-does-nothing page.
The architecture, stage by stage
| Stage | What it does | Output | Notes |
|---|---|---|---|
| Universal Sentence Encoder | Embeds the instruction string | 512-d vector | Pretrained, used as FiLM conditioning input |
| FiLM-EfficientNet-B3 | ImageNet-pretrained CNN, 26 layers of MBConv blocks and FiLM layers | 9 x 9 x 512 feature map, flattened to 81 tokens per frame | 16 M parameters, images are not patchified |
| TokenLearner | Element-wise attention that soft-selects informative token combinations | 8 tokens per frame, 48 across the 6-frame history | 2.4x inference speedup |
| Transformer decoder | 8 self-attention layers over the 48 image tokens | 11 action tokens, 256-way softmax each | 19 M parameters, not autoregressive over actions |
Two details in that table did real work. First, the FiLM layers are identity-initialised: the dense layers producing the affine transform start at zero, so the inserted FiLM layer initially does nothing and the ImageNet weights survive intact. Insert FiLM naively into a pretrained network and you scramble the intermediate activations you paid for. Second, action tokens are emitted in a single pass, not autoregressively. The ablation shows why: autoregressive actions cost more than 2x inference time (36 ms against 15 ms) for no gain worth having.
The released library exposes the whole thing as a Keras network, though its constructor defaults are the library defaults rather than the paper configuration. Read them for the shape of the model, not for the numbers that produced the published results.
TransformerNetwork(
vocab_size=256,
token_embedding_size=512,
num_layers=1,
layer_size=4096,
num_heads=8,
feed_forward_size=512,
dropout_rate=0.1,
time_sequence_length=1,
use_token_learner=True,
)The numbers RT-1 reported
Every baseline in the comparison was retrained on RT-1's own dataset, so this table compares architectures, not data. Gato was shrunk from 1.2 B parameters to 37 M because the full model needed 1.9 s per action on the robot, which is not a control loop. BC-Z is the ResNet feedforward policy from the BC-Z paper, also present in SayCan.
| Model | Seen tasks | Unseen tasks | Distractors | Backgrounds | Network inference |
|---|---|---|---|---|---|
| Gato architecture, 37 M | 65 | 52 | 43 | 35 | 129 ms |
| BC-Z | 72 | 19 | 47 | 41 | 5.3 ms |
| BC-Z XL | 56 | 43 | 23 | 35 | 5.9 ms |
| RT-1, 35 M | 97 | 76 | 83 | 59 | 15 ms |
The ablation table is more informative than the headline. It tells you which design choices carried weight and which were decoration. One caution on the size row: the paper gives two different figures for the same ablation. The ablation description says the model was cut from 35 M to 21 M parameters, and the discussion says that cut removed 40 percent of the parameters, which only fits 35 to 21. The same sentence then prints 31 M to 25 M, which is a 19 percent cut. The two self-consistent numbers are used here.
| Variant | Seen | Unseen | Distractors | Backgrounds | Inference |
|---|---|---|---|---|---|
| RT-1, full | 97 | 76 | 83 | 59 | 15 ms |
| Continuous Gaussian actions instead of tokens | 68 | 43 | 37 | 35 | 16 ms |
| No ImageNet pretraining | 84 | 43 | 60 | 41 | 15 ms |
| No history, single frame | 82 | 62 | 50 | 59 | 15 ms |
| No transformer, EfficientNet only | 86 | 62 | 67 | 59 | 26 ms |
| Autoregressive action decoding | 85 | 71 | 67 | 65 | 36 ms |
| Smaller model, 35 M cut to 21 M | 89 | 62 | 77 | 53 | 13.5 ms |
Replacing the 256-way softmax with a multivariate Gaussian and an MSE loss cost 29 points on seen tasks and 46 points on distractor robustness, at identical inference cost. The paper's explanation is that per-dimension discretisation represents multi-modal action distributions while a single Gaussian captures one mode. When several demonstrators solved the same scene differently, the Gaussian averages them into a motion nobody demonstrated.

The finding that outlived the architecture
Section 6.5 of the paper is the part still worth quoting in 2026. The team built reduced datasets two ways: cap the number of examples per task (same breadth, less depth) or delete the tasks with the least data (same depth, less breadth). Then they measured what broke.
| Dataset | % tasks | % data | Seen | Generalisation (all) | Unseen tasks | Distractors | Backgrounds |
|---|---|---|---|---|---|---|---|
| Full | 100 | 100 | 97 | 73 | 76 | 83 | 59 |
| Capped at 200 per task | 100 | 51 | 71 | 50 | 52 | 39 | 59 |
| Capped at 100 per task | 100 | 37 | 55 | 46 | 57 | 35 | 47 |
| Capped at 50 per task | 100 | 22 | 59 | 29 | 14 | 31 | 41 |
| Narrow: fewest-data tasks removed | 75 | 97 | 86 | 54 | 67 | 42 | 53 |
Removing 25 percent of the tasks while keeping 97 percent of the frames damaged generalisation about as much as throwing away half the dataset. The paper's own summary: data diversity has a larger impact than data size. That is the single most transferable sentence in the paper, and it is the reason the platform's minimum-episode numbers are floors rather than targets. Fifty episodes of one scene will fit; fifty episodes spread over lighting, object placement and start pose will generalise. There is more on this in the guide to collecting high-quality VLA training data and in the recording tutorial.
Running RT-1 today, in 2026
The original repository, google-research/robotics_transformer, is archived and read-only; its last commit landed on 31 January 2024. It contains the tokenisers, the FiLM-EfficientNet backbone, the transformer and three SavedModel checkpoints. It contains no training script and no dataset loader, and its requirements file sets floors from the TensorFlow 1.13 era (tensorflow>=1.13.0, tensorflow-serving-api>=1.13.0, tf-agents>=0.3.0) and installs tensor2robot from git. Do not start there.
The working path is SimplerEnv, the real-to-sim benchmark from the SIMPLER paper. It ships a maintained RT-1 policy wrapper, and Google's public bucket still hosts three RT-1 checkpoints at different training stages plus the RT-1-X one. This runs today on a single NVIDIA GPU.
- 1Create the environment
SimplerEnv needs CUDA 11.8 or newer and below 13, an NVIDIA GPU (ray tracing is slow on non-RTX cards), and Python 3.10 or 3.11. TPUs are not supported because SAPIEN needs a GPU.
bashconda create -n simpler_env python=3.10 conda activate simpler_env git clone https://github.com/simpler-env/SimplerEnv --recurse-submodules - 2Install the simulator, with numpy pinned
The numpy pin is not optional. Newer numpy breaks inverse kinematics in pinocchio, and the failure looks like a physics bug rather than a dependency bug.
bashpip install numpy==1.24.4 cd SimplerEnv/ManiSkill2_real2sim && pip install -e . cd .. && pip install -e . - 3Add the TensorFlow stack for RT-1 inference
RT-1 is a TensorFlow SavedModel. This is the step that pulls in a couple of gigabytes.
bashsudo apt install ffmpeg pip install tensorflow==2.15.0 pip install -r requirements_full_install.txt pip install 'tensorflow[and-cuda]==2.15.1' - 4Download the checkpoints
Four public checkpoints sit in the same bucket: three of RT-1, named by training step, and one of RT-1-X. rt_1_tf_trained_for_000400120 is the converged RT-1 used for the headline results; each of the three RT-1 directories is 617 MiB across the SavedModel and the raw ckpt files. The 58,240-step and 1,120-step checkpoints exist so you can measure a policy that is partly and barely trained, which is genuinely useful for calibrating your own eval harness.
bashmkdir -p checkpoints BUCKET=gs://gdm-robotics-open-x-embodiment/open_x_embodiment_and_rt_x_oss # converged RT-1, 400,120 steps gsutil -m cp -r $BUCKET/rt_1_tf_trained_for_000400120 checkpoints/ # RT-1 at 15% of training, 58,240 steps gsutil -m cp -r $BUCKET/rt_1_tf_trained_for_000058240 checkpoints/ # RT-1-X, 2,272,480 steps, 739 MiB zip gsutil -m cp $BUCKET/rt_1_x_tf_trained_for_002272480_step.zip . unzip rt_1_x_tf_trained_for_002272480_step.zip -d checkpoints/ - 5Run one episode
The prepackaged visual-matching environments give you a Google Robot scene with real backgrounds composited in. Google Robot environments run at 3 Hz control and roughly 500 Hz simulation, matching RT-1's own control rate.
pythonimport simpler_env from simpler_env.utils.env.observation_utils import get_image_from_maniskill2_obs_dict env = simpler_env.make('google_robot_pick_coke_can') obs, reset_info = env.reset() instruction = env.get_language_instruction() print('Instruction', instruction)
The checkpoints inside the archived robotics_transformer repo are stored with git-lfs. Its .gitattributes is a single line: *.data* filter=lfs diff=lfs merge=lfs -text. Clone without git-lfs installed and trained_checkpoints/rt1main/variables/variables.data-00000-of-00001 arrives as a 134-byte text pointer instead of the 141 MB of weights it claims to be. TensorFlow then fails deep inside the loader with an error about a corrupt file, and you go looking for a TensorFlow version problem that does not exist. Run git lfs install before cloning, or take the checkpoints from the public bucket instead.
Two paths to a language-conditioned policy on your own arm
You cannot fine-tune RT-1 on your arm. There is no released training script, the action space is hard-wired to a 7-DoF arm plus a mobile base, and the tokeniser's bin edges come from a spec that describes the Everyday Robots manipulator. What you can do is reproduce the recipe: record demonstrations, discretise your actions, train a transformer, serve it next to the servos.
- Build or buy the arm and calibrate it. Budget a weekend.
- Record demonstrations by teleoperation, annotate each episode with an instruction string, and vary the scene between episodes rather than repeating one setup.
- Convert to whatever dataset format your trainer expects, then check the conversion actually produced the frames you think it did.
- Pick a policy that has public training code. RT-1 does not qualify; ACT, SmolVLA, Pi0.5 and GR00T do.
- Rent a GPU, install the trainer and its CUDA-specific dependencies, and get one run to completion before you tune anything.
- Write the serving loop: load the checkpoint, stream camera frames in, decode actions, respect the control rate.
- Build an evaluation harness, because training loss will not tell you whether the arm works.
The modelling is the small part. Most of the elapsed time goes into dependency pinning, dataset format conversion, and discovering that your camera indices changed after a reboot. Every one of those is a solved problem that you will re-solve.
The platform collapses that list into a form. You pick a model and a dataset, the backend rents a GPU on a spot market sized by the required VRAM, runs the trainer, and writes checkpoints to object storage. See the five trainable policies and the training guides for the exact combination of model and arm you have.
| Policy | Params | Inference per step | GPU tier | Min episodes | Typical run cost |
|---|---|---|---|---|---|
| GR00T N1.7 | ~3 B, ~40 M trained | 152 ms | A100 or H100 80 GB | 50 | 4 to 12 USD |
| GR00T N1.5 | ~3 B | 165 ms | A100 or H100 80 GB | 50 | 4 to 12 USD |
| Pi0.5 | ~3 B, PaliGemma backbone | 485 ms | A100 or H100 80 GB | 50 | 4 to 12 USD |
| SmolVLA | ~450 M | 245 ms | RTX 4090 or any 24 GB card | 30 | 1 to 3 USD |
| ACT | ~80 M | 20 ms | RTX 4090 or any 24 GB card | 50 | 1 to 3 USD |
Note the ACT row against RT-1's own numbers: 80 M parameters, 20 ms per action step, trained from scratch on your task with no base model at all. It is the closest thing on the platform to RT-1's size-and-speed point, though it regresses continuous action chunks rather than classifying bins. Training ACT on an SO-100 is the cheapest way to feel what a 130k-demonstration paper is describing, starting from the 50 episodes the platform sets as the ACT floor.
GPU provisioning by required VRAM, the trainer invocation, checkpoint upload, and inference pods via /api/inference/pod that carry an idle watchdog and destroy themselves after an idle period so nothing bills silently. The CLI and the MCP server expose the same operations to a terminal and to agents.
What survived, and what did not
- Discrete action tokens with a cross-entropy loss. RT-2 adopted the scheme unchanged, RT-1-X reused the whole architecture, and OpenVLA still uses 256 bins per dimension.
- Early language fusion. Conditioning the image encoder on the instruction via FiLM, rather than fusing a language embedding late as Gato does, is the paper's own explanation for the distractor gap, though it is hedged: the paper writes that late fusion may be the cause of Gato's poor distractor performance, 43 percent against RT-1's 83.
- Diversity over volume as a data-collection principle. This is now the default advice for anyone recording a manipulation dataset.
- Treating inference latency as a hard architectural constraint rather than an implementation detail. The 100 ms budget shaped every choice, including dropping autoregressive decoding.
- Publishing the dataset. fractal20220817_data outlived the model, the robot and the team, and is still a standard training-mixture component.
- Uniform min-max bins. One outlier action degrades resolution for every ordinary action; OpenVLA replaced min-max with the 1st and 99th quantile for exactly this reason.
- Per-dimension, per-timestep binning at high control rates. The FAST paper finds this scheme performs poorly when learning dexterous skills from high-frequency robot data, and replaces it with a discrete cosine transform, coefficient quantisation and a byte-pair encoding pass over the result.
- One action per forward pass. Modern policies emit chunks; see action chunking for why that fixes both jitter and latency.
- 3 Hz. Fine for kitchen pick-and-place, useless for anything reactive.
- The 11-dimensional action space is welded to one robot. Nothing about RT-1 transfers to a different embodiment without retraining from scratch.
- TensorFlow-only, no training code, archived repository. RT-1 is a paper you read and a checkpoint you benchmark, not a codebase you build on.
| Model | Action representation | Mechanism |
|---|---|---|
| RT-1 (2022) | Discrete tokens | 256 uniform bins per dimension, between the spec minimum and maximum |
| RT-2 (2023) | Discrete tokens in the LLM vocabulary | Same 256-bin scheme; PaLI-X maps integer tokens, PaLM-E overwrites its 256 least-frequent tokens |
| RT-1-X (2023) | Discrete tokens | RT-1's architecture unchanged, trained on the Open X-Embodiment mixture |
| OpenVLA (2024) | Discrete tokens | 256 bins, interval set by the 1st and 99th quantile of training actions |
| pi0-FAST (2025) | Compressed tokens | Discrete cosine transform per dimension, quantise the coefficients, then byte-pair encode the flattened sequence |
| Pi0.5 on this platform | Continuous | Flow matching, no bins |
| GR00T N1.7 on this platform | Continuous | Diffusion action head, no bins |
| ACT on this platform | Continuous | Direct chunk regression, no bins |
Read that table as a fork, and it is the fork that shapes every vision-language-action model built since. The token branch runs through RT-2 into OpenVLA and buys you an off-the-shelf language model as your policy backbone. The continuous branch runs through diffusion and flow matching and buys you smooth, high-rate control. The head-to-head on GR00T N1.7 against Pi0.5 is a comparison between two members of the second branch; neither of them tokenises actions the way RT-1 did.

How RT-1 holds up when someone else evaluates it
The SIMPLER benchmark re-ran RT-1 under controlled simulation in 2024 and reported both the original real-world numbers and the simulated ones. On the visual-matching setup the correlation with real performance is strong: Pearson r of 0.976 on pick-coke-can and 0.915 on the drawer tasks.
| Task | RT-1 converged, real | RT-1 converged, SIMPLER visual matching |
|---|---|---|
| Pick coke can (average of three orientations) | 85.3 % | 85.7 % |
| Move near | 63.3 % | 44.2 % |
| Open / close drawer | 87.0 % | 73.0 % |
| Open top drawer and place apple | 18.5 % | 6.5 % |
That last row is the honest one. On a two-stage task, the converged RT-1 succeeds under one attempt in five. The 97 percent headline was measured on single-skill instructions. Chain two of them and the success rate multiplies down, which is exactly why the SayCan long-horizon results in the paper top out at 67 percent execution success over roughly ten steps.
SIMPLER measured RT-1's sensitivity to distribution shifts one factor at a time in its simulated pick-coke-can environment. For the RT-1 variant trained without image augmentation, the absolute change in success rate was 1.3 points for background, 4.0 for lighting, 2.7 for distractors and 11.3 for table texture. Camera pose cost 75.3 points. Augmentation did not rescue it: the augmented variant still moved 61.3 points under a camera-pose shift. The real-world tabletop column in the same table tracks the ordering, with camera pose again the largest single factor. Four years and several model generations later this has not changed: move the camera after recording and the policy stops working. That is the whole content of the policy-only-works-in-one-setup page, and it is why camera mounting deserves more care than hyperparameter tuning.
What this means if you have an SO-100 on your desk
RT-1's scale is not reachable in a hobby setup and does not need to be. 130,000 demonstrations across 13 robots over 17 months is an industrial data-collection programme. What transfers is the method: vary the scene between episodes, keep the instruction annotated, prefer more tasks over more repetitions of one task, and treat inference latency as a design constraint rather than a benchmark line.
The latency point deserves a plain statement, because this platform does not solve it. RT-1 ran its 3 Hz loop with the model on the robot. Cloud inference here has a control loop of 20 to 485 ms per action step depending on the model, and adding public-internet round trips on top turns a working policy into a hesitant one. Remote inference is viable for slow pick-and-place. It is not viable for fast reactive motion. If your task needs reactivity, the model has to sit next to the servos, and that constrains which of the five policies you can actually use.

If you want to feel the difference between a 2022 discrete-token policy and a 2026 flow-matching one without buying hardware, the live arm streams a physical SO-100 with no signup, and the three ways to start page lays out what each route costs. The RT-1 arena entry and the RT-1-X entry carry the published benchmark numbers with links back to their sources.
The footnote nobody puts in the abstract
Everyday Robots, the Alphabet subsidiary that built the mobile manipulators RT-1 was trained on, was closed in February 2023 during Alphabet's layoffs, roughly two months after the RT-1 preprint appeared. Parts of the team and technology were folded into Google Research. The robot in every figure of the paper no longer exists as a product. What outlived it is the dataset, the tokenisation scheme, and one sentence about data diversity beating data quantity, which is a reasonable definition of a paper that mattered.
85 VLA models, 332 benchmark results, every number sourced
RT-1, RT-1-X, RT-2 and everything that came after them, in one sortable table. Each value links to the paper or model card it was taken from, so you can check the claim instead of trusting the leaderboard.
Open the arenaCan I fine-tune RT-1 on my own robot arm?▾
No. The archived repository ships inference code and three SavedModel checkpoints but no training script and no dataset loader, and the action space is fixed to a 7-DoF arm plus a three-dimensional mobile base. Even if you wrote the trainer, the tokeniser's bin edges come from the Everyday Robots action spec. For a language-conditioned policy on an SO-100 or SO-101, train SmolVLA, Pi0.5 or GR00T N1.7 instead; the guides are at /train.
What is the difference between RT-1 and RT-1-X?▾
Identical architecture. RT-1-X is the same 35 M network trained on the Open X-Embodiment robotics mixture instead of RT-1's own data. On the small-scale dataset domains its mean success rate is 50 percent higher than either the method originally published with those datasets or RT-1. On the large-scale evaluation it goes the other way: 73 percent against RT-1's 92 percent on the RT-1 paper's six-skill set. The Open X-Embodiment paper attributes that to underfitting, since the architecture does not have the capacity to absorb a nine-embodiment mixture, which is why RT-2-X exists.
Why 256 bins specifically?▾
The paper does not defend the number. It reports the choice (each continuous dimension is mapped to one of 256 uniformly spaced bins) and ablates discrete against continuous actions, which discrete wins by 29 points on seen tasks, but it runs no sweep over bin counts. What later work shows is that the bin edges matter more than the count: OpenVLA kept 256 bins and changed the interval from min-max to the 1st and 99th quantile, and FAST abandoned per-dimension binning altogether for high-frequency data. One practical consequence of 256 is that RT-2 could reserve exactly 256 tokens in a language model's vocabulary: for PaLI-X, where every integer up to 1000 already has its own token, the bins map onto those tokens directly, while for PaLM-E, which has no such representation, RT-2 overwrites the 256 least frequently used tokens.
Is 3 Hz really enough to control a robot?▾
For the tasks in the paper, yes. The team measured humans performing the same instructions in 2 to 4 seconds and set 3 Hz as the floor, with a fixed 280 ms wait after state capture to keep the rate consistent and avoid jitter. For anything reactive it is far too slow. Modern policies emit action chunks rather than single actions precisely to decouple the planning rate from the execution rate.
Does the RT-1 dataset still exist?▾
Yes. It is fractal20220817_data in TensorFlow Datasets: 87,212 train episodes, 111.38 GiB, with RGB frames at 256 x 320 and each episode carrying its instruction as both a string and a 512-dimensional embedding. It is also one of the components of Open X-Embodiment, where the Google Robot data is among the two largest contributors of trajectories. Three RT-1 checkpoints remain in Google's public gdm-robotics-open-x-embodiment bucket, at 1,120, 58,240 and 400,120 training steps and 617 MiB each, alongside the RT-1-X checkpoint at 2,272,480 steps as a 739 MiB zip.
How does RT-1 compare to ACT, which this platform trains?▾
They are close in size and speed and opposite in method. RT-1 is 35 M parameters, classifies 256 bins per dimension, emits one action per pass and runs at 3 Hz. ACT is roughly 80 M parameters, regresses continuous action chunks and runs at about 20 ms per action step on a 24 GB card. RT-1 was trained once on 130k demonstrations across 744 instructions; ACT is trained from scratch on your task from as few as 50 episodes and has no base model at all.
Sources
- RT-1: Robotics Transformer for Real-World Control at Scale (arXiv 2212.06817, v2 11 Aug 2023)
- RT-1, Robotics: Science and Systems 2023 proceedings, paper p025
- RT-1 project page, videos and result summary
- google-research/robotics_transformer, the RT-1 reference code (archived, last commit 31 January 2024)
- fractal20220817_data, the RT-1 dataset in TensorFlow Datasets
- Google Research blog: RT-1, Robotics Transformer for real-world control at scale
- Open X-Embodiment: Robotic Learning Datasets and RT-X Models (arXiv 2310.08864)
- RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control (arXiv 2307.15818)
- Evaluating Real-World Robot Manipulation Policies in Simulation, the SIMPLER paper (arXiv 2405.05941)
- simpler-env/SimplerEnv, the maintained RT-1 and Octo evaluation harness
- OpenVLA: An Open-Source Vision-Language-Action Model (arXiv 2406.09246)
- FAST: Efficient Action Tokenization for Vision-Language-Action Models (arXiv 2501.09747)
- TokenLearner: What Can 8 Learned Tokens Do for Images and Videos? (arXiv 2106.11297)
- FiLM: Visual Reasoning with a General Conditioning Layer (arXiv 1709.07871)
- The Robot Report: Alphabet closes Everyday Robots among layoffs (February 2023)
Sources
- RT-1: Robotics Transformer for Real-World Control at Scale (arXiv 2212.06817, v2 11 Aug 2023)
- RT-1, Robotics: Science and Systems 2023 proceedings, paper p025
- RT-1 project page, videos and result summary
- google-research/robotics_transformer, the RT-1 reference code (archived, last commit 31 January 2024)
- fractal20220817_data, the RT-1 dataset in TensorFlow Datasets
- Google Research blog: RT-1, Robotics Transformer for real-world control at scale
- Open X-Embodiment: Robotic Learning Datasets and RT-X Models (arXiv 2310.08864)
- RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control (arXiv 2307.15818)
- Evaluating Real-World Robot Manipulation Policies in Simulation, the SIMPLER paper (arXiv 2405.05941)
- simpler-env/SimplerEnv, the maintained RT-1 and Octo evaluation harness
- OpenVLA: An Open-Source Vision-Language-Action Model (arXiv 2406.09246)
- FAST: Efficient Action Tokenization for Vision-Language-Action Models (arXiv 2501.09747)
- TokenLearner: What Can 8 Learned Tokens Do for Images and Videos? (arXiv 2106.11297)
- FiLM: Visual Reasoning with a General Conditioning Layer (arXiv 1709.07871)
- The Robot Report: Alphabet closes Everyday Robots among layoffs (February 2023)
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started