World Model Research Made Simple
Project description
stable-worldmodel
World model research made simple. From data collection to training and evaluation.
Quick Example | Environments | Installation | Documentation | Contributing | Citation
Quick Example
import stable_worldmodel as swm
from stable_worldmodel.data import HDF5Dataset
from stable_worldmodel.policy import WorldModelPolicy, PlanConfig
from stable_worldmodel.solver import CEMSolver
# collect a dataset
world = swm.World('swm/PushT-v1', num_envs=8)
world.set_policy(your_expert_policy)
world.record_dataset(dataset_name='pusht_demo', episodes=100)
# load dataset and train your world model
dataset = HDF5Dataset(name='pusht_demo', num_steps=16)
world_model = ... # your world-model
# evaluate with model predictive control
solver = CEMSolver(model=world_model, num_samples=300)
policy = WorldModelPolicy(solver=solver, config=PlanConfig(horizon=10))
world.set_policy(policy)
results = world.evaluate(episodes=50)
print(f"Success Rate: {results['success_rate']:.1f}%")
stable-worldmodel eases reproducibility by already implementing several baselines: scripts/train/prejepa.py reproduces results from the DINO-WM paper and scripts/train/gcivl.py implements several goal-conditioned RL algorithms.
To foster research in MPC for world models, several planning solvers are already implemented, including zeroth-order (CEM, MPPI), gradient-based (GradientSolver, PGD), and constrained gradient approaches (LagrangianSolver).
Efficiency
We support multiple dataset formats to optimize efficiency: MP4 enables fast and convenient visualization, while HDF5 ensures high-performance data loading, reduces CPU bottlenecks, and improves overall GPU utilization.
GPU utilization for DINO-WM trained on Push-T with a DINOv2-Small backbone.
See the full documentation here.
Supported Environments
stable-worldmodel supports a large collection of environments from the DeepMind Control Suite, OGBench, and classical world model benchmarks such as Two-Room and PushT.
Each environment includes visual and physical factor variations to evaluate robustness and generalization. New environments can easily be added to stable-worldmodel as they only need to follow the Gymnasium interface.
|
|
CLI
After installation, the swm command-line tool is available to inspect your datasets, environments, and checkpoints without writing any code:
# list cached datasets
swm datasets
# inspect a specific dataset
swm inspect pusht_expert_train
# list all registered environments
swm envs
# show factors of variation for an environment
swm fovs PushT-v1
# list available model checkpoints
swm checkpoints
Installing stable-worldmodel
stable-worldmodel is available on PyPI and can be installed with:
pip install stable-worldmodel
Note: The library is still in active development.
Install from Source
To set up a development environment from source:
git clone https://github.com/galilai-group/stable-worldmodel
cd stable-worldmodel/
uv venv --python=3.10
source .venv/bin/activate
uv sync --all-extras --group dev
Note: All datasets and models will be saved in the
$STABLEWM_HOMEenvironment variable. By default this is~/.stable-wm/. Adapt this directory according to your storage needs.
Questions
If you have a question, please file an issue.
Citation
@misc{maes_lelidec2026swm-1,
title={stable-worldmodel-v1: Reproducible World Modeling Research and Evaluation},
author = {Lucas Maes and Quentin Le Lidec and Dan Haramati and
Nassim Massaudi and Damien Scieur and Yann LeCun and
Randall Balestriero},
year={2026},
eprint={2602.08968},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2602.08968},
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file stable_worldmodel-0.0.6.tar.gz.
File metadata
- Download URL: stable_worldmodel-0.0.6.tar.gz
- Upload date:
- Size: 152.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ee1bbcd942989475348fd541c7f8e1d998506700bfec86e272bde3e3593a22c
|
|
| MD5 |
704e08e6deb8bf362dab378fa57dd87c
|
|
| BLAKE2b-256 |
7f6f39a1bd034e75e6797a610ad1775907fbb0b7f76949cd805bc9bfaba9690f
|
File details
Details for the file stable_worldmodel-0.0.6-py3-none-any.whl.
File metadata
- Download URL: stable_worldmodel-0.0.6-py3-none-any.whl
- Upload date:
- Size: 208.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90601307b3430436d617a5134579089414a1f98eab1dfb6aeabf36ea7f46ff4d
|
|
| MD5 |
b5c90f6af5b7967ea8f3afc2ebb6caac
|
|
| BLAKE2b-256 |
77ac9618ee77bf0ed0180c67a0645dfb42215f54197de347235c831f65ea6363
|