---
license: mit
language:
- en
tags:
- world-model
- robotics
- pusht
- jax
- latent-diffusion
datasets:
- smbml/future-sight-pusht
inference: false
---

# PushT world models
Action-conditioned world models from S. Bateman et al., **Training Controllable
World Models via Action Influence Maximization**, CoRL 2026.
PushT provides a controlled wind tunnel for studying how data scale and
composition affect world-model prediction and generalization. These models
compare large passive collections with smaller, task-specific active exploration
collections using a shared architecture. The paired
[Future Sight PushT dataset](https://huggingface.co/datasets/smbml/future-sight-pusht)
provides the training and evaluation data.
**Ground truth (left) and model predictions (right)**, using identical recorded
actions. Thirteen hand-selected examples show **Recovery1 + transferred AIM500**,
**PPO1 + AIM500 (fixed reward estimate)**, and **Recovery100** on BC, BC-failure,
and PushAway evaluation cases. Model names appear in the video; each clip shows
33 predicted transitions at 256 × 256 resolution. These examples illustrate
model behavior; they are not an aggregate benchmark or a ranking of models.
## Models at a glance
**16 checkpoints · 256 × 256 RGB · approximately 580 MB each · 9.28 GB total**
- **Inputs:** RGB observations and continuous 6D end-effector delta actions.
- **Outputs:** predicted RGB frames at 256 × 256 resolution.
- **Format:** native Orbax inference bundles, including the frozen VAE.
- **Weights:** exponential moving average (EMA); no optimizer or training-resume state.
## Choose a model
`PPO1` and `Recovery1` use the first 1% of the corresponding training metadata;
`PPO100` and `Recovery100` use the full corpus. The `500` suffix denotes the
additional collection budget. AIM500 uses 100 trajectories from each of five
collection iterations, with a 2:1 PPO-to-AIM sampling mixture.
| Model | Training step | Download |
| --- | ---: | ---: |
| [PPO1 + AIM500](https://huggingface.co/smbml/future-sight-pusht-models/tree/main/models/ppo1-aim500) | 36,000 | 580.1 MB |
| [PPO1](https://huggingface.co/smbml/future-sight-pusht-models/tree/main/models/ppo1) | 26,000 | 580.0 MB |
| [PPO1 + AIM500 (fixed reward estimate)](https://huggingface.co/smbml/future-sight-pusht-models/tree/main/models/ppo1-aim500-fixed-reward-estimate) | 42,000 | 580.0 MB |
| [PPO1 + AIM500 (MI only)](https://huggingface.co/smbml/future-sight-pusht-models/tree/main/models/ppo1-aim500-mi-only) | 39,000 | 580.0 MB |
| [PPO1 + AIM500 (novelty only)](https://huggingface.co/smbml/future-sight-pusht-models/tree/main/models/ppo1-aim500-novelty-only) | 42,000 | 580.1 MB |
| [PPO1 + DADS500](https://huggingface.co/smbml/future-sight-pusht-models/tree/main/models/ppo1-dads500) | 29,000 | 580.0 MB |
| [PPO1 + DIAYN500](https://huggingface.co/smbml/future-sight-pusht-models/tree/main/models/ppo1-diayn500) | 34,000 | 580.1 MB |
| [PPO1 + ICM500](https://huggingface.co/smbml/future-sight-pusht-models/tree/main/models/ppo1-icm500) | 29,000 | 579.9 MB |
| [PPO1 + METRA500](https://huggingface.co/smbml/future-sight-pusht-models/tree/main/models/ppo1-metra500) | 26,000 | 580.0 MB |
| [PPO1 + random walk500](https://huggingface.co/smbml/future-sight-pusht-models/tree/main/models/ppo1-random-walk500) | 28,000 | 580.0 MB |
| [PPO1 + Recovery500](https://huggingface.co/smbml/future-sight-pusht-models/tree/main/models/ppo1-recovery500) | 27,000 | 580.1 MB |
| [PPO1 + uniform random500](https://huggingface.co/smbml/future-sight-pusht-models/tree/main/models/ppo1-uniform-random500) | 33,000 | 580.0 MB |
| [PPO100](https://huggingface.co/smbml/future-sight-pusht-models/tree/main/models/ppo100) | 44,000 | 580.1 MB |
| [Recovery1](https://huggingface.co/smbml/future-sight-pusht-models/tree/main/models/recovery1) | 37,000 | 580.0 MB |
| [Recovery1 + transferred AIM500](https://huggingface.co/smbml/future-sight-pusht-models/tree/main/models/recovery1-transferred-aim500) | 42,000 | 580.1 MB |
| [Recovery100](https://huggingface.co/smbml/future-sight-pusht-models/tree/main/models/recovery100) | 40,000 | 580.1 MB |
The **fixed reward estimate** ablation uses AIM data without reward
re-estimation. Novelty-only and MI-only models ablate the reward components.
Transferred AIM adds exploration collected from the PPO-based setting to a
Recovery1 training mixture. See the experiment-specific recipes in Future Sight
for exact subset and mixture definitions; the budget suffix alone does not
specify sampling probabilities.
## Download and load one model
Run from a Future Sight checkout with its Pixi environment installed and one
visible GPU, for example `CUDA_VISIBLE_DEVICES=0 pixi run python example.py`
after saving the following snippet as `example.py`. The example
uses existing `huggingface_hub` and Future Sight APIs. No Transformers model
conversion or `trust_remote_code` is required.
```python
import os
from pathlib import Path
import jax
from huggingface_hub import snapshot_download
from future_sight.models.components.sharding import create_device_mesh
from future_sight.models.loading import load_world_model
cache = Path(os.environ.get("FUTURE_SIGHT_CACHE_DIR", "cache")).expanduser()
snapshot = Path(snapshot_download(
repo_id="smbml/future-sight-pusht-models",
revision="main", # Use a full HF commit hash to pin an experiment.
allow_patterns=["models.json", "models/ppo1-aim500/*"],
cache_dir=cache / "models",
))
jax.devices() # Initialize JAX before any TensorFlow-backed data loader.
mesh = create_device_mesh(data=1, model=1)
model, manifest = load_world_model(str(snapshot / "models/ppo1-aim500"), mesh)
print(manifest["weights"]["source_training_step"])
```
The example explicitly honors `FUTURE_SIGHT_CACHE_DIR`; the HF library itself
does not interpret that Future Sight variable. Change the folder in
`allow_patterns` and the load path to select another model. HF uses your existing
login when available; these public files are also downloadable anonymously.
Completed files are reused from the HF cache, and Orbax reads them in place.
The restored model can be used with Future Sight's Python inference session,
standalone PushT evaluator, or local interactive application. Model-specific HF
CLI integration and a hosted interactive Space are not provided by this repo.
## Architecture and provenance
All models use the latent diffusion forcing B/2 architecture: 12 transformer
layers, width 768, 12 attention heads, and 2 × 2 latent patches. The VAE maps
256 × 256 images to 32 × 32 × 4 latents. The published manifests specify the
exact action bounds, x-prediction / v-space training objective, BF16 runtime,
128 inference steps, four-frame sequence window and three cached predecessors.
Each bundle includes a versioned manifest with its training step, source commit,
and hashes of every restored tensor. [models.json](models.json) additionally
records downloadable file sizes and SHA-256 digests. Public metadata removes
private storage paths and uses the `future_sight` import namespace; checkpoint
payloads and tensor identities are unchanged. Historical source repository names
remain in provenance. Private training-contract files are not distributed.
Our base VAE is
[**`stabilityai/sd-vae-ft-mse`**](https://huggingface.co/stabilityai/sd-vae-ft-mse),
used through [pcuenq's Flax conversion](https://huggingface.co/pcuenq/sd-vae-ft-mse-flax)
and included as a frozen StableVAE in every inference bundle. Both upstream
model cards specify MIT.
The original upstream HF revision was not recorded; the bundle records the
converted VAE's content identity. The trained Future Sight weights are also
released under the [MIT license](LICENSE). See [upstream attribution](NOTICE.md)
for the bundled VAE.
## Validation and limitations
All 16 source checkpoints passed strict restoration and finite-output checks on two selected evaluation cases each. They also ran in the local interactive model switcher. Published model files are listed above. The PPO1 + AIM500 bundle additionally passed an authenticated Hugging Face upload/download round trip, file-hash verification, offline cache reuse, and exact raw-frame agreement with its local source on BC and PushAway when independently restored states use the same compiled inference graph. Separately compiled GPU runs were not pixel-identical; this check does not establish bitwise reproducibility across runs. Other models have local inference checks and remote file verification, not separate HF round-trip inference runs.
The local checks used JAX/JAXLIB 0.10.2, Flax 0.12.7 and Orbax 0.12.1 on an
NVIDIA RTX PRO 6000 Blackwell GPU. They do not establish compatibility with every
hardware or dependency combination. Small local checks and videos do not reproduce
the complete paper evaluation. Samples may drift or produce implausible dynamics,
particularly over longer horizons or unfamiliar actions.
## Citation
If you use these models or the paired dataset, please cite:
```bibtex
@inproceedings{bateman2026aim,
title = {Training Controllable World Models via Action Influence Maximization},
author = {Bateman, Samuel M. and Yin, Tenny and Zheng, Chongyi and Huang, Lei
and Wang, Brian and Eysenbach, Ben and Fisac, Jaime Fern\'andez and Shah, Dhruv},
booktitle = {Conference on Robot Learning},
year = {2026}
}
```
Paper link forthcoming.