Simulusion: World Models in PyTorch#
Simulusion is a modular PyTorch library for world models: agents that learn how their environment works, then plan, act or generate inside that learned model. Dreamer, PlaNet, DIAMOND, IRIS, Genie, DiT and I-JEPA share one API, and their encoders, dynamics backbones and decoders are reusable parts.
DreamerReal environment beside the world model's open-loop imagination.
DIAMONDBreakout generated frame by frame by a diffusion model.
GenieA playable world learned from unlabelled video.
Every model has a demo you can run on a laptop GPU. See the Gallery for all of them.
Install#
pip install "simulusion[gym]"
Train an agent#
import simulusion
# Dreamer from pixels on Pendulum; runs on ``pip install simulusion[gym]``.
agent = simulusion.create_model(
"dreamer", env="Pendulum-v1", env_backend="gym", total_steps=5_000
)
agent.train()
print(simulusion.list_models()) # every model create_model() can build
Continue with Getting Started for a guided first run, or jump to a model under Algorithms in the sidebar.
Get Started
User Guides
- Public API Quick Reference
- One Trainer for Every Model
- Your Own Data: Episodes and LeRobot
- Training Guide
- Inference Guide
- One interface for every world model
- Efficient Inference and Deployment
- Evaluation Guide
- Memory & Replay Buffers
- Environments Guide
- Environment Backends
- NuPlan Dataset
- Simulusion CLI
- Package Overview
- Controllers and Policies
- World Models Study Guide
- Tutorial: Plug Simulusion world models into RL libraries
- Modular RSSM
- Vision Components
- Datasets
- Loss Functions
- Plugin Registry
- World Models Deep Dive (Ha & Schmidhuber, 2018)
Algorithms
Reference