A tiny codebase for building world models for Doom.
First environment is VizDoom take_cover
collect rollouts -> learn V -> learn M -> train C in dreams -> compare dream vs real -> evaluate in Doom
V: visual model that compresses Doom frames into latentsM: memory/world model that predicts future latentsC: controller trained against the learned world
World models have a little bit of everything:
- They seem fun
- Pixels need compression
- Actions need dynamics
- Rewards and done states are easy to exploit
- Planning exposes model errors quickly
- Bad predictions are visible as videos
Inspired by World Models
uv syncRun the following command from the root of the repo to start the API:
uv run python -m api.app --runs-root runs/demo --port 8787Navigate to the web directory and start the server:
cd web
npm run devThe dashboard will be available at http://localhost:5173.
modal run infra/modal_app.py::run_pipeline_remote --spec-name baseline_debug
modal run --detach infra/modal_app.py::run_pipeline_remote --spec-name proper_world_v1
modal deploy infra/modal_app.py