Show HN: Simulusion – A PyTorch library for training and running world models Developer Param Thakkar released Simulusion 1.0, a PyTorch library formerly named TorchWM, on PyPI under the package name `simulusion`, unifying Dreamer, PlaNet, JEPA, IRIS, DIAMOND, DiT and Genie world models behind a single `create_config` / `create_model` / `make_env` API. The library ships built-in adapters for Gym/Gymnasium, DeepMind Control, MuJoCo, Brax, Atari and Unity ML-Agents, plus ONNX, TorchScript and TensorRT export, and every model includes a demo that trains from scratch on a 4 GB RTX 3050 laptop GPU in one to two hours. Trained Dreamer, DreamerV2, PlaNet, IRIS, DiT and I-JEPA checkpoints are published in the Simulusion demo models collection on the Hugging Face Hub. Formerly TorchWM. The project was renamed to Simulusion for 1.0 and is published on PyPI as simulusion : pip install simulusion , then import simulusion . Simulusion brings the major world-model families together under a single PyTorch API. Train Dreamer, PlaNet, JEPA, IRIS, DIAMOND, DiT, and Genie agents through create config / create model / make env , or drop down to their encoders, decoders, and latent-dynamics backbones to compose your own architecture. Environment adapters Gym/Gymnasium, DeepMind Control, MuJoCo, Brax, Atari, Unity ML-Agents and ONNX / TorchScript / TensorRT export come built in. Every model ships with a demo that trains from scratch on a laptop GPU RTX 3050, 4 GB in one to two hours and records what it learned. These are short runs, not paper-scale results: the point is to show what each model does. | Dreamer : the real environment left beside the world model imagining it open loop right . | DIAMOND : Breakout in the emulator beside a diffusion model generating every frame itself. | | Genie : a real Sonic clip beside Genie regenerating it from the first frame, with actions it learned from unlabelled video. | IRIS : a policy boxing inside a Transformer world model made of discrete tokens. | | PlaNet : a latent model predicting the future while a CEM planner searches inside it. | DiT : CIFAR-10 samples from a class-conditional Diffusion Transformer, one row per class. | More clips, learning curves and the commands to reproduce each one are in the gallery https://paramthakkar123.github.io/simulusion/gallery.html ; the scripts live in demos/ https://github.com/ParamThakkar123/simulusion/blob/main/demos . The trained Dreamer, DreamerV2, PlaNet, IRIS, DiT and I-JEPA checkpoints are on the Hugging Face Hub in the Simulusion demo models https://huggingface.co/collections/simillusion/simulusion-demo-models-6ae0419992e0177bc1695362 collection; each model card shows how to load it. Install the core package from PyPI. This keeps environment integrations and experiment logging optional. pip install simulusion With extras pip install simulusion gym Gym/Gymnasium environments runnable quick start pip install simulusion dmc DeepMind Control Suite walker-walk, cheetah-run, ... On CPython 3.13 also run: python -m simulusion.install dmc pip install simulusion worldmodels Classic World Models ConvVAE + CMA-ES controller pip install simulusion ml-agents Unity ML-Agents pip install simulusion ml TensorBoard, W&B logging pip install simulusion viz Latent-space visualization plotly, UMAP pip install simulusion dev Testing and linting Or add it to a uv-managed project. uv add simulusion Simulusion depends on PyTorch but does not force a single PyTorch wheel index. If you need a specific PyTorch build, install or add the PyTorch packages with the index recommended for your platform by the PyTorch installation selector https://pytorch.org/get-started/locally/ : Example: CUDA 12.1 wheels. Choose a different index for CPU, ROCm, CUDA 11.x, CUDA 12.4+, or macOS. uv add torch torchvision torchaudio --index https://download.pytorch.org/whl/cu121 Use the friendly top-level API for the common path. The example below runs on a base pip install simulusion gym — no simulator downloads required: python import simulusion Trains a Dreamer agent on a Gymnasium task. Bump total steps for real runs. seed steps of random play come first and count towards total steps ; the final checkpoint is written to