The question robotics teams ask most: “Can I just pip install rt-x and run it on my arm?” No. You can run RT-1-X – but RT-2-X weights aren’t public (as of mid-2026). This guide covers what’s actually deployable from the RT-X release, the real GCS paths, and the gotchas that eat an afternoon if you follow the README literally.
“RT-X” is really two models trained on the Open X-Embodiment (OXE) dataset. Only one ships with weights. That single fact reshapes the entire install.
What you’re actually installing (and what you’re not)
The RT-X release is a research artifact at google-deepmind/open_x_embodiment, Apache 2.0 licensed. It contains: dataset loaders in RLDS format, Colab notebooks, and a JAX inference example for RT-1-X. It does not contain RT-2-X weights.
Turns out the trained RT-2-X model weights remain internal to DeepMind – community reports confirm this hasn’t changed as of mid-2026. If you need a runnable vision-language-action model today, OpenVLA is on HuggingFace transformers and actually loads. RT-1-X is still worth running as a baseline and for reproducing the paper’s results.
Here’s something worth sitting with: the gap between “RT-X the paper” and “RT-X the thing you can run” is larger than most writeups admit. The paper (arXiv:2310.08864) covers 22 robot embodiments and 527 skills – the public artifact covers one checkpoint and some dataset loaders. What does that mean for your project? That depends on whether you’re reproducing research or shipping a product.
System requirements
The docs don’t list these. Here’s what works, based on the repo’s dependencies and community reports.
| Resource | Minimum (inference only) | Recommended (dataset work) |
|---|---|---|
| OS | Ubuntu 20.04+ or macOS 12+ | Ubuntu 22.04 LTS |
| Python | 3.10 | 3.10 or 3.11 |
| GPU | None required for CPU inference | NVIDIA 16 GB+ VRAM (CUDA 12.x) |
| RAM | 16 GB | 64 GB (RLDS shards are memory-hungry) |
| Disk | ~5 GB (checkpoint + one small dataset) | ~4.5 TB for the full OXE mix |
| Tooling | gsutil, git, pip | Same + Docker for reproducibility |
That 4.5 TB disk number is real – downloading all 53 datasets amounts to approximately 4.5 TB (per the open_x_pytorch_dataloader README). Pick only the datasets your robot type actually appears in.
Install RT-X step by step
1. Clone and set up the environment
git clone https://github.com/google-deepmind/open_x_embodiment.git
cd open_x_embodiment
python3.10 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install tfds-nightly tensorflow tensorflow_datasets
jax jaxlib flax orbax-checkpoint
tf-agents rlds absl-py
tfds-nightly is required – not stable tensorflow_datasets. First-timer trap, every time.
2. Install gsutil
curl https://sdk.cloud.google.com | bash
exec -l $SHELL
gcloud init # skip project selection if you just want gsutil
3. Download the RT-1-X checkpoint
Per the official README, the JAX checkpoint path is:
mkdir -p checkpoints && cd checkpoints
gsutil -m cp -r gs://gdm-robotics-open-x-embodiment/open_x_embodiment_and_rt_x_oss/rt_1_x_jax .
cd ..
4. Grab at least one dataset for testing
The obvious command from the Colab – tfds.load('fractal20220817_data') – fails on a fresh install even with tfds-nightly. The error: tensorflow_datasets.core.registered.DatasetNotFoundError: Dataset fractal20220817_data not found. GitHub issue #37 documents this; it affects recent tfds-nightly builds too.
Fix: pull the tfrecords directly from GCS first, then tfds.load picks them up as cached data.
# Use gs://gresearch/robotics/ - NOT gs://gdm-robotics-open-x-embodiment/
gsutil -m cp -r gs://gresearch/robotics/fractal20220817_data
~/tensorflow_datasets/
Bucket gotcha (GitHub issue #5): The two GCS buckets look interchangeable but they aren’t.
gs://gdm-robotics-open-x-embodiment/{dataset_name}returns mostly empty data for dataset shards.gs://gresearch/robotics/is the one that works. The gdm-robotics bucket is for the RT-1-X checkpoint only.
First inference call
The repo ships rt1_inference_example.py. Point it at the checkpoint directory, feed one RGB image and a task string:
python rt1_inference_example.py
--checkpoint_path=./checkpoints/rt_1_x_jax
--image_path=./sample_image.png
--task_string="pick up the red block"
Output: a 7-D action vector – x, y, z, roll, pitch, yaw, and gripper opening, all in the gripper frame (per arXiv:2310.08864). You map that to your robot’s controller. On a WidowX or Franka arm, expect to write a small adapter – the checkpoint doesn’t carry your kinematics anywhere inside it.
Verify the install
Three checks, in order:
- Checkpoint loaded? The script prints the parameter tree shape without Orbax warnings about missing TensorStore files.
- Dataset visible? Run
python -c "import tensorflow_datasets as tfds; print([d for d in tfds.list_builders() if 'fractal' in d])". Empty list means step 4 didn’t land. - Action output shape? Returned tensor should be
(7,). Anything else usually means a JAX/flax version mismatch against the checkpoint.
Common errors
DatasetNotFoundError – covered in step 4. Manually gsutil the shards; don’t rely on tfds.load to fetch them remotely.
BridgeData V2 rows look wrong – the OXE version is stale as of 12/20/2023. The OpenVLA team documented the fix: download Bridge from the official source and place it under bridge_orig/, replacing any reference to bridge in OXE code with bridge_orig. The OXE repo itself hasn’t updated this.
OOM during data loading – RLDS iterators batch whole trajectories. Cap with a .take(N) call before .batch() or a 64 GB machine will still swap.
gsutil hangs on large copies – split to one dataset at a time, or use -o "GSUtil:parallel_composite_upload_threshold=150M". Default parallelism can saturate a home connection.
Upgrade and uninstall
No versioned releases – the repo doesn’t tag. Upgrade is git pull plus refreshing pip deps. Pin your JAX version if you have a working setup; flax checkpoints don’t always survive a JAX minor bump.
deactivate # exit venv
rm -rf open_x_embodiment/ ~/tensorflow_datasets/
Double-check that last line. If you had TFDS data for other projects, it lives in the same directory.
Should you use RT-X in 2026?
RT-1-X is a solid reproduction target and a useful pretraining checkpoint. It’s not a production model. The action space is 7-DoF end-effector, input is a single RGB frame plus a task string, and there’s no fine-tuning script in the repo – you write your own training loop. If the goal is “deploy a foundation model on my robot this week,” OpenVLA or a Gemini Robotics partner API gets you further, faster.
But if the goal is understanding what a cross-embodiment robot foundation model actually looks like from the inside – clone the repo, read arXiv:2310.08864, and run the checkpoint on a single dataset shard. That’s a weekend well spent.
FAQ
Where do I download RT-2-X weights?
You don’t – they haven’t been released publicly as of mid-2026. Only RT-1-X is available.
Do I need a GPU to run RT-1-X inference?
Not for a single forward pass. The JAX checkpoint runs on CPU – expect noticeable latency per prediction (exact timing varies by hardware; community reports suggest several seconds on a mid-range laptop). The real bottleneck isn’t the model: it’s RLDS dataset loading. For anything approaching real-time robot control, 16 GB+ VRAM makes a meaningful difference. One-off inference tests? CPU is fine.
Can I fine-tune RT-1-X on my own robot data?
Technically yes, but the repo ships no fine-tuning script. Most people end up using OpenVLA instead – it has native LoRA fine-tuning support and accepts any RLDS-formatted dataset. Community PyTorch ports of RT-X also exist if you prefer that ecosystem. Convert your teleop data to RLDS, register a dataset config, and you’re much closer to a working fine-tune than starting from the DeepMind repo directly.
Next step: clone the repo, download only fractal20220817_data (one small shard, not 4.5 TB), and get one successful inference call. Everything else – full dataset, fine-tuning, robot integration – is easier once that single call returns a (7,) vector.