[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82117":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":30,"readmeContent":31,"aiSummary":32,"trendingCount":16,"starSnapshotCount":16,"syncStatus":33,"lastSyncTime":34,"discoverSource":35},82117,"stable-worldmodel","galilai-group\u002Fstable-worldmodel","galilai-group","A platform for reproducible world model research and evaluation",null,"https:\u002F\u002Fgithub.com\u002Fgalilai-group\u002Fstable-worldmodel","Python",1806,204,17,4,0,84,244,765,252,101.94,false,"main",[25,26,27,28,29],"deep-learning","pytorch","jepa","world-model","model-predictive-control","2026-06-12 04:01:37","\u003Ch1 align=\"center\">stable-worldmodel\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\u003Ci>A platform for reproducible world model research and evaluation.\u003C\u002Fi>\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgalilai-group.github.io\u002Fstable-worldmodel\u002F\">\u003Cimg alt=\"Documentation\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocs-blue.svg\"\u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgalilai-group\u002Fstable-worldmodel\">\u003Cimg alt=\"Tests\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fgalilai-group\u002Fstable-worldmodel\u002Ftests.yaml?label=Tests\"\u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fstable-worldmodel\u002F#history\">\u003Cimg alt=\"PyPI\" src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fstable-worldmodel.svg\"\u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2605.21800v1\" target=\"_blank\" style=\"margin: 2px;\">\u003Cimg alt=\"ArXiv\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2605.21800-b5212f?logo=arxiv\" style=\"display: inline-block; vertical-align: middle;\"\u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F\">\u003Cimg alt=\"PyTorch\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPyTorch-ee4c2c?logo=pytorch&logoColor=white\"\u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fastral-sh\u002Fruff\">\u003Cimg alt=\"Ruff\" src=\"https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fraw.githubusercontent.com\u002Fastral-sh\u002Fruff\u002Fmain\u002Fassets\u002Fbadge\u002Fv2.json\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#installation\">\u003Cb>Installation\u003C\u002Fb>\u003C\u002Fa> ·\n  \u003Ca href=\"#quick-start\">\u003Cb>Quick Start\u003C\u002Fb>\u003C\u002Fa> ·\n  \u003Ca href=\"#environments\">\u003Cb>Environments\u003C\u002Fb>\u003C\u002Fa> ·\n  \u003Ca href=\"#solvers-and-baselines\">\u003Cb>Solvers & Baselines\u003C\u002Fb>\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fgalilai-group.github.io\u002Fstable-worldmodel\u002F\">\u003Cb>Documentation\u003C\u002Fb>\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2605.21800v1\">\u003Cb>Paper\u003C\u002Fb>\u003C\u002Fa> ·\n  \u003Ca href=\"#citation\">\u003Cb>Citation\u003C\u002Fb>\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n`stable-worldmodel` provides a single, unified interface for the three stages of world model research — **collecting data**, **training**, and **evaluating with model-predictive control** — across a large suite of standardized environments. It ships with reference implementations of common baselines and planning solvers so research code can stay focused on the contribution that matters: the model and the objective.\n\n## Installation\n\nFrom PyPI:\n\n```bash\npip install stable-worldmodel            # base only\npip install 'stable-worldmodel[all]'     # + training, environments, and data formats\n```\n\nLeRobot dataset support is a separate opt-in extra (requires Python 3.12+): `pip install 'stable-worldmodel[lerobot]'`.\n\nFrom source (development):\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fgalilai-group\u002Fstable-worldmodel\ncd stable-worldmodel\nuv venv --python=3.10 && source .venv\u002Fbin\u002Factivate\nuv sync --extra all --group dev\n```\n\nDatasets and checkpoints are stored under `$STABLEWM_HOME` (defaults to `~\u002F.stable_worldmodel\u002F`). Override the variable to point at your preferred storage location.\n\n> The library is in active development. APIs may change between minor versions.\n\n## Quick Start\n\n```python\nimport stable_worldmodel as swm\nfrom stable_worldmodel.policy import WorldModelPolicy, PlanConfig\nfrom stable_worldmodel.solver import CEMSolver\n\n# 1. Collect a dataset\nworld = swm.World(\"swm\u002FPushT-v1\", num_envs=8)\nworld.set_policy(your_expert_policy)\nworld.collect(\"data\u002Fpusht_demo.lance\", episodes=100, seed=0)\n\n# 2. Load it and train your world model (format is autodetected)\ndataset = swm.data.load_dataset(\"data\u002Fpusht_demo.lance\", num_steps=16)\nworld_model = ...  # your model\n\n# 3. Evaluate with model-predictive control\nsolver = CEMSolver(model=world_model, num_samples=300)\npolicy = WorldModelPolicy(solver=solver, config=PlanConfig(horizon=10))\n\nworld.set_policy(policy)\nresults = world.evaluate(episodes=50)\nprint(f\"Success Rate: {results['success_rate']:.1f}%\")\n```\n\nReference implementations are provided in [`scripts\u002Ftrain\u002F`](scripts\u002Ftrain): [`lewm.py`](scripts\u002Ftrain\u002Flewm.py) implements [LeWM](https:\u002F\u002Fle-wm.github.io\u002F), and [`prejepa.py`](scripts\u002Ftrain\u002Fprejepa.py) reproduces [DINO-WM](https:\u002F\u002Farxiv.org\u002Fabs\u002F2411.04983).\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fassets\u002Flewm-gpu-usage.png\" alt=\"GPU utilization comparison\" width=\"60%\">\n  \u003Cbr>\n  \u003Cem>GPU utilization for LeWM trained with  Push-T LanceDB dataset on a H200 GPU.\u003C\u002Fem>\n\u003C\u002Fp>\n\n## Data Formats\n\nRecording, loading, and conversion all go through a small **format registry**. Pick the backend that matches your trade-off, or [register your own](https:\u002F\u002Fgalilai-group.github.io\u002Fstable-worldmodel\u002Fapi\u002Fdataset\u002F#registering-a-custom-format).\n\n| Format    | On-disk layout                                  | Best for                                       |\n|-----------|-------------------------------------------------|------------------------------------------------|\n| `lance`   | LanceDB table (episode-contiguous flat rows)    | default — append-friendly, fast indexed reads  |\n| `hdf5`    | single `.h5` file (one dataset per column)      | portable single-file artifact                  |\n| `folder`  | `.npz` columns + one JPEG per step              | inspection, partial-key streaming              |\n| `video`   | `.npz` columns + one MP4 per episode (`decord`) | long episodes, compact image storage           |\n| `lerobot` | `lerobot:\u002F\u002F\u003Crepo_id>` (read-only adapter)       | training\u002Feval directly on LeRobot Hub datasets |\n\n```python\nworld.collect(\"data\u002Fpusht.lance\", episodes=100)                  # default: lance\nworld.collect(\"data\u002Fpusht_video\", episodes=100, format=\"video\")  # mp4 episodes\n\nds = swm.data.load_dataset(\"data\u002Fpusht.lance\", num_steps=16)     # autodetect\nswm.data.convert(\"data\u002Fpusht.lance\", \"data\u002Fpusht_video\",\n                 dest_format=\"video\", fps=30)                    # one-shot migration\n```\n\nEvery writer accepts a `mode` kwarg (`'append'` (default), `'overwrite'`, `'error'`); re-running `world.collect` extends the existing dataset rather than failing.\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Throughput & storage benchmarks\u003C\u002Fb>\u003C\u002Fsummary>\n\nNumbers below were produced by [`scripts\u002Fbenchmark\u002Fcompare_h5_lance.py`](scripts\u002Fbenchmark\u002Fcompare_h5_lance.py) and can be reproduced with it. Benchmarks use the [PushT dataset](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fgalilai-group\u002Flewm-pusht) from the [LeWorldModel](https:\u002F\u002Fle-wm.github.io\u002F) paper.\n\n## Throughput\n\n| Format  | Source   | Cache    | samples\u002Fs | ms\u002Fstep  |\n|---------|----------|----------|-----------|----------|\n| HDF5    | local    | no-cache |    1416.1 |     45.2 |\n| HDF5    | local    | cached   |    1474.0 |     43.4 |\n| LanceDB | local    | no-cache |    4814.8 |     13.3 |\n| LanceDB | local    | cached   |    4431.3 |     14.4 |\n| Video   | local    | -        |    1330.6 |     48.1 |\n| LanceDB | s3       | no-cache |    3183.7 |     20.1 |\n| LanceDB | s3       | cached   |    3253.2 |     19.7 |\n| HDF5    | s3       | no-cache |       9.1 |   7032.5 |\n| HDF5    | s3       | cached   |     756.5 |     84.6 |\n\n## Storage size per format (local)\n\n| Format  | Local size |\n|---------|------------|\n| HDF5    |   43.12 GB |\n| LanceDB |   13.31 GB |\n| Video   |  496.29 MB |\n\n\u003C\u002Fdetails>\n\n## Environments\n\n\u003Cdiv align=\"center\">\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fballincup.gif\" width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Fballincup_var.gif\" width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fcartpole.gif\"  width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Fcartpole_var.gif\"  width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fcheetah.gif\"   width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Fcheetah_var.gif\"   width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Ffinger.gif\"    width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Ffinger_var.gif\"    width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fhopper.gif\"    width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Fhopper_var.gif\"    width=\"120\"\u002F>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fpendulum.gif\"  width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Fpendulum_var.gif\"  width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fquadruped.gif\" width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Fquadruped_var.gif\" width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Freacher.gif\"   width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Freacher_var.gif\"   width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fwalker.gif\"    width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Fwalker_var.gif\"    width=\"120\"\u002F>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fcartpole_control.gif\"     width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Fcartpole_control_var.gif\"     width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fmountain_car_control.gif\" width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Fmountain_car_control_var.gif\" width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Facrobot_control.gif\"      width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Facrobot_control_var.gif\"      width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fpendulum_control.gif\"     width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Fpendulum_control_var.gif\"     width=\"120\"\u002F>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fcube.gif\"    width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Fcube_fov.gif\"    width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fscene.gif\"   width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Fscene_fov.gif\"   width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fpusht.gif\"   width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Fpusht_fov.gif\"   width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Ftworoom.gif\" width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Ftworoom_fov.gif\" width=\"120\"\u002F>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Ffetch_reach.gif\"        width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Ffetch_reach_var.gif\"        width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Ffetch_push.gif\"         width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Ffetch_push_var.gif\"         width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Ffetch_slide.gif\"        width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Ffetch_slide_var.gif\"        width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Ffetch_pickandplace.gif\" width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Ffetch_pickandplace_var.gif\" width=\"120\"\u002F>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fcraftax_classic.gif\"    width=\"120\"\u002F>\u003Cbr>\u003Cimg src=\"docs\u002Fassets\u002Fcraftax.gif\"                width=\"120\"\u002F>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Cem>Top row: default appearance &nbsp;·&nbsp; Bottom row: visual factor of variation\u003C\u002Fem>\n\n\u003C\u002Fdiv>\n\nEnvironments are pulled from the [DeepMind Control Suite](https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fdm_control), [Gymnasium classic control](https:\u002F\u002Fgymnasium.farama.org\u002Fenvironments\u002Fclassic_control\u002F), [OGBench](https:\u002F\u002Fgithub.com\u002Fseohongpark\u002Fogbench), [Craftax](https:\u002F\u002Fgithub.com\u002FMichaelTMatthews\u002FCraftax), the [Arcade Learning Environment](https:\u002F\u002Fale.farama.org\u002F) (100+ Atari games), and classical world model benchmarks ([Two-Room](https:\u002F\u002Farxiv.org\u002Fabs\u002F2411.04983), [PushT](https:\u002F\u002Farxiv.org\u002Fabs\u002F2303.04137)). Most environments ship with a set of **factors of variation** — independently controllable visual and physical parameters (lighting, textures, dynamics, morphology) — that make it straightforward to evaluate zero-shot generalization to distribution shifts without any additional setup. Adding a new environment only requires conforming to the [Gymnasium](https:\u002F\u002Fgymnasium.farama.org\u002F) interface.\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Full environment list\u003C\u002Fb>\u003C\u002Fsummary>\n\n\u003Cdiv align=\"center\">\n\n| [Environment ID](https:\u002F\u002Fgithub.com\u002Fgalilai-group\u002Fstable-worldmodel\u002Ftree\u002Fmain\u002Fstable_worldmodel\u002Fenvs) |  # FoV  |\n|------------------------------|---------|\n| swm\u002FPushT-v1                 | 16      |\n| swm\u002FTwoRoom-v1               | 17      |\n| swm\u002FOGBCube-v0               | 11      |\n| swm\u002FOGBScene-v0              | 12      |\n| swm\u002FHumanoidDMControl-v0     | 7       |\n| swm\u002FCheetahDMControl-v0      | 7       |\n| swm\u002FHopperDMControl-v0       | 7       |\n| swm\u002FReacherDMControl-v0      | 8       |\n| swm\u002FWalkerDMControl-v0       | 8       |\n| swm\u002FAcrobotDMControl-v0      | 8       |\n| swm\u002FPendulumDMControl-v0     | 6       |\n| swm\u002FCartpoleDMControl-v0     | 6       |\n| swm\u002FBallInCupDMControl-v0    | 9       |\n| swm\u002FFingerDMControl-v0       | 10      |\n| swm\u002FManipulatorDMControl-v0  | 8       |\n| swm\u002FQuadrupedDMControl-v0    | 7       |\n| swm\u002FCartPoleControl-v1       | 10      |\n| swm\u002FMountainCarControl-v0    | 5       |\n| swm\u002FMountainCarContinuousControl-v0 | 4 |\n| swm\u002FAcrobotControl-v1        | 11      |\n| swm\u002FPendulumControl-v1       | 9       |\n| swm\u002FFetchReach-v3            | 8       |\n| swm\u002FFetchPush-v3             | 11      |\n| swm\u002FFetchSlide-v3            | 11      |\n| swm\u002FFetchPickAndPlace-v3     | 11      |\n| swm\u002FCraftaxClassicPixels-v1  | —       |\n| swm\u002FCraftaxClassicSymbolic-v1| —       |\n| swm\u002FCraftaxPixels-v1         | —       |\n| swm\u002FCraftaxSymbolic-v1       | —       |\n| [ALE\u002F* (100+ Atari games)](https:\u002F\u002Fale.farama.org\u002F) | — |\n\n\u003C\u002Fdiv>\n\n\u003C\u002Fdetails>\n\n## Solvers and Baselines\n\n\u003Cdiv align=\"center\">\n\n| [Solver](https:\u002F\u002Fgithub.com\u002Fgalilai-group\u002Fstable-worldmodel\u002Ftree\u002Fmain\u002Fstable_worldmodel\u002Fsolver) | Type            |\n|---------------------------------------|-----------------|\n| Cross-Entropy Method (CEM)            | Sampling        |\n| Improved CEM (iCEM)                   | Sampling        |\n| Model Predictive Path Integral (MPPI) | Sampling        |\n| Predictive Sampling                   | Sampling        |\n| Gradient Descent (SGD, Adam)          | Gradient        |\n| Projected Gradient Descent (PGD)      | Gradient        |\n| Augmented Lagrangian                  | Constrained Opt |\n\n| [Baseline](https:\u002F\u002Fgithub.com\u002Fgalilai-group\u002Fstable-worldmodel\u002Ftree\u002Fmain\u002Fscripts\u002Ftrain) | Type              |\n|----------|-------------------|\n| DINO-WM  | JEPA              |\n| PLDM     | JEPA              |\n| LeWM     | JEPA              |\n| GCBC     | Behaviour Cloning |\n| GCIVL    | RL                |\n| GCIQL    | RL                |\n\n\u003C\u002Fdiv>\n\n## Command-Line Interface\n\nAfter installation, the `swm` command is available for inspecting\u002Fconverting datasets, environments, and checkpoints without writing code:\n\n```bash\nswm datasets                                        # list cached datasets\nswm inspect pusht_expert_train                      # inspect a specific dataset\nswm envs                                            # list all registered environments\nswm fovs PushT-v1                                   # show factors of variation for an environment\nswm checkpoints                                     # list available model checkpoints\nswm convert pusht_expert_train --dest-format video  # convert a dataset to another format\n```\n\n## Documentation\n\nThe full documentation lives at [galilai-group.github.io\u002Fstable-worldmodel](https:\u002F\u002Fgalilai-group.github.io\u002Fstable-worldmodel\u002F), with API references, tutorials, and guides.\n\n## Built on `stable-worldmodel`\n\n- **[C-JEPA](https:\u002F\u002Fhazel-heejeong-nam.github.io\u002Fcjepa\u002F)**\n- **[LeWM](https:\u002F\u002Fle-wm.github.io\u002F)**\n\n## Citation\n\n```bibtex\n@misc{maes_lld2026swm,\n  title  = {stable-worldmodel: A Platform for Reproducible World Modeling Research and Evaluation},\n  author = {Lucas Maes and Quentin Le Lidec and Luiz Facury and Nassim Massaudi and\n            Ayush Chaurasia and Francesco Capuano and Richard Gao and Taj Gillin and\n            Dan Haramati and Damien Scieur and Yann LeCun and Randall Balestriero},\n  year   = {2026},\n  eprint = {2605.21800},\n  archivePrefix = {arXiv},\n  primaryClass = {cs.LG},\n  url    = {https:\u002F\u002Farxiv.org\u002Fabs\u002F2605.21800},\n}\n```\n\n## Questions\n\nOpen an [issue](https:\u002F\u002Fgithub.com\u002Fgalilai-group\u002Fstable-worldmodel\u002Fissues) — happy to help.\n","`stable-worldmodel` 是一个用于可复现世界模型研究和评估的平台。它提供了一个统一的接口，涵盖了数据收集、训练以及使用模型预测控制进行评估这三个阶段，并支持多种标准化环境。该项目基于 Python 和 PyTorch 构建，内置了常见的基线实现和规划求解器，使研究人员能够专注于模型与目标的设计。适合于需要在一致环境中开发、测试新型世界模型的研究者或团队使用，特别是在强化学习、机器人学等领域内寻求提高模型泛化能力和性能的研究场景中。",2,"2026-06-11 04:07:48","trending"]