EAWM / README.md
darwin05's picture
Update README.md
93ce473 verified
<div align="center">
<h2>From Observations to Events: Event-Aware World Models for Reinforcement Learning</h2>
Zhao-Han Peng, Shaohui Li, Zhi Li, Shulan Ruan, Yu Liu, You He
Tsinghua University, Zhejiang University
**ICLR 2026**
<a href='https://arxiv.org/abs/2601.19336'><img src='https://img.shields.io/badge/ArXiv-2510.10125-red'></a>
<a href='https://github.com/MarquisDarwin/EAWM'><img src='https://img.shields.io/badge/Project-Page-Blue'></a>
</div>
## Overview
**EAWM** (Event-Aware World Models) is an event-aware world model framework for reinforcement learning. In addition to conventional observation prediction, EAWM explicitly models events so that the world model can learn sparser and more interpretable environment dynamics. The repository includes experiments on Atari, DeepMind Control Suite, DMC-GB2, and Craftax.
<div align="center">
<img src="results.png" height="220" />
</div>
## Download Checkpoints
You can download the full checkpoint repository with the Hugging Face Hub Python API:
```bash
pip install -U huggingface_hub
```
```python
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="darwin05/EAWM",
local_dir="checkpoints"
)
```
Alternatively, you can use the Hugging Face CLI:
```bash
hf download darwin05/EAWM \
--repo-type model \
--local-dir checkpoints
```
## Using Checkpoints
The provided checkpoints are mainly intended for reproducing evaluation results. Before using them, set up the corresponding subproject environment:
- See [EADream/README.md](https://github.com/MarquisDarwin/EAWM/blob/master/EADream/README.md) for the EADream environment.
- See [EASimulus/README.md](https://github.com/MarquisDarwin/EAWM/blob/master/EASimulus/README.md) for the EASimulus environment.
Checkpoint layout:
```text
checkpoints/
|-- EADream/
| |-- atari_pong.pt
| |-- atari_breakout.pt
| `-- dmc_cheetah_run.pt
`-- EASimulus/
|-- Atari/
| |-- Pong.pt
| `-- Breakout.pt
`-- craftax.pt
```
### Evaluate EADream Checkpoints
Atari example:
```bash
cd EADream
python3 eval.py \
--configdir configsc.yaml \
--game pong \
--weights /path/to/checkpoint/dir/EADream/atari_pong.pt \
--episodes 100 \
--device cuda:0 \
--result-file log/result.txt
```
DMC example:
```bash
cd EADream
python3 eval.py \
--configdir configsc.yaml \
--configs dmc_vision \
--task dmc_cheetah_run \
--weights /path/to/checkpoint/dir/EADream/dmc_cheetah_run.pt \
--episodes 10 \
--device cuda:0 \
--result-file dmcresult.txt
```
EADream checkpoints follow the `atari_<game>.pt` or `dmc_<domain>_<task>.pt` naming convention, for example `atari_qbert.pt` and `dmc_quadruped_walk.pt`.
### Evaluate EASimulus Checkpoints
Atari example:
```bash
cd EASimulus
python scripts/eval.py \
--benchmark atari \
--weights-path /path/to/checkpoint/dir/EASimulus/Atari/Pong.pt \
--num-episodes 100 \
--num-envs 20 \
--seed 0 \
--wandb-mode disabled
```
Craftax example:
```bash
cd EASimulus
python scripts/eval.py \
--benchmark craftax \
--weights-path /path/to/checkpoint/dir/EASimulus/craftax.pt \
--num-episodes 100 \
--num-envs 20 \
--seed 0 \
--wandb-mode disabled
```
EASimulus Atari checkpoints use ALE environment stems as filenames. For example, `Pong.pt` is mapped by the evaluation script to `PongNoFrameskip-v4`.
### Batch Evaluation
You can also use the batch evaluation scripts:
- `https://github.com/MarquisDarwin/EAWM/EADream/scripts/eval_atari.sh`
- `https://github.com/MarquisDarwin/EAWM/EADream/scripts/eval_dmc.sh`
- `https://github.com/MarquisDarwin/EAWM/EASimulus/scripts/eval_atari.sh`
- `https://github.com/MarquisDarwin/EAWM/EASimulus/scripts/eval_craft.sh`
Before running these scripts, replace the checkpoint placeholder paths with real paths. For EADream, run the scripts under `EADream/scripts/`; For EASimulus, run the scripts under `EASimulus/`.
### Difference From Training Resume
The `.pt` files under `checkpoints/` are pretrained agent weights intended for evaluation only; they are not complete training checkpoints for resuming training.