File size: 9,663 Bytes
64ff0db
b4e9a22
64ff0db
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bd3fc73
 
 
 
 
 
64ff0db
 
 
78fa140
64ff0db
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78fa140
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64ff0db
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c23b9b6
 
 
 
 
64ff0db
b4e9a22
 
 
64ff0db
 
 
78fa140
64ff0db
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
---
license: mit
language:
- en
tags:
- world-model
- robotics
- pusht
- jax
- latent-diffusion
datasets:
- smbml/future-sight-pusht
inference: false
---

<p align="center"><img src="assets/wordmark.svg" alt="Future Sight" width="420"></p>

# 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.

<video controls autoplay loop muted playsinline width="768" src="https://huggingface.co/smbml/future-sight-pusht-models/resolve/main/assets/rollouts.mp4"></video>

**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.