Repository files navigation

SimWAM: A Simple World Action Model for End-to-End Autonomous Driving

PaperCodeHugging Face ModelLicense

Zongchuang Zhao1, Xin Zhou1, Tianyang Xu1, Zhengyang Sun1, Kaixuan Zhou2, Honglin Li2, Dingkang Liang1†, Xiang Bai1

1 Huazhong University of Science & Technology
2 Dongfeng Research & Development Institute
Project leader.

This repository provides the official implementation of SimWAM for the paper A Simple World Action Model for End-to-End Autonomous Driving, including supervised training and action-only reinforcement learning on NAVSIM.


📣 News

  • 2026.08.19: Released the SimWAM code and weight on the PhysicalAI-AV dataset.
  • 2026.08.07: Released the SimWAM paper, code and weight.

📄 Abstract

World-Action Models (WAMs) improve end-to-end autonomous driving by transferring video dynamics priors to action prediction, but existing methods incur costly test-time future imagination. We present SimWAM, a simple yet effective WAM that leverages future-video prediction as a training-time supervision signal. It co-trains a pretrained video expert and a lightweight action expert with joint flow matching. An isolated attention mask keeps action prediction independent of future frames, allowing trajectory prediction without explicit future-frame generation at inference. Since the two experts share no parameters and interact only through a unified attention interface, the video backbone could be replaced and the action expert scaled independently without modifying the learning objective or inference pipeline. We further apply reinforcement learning to optimize a compositional driving reward beyond trajectory imitation. Our SimWAM achieves 91.5 PDMS on NAVSIM, surpasses state-of-the-art WAM-based planners with substantially lower latency, and transfers zero-shot to nuScenes. These results position SimWAM as a simple yet solid baseline that could readily benefit from advances in video generation for efficient autonomous driving.


🔍 Overview

Overview of the SimWAM architecture with isolated attention
Overview of SimWAM. During training, the video and action DiTs are jointly optimized for future-frame generation and trajectory prediction via shared attention, while the isolated mask prevents the action tokens from accessing future-frame tokens. During inference and reinforcement learning, the model directly predicts trajectories without explicitly predicting future frames.
  • Joint flow-matching co-training. The video expert — a video Diffusion Transformer initialized from Wan2.2-5B together with its video VAE and T5 text encoder — and a lightweight action DiT (hidden size 1024) are co-trained with joint flow matching over future-frame latents and trajectories. Future-video prediction serves as a training-time supervision signal that transfers a traffic-aware dynamics prior into the shared observation representation used for planning.
  • Isolated attention mask. Future-frame tokens and action tokens both attend to the current observation latents while remaining mutually invisible, keeping action prediction independent of future frames. This mask is the only structural modification required to isolate the action tokens from future-frame information.
  • Direct trajectory prediction at inference. Because the action expert never depends on future-frame tokens, explicit future-frame generation is omitted at deployment: the standalone action DiT directly predicts trajectories without auxiliary motion modules, substantially reducing inference latency.
  • Reinforcement learning. The deterministic flow ODE is reformulated as a marginal-preserving SDE, and a group of candidate trajectories per scenario is optimized with FlowGRPO against the compositional NAVSIM PDM reward. RL focuses on the hard navtrain scenarios with the lowest PDMS after imitation learning and updates only the LoRA adapters of the action expert.
  • Flexibility. The two experts share no weights and interact only through the unified attention interface: the video backbone is replaceable (e.g., LTX-Video, Wan2.1-1.3B, Cosmos2.5, Wan2.2-5B) and the action expert is independently scalable (0.21B–1.02B) without modifying the learning objective or inference pipeline.

📈 Performance

PDMS versus inference latency on NAVSIM for recent world-model-based planners
SimWAM achieves the best PDMS and the lowest inference latency among recent world-model-based planners on NAVSIM.

NAVSIM navtest

Using only a single front camera at 384×672, SimWAM establishes a new state of the art on NAVSIM navtest, surpassing the strongest VLM-based planner SGDrive by 0.4 points and ExploreVLA, which explicitly incorporates future image prediction, by 1.1 points. It further outperforms the imagine-then-act WAMs DriveLaW and DriveWAM by 2.4 and 1.4 points, respectively.

MethodReferenceSensorsNC↑DAC↑EP↑TTC↑C↑PDMS↑
Human Agent--100.0100.087.5100.099.994.8
Traditional E2E planners
UniADCVPR'236×C97.891.978.892.9100.083.4
TransFuserTPAMI'223×C+L97.792.879.292.8100.084.0
WorldRFTAAAI'263×C97.896.881.794.0100.087.8
DiffusionDriveCVPR'253×C+L98.296.282.294.7100.088.1
WoTEICCV'253×C+L98.596.881.994.999.988.3
SeerDriveNeurIPS'253×C+L98.497.083.294.999.988.9
VLM-based planners
UniWorldVLAarXiv'261×C98.796.783.296.1100.089.4
DriveDreamer-PolicyarXiv'263×C98.497.183.595.1100.089.2
AutoVLANeurIPS'253×C98.495.681.998.099.989.1
ReCogDriveICLR'261×C97.997.387.394.9100.090.8
ExploreVLAECCV'261×C98.898.483.596.599.990.4
DriveVLA-W0ICLR'261×C98.799.183.395.399.390.2
SGDriveCVPR'261×C98.697.885.896.2100.091.1
World-model-based planners
EponaICCV'251×C97.995.180.493.899.986.2
PWMNeurIPS'251×C98.695.981.895.4100.088.1
DriveLaWCVPR'261×C99.097.181.396.7100.089.1
DriveWAMarXiv'261×C98.398.184.395.2100.090.1
SimWAM (Ours)-1×C98.498.786.495.5100.091.5

Component analysis

Video co-training and reinforcement learning contribute complementary gains, improving PDMS by 4.9 points while preserving the simplicity and efficient inference of the standalone action expert.

ConfigurationNCDACEPTTCPDMS
Action-only97.695.781.792.686.6
+ Video98.798.083.995.990.3
+ RL98.498.786.495.591.5

Qualitative results

Qualitative comparison of imitation-trained and reinforced SimWAM on navtest scenarios
Qualitative comparison on two navtest scenarios. After reinforcement learning, the ego commits further along the route while staying collision-free within the drivable area.

NAVSIM v2 (navtest)

We further evaluate SimWAM on NAVSIM-v2, which adopts a reactive simulation protocol and the unified EPDMS metric. In addition to the original PDMS terms, EPDMS considers Driving Direction Compliance (DDC), Traffic Light Compliance (TLC), Lane Keeping (LK), History Comfort (HC), and Extended Comfort (EC). All NAVSIM-v2 experiments are conducted without reinforcement learning.

MethodReferenceNC↑DAC↑DDC↑TLC↑EP↑TTC↑LK↑HC↑EC↑EPDMS↑
Human Agent-100.0100.099.8100.087.4100.0100.098.190.190.3
Traditional E2E planners
TransFuserTPAMI'2296.989.997.899.787.195.492.798.387.276.7
DiffusionDriveCVPR'2598.295.999.499.887.597.396.898.387.784.5
VLM-based planners
ReCogDrive*ICLR'2698.395.299.599.887.197.596.698.386.583.6
SGDriveCVPR'2698.694.399.599.986.097.996.198.385.986.2
DriveFine*arXiv'2698.797.399.599.888.797.897.798.483.889.7
World-model-based planners
DriveVLA-W0ICLR'2698.599.198.099.786.498.193.297.958.986.1
DriveLaWCVPR'2698.796.999.699.887.598.397.698.477.488.6
SimWAM (Ours)-98.698.099.799.987.598.497.998.384.490.2

* indicates training with reinforcement learning.

NAVSIM v2 (navhard)

navhard focuses on safety-critical scenarios and follows a two-stage closed-loop protocol: stage 1 (S1) evaluates the planner on real-world scenarios, while stage 2 (S2) re-evaluates the corresponding synthesized scenarios with reactive traffic agents. Even before reinforcement learning, SimWAM attains the best overall EPDMS of 37.6, surpassing DriveLaW by 7.0 points with leading DAC, DDC, TTC, and LK, especially in the reactive second stage where surrounding agents respond to the ego vehicle.

MethodReferenceStageNC↑DAC↑DDC↑TLC↑EP↑TTC↑LK↑HC↑EC↑EPDMS↑
Traditional E2E planners
TransFuserTPAMI'22S196.279.599.199.584.195.194.297.579.123.1
S277.770.284.298.085.175.645.495.775.9
DiffusionDriveCVPR'25S196.886.098.899.384.095.896.797.679.627.5
S280.172.884.498.485.976.646.496.372.8
VLM-based planners
SGDriveCVPR'26S195.887.697.899.884.494.792.997.828.925.5
S279.465.479.198.988.975.342.796.429.6
ReCogDriveICLR'26S196.478.998.799.882.695.694.497.674.225.7
S280.265.082.498.785.276.943.896.671.8
DriveFinearXiv'26S197.690.099.199.384.996.797.397.672.030.5
S282.171.384.898.488.174.347.296.872.8
World-model-based planners
DriveVLA-W0ICLR'26S196.883.399.099.684.695.396.497.678.224.4
S276.864.379.998.389.275.046.895.853.1
DriveLaWCVPR'26S197.389.199.299.684.397.196.297.867.630.6
S282.567.683.598.184.878.545.896.457.3
SimWAM (Ours)-S198.092.099.799.683.896.297.397.871.637.6
S281.878.687.398.486.378.649.596.369.9

PhysicalAI-Autonomous-Vehicles

We evaluate on the same 1,000-clip test subset adopted by DriveWAM for a consistent comparison, reporting Average Displacement Error (ADE) and Final Displacement Error (FDE) over 3-second and 4-second future trajectories. Although trained on only 65K samples, SimWAM achieves the best ADE and FDE at both horizons. SV denotes single-view camera.

MethodSourceSensorsParams.ADE@3s↓FDE@3s↓ADE@4s↓FDE@4s↓
VaVAM*ValeoSV1.3B2.314.32--
Alpamayo-1.5NVIDIASV10B0.802.311.444.18
DriveWAM-SV5B + 8B0.471.350.832.47
SimWAM (Ours)-SV6B0.401.080.691.96

* evaluated using the released checkpoint, which only supports up to 3s prediction.


⚙️ Installation

Clone the repository:

git clone https://github.com/H-EmbodVis/SimWAM.git
cd SimWAM

Create a Python 3.10 environment and install the pinned runtime dependencies:

conda create -n simwam python=3.10 -y
conda activate simwam
python -m pip install -r requirements.txt
python -m pip install -e navsim --no-deps
python -m pip install -e navsim_v2 --no-deps
python -m pip install -e . --no-deps

For NAVSIM, nuPlan, maps, and dataset preparation, follow the official NAVSIM v1.1 repository and the nuPlan devkit. The required release subset is included under navsim/.

All commands are intended to run from the repository root and use relative paths by default.


📦 Preparation

ActionDiT initialization

bash scripts/model_prepare.sh

Text embeddings

bash scripts/precomput_text_embed.sh

Use +overwrite=false to keep existing embeddings.


🏋️ Training and Evaluation

NAVSIM

Supervised training

NNODES=4 \
NPROC_PER_NODE=8 \
bash scripts/train_navsim_zero1_torchrun.sh \
task=navsim_uncond_front_384x672_1e-4 \
num_workers=8

FlowGRPO LoRA fine-tuning

NPROC_PER_NODE=8 \
bash scripts/train_navsim_grpo_zero1_torchrun.sh \
task=navsim_grpo_action_pdm_384x672_flowgrpo_lora \
num_workers=8 \
model.checkpoint_path=./runs/navsim_uncond_front_384x672_1e-4/<run-id>/checkpoints/weights/step_XXXXXX.pt

Alternatively, set SIMWAM_IL_CHECKPOINT to the supervised checkpoint.

Evaluation

CKPT=./runs/navsim_grpo_action_pdm_384x672_flowgrpo_lora/<run-id>/checkpoints/weights/step_XXXXXX.pt \
TASK=navsim_grpo_action_pdm_384x672_flowgrpo_lora \
NPROC_PER_NODE=8 \
bash experiments/navsim/run_eval_navsim.sh

To verify the released supervised checkpoint with a one-sample smoke test:

CKPT=./weights/SimWAM.pt \
TASK=navsim_uncond_front_384x672_1e-4 \
NPROC_PER_NODE=1 \
bash experiments/navsim/run_eval_navsim.sh \
EVALUATION.max_samples=1 \
EVALUATION.num_inference_steps=2 \
EVALUATION.save_videos=false

Training outputs are written to runs/; evaluation outputs are written to evaluate_results/navsim/.

The supplied launchers use DeepSpeed ZeRO-1 through scripts/ds_configs/ds_zero1_config.json. The matching Accelerate configuration is scripts/accelerate_configs/accelerate_zero1_ds.yaml.

NAVSIM v2 prediction and scoring

The v2 prediction scripts write token-level trajectories for navtest or navhard_two_stage; the scoring launcher consumes those .npy files with the v2 PDM evaluator. Set CKPT, EXP_NAME, and the dataset/cache roots as needed.

CKPT=./weights/SimWAM.pt EXP_NAME=simwam_v2 \
bash experiments/navsim/run_predict_navsim_v2.sh
CKPT=./weights/SimWAM.pt EXP_NAME=simwam_navhard \
bash experiments/navsim/run_predict_navhard.sh
EXP_NAME=simwam_v2 SPLIT=both \
bash navsim_v2/scripts/evaluation/run_npy_trajectory_agent_pdm_score_evaluation.sh

PhysicalAI

The PhysicalAI data is built from the NVIDIA PhysicalAI-Autonomous-Vehicles dataset. The training/test clip splits and data processing follow DriveWAM (Hugging Face).

The migrated metadata files are data/physicalai_train.jsonl and data/physicalai_dataset_stats.json. Keep the referenced front-camera frames under data/physicalai/images/ using the relative paths in the JSONL file.

The PhysicalAI checkpoint and training data are available on our Hugging Face repository.

Train and evaluate with:

NPROC_PER_NODE=2 bash scripts/train_physicalai_zero1_torchrun.sh \
task=physicalai_uncond_front_384x672_1e-4
CKPT=./weights/SimWAM-PAI-AV.pt NPROC_PER_NODE=1 \
bash experiments/physicalai/run_eval.sh \
EVALUATION.max_clips=1 EVALUATION.num_inference_steps=2

👍 Acknowledgement

SimWAM builds upon the following projects and resources:


📖 Citation

If SimWAM is useful in your research, please consider citing the paper:

@article{zhao2026simwam,
title={SimWAM: A Simple World Action Model for End-to-End Autonomous Driving}, author={Zongchuang Zhao and Xin Zhou and Tianyang Xu and Zhengyang Sun and Kaixuan Zhou and Honglin Li and Dingkang Liang and Xiang Bai},
journal={arXiv preprint arXiv:2608.07468},
year = {2026}
}

License

See LICENSE. NAVSIM, Wan2.2, nuPlan, and OpenScene retain their own licenses and distribution terms. Refer to the official NAVSIM license, Wan2.2 repository, and nuPlan license for upstream terms.

About

SimWAM: A Simple World Action Model for End-to-End Autonomous Driving.

Resources

Stars

168 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

SimWAM: A Simple World Action Model for End-to-End Autonomous Driving

PaperCodeHugging Face ModelLicense

Zongchuang Zhao1, Xin Zhou1, Tianyang Xu1, Zhengyang Sun1, Kaixuan Zhou2, Honglin Li2, Dingkang Liang1†, Xiang Bai1

1 Huazhong University of Science & Technology
2 Dongfeng Research & Development Institute
Project leader.

This repository provides the official implementation of SimWAM for the paper A Simple World Action Model for End-to-End Autonomous Driving, including supervised training and action-only reinforcement learning on NAVSIM.


📣 News

  • 2026.08.19: Released the SimWAM code and weight on the PhysicalAI-AV dataset.
  • 2026.08.07: Released the SimWAM paper, code and weight.

📄 Abstract

World-Action Models (WAMs) improve end-to-end autonomous driving by transferring video dynamics priors to action prediction, but existing methods incur costly test-time future imagination. We present SimWAM, a simple yet effective WAM that leverages future-video prediction as a training-time supervision signal. It co-trains a pretrained video expert and a lightweight action expert with joint flow matching. An isolated attention mask keeps action prediction independent of future frames, allowing trajectory prediction without explicit future-frame generation at inference. Since the two experts share no parameters and interact only through a unified attention interface, the video backbone could be replaced and the action expert scaled independently without modifying the learning objective or inference pipeline. We further apply reinforcement learning to optimize a compositional driving reward beyond trajectory imitation. Our SimWAM achieves 91.5 PDMS on NAVSIM, surpasses state-of-the-art WAM-based planners with substantially lower latency, and transfers zero-shot to nuScenes. These results position SimWAM as a simple yet solid baseline that could readily benefit from advances in video generation for efficient autonomous driving.


🔍 Overview

Overview of the SimWAM architecture with isolated attention
Overview of SimWAM. During training, the video and action DiTs are jointly optimized for future-frame generation and trajectory prediction via shared attention, while the isolated mask prevents the action tokens from accessing future-frame tokens. During inference and reinforcement learning, the model directly predicts trajectories without explicitly predicting future frames.
  • Joint flow-matching co-training. The video expert — a video Diffusion Transformer initialized from Wan2.2-5B together with its video VAE and T5 text encoder — and a lightweight action DiT (hidden size 1024) are co-trained with joint flow matching over future-frame latents and trajectories. Future-video prediction serves as a training-time supervision signal that transfers a traffic-aware dynamics prior into the shared observation representation used for planning.
  • Isolated attention mask. Future-frame tokens and action tokens both attend to the current observation latents while remaining mutually invisible, keeping action prediction independent of future frames. This mask is the only structural modification required to isolate the action tokens from future-frame information.
  • Direct trajectory prediction at inference. Because the action expert never depends on future-frame tokens, explicit future-frame generation is omitted at deployment: the standalone action DiT directly predicts trajectories without auxiliary motion modules, substantially reducing inference latency.
  • Reinforcement learning. The deterministic flow ODE is reformulated as a marginal-preserving SDE, and a group of candidate trajectories per scenario is optimized with FlowGRPO against the compositional NAVSIM PDM reward. RL focuses on the hard navtrain scenarios with the lowest PDMS after imitation learning and updates only the LoRA adapters of the action expert.
  • Flexibility. The two experts share no weights and interact only through the unified attention interface: the video backbone is replaceable (e.g., LTX-Video, Wan2.1-1.3B, Cosmos2.5, Wan2.2-5B) and the action expert is independently scalable (0.21B–1.02B) without modifying the learning objective or inference pipeline.

📈 Performance

PDMS versus inference latency on NAVSIM for recent world-model-based planners
SimWAM achieves the best PDMS and the lowest inference latency among recent world-model-based planners on NAVSIM.

NAVSIM navtest

Using only a single front camera at 384×672, SimWAM establishes a new state of the art on NAVSIM navtest, surpassing the strongest VLM-based planner SGDrive by 0.4 points and ExploreVLA, which explicitly incorporates future image prediction, by 1.1 points. It further outperforms the imagine-then-act WAMs DriveLaW and DriveWAM by 2.4 and 1.4 points, respectively.

MethodReferenceSensorsNC↑DAC↑EP↑TTC↑C↑PDMS↑
Human Agent--100.0100.087.5100.099.994.8
Traditional E2E planners
UniADCVPR'236×C97.891.978.892.9100.083.4
TransFuserTPAMI'223×C+L97.792.879.292.8100.084.0
WorldRFTAAAI'263×C97.896.881.794.0100.087.8
DiffusionDriveCVPR'253×C+L98.296.282.294.7100.088.1
WoTEICCV'253×C+L98.596.881.994.999.988.3
SeerDriveNeurIPS'253×C+L98.497.083.294.999.988.9
VLM-based planners
UniWorldVLAarXiv'261×C98.796.783.296.1100.089.4
DriveDreamer-PolicyarXiv'263×C98.497.183.595.1100.089.2
AutoVLANeurIPS'253×C98.495.681.998.099.989.1
ReCogDriveICLR'261×C97.997.387.394.9100.090.8
ExploreVLAECCV'261×C98.898.483.596.599.990.4
DriveVLA-W0ICLR'261×C98.799.183.395.399.390.2
SGDriveCVPR'261×C98.697.885.896.2100.091.1
World-model-based planners
EponaICCV'251×C97.995.180.493.899.986.2
PWMNeurIPS'251×C98.695.981.895.4100.088.1
DriveLaWCVPR'261×C99.097.181.396.7100.089.1
DriveWAMarXiv'261×C98.398.184.395.2100.090.1
SimWAM (Ours)-1×C98.498.786.495.5100.091.5

Component analysis

Video co-training and reinforcement learning contribute complementary gains, improving PDMS by 4.9 points while preserving the simplicity and efficient inference of the standalone action expert.

ConfigurationNCDACEPTTCPDMS
Action-only97.695.781.792.686.6
+ Video98.798.083.995.990.3
+ RL98.498.786.495.591.5

Qualitative results

Qualitative comparison of imitation-trained and reinforced SimWAM on navtest scenarios
Qualitative comparison on two navtest scenarios. After reinforcement learning, the ego commits further along the route while staying collision-free within the drivable area.

NAVSIM v2 (navtest)

We further evaluate SimWAM on NAVSIM-v2, which adopts a reactive simulation protocol and the unified EPDMS metric. In addition to the original PDMS terms, EPDMS considers Driving Direction Compliance (DDC), Traffic Light Compliance (TLC), Lane Keeping (LK), History Comfort (HC), and Extended Comfort (EC). All NAVSIM-v2 experiments are conducted without reinforcement learning.

MethodReferenceNC↑DAC↑DDC↑TLC↑EP↑TTC↑LK↑HC↑EC↑EPDMS↑
Human Agent-100.0100.099.8100.087.4100.0100.098.190.190.3
Traditional E2E planners
TransFuserTPAMI'2296.989.997.899.787.195.492.798.387.276.7
DiffusionDriveCVPR'2598.295.999.499.887.597.396.898.387.784.5
VLM-based planners
ReCogDrive*ICLR'2698.395.299.599.887.197.596.698.386.583.6
SGDriveCVPR'2698.694.399.599.986.097.996.198.385.986.2
DriveFine*arXiv'2698.797.399.599.888.797.897.798.483.889.7
World-model-based planners
DriveVLA-W0ICLR'2698.599.198.099.786.498.193.297.958.986.1
DriveLaWCVPR'2698.796.999.699.887.598.397.698.477.488.6
SimWAM (Ours)-98.698.099.799.987.598.497.998.384.490.2

* indicates training with reinforcement learning.

NAVSIM v2 (navhard)

navhard focuses on safety-critical scenarios and follows a two-stage closed-loop protocol: stage 1 (S1) evaluates the planner on real-world scenarios, while stage 2 (S2) re-evaluates the corresponding synthesized scenarios with reactive traffic agents. Even before reinforcement learning, SimWAM attains the best overall EPDMS of 37.6, surpassing DriveLaW by 7.0 points with leading DAC, DDC, TTC, and LK, especially in the reactive second stage where surrounding agents respond to the ego vehicle.

MethodReferenceStageNC↑DAC↑DDC↑TLC↑EP↑TTC↑LK↑HC↑EC↑EPDMS↑
Traditional E2E planners
TransFuserTPAMI'22S196.279.599.199.584.195.194.297.579.123.1
S277.770.284.298.085.175.645.495.775.9
DiffusionDriveCVPR'25S196.886.098.899.384.095.896.797.679.627.5
S280.172.884.498.485.976.646.496.372.8
VLM-based planners
SGDriveCVPR'26S195.887.697.899.884.494.792.997.828.925.5
S279.465.479.198.988.975.342.796.429.6
ReCogDriveICLR'26S196.478.998.799.882.695.694.497.674.225.7
S280.265.082.498.785.276.943.896.671.8
DriveFinearXiv'26S197.690.099.199.384.996.797.397.672.030.5
S282.171.384.898.488.174.347.296.872.8
World-model-based planners
DriveVLA-W0ICLR'26S196.883.399.099.684.695.396.497.678.224.4
S276.864.379.998.389.275.046.895.853.1
DriveLaWCVPR'26S197.389.199.299.684.397.196.297.867.630.6
S282.567.683.598.184.878.545.896.457.3
SimWAM (Ours)-S198.092.099.799.683.896.297.397.871.637.6
S281.878.687.398.486.378.649.596.369.9

PhysicalAI-Autonomous-Vehicles

We evaluate on the same 1,000-clip test subset adopted by DriveWAM for a consistent comparison, reporting Average Displacement Error (ADE) and Final Displacement Error (FDE) over 3-second and 4-second future trajectories. Although trained on only 65K samples, SimWAM achieves the best ADE and FDE at both horizons. SV denotes single-view camera.

MethodSourceSensorsParams.ADE@3s↓FDE@3s↓ADE@4s↓FDE@4s↓
VaVAM*ValeoSV1.3B2.314.32--
Alpamayo-1.5NVIDIASV10B0.802.311.444.18
DriveWAM-SV5B + 8B0.471.350.832.47
SimWAM (Ours)-SV6B0.401.080.691.96

* evaluated using the released checkpoint, which only supports up to 3s prediction.


⚙️ Installation

Clone the repository:

git clone https://github.com/H-EmbodVis/SimWAM.git
cd SimWAM

Create a Python 3.10 environment and install the pinned runtime dependencies:

conda create -n simwam python=3.10 -y
conda activate simwam
python -m pip install -r requirements.txt
python -m pip install -e navsim --no-deps
python -m pip install -e navsim_v2 --no-deps
python -m pip install -e . --no-deps

For NAVSIM, nuPlan, maps, and dataset preparation, follow the official NAVSIM v1.1 repository and the nuPlan devkit. The required release subset is included under navsim/.

All commands are intended to run from the repository root and use relative paths by default.


📦 Preparation

ActionDiT initialization

bash scripts/model_prepare.sh

Text embeddings

bash scripts/precomput_text_embed.sh

Use +overwrite=false to keep existing embeddings.


🏋️ Training and Evaluation

NAVSIM

Supervised training

NNODES=4 \
NPROC_PER_NODE=8 \
bash scripts/train_navsim_zero1_torchrun.sh \
task=navsim_uncond_front_384x672_1e-4 \
num_workers=8

FlowGRPO LoRA fine-tuning

NPROC_PER_NODE=8 \
bash scripts/train_navsim_grpo_zero1_torchrun.sh \
task=navsim_grpo_action_pdm_384x672_flowgrpo_lora \
num_workers=8 \
model.checkpoint_path=./runs/navsim_uncond_front_384x672_1e-4/<run-id>/checkpoints/weights/step_XXXXXX.pt

Alternatively, set SIMWAM_IL_CHECKPOINT to the supervised checkpoint.

Evaluation

CKPT=./runs/navsim_grpo_action_pdm_384x672_flowgrpo_lora/<run-id>/checkpoints/weights/step_XXXXXX.pt \
TASK=navsim_grpo_action_pdm_384x672_flowgrpo_lora \
NPROC_PER_NODE=8 \
bash experiments/navsim/run_eval_navsim.sh

To verify the released supervised checkpoint with a one-sample smoke test:

CKPT=./weights/SimWAM.pt \
TASK=navsim_uncond_front_384x672_1e-4 \
NPROC_PER_NODE=1 \
bash experiments/navsim/run_eval_navsim.sh \
EVALUATION.max_samples=1 \
EVALUATION.num_inference_steps=2 \
EVALUATION.save_videos=false

Training outputs are written to runs/; evaluation outputs are written to evaluate_results/navsim/.

The supplied launchers use DeepSpeed ZeRO-1 through scripts/ds_configs/ds_zero1_config.json. The matching Accelerate configuration is scripts/accelerate_configs/accelerate_zero1_ds.yaml.

NAVSIM v2 prediction and scoring

The v2 prediction scripts write token-level trajectories for navtest or navhard_two_stage; the scoring launcher consumes those .npy files with the v2 PDM evaluator. Set CKPT, EXP_NAME, and the dataset/cache roots as needed.

CKPT=./weights/SimWAM.pt EXP_NAME=simwam_v2 \
bash experiments/navsim/run_predict_navsim_v2.sh
CKPT=./weights/SimWAM.pt EXP_NAME=simwam_navhard \
bash experiments/navsim/run_predict_navhard.sh
EXP_NAME=simwam_v2 SPLIT=both \
bash navsim_v2/scripts/evaluation/run_npy_trajectory_agent_pdm_score_evaluation.sh

PhysicalAI

The PhysicalAI data is built from the NVIDIA PhysicalAI-Autonomous-Vehicles dataset. The training/test clip splits and data processing follow DriveWAM (Hugging Face).

The migrated metadata files are data/physicalai_train.jsonl and data/physicalai_dataset_stats.json. Keep the referenced front-camera frames under data/physicalai/images/ using the relative paths in the JSONL file.

The PhysicalAI checkpoint and training data are available on our Hugging Face repository.

Train and evaluate with:

NPROC_PER_NODE=2 bash scripts/train_physicalai_zero1_torchrun.sh \
task=physicalai_uncond_front_384x672_1e-4
CKPT=./weights/SimWAM-PAI-AV.pt NPROC_PER_NODE=1 \
bash experiments/physicalai/run_eval.sh \
EVALUATION.max_clips=1 EVALUATION.num_inference_steps=2

👍 Acknowledgement

SimWAM builds upon the following projects and resources:


📖 Citation

If SimWAM is useful in your research, please consider citing the paper:

@article{zhao2026simwam,
title={SimWAM: A Simple World Action Model for End-to-End Autonomous Driving}, author={Zongchuang Zhao and Xin Zhou and Tianyang Xu and Zhengyang Sun and Kaixuan Zhou and Honglin Li and Dingkang Liang and Xiang Bai},
journal={arXiv preprint arXiv:2608.07468},
year = {2026}
}

License

See LICENSE. NAVSIM, Wan2.2, nuPlan, and OpenScene retain their own licenses and distribution terms. Refer to the official NAVSIM license, Wan2.2 repository, and nuPlan license for upstream terms.

About

SimWAM: A Simple World Action Model for End-to-End Autonomous Driving.

Resources

Stars

168 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SimWAM: A Simple World Action Model for End-to-End Autonomous Driving

PaperCodeHugging Face ModelLicense

Zongchuang Zhao1, Xin Zhou1, Tianyang Xu1, Zhengyang Sun1, Kaixuan Zhou2, Honglin Li2, Dingkang Liang1†, Xiang Bai1

1 Huazhong University of Science & Technology
2 Dongfeng Research & Development Institute
Project leader.

This repository provides the official implementation of SimWAM for the paper A Simple World Action Model for End-to-End Autonomous Driving, including supervised training and action-only reinforcement learning on NAVSIM.


📣 News

  • 2026.08.19: Released the SimWAM code and weight on the PhysicalAI-AV dataset.
  • 2026.08.07: Released the SimWAM paper, code and weight.

📄 Abstract

World-Action Models (WAMs) improve end-to-end autonomous driving by transferring video dynamics priors to action prediction, but existing methods incur costly test-time future imagination. We present SimWAM, a simple yet effective WAM that leverages future-video prediction as a training-time supervision signal. It co-trains a pretrained video expert and a lightweight action expert with joint flow matching. An isolated attention mask keeps action prediction independent of future frames, allowing trajectory prediction without explicit future-frame generation at inference. Since the two experts share no parameters and interact only through a unified attention interface, the video backbone could be replaced and the action expert scaled independently without modifying the learning objective or inference pipeline. We further apply reinforcement learning to optimize a compositional driving reward beyond trajectory imitation. Our SimWAM achieves 91.5 PDMS on NAVSIM, surpasses state-of-the-art WAM-based planners with substantially lower latency, and transfers zero-shot to nuScenes. These results position SimWAM as a simple yet solid baseline that could readily benefit from advances in video generation for efficient autonomous driving.


🔍 Overview

Overview of the SimWAM architecture with isolated attention
Overview of SimWAM. During training, the video and action DiTs are jointly optimized for future-frame generation and trajectory prediction via shared attention, while the isolated mask prevents the action tokens from accessing future-frame tokens. During inference and reinforcement learning, the model directly predicts trajectories without explicitly predicting future frames.
  • Joint flow-matching co-training. The video expert — a video Diffusion Transformer initialized from Wan2.2-5B together with its video VAE and T5 text encoder — and a lightweight action DiT (hidden size 1024) are co-trained with joint flow matching over future-frame latents and trajectories. Future-video prediction serves as a training-time supervision signal that transfers a traffic-aware dynamics prior into the shared observation representation used for planning.
  • Isolated attention mask. Future-frame tokens and action tokens both attend to the current observation latents while remaining mutually invisible, keeping action prediction independent of future frames. This mask is the only structural modification required to isolate the action tokens from future-frame information.
  • Direct trajectory prediction at inference. Because the action expert never depends on future-frame tokens, explicit future-frame generation is omitted at deployment: the standalone action DiT directly predicts trajectories without auxiliary motion modules, substantially reducing inference latency.
  • Reinforcement learning. The deterministic flow ODE is reformulated as a marginal-preserving SDE, and a group of candidate trajectories per scenario is optimized with FlowGRPO against the compositional NAVSIM PDM reward. RL focuses on the hard navtrain scenarios with the lowest PDMS after imitation learning and updates only the LoRA adapters of the action expert.
  • Flexibility. The two experts share no weights and interact only through the unified attention interface: the video backbone is replaceable (e.g., LTX-Video, Wan2.1-1.3B, Cosmos2.5, Wan2.2-5B) and the action expert is independently scalable (0.21B–1.02B) without modifying the learning objective or inference pipeline.

📈 Performance

PDMS versus inference latency on NAVSIM for recent world-model-based planners
SimWAM achieves the best PDMS and the lowest inference latency among recent world-model-based planners on NAVSIM.

NAVSIM navtest

Using only a single front camera at 384×672, SimWAM establishes a new state of the art on NAVSIM navtest, surpassing the strongest VLM-based planner SGDrive by 0.4 points and ExploreVLA, which explicitly incorporates future image prediction, by 1.1 points. It further outperforms the imagine-then-act WAMs DriveLaW and DriveWAM by 2.4 and 1.4 points, respectively.

MethodReferenceSensorsNC↑DAC↑EP↑TTC↑C↑PDMS↑
Human Agent--100.0100.087.5100.099.994.8
Traditional E2E planners
UniADCVPR'236×C97.891.978.892.9100.083.4
TransFuserTPAMI'223×C+L97.792.879.292.8100.084.0
WorldRFTAAAI'263×C97.896.881.794.0100.087.8
DiffusionDriveCVPR'253×C+L98.296.282.294.7100.088.1
WoTEICCV'253×C+L98.596.881.994.999.988.3
SeerDriveNeurIPS'253×C+L98.497.083.294.999.988.9
VLM-based planners
UniWorldVLAarXiv'261×C98.796.783.296.1100.089.4
DriveDreamer-PolicyarXiv'263×C98.497.183.595.1100.089.2
AutoVLANeurIPS'253×C98.495.681.998.099.989.1
ReCogDriveICLR'261×C97.997.387.394.9100.090.8
ExploreVLAECCV'261×C98.898.483.596.599.990.4
DriveVLA-W0ICLR'261×C98.799.183.395.399.390.2
SGDriveCVPR'261×C98.697.885.896.2100.091.1
World-model-based planners
EponaICCV'251×C97.995.180.493.899.986.2
PWMNeurIPS'251×C98.695.981.895.4100.088.1
DriveLaWCVPR'261×C99.097.181.396.7100.089.1
DriveWAMarXiv'261×C98.398.184.395.2100.090.1
SimWAM (Ours)-1×C98.498.786.495.5100.091.5

Component analysis

Video co-training and reinforcement learning contribute complementary gains, improving PDMS by 4.9 points while preserving the simplicity and efficient inference of the standalone action expert.

ConfigurationNCDACEPTTCPDMS
Action-only97.695.781.792.686.6
+ Video98.798.083.995.990.3
+ RL98.498.786.495.591.5

Qualitative results

Qualitative comparison of imitation-trained and reinforced SimWAM on navtest scenarios
Qualitative comparison on two navtest scenarios. After reinforcement learning, the ego commits further along the route while staying collision-free within the drivable area.

NAVSIM v2 (navtest)

We further evaluate SimWAM on NAVSIM-v2, which adopts a reactive simulation protocol and the unified EPDMS metric. In addition to the original PDMS terms, EPDMS considers Driving Direction Compliance (DDC), Traffic Light Compliance (TLC), Lane Keeping (LK), History Comfort (HC), and Extended Comfort (EC). All NAVSIM-v2 experiments are conducted without reinforcement learning.

MethodReferenceNC↑DAC↑DDC↑TLC↑EP↑TTC↑LK↑HC↑EC↑EPDMS↑
Human Agent-100.0100.099.8100.087.4100.0100.098.190.190.3
Traditional E2E planners
TransFuserTPAMI'2296.989.997.899.787.195.492.798.387.276.7
DiffusionDriveCVPR'2598.295.999.499.887.597.396.898.387.784.5
VLM-based planners
ReCogDrive*ICLR'2698.395.299.599.887.197.596.698.386.583.6
SGDriveCVPR'2698.694.399.599.986.097.996.198.385.986.2
DriveFine*arXiv'2698.797.399.599.888.797.897.798.483.889.7
World-model-based planners
DriveVLA-W0ICLR'2698.599.198.099.786.498.193.297.958.986.1
DriveLaWCVPR'2698.796.999.699.887.598.397.698.477.488.6
SimWAM (Ours)-98.698.099.799.987.598.497.998.384.490.2

* indicates training with reinforcement learning.

NAVSIM v2 (navhard)

navhard focuses on safety-critical scenarios and follows a two-stage closed-loop protocol: stage 1 (S1) evaluates the planner on real-world scenarios, while stage 2 (S2) re-evaluates the corresponding synthesized scenarios with reactive traffic agents. Even before reinforcement learning, SimWAM attains the best overall EPDMS of 37.6, surpassing DriveLaW by 7.0 points with leading DAC, DDC, TTC, and LK, especially in the reactive second stage where surrounding agents respond to the ego vehicle.

MethodReferenceStageNC↑DAC↑DDC↑TLC↑EP↑TTC↑LK↑HC↑EC↑EPDMS↑
Traditional E2E planners
TransFuserTPAMI'22S196.279.599.199.584.195.194.297.579.123.1
S277.770.284.298.085.175.645.495.775.9
DiffusionDriveCVPR'25S196.886.098.899.384.095.896.797.679.627.5
S280.172.884.498.485.976.646.496.372.8
VLM-based planners
SGDriveCVPR'26S195.887.697.899.884.494.792.997.828.925.5
S279.465.479.198.988.975.342.796.429.6
ReCogDriveICLR'26S196.478.998.799.882.695.694.497.674.225.7
S280.265.082.498.785.276.943.896.671.8
DriveFinearXiv'26S197.690.099.199.384.996.797.397.672.030.5
S282.171.384.898.488.174.347.296.872.8
World-model-based planners
DriveVLA-W0ICLR'26S196.883.399.099.684.695.396.497.678.224.4
S276.864.379.998.389.275.046.895.853.1
DriveLaWCVPR'26S197.389.199.299.684.397.196.297.867.630.6
S282.567.683.598.184.878.545.896.457.3
SimWAM (Ours)-S198.092.099.799.683.896.297.397.871.637.6
S281.878.687.398.486.378.649.596.369.9

PhysicalAI-Autonomous-Vehicles

We evaluate on the same 1,000-clip test subset adopted by DriveWAM for a consistent comparison, reporting Average Displacement Error (ADE) and Final Displacement Error (FDE) over 3-second and 4-second future trajectories. Although trained on only 65K samples, SimWAM achieves the best ADE and FDE at both horizons. SV denotes single-view camera.

MethodSourceSensorsParams.ADE@3s↓FDE@3s↓ADE@4s↓FDE@4s↓
VaVAM*ValeoSV1.3B2.314.32--
Alpamayo-1.5NVIDIASV10B0.802.311.444.18
DriveWAM-SV5B + 8B0.471.350.832.47
SimWAM (Ours)-SV6B0.401.080.691.96

* evaluated using the released checkpoint, which only supports up to 3s prediction.


⚙️ Installation

Clone the repository:

git clone https://github.com/H-EmbodVis/SimWAM.git
cd SimWAM

Create a Python 3.10 environment and install the pinned runtime dependencies:

conda create -n simwam python=3.10 -y
conda activate simwam
python -m pip install -r requirements.txt
python -m pip install -e navsim --no-deps
python -m pip install -e navsim_v2 --no-deps
python -m pip install -e . --no-deps

For NAVSIM, nuPlan, maps, and dataset preparation, follow the official NAVSIM v1.1 repository and the nuPlan devkit. The required release subset is included under navsim/.

All commands are intended to run from the repository root and use relative paths by default.


📦 Preparation

ActionDiT initialization

bash scripts/model_prepare.sh

Text embeddings

bash scripts/precomput_text_embed.sh

Use +overwrite=false to keep existing embeddings.


🏋️ Training and Evaluation

NAVSIM

Supervised training

NNODES=4 \
NPROC_PER_NODE=8 \
bash scripts/train_navsim_zero1_torchrun.sh \
task=navsim_uncond_front_384x672_1e-4 \
num_workers=8

FlowGRPO LoRA fine-tuning

NPROC_PER_NODE=8 \
bash scripts/train_navsim_grpo_zero1_torchrun.sh \
task=navsim_grpo_action_pdm_384x672_flowgrpo_lora \
num_workers=8 \
model.checkpoint_path=./runs/navsim_uncond_front_384x672_1e-4/<run-id>/checkpoints/weights/step_XXXXXX.pt

Alternatively, set SIMWAM_IL_CHECKPOINT to the supervised checkpoint.

Evaluation

CKPT=./runs/navsim_grpo_action_pdm_384x672_flowgrpo_lora/<run-id>/checkpoints/weights/step_XXXXXX.pt \
TASK=navsim_grpo_action_pdm_384x672_flowgrpo_lora \
NPROC_PER_NODE=8 \
bash experiments/navsim/run_eval_navsim.sh

To verify the released supervised checkpoint with a one-sample smoke test:

CKPT=./weights/SimWAM.pt \
TASK=navsim_uncond_front_384x672_1e-4 \
NPROC_PER_NODE=1 \
bash experiments/navsim/run_eval_navsim.sh \
EVALUATION.max_samples=1 \
EVALUATION.num_inference_steps=2 \
EVALUATION.save_videos=false

Training outputs are written to runs/; evaluation outputs are written to evaluate_results/navsim/.

The supplied launchers use DeepSpeed ZeRO-1 through scripts/ds_configs/ds_zero1_config.json. The matching Accelerate configuration is scripts/accelerate_configs/accelerate_zero1_ds.yaml.

NAVSIM v2 prediction and scoring

The v2 prediction scripts write token-level trajectories for navtest or navhard_two_stage; the scoring launcher consumes those .npy files with the v2 PDM evaluator. Set CKPT, EXP_NAME, and the dataset/cache roots as needed.

CKPT=./weights/SimWAM.pt EXP_NAME=simwam_v2 \
bash experiments/navsim/run_predict_navsim_v2.sh
CKPT=./weights/SimWAM.pt EXP_NAME=simwam_navhard \
bash experiments/navsim/run_predict_navhard.sh
EXP_NAME=simwam_v2 SPLIT=both \
bash navsim_v2/scripts/evaluation/run_npy_trajectory_agent_pdm_score_evaluation.sh

PhysicalAI

The PhysicalAI data is built from the NVIDIA PhysicalAI-Autonomous-Vehicles dataset. The training/test clip splits and data processing follow DriveWAM (Hugging Face).

The migrated metadata files are data/physicalai_train.jsonl and data/physicalai_dataset_stats.json. Keep the referenced front-camera frames under data/physicalai/images/ using the relative paths in the JSONL file.

The PhysicalAI checkpoint and training data are available on our Hugging Face repository.

Train and evaluate with:

NPROC_PER_NODE=2 bash scripts/train_physicalai_zero1_torchrun.sh \
task=physicalai_uncond_front_384x672_1e-4
CKPT=./weights/SimWAM-PAI-AV.pt NPROC_PER_NODE=1 \
bash experiments/physicalai/run_eval.sh \
EVALUATION.max_clips=1 EVALUATION.num_inference_steps=2

👍 Acknowledgement

SimWAM builds upon the following projects and resources:


📖 Citation

If SimWAM is useful in your research, please consider citing the paper:

@article{zhao2026simwam,
title={SimWAM: A Simple World Action Model for End-to-End Autonomous Driving}, author={Zongchuang Zhao and Xin Zhou and Tianyang Xu and Zhengyang Sun and Kaixuan Zhou and Honglin Li and Dingkang Liang and Xiang Bai},
journal={arXiv preprint arXiv:2608.07468},
year = {2026}
}

License

See LICENSE. NAVSIM, Wan2.2, nuPlan, and OpenScene retain their own licenses and distribution terms. Refer to the official NAVSIM license, Wan2.2 repository, and nuPlan license for upstream terms.

About

SimWAM: A Simple World Action Model for End-to-End Autonomous Driving.

Resources

Stars

168 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SimWAM: A Simple World Action Model for End-to-End Autonomous Driving

PaperCodeHugging Face ModelLicense

Zongchuang Zhao1, Xin Zhou1, Tianyang Xu1, Zhengyang Sun1, Kaixuan Zhou2, Honglin Li2, Dingkang Liang1†, Xiang Bai1

1 Huazhong University of Science & Technology
2 Dongfeng Research & Development Institute
Project leader.

This repository provides the official implementation of SimWAM for the paper A Simple World Action Model for End-to-End Autonomous Driving, including supervised training and action-only reinforcement learning on NAVSIM.


📣 News

  • 2026.08.19: Released the SimWAM code and weight on the PhysicalAI-AV dataset.
  • 2026.08.07: Released the SimWAM paper, code and weight.

📄 Abstract

World-Action Models (WAMs) improve end-to-end autonomous driving by transferring video dynamics priors to action prediction, but existing methods incur costly test-time future imagination. We present SimWAM, a simple yet effective WAM that leverages future-video prediction as a training-time supervision signal. It co-trains a pretrained video expert and a lightweight action expert with joint flow matching. An isolated attention mask keeps action prediction independent of future frames, allowing trajectory prediction without explicit future-frame generation at inference. Since the two experts share no parameters and interact only through a unified attention interface, the video backbone could be replaced and the action expert scaled independently without modifying the learning objective or inference pipeline. We further apply reinforcement learning to optimize a compositional driving reward beyond trajectory imitation. Our SimWAM achieves 91.5 PDMS on NAVSIM, surpasses state-of-the-art WAM-based planners with substantially lower latency, and transfers zero-shot to nuScenes. These results position SimWAM as a simple yet solid baseline that could readily benefit from advances in video generation for efficient autonomous driving.


🔍 Overview

Overview of the SimWAM architecture with isolated attention
Overview of SimWAM. During training, the video and action DiTs are jointly optimized for future-frame generation and trajectory prediction via shared attention, while the isolated mask prevents the action tokens from accessing future-frame tokens. During inference and reinforcement learning, the model directly predicts trajectories without explicitly predicting future frames.
  • Joint flow-matching co-training. The video expert — a video Diffusion Transformer initialized from Wan2.2-5B together with its video VAE and T5 text encoder — and a lightweight action DiT (hidden size 1024) are co-trained with joint flow matching over future-frame latents and trajectories. Future-video prediction serves as a training-time supervision signal that transfers a traffic-aware dynamics prior into the shared observation representation used for planning.
  • Isolated attention mask. Future-frame tokens and action tokens both attend to the current observation latents while remaining mutually invisible, keeping action prediction independent of future frames. This mask is the only structural modification required to isolate the action tokens from future-frame information.
  • Direct trajectory prediction at inference. Because the action expert never depends on future-frame tokens, explicit future-frame generation is omitted at deployment: the standalone action DiT directly predicts trajectories without auxiliary motion modules, substantially reducing inference latency.
  • Reinforcement learning. The deterministic flow ODE is reformulated as a marginal-preserving SDE, and a group of candidate trajectories per scenario is optimized with FlowGRPO against the compositional NAVSIM PDM reward. RL focuses on the hard navtrain scenarios with the lowest PDMS after imitation learning and updates only the LoRA adapters of the action expert.
  • Flexibility. The two experts share no weights and interact only through the unified attention interface: the video backbone is replaceable (e.g., LTX-Video, Wan2.1-1.3B, Cosmos2.5, Wan2.2-5B) and the action expert is independently scalable (0.21B–1.02B) without modifying the learning objective or inference pipeline.

📈 Performance

PDMS versus inference latency on NAVSIM for recent world-model-based planners
SimWAM achieves the best PDMS and the lowest inference latency among recent world-model-based planners on NAVSIM.

NAVSIM navtest

Using only a single front camera at 384×672, SimWAM establishes a new state of the art on NAVSIM navtest, surpassing the strongest VLM-based planner SGDrive by 0.4 points and ExploreVLA, which explicitly incorporates future image prediction, by 1.1 points. It further outperforms the imagine-then-act WAMs DriveLaW and DriveWAM by 2.4 and 1.4 points, respectively.

MethodReferenceSensorsNC↑DAC↑EP↑TTC↑C↑PDMS↑
Human Agent--100.0100.087.5100.099.994.8
Traditional E2E planners
UniADCVPR'236×C97.891.978.892.9100.083.4
TransFuserTPAMI'223×C+L97.792.879.292.8100.084.0
WorldRFTAAAI'263×C97.896.881.794.0100.087.8
DiffusionDriveCVPR'253×C+L98.296.282.294.7100.088.1
WoTEICCV'253×C+L98.596.881.994.999.988.3
SeerDriveNeurIPS'253×C+L98.497.083.294.999.988.9
VLM-based planners
UniWorldVLAarXiv'261×C98.796.783.296.1100.089.4
DriveDreamer-PolicyarXiv'263×C98.497.183.595.1100.089.2
AutoVLANeurIPS'253×C98.495.681.998.099.989.1
ReCogDriveICLR'261×C97.997.387.394.9100.090.8
ExploreVLAECCV'261×C98.898.483.596.599.990.4
DriveVLA-W0ICLR'261×C98.799.183.395.399.390.2
SGDriveCVPR'261×C98.697.885.896.2100.091.1
World-model-based planners
EponaICCV'251×C97.995.180.493.899.986.2
PWMNeurIPS'251×C98.695.981.895.4100.088.1
DriveLaWCVPR'261×C99.097.181.396.7100.089.1
DriveWAMarXiv'261×C98.398.184.395.2100.090.1
SimWAM (Ours)-1×C98.498.786.495.5100.091.5

Component analysis

Video co-training and reinforcement learning contribute complementary gains, improving PDMS by 4.9 points while preserving the simplicity and efficient inference of the standalone action expert.

ConfigurationNCDACEPTTCPDMS
Action-only97.695.781.792.686.6
+ Video98.798.083.995.990.3
+ RL98.498.786.495.591.5

Qualitative results

Qualitative comparison of imitation-trained and reinforced SimWAM on navtest scenarios
Qualitative comparison on two navtest scenarios. After reinforcement learning, the ego commits further along the route while staying collision-free within the drivable area.

NAVSIM v2 (navtest)

We further evaluate SimWAM on NAVSIM-v2, which adopts a reactive simulation protocol and the unified EPDMS metric. In addition to the original PDMS terms, EPDMS considers Driving Direction Compliance (DDC), Traffic Light Compliance (TLC), Lane Keeping (LK), History Comfort (HC), and Extended Comfort (EC). All NAVSIM-v2 experiments are conducted without reinforcement learning.

MethodReferenceNC↑DAC↑DDC↑TLC↑EP↑TTC↑LK↑HC↑EC↑EPDMS↑
Human Agent-100.0100.099.8100.087.4100.0100.098.190.190.3
Traditional E2E planners
TransFuserTPAMI'2296.989.997.899.787.195.492.798.387.276.7
DiffusionDriveCVPR'2598.295.999.499.887.597.396.898.387.784.5
VLM-based planners
ReCogDrive*ICLR'2698.395.299.599.887.197.596.698.386.583.6
SGDriveCVPR'2698.694.399.599.986.097.996.198.385.986.2
DriveFine*arXiv'2698.797.399.599.888.797.897.798.483.889.7
World-model-based planners
DriveVLA-W0ICLR'2698.599.198.099.786.498.193.297.958.986.1
DriveLaWCVPR'2698.796.999.699.887.598.397.698.477.488.6
SimWAM (Ours)-98.698.099.799.987.598.497.998.384.490.2

* indicates training with reinforcement learning.

NAVSIM v2 (navhard)

navhard focuses on safety-critical scenarios and follows a two-stage closed-loop protocol: stage 1 (S1) evaluates the planner on real-world scenarios, while stage 2 (S2) re-evaluates the corresponding synthesized scenarios with reactive traffic agents. Even before reinforcement learning, SimWAM attains the best overall EPDMS of 37.6, surpassing DriveLaW by 7.0 points with leading DAC, DDC, TTC, and LK, especially in the reactive second stage where surrounding agents respond to the ego vehicle.

MethodReferenceStageNC↑DAC↑DDC↑TLC↑EP↑TTC↑LK↑HC↑EC↑EPDMS↑
Traditional E2E planners
TransFuserTPAMI'22S196.279.599.199.584.195.194.297.579.123.1
S277.770.284.298.085.175.645.495.775.9
DiffusionDriveCVPR'25S196.886.098.899.384.095.896.797.679.627.5
S280.172.884.498.485.976.646.496.372.8
VLM-based planners
SGDriveCVPR'26S195.887.697.899.884.494.792.997.828.925.5
S279.465.479.198.988.975.342.796.429.6
ReCogDriveICLR'26S196.478.998.799.882.695.694.497.674.225.7
S280.265.082.498.785.276.943.896.671.8
DriveFinearXiv'26S197.690.099.199.384.996.797.397.672.030.5
S282.171.384.898.488.174.347.296.872.8
World-model-based planners
DriveVLA-W0ICLR'26S196.883.399.099.684.695.396.497.678.224.4
S276.864.379.998.389.275.046.895.853.1
DriveLaWCVPR'26S197.389.199.299.684.397.196.297.867.630.6
S282.567.683.598.184.878.545.896.457.3
SimWAM (Ours)-S198.092.099.799.683.896.297.397.871.637.6
S281.878.687.398.486.378.649.596.369.9

PhysicalAI-Autonomous-Vehicles

We evaluate on the same 1,000-clip test subset adopted by DriveWAM for a consistent comparison, reporting Average Displacement Error (ADE) and Final Displacement Error (FDE) over 3-second and 4-second future trajectories. Although trained on only 65K samples, SimWAM achieves the best ADE and FDE at both horizons. SV denotes single-view camera.

MethodSourceSensorsParams.ADE@3s↓FDE@3s↓ADE@4s↓FDE@4s↓
VaVAM*ValeoSV1.3B2.314.32--
Alpamayo-1.5NVIDIASV10B0.802.311.444.18
DriveWAM-SV5B + 8B0.471.350.832.47
SimWAM (Ours)-SV6B0.401.080.691.96

* evaluated using the released checkpoint, which only supports up to 3s prediction.


⚙️ Installation

Clone the repository:

git clone https://github.com/H-EmbodVis/SimWAM.git
cd SimWAM

Create a Python 3.10 environment and install the pinned runtime dependencies:

conda create -n simwam python=3.10 -y
conda activate simwam
python -m pip install -r requirements.txt
python -m pip install -e navsim --no-deps
python -m pip install -e navsim_v2 --no-deps
python -m pip install -e . --no-deps

For NAVSIM, nuPlan, maps, and dataset preparation, follow the official NAVSIM v1.1 repository and the nuPlan devkit. The required release subset is included under navsim/.

All commands are intended to run from the repository root and use relative paths by default.


📦 Preparation

ActionDiT initialization

bash scripts/model_prepare.sh

Text embeddings

bash scripts/precomput_text_embed.sh

Use +overwrite=false to keep existing embeddings.


🏋️ Training and Evaluation

NAVSIM

Supervised training

NNODES=4 \
NPROC_PER_NODE=8 \
bash scripts/train_navsim_zero1_torchrun.sh \
task=navsim_uncond_front_384x672_1e-4 \
num_workers=8

FlowGRPO LoRA fine-tuning

NPROC_PER_NODE=8 \
bash scripts/train_navsim_grpo_zero1_torchrun.sh \
task=navsim_grpo_action_pdm_384x672_flowgrpo_lora \
num_workers=8 \
model.checkpoint_path=./runs/navsim_uncond_front_384x672_1e-4/<run-id>/checkpoints/weights/step_XXXXXX.pt

Alternatively, set SIMWAM_IL_CHECKPOINT to the supervised checkpoint.

Evaluation

CKPT=./runs/navsim_grpo_action_pdm_384x672_flowgrpo_lora/<run-id>/checkpoints/weights/step_XXXXXX.pt \
TASK=navsim_grpo_action_pdm_384x672_flowgrpo_lora \
NPROC_PER_NODE=8 \
bash experiments/navsim/run_eval_navsim.sh

To verify the released supervised checkpoint with a one-sample smoke test:

CKPT=./weights/SimWAM.pt \
TASK=navsim_uncond_front_384x672_1e-4 \
NPROC_PER_NODE=1 \
bash experiments/navsim/run_eval_navsim.sh \
EVALUATION.max_samples=1 \
EVALUATION.num_inference_steps=2 \
EVALUATION.save_videos=false

Training outputs are written to runs/; evaluation outputs are written to evaluate_results/navsim/.

The supplied launchers use DeepSpeed ZeRO-1 through scripts/ds_configs/ds_zero1_config.json. The matching Accelerate configuration is scripts/accelerate_configs/accelerate_zero1_ds.yaml.

NAVSIM v2 prediction and scoring

The v2 prediction scripts write token-level trajectories for navtest or navhard_two_stage; the scoring launcher consumes those .npy files with the v2 PDM evaluator. Set CKPT, EXP_NAME, and the dataset/cache roots as needed.

CKPT=./weights/SimWAM.pt EXP_NAME=simwam_v2 \
bash experiments/navsim/run_predict_navsim_v2.sh
CKPT=./weights/SimWAM.pt EXP_NAME=simwam_navhard \
bash experiments/navsim/run_predict_navhard.sh
EXP_NAME=simwam_v2 SPLIT=both \
bash navsim_v2/scripts/evaluation/run_npy_trajectory_agent_pdm_score_evaluation.sh

PhysicalAI

The PhysicalAI data is built from the NVIDIA PhysicalAI-Autonomous-Vehicles dataset. The training/test clip splits and data processing follow DriveWAM (Hugging Face).

The migrated metadata files are data/physicalai_train.jsonl and data/physicalai_dataset_stats.json. Keep the referenced front-camera frames under data/physicalai/images/ using the relative paths in the JSONL file.

The PhysicalAI checkpoint and training data are available on our Hugging Face repository.

Train and evaluate with:

NPROC_PER_NODE=2 bash scripts/train_physicalai_zero1_torchrun.sh \
task=physicalai_uncond_front_384x672_1e-4
CKPT=./weights/SimWAM-PAI-AV.pt NPROC_PER_NODE=1 \
bash experiments/physicalai/run_eval.sh \
EVALUATION.max_clips=1 EVALUATION.num_inference_steps=2

👍 Acknowledgement

SimWAM builds upon the following projects and resources:


📖 Citation

If SimWAM is useful in your research, please consider citing the paper:

@article{zhao2026simwam,
title={SimWAM: A Simple World Action Model for End-to-End Autonomous Driving}, author={Zongchuang Zhao and Xin Zhou and Tianyang Xu and Zhengyang Sun and Kaixuan Zhou and Honglin Li and Dingkang Liang and Xiang Bai},
journal={arXiv preprint arXiv:2608.07468},
year = {2026}
}

License

See LICENSE. NAVSIM, Wan2.2, nuPlan, and OpenScene retain their own licenses and distribution terms. Refer to the official NAVSIM license, Wan2.2 repository, and nuPlan license for upstream terms.

About

SimWAM: A Simple World Action Model for End-to-End Autonomous Driving.

Resources

Stars

168 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

SimWAM: A Simple World Action Model for End-to-End Autonomous Driving

PaperCodeHugging Face ModelLicense

Zongchuang Zhao1, Xin Zhou1, Tianyang Xu1, Zhengyang Sun1, Kaixuan Zhou2, Honglin Li2, Dingkang Liang1†, Xiang Bai1

1 Huazhong University of Science & Technology
2 Dongfeng Research & Development Institute
Project leader.

This repository provides the official implementation of SimWAM for the paper A Simple World Action Model for End-to-End Autonomous Driving, including supervised training and action-only reinforcement learning on NAVSIM.


📣 News

  • 2026.08.19: Released the SimWAM code and weight on the PhysicalAI-AV dataset.
  • 2026.08.07: Released the SimWAM paper, code and weight.

📄 Abstract

World-Action Models (WAMs) improve end-to-end autonomous driving by transferring video dynamics priors to action prediction, but existing methods incur costly test-time future imagination. We present SimWAM, a simple yet effective WAM that leverages future-video prediction as a training-time supervision signal. It co-trains a pretrained video expert and a lightweight action expert with joint flow matching. An isolated attention mask keeps action prediction independent of future frames, allowing trajectory prediction without explicit future-frame generation at inference. Since the two experts share no parameters and interact only through a unified attention interface, the video backbone could be replaced and the action expert scaled independently without modifying the learning objective or inference pipeline. We further apply reinforcement learning to optimize a compositional driving reward beyond trajectory imitation. Our SimWAM achieves 91.5 PDMS on NAVSIM, surpasses state-of-the-art WAM-based planners with substantially lower latency, and transfers zero-shot to nuScenes. These results position SimWAM as a simple yet solid baseline that could readily benefit from advances in video generation for efficient autonomous driving.


🔍 Overview

Overview of the SimWAM architecture with isolated attention
Overview of SimWAM. During training, the video and action DiTs are jointly optimized for future-frame generation and trajectory prediction via shared attention, while the isolated mask prevents the action tokens from accessing future-frame tokens. During inference and reinforcement learning, the model directly predicts trajectories without explicitly predicting future frames.
  • Joint flow-matching co-training. The video expert — a video Diffusion Transformer initialized from Wan2.2-5B together with its video VAE and T5 text encoder — and a lightweight action DiT (hidden size 1024) are co-trained with joint flow matching over future-frame latents and trajectories. Future-video prediction serves as a training-time supervision signal that transfers a traffic-aware dynamics prior into the shared observation representation used for planning.
  • Isolated attention mask. Future-frame tokens and action tokens both attend to the current observation latents while remaining mutually invisible, keeping action prediction independent of future frames. This mask is the only structural modification required to isolate the action tokens from future-frame information.
  • Direct trajectory prediction at inference. Because the action expert never depends on future-frame tokens, explicit future-frame generation is omitted at deployment: the standalone action DiT directly predicts trajectories without auxiliary motion modules, substantially reducing inference latency.
  • Reinforcement learning. The deterministic flow ODE is reformulated as a marginal-preserving SDE, and a group of candidate trajectories per scenario is optimized with FlowGRPO against the compositional NAVSIM PDM reward. RL focuses on the hard navtrain scenarios with the lowest PDMS after imitation learning and updates only the LoRA adapters of the action expert.
  • Flexibility. The two experts share no weights and interact only through the unified attention interface: the video backbone is replaceable (e.g., LTX-Video, Wan2.1-1.3B, Cosmos2.5, Wan2.2-5B) and the action expert is independently scalable (0.21B–1.02B) without modifying the learning objective or inference pipeline.

📈 Performance

PDMS versus inference latency on NAVSIM for recent world-model-based planners
SimWAM achieves the best PDMS and the lowest inference latency among recent world-model-based planners on NAVSIM.

NAVSIM navtest

Using only a single front camera at 384×672, SimWAM establishes a new state of the art on NAVSIM navtest, surpassing the strongest VLM-based planner SGDrive by 0.4 points and ExploreVLA, which explicitly incorporates future image prediction, by 1.1 points. It further outperforms the imagine-then-act WAMs DriveLaW and DriveWAM by 2.4 and 1.4 points, respectively.

MethodReferenceSensorsNC↑DAC↑EP↑TTC↑C↑PDMS↑
Human Agent--100.0100.087.5100.099.994.8
Traditional E2E planners
UniADCVPR'236×C97.891.978.892.9100.083.4
TransFuserTPAMI'223×C+L97.792.879.292.8100.084.0
WorldRFTAAAI'263×C97.896.881.794.0100.087.8
DiffusionDriveCVPR'253×C+L98.296.282.294.7100.088.1
WoTEICCV'253×C+L98.596.881.994.999.988.3
SeerDriveNeurIPS'253×C+L98.497.083.294.999.988.9
VLM-based planners
UniWorldVLAarXiv'261×C98.796.783.296.1100.089.4
DriveDreamer-PolicyarXiv'263×C98.497.183.595.1100.089.2
AutoVLANeurIPS'253×C98.495.681.998.099.989.1
ReCogDriveICLR'261×C97.997.387.394.9100.090.8
ExploreVLAECCV'261×C98.898.483.596.599.990.4
DriveVLA-W0ICLR'261×C98.799.183.395.399.390.2
SGDriveCVPR'261×C98.697.885.896.2100.091.1
World-model-based planners
EponaICCV'251×C97.995.180.493.899.986.2
PWMNeurIPS'251×C98.695.981.895.4100.088.1
DriveLaWCVPR'261×C99.097.181.396.7100.089.1
DriveWAMarXiv'261×C98.398.184.395.2100.090.1
SimWAM (Ours)-1×C98.498.786.495.5100.091.5

Component analysis

Video co-training and reinforcement learning contribute complementary gains, improving PDMS by 4.9 points while preserving the simplicity and efficient inference of the standalone action expert.

ConfigurationNCDACEPTTCPDMS
Action-only97.695.781.792.686.6
+ Video98.798.083.995.990.3
+ RL98.498.786.495.591.5

Qualitative results

Qualitative comparison of imitation-trained and reinforced SimWAM on navtest scenarios
Qualitative comparison on two navtest scenarios. After reinforcement learning, the ego commits further along the route while staying collision-free within the drivable area.

NAVSIM v2 (navtest)

We further evaluate SimWAM on NAVSIM-v2, which adopts a reactive simulation protocol and the unified EPDMS metric. In addition to the original PDMS terms, EPDMS considers Driving Direction Compliance (DDC), Traffic Light Compliance (TLC), Lane Keeping (LK), History Comfort (HC), and Extended Comfort (EC). All NAVSIM-v2 experiments are conducted without reinforcement learning.

MethodReferenceNC↑DAC↑DDC↑TLC↑EP↑TTC↑LK↑HC↑EC↑EPDMS↑
Human Agent-100.0100.099.8100.087.4100.0100.098.190.190.3
Traditional E2E planners
TransFuserTPAMI'2296.989.997.899.787.195.492.798.387.276.7
DiffusionDriveCVPR'2598.295.999.499.887.597.396.898.387.784.5
VLM-based planners
ReCogDrive*ICLR'2698.395.299.599.887.197.596.698.386.583.6
SGDriveCVPR'2698.694.399.599.986.097.996.198.385.986.2
DriveFine*arXiv'2698.797.399.599.888.797.897.798.483.889.7
World-model-based planners
DriveVLA-W0ICLR'2698.599.198.099.786.498.193.297.958.986.1
DriveLaWCVPR'2698.796.999.699.887.598.397.698.477.488.6
SimWAM (Ours)-98.698.099.799.987.598.497.998.384.490.2

* indicates training with reinforcement learning.

NAVSIM v2 (navhard)

navhard focuses on safety-critical scenarios and follows a two-stage closed-loop protocol: stage 1 (S1) evaluates the planner on real-world scenarios, while stage 2 (S2) re-evaluates the corresponding synthesized scenarios with reactive traffic agents. Even before reinforcement learning, SimWAM attains the best overall EPDMS of 37.6, surpassing DriveLaW by 7.0 points with leading DAC, DDC, TTC, and LK, especially in the reactive second stage where surrounding agents respond to the ego vehicle.

MethodReferenceStageNC↑DAC↑DDC↑TLC↑EP↑TTC↑LK↑HC↑EC↑EPDMS↑
Traditional E2E planners
TransFuserTPAMI'22S196.279.599.199.584.195.194.297.579.123.1
S277.770.284.298.085.175.645.495.775.9
DiffusionDriveCVPR'25S196.886.098.899.384.095.896.797.679.627.5
S280.172.884.498.485.976.646.496.372.8
VLM-based planners
SGDriveCVPR'26S195.887.697.899.884.494.792.997.828.925.5
S279.465.479.198.988.975.342.796.429.6
ReCogDriveICLR'26S196.478.998.799.882.695.694.497.674.225.7
S280.265.082.498.785.276.943.896.671.8
DriveFinearXiv'26S197.690.099.199.384.996.797.397.672.030.5
S282.171.384.898.488.174.347.296.872.8
World-model-based planners
DriveVLA-W0ICLR'26S196.883.399.099.684.695.396.497.678.224.4
S276.864.379.998.389.275.046.895.853.1
DriveLaWCVPR'26S197.389.199.299.684.397.196.297.867.630.6
S282.567.683.598.184.878.545.896.457.3
SimWAM (Ours)-S198.092.099.799.683.896.297.397.871.637.6
S281.878.687.398.486.378.649.596.369.9

PhysicalAI-Autonomous-Vehicles

We evaluate on the same 1,000-clip test subset adopted by DriveWAM for a consistent comparison, reporting Average Displacement Error (ADE) and Final Displacement Error (FDE) over 3-second and 4-second future trajectories. Although trained on only 65K samples, SimWAM achieves the best ADE and FDE at both horizons. SV denotes single-view camera.

MethodSourceSensorsParams.ADE@3s↓FDE@3s↓ADE@4s↓FDE@4s↓
VaVAM*ValeoSV1.3B2.314.32--
Alpamayo-1.5NVIDIASV10B0.802.311.444.18
DriveWAM-SV5B + 8B0.471.350.832.47
SimWAM (Ours)-SV6B0.401.080.691.96

* evaluated using the released checkpoint, which only supports up to 3s prediction.


⚙️ Installation

Clone the repository:

git clone https://github.com/H-EmbodVis/SimWAM.git
cd SimWAM

Create a Python 3.10 environment and install the pinned runtime dependencies:

conda create -n simwam python=3.10 -y
conda activate simwam
python -m pip install -r requirements.txt
python -m pip install -e navsim --no-deps
python -m pip install -e navsim_v2 --no-deps
python -m pip install -e . --no-deps

For NAVSIM, nuPlan, maps, and dataset preparation, follow the official NAVSIM v1.1 repository and the nuPlan devkit. The required release subset is included under navsim/.

All commands are intended to run from the repository root and use relative paths by default.


📦 Preparation

ActionDiT initialization

bash scripts/model_prepare.sh

Text embeddings

bash scripts/precomput_text_embed.sh

Use +overwrite=false to keep existing embeddings.


🏋️ Training and Evaluation

NAVSIM

Supervised training

NNODES=4 \
NPROC_PER_NODE=8 \
bash scripts/train_navsim_zero1_torchrun.sh \
task=navsim_uncond_front_384x672_1e-4 \
num_workers=8

FlowGRPO LoRA fine-tuning

NPROC_PER_NODE=8 \
bash scripts/train_navsim_grpo_zero1_torchrun.sh \
task=navsim_grpo_action_pdm_384x672_flowgrpo_lora \
num_workers=8 \
model.checkpoint_path=./runs/navsim_uncond_front_384x672_1e-4/<run-id>/checkpoints/weights/step_XXXXXX.pt

Alternatively, set SIMWAM_IL_CHECKPOINT to the supervised checkpoint.

Evaluation

CKPT=./runs/navsim_grpo_action_pdm_384x672_flowgrpo_lora/<run-id>/checkpoints/weights/step_XXXXXX.pt \
TASK=navsim_grpo_action_pdm_384x672_flowgrpo_lora \
NPROC_PER_NODE=8 \
bash experiments/navsim/run_eval_navsim.sh

To verify the released supervised checkpoint with a one-sample smoke test:

CKPT=./weights/SimWAM.pt \
TASK=navsim_uncond_front_384x672_1e-4 \
NPROC_PER_NODE=1 \
bash experiments/navsim/run_eval_navsim.sh \
EVALUATION.max_samples=1 \
EVALUATION.num_inference_steps=2 \
EVALUATION.save_videos=false

Training outputs are written to runs/; evaluation outputs are written to evaluate_results/navsim/.

The supplied launchers use DeepSpeed ZeRO-1 through scripts/ds_configs/ds_zero1_config.json. The matching Accelerate configuration is scripts/accelerate_configs/accelerate_zero1_ds.yaml.

NAVSIM v2 prediction and scoring

The v2 prediction scripts write token-level trajectories for navtest or navhard_two_stage; the scoring launcher consumes those .npy files with the v2 PDM evaluator. Set CKPT, EXP_NAME, and the dataset/cache roots as needed.

CKPT=./weights/SimWAM.pt EXP_NAME=simwam_v2 \
bash experiments/navsim/run_predict_navsim_v2.sh
CKPT=./weights/SimWAM.pt EXP_NAME=simwam_navhard \
bash experiments/navsim/run_predict_navhard.sh
EXP_NAME=simwam_v2 SPLIT=both \
bash navsim_v2/scripts/evaluation/run_npy_trajectory_agent_pdm_score_evaluation.sh

PhysicalAI

The PhysicalAI data is built from the NVIDIA PhysicalAI-Autonomous-Vehicles dataset. The training/test clip splits and data processing follow DriveWAM (Hugging Face).

The migrated metadata files are data/physicalai_train.jsonl and data/physicalai_dataset_stats.json. Keep the referenced front-camera frames under data/physicalai/images/ using the relative paths in the JSONL file.

The PhysicalAI checkpoint and training data are available on our Hugging Face repository.

Train and evaluate with:

NPROC_PER_NODE=2 bash scripts/train_physicalai_zero1_torchrun.sh \
task=physicalai_uncond_front_384x672_1e-4
CKPT=./weights/SimWAM-PAI-AV.pt NPROC_PER_NODE=1 \
bash experiments/physicalai/run_eval.sh \
EVALUATION.max_clips=1 EVALUATION.num_inference_steps=2

👍 Acknowledgement

SimWAM builds upon the following projects and resources:


📖 Citation

If SimWAM is useful in your research, please consider citing the paper:

@article{zhao2026simwam,
title={SimWAM: A Simple World Action Model for End-to-End Autonomous Driving}, author={Zongchuang Zhao and Xin Zhou and Tianyang Xu and Zhengyang Sun and Kaixuan Zhou and Honglin Li and Dingkang Liang and Xiang Bai},
journal={arXiv preprint arXiv:2608.07468},
year = {2026}
}

License

See LICENSE. NAVSIM, Wan2.2, nuPlan, and OpenScene retain their own licenses and distribution terms. Refer to the official NAVSIM license, Wan2.2 repository, and nuPlan license for upstream terms.

About

SimWAM: A Simple World Action Model for End-to-End Autonomous Driving.

Resources

Stars

168 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SimWAM: A Simple World Action Model for End-to-End Autonomous Driving

PaperCodeHugging Face ModelLicense

Zongchuang Zhao1, Xin Zhou1, Tianyang Xu1, Zhengyang Sun1, Kaixuan Zhou2, Honglin Li2, Dingkang Liang1†, Xiang Bai1

1 Huazhong University of Science & Technology
2 Dongfeng Research & Development Institute
Project leader.

This repository provides the official implementation of SimWAM for the paper A Simple World Action Model for End-to-End Autonomous Driving, including supervised training and action-only reinforcement learning on NAVSIM.


📣 News

  • 2026.08.19: Released the SimWAM code and weight on the PhysicalAI-AV dataset.
  • 2026.08.07: Released the SimWAM paper, code and weight.

📄 Abstract

World-Action Models (WAMs) improve end-to-end autonomous driving by transferring video dynamics priors to action prediction, but existing methods incur costly test-time future imagination. We present SimWAM, a simple yet effective WAM that leverages future-video prediction as a training-time supervision signal. It co-trains a pretrained video expert and a lightweight action expert with joint flow matching. An isolated attention mask keeps action prediction independent of future frames, allowing trajectory prediction without explicit future-frame generation at inference. Since the two experts share no parameters and interact only through a unified attention interface, the video backbone could be replaced and the action expert scaled independently without modifying the learning objective or inference pipeline. We further apply reinforcement learning to optimize a compositional driving reward beyond trajectory imitation. Our SimWAM achieves 91.5 PDMS on NAVSIM, surpasses state-of-the-art WAM-based planners with substantially lower latency, and transfers zero-shot to nuScenes. These results position SimWAM as a simple yet solid baseline that could readily benefit from advances in video generation for efficient autonomous driving.


🔍 Overview

Overview of the SimWAM architecture with isolated attention
Overview of SimWAM. During training, the video and action DiTs are jointly optimized for future-frame generation and trajectory prediction via shared attention, while the isolated mask prevents the action tokens from accessing future-frame tokens. During inference and reinforcement learning, the model directly predicts trajectories without explicitly predicting future frames.
  • Joint flow-matching co-training. The video expert — a video Diffusion Transformer initialized from Wan2.2-5B together with its video VAE and T5 text encoder — and a lightweight action DiT (hidden size 1024) are co-trained with joint flow matching over future-frame latents and trajectories. Future-video prediction serves as a training-time supervision signal that transfers a traffic-aware dynamics prior into the shared observation representation used for planning.
  • Isolated attention mask. Future-frame tokens and action tokens both attend to the current observation latents while remaining mutually invisible, keeping action prediction independent of future frames. This mask is the only structural modification required to isolate the action tokens from future-frame information.
  • Direct trajectory prediction at inference. Because the action expert never depends on future-frame tokens, explicit future-frame generation is omitted at deployment: the standalone action DiT directly predicts trajectories without auxiliary motion modules, substantially reducing inference latency.
  • Reinforcement learning. The deterministic flow ODE is reformulated as a marginal-preserving SDE, and a group of candidate trajectories per scenario is optimized with FlowGRPO against the compositional NAVSIM PDM reward. RL focuses on the hard navtrain scenarios with the lowest PDMS after imitation learning and updates only the LoRA adapters of the action expert.
  • Flexibility. The two experts share no weights and interact only through the unified attention interface: the video backbone is replaceable (e.g., LTX-Video, Wan2.1-1.3B, Cosmos2.5, Wan2.2-5B) and the action expert is independently scalable (0.21B–1.02B) without modifying the learning objective or inference pipeline.

📈 Performance

PDMS versus inference latency on NAVSIM for recent world-model-based planners
SimWAM achieves the best PDMS and the lowest inference latency among recent world-model-based planners on NAVSIM.

NAVSIM navtest

Using only a single front camera at 384×672, SimWAM establishes a new state of the art on NAVSIM navtest, surpassing the strongest VLM-based planner SGDrive by 0.4 points and ExploreVLA, which explicitly incorporates future image prediction, by 1.1 points. It further outperforms the imagine-then-act WAMs DriveLaW and DriveWAM by 2.4 and 1.4 points, respectively.

MethodReferenceSensorsNC↑DAC↑EP↑TTC↑C↑PDMS↑
Human Agent--100.0100.087.5100.099.994.8
Traditional E2E planners
UniADCVPR'236×C97.891.978.892.9100.083.4
TransFuserTPAMI'223×C+L97.792.879.292.8100.084.0
WorldRFTAAAI'263×C97.896.881.794.0100.087.8
DiffusionDriveCVPR'253×C+L98.296.282.294.7100.088.1
WoTEICCV'253×C+L98.596.881.994.999.988.3
SeerDriveNeurIPS'253×C+L98.497.083.294.999.988.9
VLM-based planners
UniWorldVLAarXiv'261×C98.796.783.296.1100.089.4
DriveDreamer-PolicyarXiv'263×C98.497.183.595.1100.089.2
AutoVLANeurIPS'253×C98.495.681.998.099.989.1
ReCogDriveICLR'261×C97.997.387.394.9100.090.8
ExploreVLAECCV'261×C98.898.483.596.599.990.4
DriveVLA-W0ICLR'261×C98.799.183.395.399.390.2
SGDriveCVPR'261×C98.697.885.896.2100.091.1
World-model-based planners
EponaICCV'251×C97.995.180.493.899.986.2
PWMNeurIPS'251×C98.695.981.895.4100.088.1
DriveLaWCVPR'261×C99.097.181.396.7100.089.1
DriveWAMarXiv'261×C98.398.184.395.2100.090.1
SimWAM (Ours)-1×C98.498.786.495.5100.091.5

Component analysis

Video co-training and reinforcement learning contribute complementary gains, improving PDMS by 4.9 points while preserving the simplicity and efficient inference of the standalone action expert.

ConfigurationNCDACEPTTCPDMS
Action-only97.695.781.792.686.6
+ Video98.798.083.995.990.3
+ RL98.498.786.495.591.5

Qualitative results

Qualitative comparison of imitation-trained and reinforced SimWAM on navtest scenarios
Qualitative comparison on two navtest scenarios. After reinforcement learning, the ego commits further along the route while staying collision-free within the drivable area.

NAVSIM v2 (navtest)

We further evaluate SimWAM on NAVSIM-v2, which adopts a reactive simulation protocol and the unified EPDMS metric. In addition to the original PDMS terms, EPDMS considers Driving Direction Compliance (DDC), Traffic Light Compliance (TLC), Lane Keeping (LK), History Comfort (HC), and Extended Comfort (EC). All NAVSIM-v2 experiments are conducted without reinforcement learning.

MethodReferenceNC↑DAC↑DDC↑TLC↑EP↑TTC↑LK↑HC↑EC↑EPDMS↑
Human Agent-100.0100.099.8100.087.4100.0100.098.190.190.3
Traditional E2E planners
TransFuserTPAMI'2296.989.997.899.787.195.492.798.387.276.7
DiffusionDriveCVPR'2598.295.999.499.887.597.396.898.387.784.5
VLM-based planners
ReCogDrive*ICLR'2698.395.299.599.887.197.596.698.386.583.6
SGDriveCVPR'2698.694.399.599.986.097.996.198.385.986.2
DriveFine*arXiv'2698.797.399.599.888.797.897.798.483.889.7
World-model-based planners
DriveVLA-W0ICLR'2698.599.198.099.786.498.193.297.958.986.1
DriveLaWCVPR'2698.796.999.699.887.598.397.698.477.488.6
SimWAM (Ours)-98.698.099.799.987.598.497.998.384.490.2

* indicates training with reinforcement learning.

NAVSIM v2 (navhard)

navhard focuses on safety-critical scenarios and follows a two-stage closed-loop protocol: stage 1 (S1) evaluates the planner on real-world scenarios, while stage 2 (S2) re-evaluates the corresponding synthesized scenarios with reactive traffic agents. Even before reinforcement learning, SimWAM attains the best overall EPDMS of 37.6, surpassing DriveLaW by 7.0 points with leading DAC, DDC, TTC, and LK, especially in the reactive second stage where surrounding agents respond to the ego vehicle.

MethodReferenceStageNC↑DAC↑DDC↑TLC↑EP↑TTC↑LK↑HC↑EC↑EPDMS↑
Traditional E2E planners
TransFuserTPAMI'22S196.279.599.199.584.195.194.297.579.123.1
S277.770.284.298.085.175.645.495.775.9
DiffusionDriveCVPR'25S196.886.098.899.384.095.896.797.679.627.5
S280.172.884.498.485.976.646.496.372.8
VLM-based planners
SGDriveCVPR'26S195.887.697.899.884.494.792.997.828.925.5
S279.465.479.198.988.975.342.796.429.6
ReCogDriveICLR'26S196.478.998.799.882.695.694.497.674.225.7
S280.265.082.498.785.276.943.896.671.8
DriveFinearXiv'26S197.690.099.199.384.996.797.397.672.030.5
S282.171.384.898.488.174.347.296.872.8
World-model-based planners
DriveVLA-W0ICLR'26S196.883.399.099.684.695.396.497.678.224.4
S276.864.379.998.389.275.046.895.853.1
DriveLaWCVPR'26S197.389.199.299.684.397.196.297.867.630.6
S282.567.683.598.184.878.545.896.457.3
SimWAM (Ours)-S198.092.099.799.683.896.297.397.871.637.6
S281.878.687.398.486.378.649.596.369.9

PhysicalAI-Autonomous-Vehicles

We evaluate on the same 1,000-clip test subset adopted by DriveWAM for a consistent comparison, reporting Average Displacement Error (ADE) and Final Displacement Error (FDE) over 3-second and 4-second future trajectories. Although trained on only 65K samples, SimWAM achieves the best ADE and FDE at both horizons. SV denotes single-view camera.

MethodSourceSensorsParams.ADE@3s↓FDE@3s↓ADE@4s↓FDE@4s↓
VaVAM*ValeoSV1.3B2.314.32--
Alpamayo-1.5NVIDIASV10B0.802.311.444.18
DriveWAM-SV5B + 8B0.471.350.832.47
SimWAM (Ours)-SV6B0.401.080.691.96

* evaluated using the released checkpoint, which only supports up to 3s prediction.


⚙️ Installation

Clone the repository:

git clone https://github.com/H-EmbodVis/SimWAM.git
cd SimWAM

Create a Python 3.10 environment and install the pinned runtime dependencies:

conda create -n simwam python=3.10 -y
conda activate simwam
python -m pip install -r requirements.txt
python -m pip install -e navsim --no-deps
python -m pip install -e navsim_v2 --no-deps
python -m pip install -e . --no-deps

For NAVSIM, nuPlan, maps, and dataset preparation, follow the official NAVSIM v1.1 repository and the nuPlan devkit. The required release subset is included under navsim/.

All commands are intended to run from the repository root and use relative paths by default.


📦 Preparation

ActionDiT initialization

bash scripts/model_prepare.sh

Text embeddings

bash scripts/precomput_text_embed.sh

Use +overwrite=false to keep existing embeddings.


🏋️ Training and Evaluation

NAVSIM

Supervised training

NNODES=4 \
NPROC_PER_NODE=8 \
bash scripts/train_navsim_zero1_torchrun.sh \
task=navsim_uncond_front_384x672_1e-4 \
num_workers=8

FlowGRPO LoRA fine-tuning

NPROC_PER_NODE=8 \
bash scripts/train_navsim_grpo_zero1_torchrun.sh \
task=navsim_grpo_action_pdm_384x672_flowgrpo_lora \
num_workers=8 \
model.checkpoint_path=./runs/navsim_uncond_front_384x672_1e-4/<run-id>/checkpoints/weights/step_XXXXXX.pt

Alternatively, set SIMWAM_IL_CHECKPOINT to the supervised checkpoint.

Evaluation

CKPT=./runs/navsim_grpo_action_pdm_384x672_flowgrpo_lora/<run-id>/checkpoints/weights/step_XXXXXX.pt \
TASK=navsim_grpo_action_pdm_384x672_flowgrpo_lora \
NPROC_PER_NODE=8 \
bash experiments/navsim/run_eval_navsim.sh

To verify the released supervised checkpoint with a one-sample smoke test:

CKPT=./weights/SimWAM.pt \
TASK=navsim_uncond_front_384x672_1e-4 \
NPROC_PER_NODE=1 \
bash experiments/navsim/run_eval_navsim.sh \
EVALUATION.max_samples=1 \
EVALUATION.num_inference_steps=2 \
EVALUATION.save_videos=false

Training outputs are written to runs/; evaluation outputs are written to evaluate_results/navsim/.

The supplied launchers use DeepSpeed ZeRO-1 through scripts/ds_configs/ds_zero1_config.json. The matching Accelerate configuration is scripts/accelerate_configs/accelerate_zero1_ds.yaml.

NAVSIM v2 prediction and scoring

The v2 prediction scripts write token-level trajectories for navtest or navhard_two_stage; the scoring launcher consumes those .npy files with the v2 PDM evaluator. Set CKPT, EXP_NAME, and the dataset/cache roots as needed.

CKPT=./weights/SimWAM.pt EXP_NAME=simwam_v2 \
bash experiments/navsim/run_predict_navsim_v2.sh
CKPT=./weights/SimWAM.pt EXP_NAME=simwam_navhard \
bash experiments/navsim/run_predict_navhard.sh
EXP_NAME=simwam_v2 SPLIT=both \
bash navsim_v2/scripts/evaluation/run_npy_trajectory_agent_pdm_score_evaluation.sh

PhysicalAI

The PhysicalAI data is built from the NVIDIA PhysicalAI-Autonomous-Vehicles dataset. The training/test clip splits and data processing follow DriveWAM (Hugging Face).

The migrated metadata files are data/physicalai_train.jsonl and data/physicalai_dataset_stats.json. Keep the referenced front-camera frames under data/physicalai/images/ using the relative paths in the JSONL file.

The PhysicalAI checkpoint and training data are available on our Hugging Face repository.

Train and evaluate with:

NPROC_PER_NODE=2 bash scripts/train_physicalai_zero1_torchrun.sh \
task=physicalai_uncond_front_384x672_1e-4
CKPT=./weights/SimWAM-PAI-AV.pt NPROC_PER_NODE=1 \
bash experiments/physicalai/run_eval.sh \
EVALUATION.max_clips=1 EVALUATION.num_inference_steps=2

👍 Acknowledgement

SimWAM builds upon the following projects and resources:


📖 Citation

If SimWAM is useful in your research, please consider citing the paper:

@article{zhao2026simwam,
title={SimWAM: A Simple World Action Model for End-to-End Autonomous Driving}, author={Zongchuang Zhao and Xin Zhou and Tianyang Xu and Zhengyang Sun and Kaixuan Zhou and Honglin Li and Dingkang Liang and Xiang Bai},
journal={arXiv preprint arXiv:2608.07468},
year = {2026}
}

License

See LICENSE. NAVSIM, Wan2.2, nuPlan, and OpenScene retain their own licenses and distribution terms. Refer to the official NAVSIM license, Wan2.2 repository, and nuPlan license for upstream terms.

About

SimWAM: A Simple World Action Model for End-to-End Autonomous Driving.

Resources

Stars

168 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SimWAM: A Simple World Action Model for End-to-End Autonomous Driving

PaperCodeHugging Face ModelLicense

Zongchuang Zhao1, Xin Zhou1, Tianyang Xu1, Zhengyang Sun1, Kaixuan Zhou2, Honglin Li2, Dingkang Liang1†, Xiang Bai1

1 Huazhong University of Science & Technology
2 Dongfeng Research & Development Institute
Project leader.

This repository provides the official implementation of SimWAM for the paper A Simple World Action Model for End-to-End Autonomous Driving, including supervised training and action-only reinforcement learning on NAVSIM.


📣 News

  • 2026.08.19: Released the SimWAM code and weight on the PhysicalAI-AV dataset.
  • 2026.08.07: Released the SimWAM paper, code and weight.

📄 Abstract

World-Action Models (WAMs) improve end-to-end autonomous driving by transferring video dynamics priors to action prediction, but existing methods incur costly test-time future imagination. We present SimWAM, a simple yet effective WAM that leverages future-video prediction as a training-time supervision signal. It co-trains a pretrained video expert and a lightweight action expert with joint flow matching. An isolated attention mask keeps action prediction independent of future frames, allowing trajectory prediction without explicit future-frame generation at inference. Since the two experts share no parameters and interact only through a unified attention interface, the video backbone could be replaced and the action expert scaled independently without modifying the learning objective or inference pipeline. We further apply reinforcement learning to optimize a compositional driving reward beyond trajectory imitation. Our SimWAM achieves 91.5 PDMS on NAVSIM, surpasses state-of-the-art WAM-based planners with substantially lower latency, and transfers zero-shot to nuScenes. These results position SimWAM as a simple yet solid baseline that could readily benefit from advances in video generation for efficient autonomous driving.


🔍 Overview

Overview of the SimWAM architecture with isolated attention
Overview of SimWAM. During training, the video and action DiTs are jointly optimized for future-frame generation and trajectory prediction via shared attention, while the isolated mask prevents the action tokens from accessing future-frame tokens. During inference and reinforcement learning, the model directly predicts trajectories without explicitly predicting future frames.
  • Joint flow-matching co-training. The video expert — a video Diffusion Transformer initialized from Wan2.2-5B together with its video VAE and T5 text encoder — and a lightweight action DiT (hidden size 1024) are co-trained with joint flow matching over future-frame latents and trajectories. Future-video prediction serves as a training-time supervision signal that transfers a traffic-aware dynamics prior into the shared observation representation used for planning.
  • Isolated attention mask. Future-frame tokens and action tokens both attend to the current observation latents while remaining mutually invisible, keeping action prediction independent of future frames. This mask is the only structural modification required to isolate the action tokens from future-frame information.
  • Direct trajectory prediction at inference. Because the action expert never depends on future-frame tokens, explicit future-frame generation is omitted at deployment: the standalone action DiT directly predicts trajectories without auxiliary motion modules, substantially reducing inference latency.
  • Reinforcement learning. The deterministic flow ODE is reformulated as a marginal-preserving SDE, and a group of candidate trajectories per scenario is optimized with FlowGRPO against the compositional NAVSIM PDM reward. RL focuses on the hard navtrain scenarios with the lowest PDMS after imitation learning and updates only the LoRA adapters of the action expert.
  • Flexibility. The two experts share no weights and interact only through the unified attention interface: the video backbone is replaceable (e.g., LTX-Video, Wan2.1-1.3B, Cosmos2.5, Wan2.2-5B) and the action expert is independently scalable (0.21B–1.02B) without modifying the learning objective or inference pipeline.

📈 Performance

PDMS versus inference latency on NAVSIM for recent world-model-based planners
SimWAM achieves the best PDMS and the lowest inference latency among recent world-model-based planners on NAVSIM.

NAVSIM navtest

Using only a single front camera at 384×672, SimWAM establishes a new state of the art on NAVSIM navtest, surpassing the strongest VLM-based planner SGDrive by 0.4 points and ExploreVLA, which explicitly incorporates future image prediction, by 1.1 points. It further outperforms the imagine-then-act WAMs DriveLaW and DriveWAM by 2.4 and 1.4 points, respectively.

MethodReferenceSensorsNC↑DAC↑EP↑TTC↑C↑PDMS↑
Human Agent--100.0100.087.5100.099.994.8
Traditional E2E planners
UniADCVPR'236×C97.891.978.892.9100.083.4
TransFuserTPAMI'223×C+L97.792.879.292.8100.084.0
WorldRFTAAAI'263×C97.896.881.794.0100.087.8
DiffusionDriveCVPR'253×C+L98.296.282.294.7100.088.1
WoTEICCV'253×C+L98.596.881.994.999.988.3
SeerDriveNeurIPS'253×C+L98.497.083.294.999.988.9
VLM-based planners
UniWorldVLAarXiv'261×C98.796.783.296.1100.089.4
DriveDreamer-PolicyarXiv'263×C98.497.183.595.1100.089.2
AutoVLANeurIPS'253×C98.495.681.998.099.989.1
ReCogDriveICLR'261×C97.997.387.394.9100.090.8
ExploreVLAECCV'261×C98.898.483.596.599.990.4
DriveVLA-W0ICLR'261×C98.799.183.395.399.390.2
SGDriveCVPR'261×C98.697.885.896.2100.091.1
World-model-based planners
EponaICCV'251×C97.995.180.493.899.986.2
PWMNeurIPS'251×C98.695.981.895.4100.088.1
DriveLaWCVPR'261×C99.097.181.396.7100.089.1
DriveWAMarXiv'261×C98.398.184.395.2100.090.1
SimWAM (Ours)-1×C98.498.786.495.5100.091.5

Component analysis

Video co-training and reinforcement learning contribute complementary gains, improving PDMS by 4.9 points while preserving the simplicity and efficient inference of the standalone action expert.

ConfigurationNCDACEPTTCPDMS
Action-only97.695.781.792.686.6
+ Video98.798.083.995.990.3
+ RL98.498.786.495.591.5

Qualitative results

Qualitative comparison of imitation-trained and reinforced SimWAM on navtest scenarios
Qualitative comparison on two navtest scenarios. After reinforcement learning, the ego commits further along the route while staying collision-free within the drivable area.

NAVSIM v2 (navtest)

We further evaluate SimWAM on NAVSIM-v2, which adopts a reactive simulation protocol and the unified EPDMS metric. In addition to the original PDMS terms, EPDMS considers Driving Direction Compliance (DDC), Traffic Light Compliance (TLC), Lane Keeping (LK), History Comfort (HC), and Extended Comfort (EC). All NAVSIM-v2 experiments are conducted without reinforcement learning.

MethodReferenceNC↑DAC↑DDC↑TLC↑EP↑TTC↑LK↑HC↑EC↑EPDMS↑
Human Agent-100.0100.099.8100.087.4100.0100.098.190.190.3
Traditional E2E planners
TransFuserTPAMI'2296.989.997.899.787.195.492.798.387.276.7
DiffusionDriveCVPR'2598.295.999.499.887.597.396.898.387.784.5
VLM-based planners
ReCogDrive*ICLR'2698.395.299.599.887.197.596.698.386.583.6
SGDriveCVPR'2698.694.399.599.986.097.996.198.385.986.2
DriveFine*arXiv'2698.797.399.599.888.797.897.798.483.889.7
World-model-based planners
DriveVLA-W0ICLR'2698.599.198.099.786.498.193.297.958.986.1
DriveLaWCVPR'2698.796.999.699.887.598.397.698.477.488.6
SimWAM (Ours)-98.698.099.799.987.598.497.998.384.490.2

* indicates training with reinforcement learning.

NAVSIM v2 (navhard)

navhard focuses on safety-critical scenarios and follows a two-stage closed-loop protocol: stage 1 (S1) evaluates the planner on real-world scenarios, while stage 2 (S2) re-evaluates the corresponding synthesized scenarios with reactive traffic agents. Even before reinforcement learning, SimWAM attains the best overall EPDMS of 37.6, surpassing DriveLaW by 7.0 points with leading DAC, DDC, TTC, and LK, especially in the reactive second stage where surrounding agents respond to the ego vehicle.

MethodReferenceStageNC↑DAC↑DDC↑TLC↑EP↑TTC↑LK↑HC↑EC↑EPDMS↑
Traditional E2E planners
TransFuserTPAMI'22S196.279.599.199.584.195.194.297.579.123.1
S277.770.284.298.085.175.645.495.775.9
DiffusionDriveCVPR'25S196.886.098.899.384.095.896.797.679.627.5
S280.172.884.498.485.976.646.496.372.8
VLM-based planners
SGDriveCVPR'26S195.887.697.899.884.494.792.997.828.925.5
S279.465.479.198.988.975.342.796.429.6
ReCogDriveICLR'26S196.478.998.799.882.695.694.497.674.225.7
S280.265.082.498.785.276.943.896.671.8
DriveFinearXiv'26S197.690.099.199.384.996.797.397.672.030.5
S282.171.384.898.488.174.347.296.872.8
World-model-based planners
DriveVLA-W0ICLR'26S196.883.399.099.684.695.396.497.678.224.4
S276.864.379.998.389.275.046.895.853.1
DriveLaWCVPR'26S197.389.199.299.684.397.196.297.867.630.6
S282.567.683.598.184.878.545.896.457.3
SimWAM (Ours)-S198.092.099.799.683.896.297.397.871.637.6
S281.878.687.398.486.378.649.596.369.9

PhysicalAI-Autonomous-Vehicles

We evaluate on the same 1,000-clip test subset adopted by DriveWAM for a consistent comparison, reporting Average Displacement Error (ADE) and Final Displacement Error (FDE) over 3-second and 4-second future trajectories. Although trained on only 65K samples, SimWAM achieves the best ADE and FDE at both horizons. SV denotes single-view camera.

MethodSourceSensorsParams.ADE@3s↓FDE@3s↓ADE@4s↓FDE@4s↓
VaVAM*ValeoSV1.3B2.314.32--
Alpamayo-1.5NVIDIASV10B0.802.311.444.18
DriveWAM-SV5B + 8B0.471.350.832.47
SimWAM (Ours)-SV6B0.401.080.691.96

* evaluated using the released checkpoint, which only supports up to 3s prediction.


⚙️ Installation

Clone the repository:

git clone https://github.com/H-EmbodVis/SimWAM.git
cd SimWAM

Create a Python 3.10 environment and install the pinned runtime dependencies:

conda create -n simwam python=3.10 -y
conda activate simwam
python -m pip install -r requirements.txt
python -m pip install -e navsim --no-deps
python -m pip install -e navsim_v2 --no-deps
python -m pip install -e . --no-deps

For NAVSIM, nuPlan, maps, and dataset preparation, follow the official NAVSIM v1.1 repository and the nuPlan devkit. The required release subset is included under navsim/.

All commands are intended to run from the repository root and use relative paths by default.


📦 Preparation

ActionDiT initialization

bash scripts/model_prepare.sh

Text embeddings

bash scripts/precomput_text_embed.sh

Use +overwrite=false to keep existing embeddings.


🏋️ Training and Evaluation

NAVSIM

Supervised training

NNODES=4 \
NPROC_PER_NODE=8 \
bash scripts/train_navsim_zero1_torchrun.sh \
task=navsim_uncond_front_384x672_1e-4 \
num_workers=8

FlowGRPO LoRA fine-tuning

NPROC_PER_NODE=8 \
bash scripts/train_navsim_grpo_zero1_torchrun.sh \
task=navsim_grpo_action_pdm_384x672_flowgrpo_lora \
num_workers=8 \
model.checkpoint_path=./runs/navsim_uncond_front_384x672_1e-4/<run-id>/checkpoints/weights/step_XXXXXX.pt

Alternatively, set SIMWAM_IL_CHECKPOINT to the supervised checkpoint.

Evaluation

CKPT=./runs/navsim_grpo_action_pdm_384x672_flowgrpo_lora/<run-id>/checkpoints/weights/step_XXXXXX.pt \
TASK=navsim_grpo_action_pdm_384x672_flowgrpo_lora \
NPROC_PER_NODE=8 \
bash experiments/navsim/run_eval_navsim.sh

To verify the released supervised checkpoint with a one-sample smoke test:

CKPT=./weights/SimWAM.pt \
TASK=navsim_uncond_front_384x672_1e-4 \
NPROC_PER_NODE=1 \
bash experiments/navsim/run_eval_navsim.sh \
EVALUATION.max_samples=1 \
EVALUATION.num_inference_steps=2 \
EVALUATION.save_videos=false

Training outputs are written to runs/; evaluation outputs are written to evaluate_results/navsim/.

The supplied launchers use DeepSpeed ZeRO-1 through scripts/ds_configs/ds_zero1_config.json. The matching Accelerate configuration is scripts/accelerate_configs/accelerate_zero1_ds.yaml.

NAVSIM v2 prediction and scoring

The v2 prediction scripts write token-level trajectories for navtest or navhard_two_stage; the scoring launcher consumes those .npy files with the v2 PDM evaluator. Set CKPT, EXP_NAME, and the dataset/cache roots as needed.

CKPT=./weights/SimWAM.pt EXP_NAME=simwam_v2 \
bash experiments/navsim/run_predict_navsim_v2.sh
CKPT=./weights/SimWAM.pt EXP_NAME=simwam_navhard \
bash experiments/navsim/run_predict_navhard.sh
EXP_NAME=simwam_v2 SPLIT=both \
bash navsim_v2/scripts/evaluation/run_npy_trajectory_agent_pdm_score_evaluation.sh

PhysicalAI

The PhysicalAI data is built from the NVIDIA PhysicalAI-Autonomous-Vehicles dataset. The training/test clip splits and data processing follow DriveWAM (Hugging Face).

The migrated metadata files are data/physicalai_train.jsonl and data/physicalai_dataset_stats.json. Keep the referenced front-camera frames under data/physicalai/images/ using the relative paths in the JSONL file.

The PhysicalAI checkpoint and training data are available on our Hugging Face repository.

Train and evaluate with:

NPROC_PER_NODE=2 bash scripts/train_physicalai_zero1_torchrun.sh \
task=physicalai_uncond_front_384x672_1e-4
CKPT=./weights/SimWAM-PAI-AV.pt NPROC_PER_NODE=1 \
bash experiments/physicalai/run_eval.sh \
EVALUATION.max_clips=1 EVALUATION.num_inference_steps=2

👍 Acknowledgement

SimWAM builds upon the following projects and resources:


📖 Citation

If SimWAM is useful in your research, please consider citing the paper:

@article{zhao2026simwam,
title={SimWAM: A Simple World Action Model for End-to-End Autonomous Driving}, author={Zongchuang Zhao and Xin Zhou and Tianyang Xu and Zhengyang Sun and Kaixuan Zhou and Honglin Li and Dingkang Liang and Xiang Bai},
journal={arXiv preprint arXiv:2608.07468},
year = {2026}
}

License

See LICENSE. NAVSIM, Wan2.2, nuPlan, and OpenScene retain their own licenses and distribution terms. Refer to the official NAVSIM license, Wan2.2 repository, and nuPlan license for upstream terms.

About

SimWAM: A Simple World Action Model for End-to-End Autonomous Driving.

Resources

Stars

168 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

SimWAM: A Simple World Action Model for End-to-End Autonomous Driving

PaperCodeHugging Face ModelLicense

Zongchuang Zhao1, Xin Zhou1, Tianyang Xu1, Zhengyang Sun1, Kaixuan Zhou2, Honglin Li2, Dingkang Liang1†, Xiang Bai1

1 Huazhong University of Science & Technology
2 Dongfeng Research & Development Institute
Project leader.

This repository provides the official implementation of SimWAM for the paper A Simple World Action Model for End-to-End Autonomous Driving, including supervised training and action-only reinforcement learning on NAVSIM.


📣 News

  • 2026.08.19: Released the SimWAM code and weight on the PhysicalAI-AV dataset.
  • 2026.08.07: Released the SimWAM paper, code and weight.

📄 Abstract

World-Action Models (WAMs) improve end-to-end autonomous driving by transferring video dynamics priors to action prediction, but existing methods incur costly test-time future imagination. We present SimWAM, a simple yet effective WAM that leverages future-video prediction as a training-time supervision signal. It co-trains a pretrained video expert and a lightweight action expert with joint flow matching. An isolated attention mask keeps action prediction independent of future frames, allowing trajectory prediction without explicit future-frame generation at inference. Since the two experts share no parameters and interact only through a unified attention interface, the video backbone could be replaced and the action expert scaled independently without modifying the learning objective or inference pipeline. We further apply reinforcement learning to optimize a compositional driving reward beyond trajectory imitation. Our SimWAM achieves 91.5 PDMS on NAVSIM, surpasses state-of-the-art WAM-based planners with substantially lower latency, and transfers zero-shot to nuScenes. These results position SimWAM as a simple yet solid baseline that could readily benefit from advances in video generation for efficient autonomous driving.


🔍 Overview

Overview of the SimWAM architecture with isolated attention
Overview of SimWAM. During training, the video and action DiTs are jointly optimized for future-frame generation and trajectory prediction via shared attention, while the isolated mask prevents the action tokens from accessing future-frame tokens. During inference and reinforcement learning, the model directly predicts trajectories without explicitly predicting future frames.
  • Joint flow-matching co-training. The video expert — a video Diffusion Transformer initialized from Wan2.2-5B together with its video VAE and T5 text encoder — and a lightweight action DiT (hidden size 1024) are co-trained with joint flow matching over future-frame latents and trajectories. Future-video prediction serves as a training-time supervision signal that transfers a traffic-aware dynamics prior into the shared observation representation used for planning.
  • Isolated attention mask. Future-frame tokens and action tokens both attend to the current observation latents while remaining mutually invisible, keeping action prediction independent of future frames. This mask is the only structural modification required to isolate the action tokens from future-frame information.
  • Direct trajectory prediction at inference. Because the action expert never depends on future-frame tokens, explicit future-frame generation is omitted at deployment: the standalone action DiT directly predicts trajectories without auxiliary motion modules, substantially reducing inference latency.
  • Reinforcement learning. The deterministic flow ODE is reformulated as a marginal-preserving SDE, and a group of candidate trajectories per scenario is optimized with FlowGRPO against the compositional NAVSIM PDM reward. RL focuses on the hard navtrain scenarios with the lowest PDMS after imitation learning and updates only the LoRA adapters of the action expert.
  • Flexibility. The two experts share no weights and interact only through the unified attention interface: the video backbone is replaceable (e.g., LTX-Video, Wan2.1-1.3B, Cosmos2.5, Wan2.2-5B) and the action expert is independently scalable (0.21B–1.02B) without modifying the learning objective or inference pipeline.

📈 Performance

PDMS versus inference latency on NAVSIM for recent world-model-based planners
SimWAM achieves the best PDMS and the lowest inference latency among recent world-model-based planners on NAVSIM.

NAVSIM navtest

Using only a single front camera at 384×672, SimWAM establishes a new state of the art on NAVSIM navtest, surpassing the strongest VLM-based planner SGDrive by 0.4 points and ExploreVLA, which explicitly incorporates future image prediction, by 1.1 points. It further outperforms the imagine-then-act WAMs DriveLaW and DriveWAM by 2.4 and 1.4 points, respectively.

MethodReferenceSensorsNC↑DAC↑EP↑TTC↑C↑PDMS↑
Human Agent--100.0100.087.5100.099.994.8
Traditional E2E planners
UniADCVPR'236×C97.891.978.892.9100.083.4
TransFuserTPAMI'223×C+L97.792.879.292.8100.084.0
WorldRFTAAAI'263×C97.896.881.794.0100.087.8
DiffusionDriveCVPR'253×C+L98.296.282.294.7100.088.1
WoTEICCV'253×C+L98.596.881.994.999.988.3
SeerDriveNeurIPS'253×C+L98.497.083.294.999.988.9
VLM-based planners
UniWorldVLAarXiv'261×C98.796.783.296.1100.089.4
DriveDreamer-PolicyarXiv'263×C98.497.183.595.1100.089.2
AutoVLANeurIPS'253×C98.495.681.998.099.989.1
ReCogDriveICLR'261×C97.997.387.394.9100.090.8
ExploreVLAECCV'261×C98.898.483.596.599.990.4
DriveVLA-W0ICLR'261×C98.799.183.395.399.390.2
SGDriveCVPR'261×C98.697.885.896.2100.091.1
World-model-based planners
EponaICCV'251×C97.995.180.493.899.986.2
PWMNeurIPS'251×C98.695.981.895.4100.088.1
DriveLaWCVPR'261×C99.097.181.396.7100.089.1
DriveWAMarXiv'261×C98.398.184.395.2100.090.1
SimWAM (Ours)-1×C98.498.786.495.5100.091.5

Component analysis

Video co-training and reinforcement learning contribute complementary gains, improving PDMS by 4.9 points while preserving the simplicity and efficient inference of the standalone action expert.

ConfigurationNCDACEPTTCPDMS
Action-only97.695.781.792.686.6
+ Video98.798.083.995.990.3
+ RL98.498.786.495.591.5

Qualitative results

Qualitative comparison of imitation-trained and reinforced SimWAM on navtest scenarios
Qualitative comparison on two navtest scenarios. After reinforcement learning, the ego commits further along the route while staying collision-free within the drivable area.

NAVSIM v2 (navtest)

We further evaluate SimWAM on NAVSIM-v2, which adopts a reactive simulation protocol and the unified EPDMS metric. In addition to the original PDMS terms, EPDMS considers Driving Direction Compliance (DDC), Traffic Light Compliance (TLC), Lane Keeping (LK), History Comfort (HC), and Extended Comfort (EC). All NAVSIM-v2 experiments are conducted without reinforcement learning.

MethodReferenceNC↑DAC↑DDC↑TLC↑EP↑TTC↑LK↑HC↑EC↑EPDMS↑
Human Agent-100.0100.099.8100.087.4100.0100.098.190.190.3
Traditional E2E planners
TransFuserTPAMI'2296.989.997.899.787.195.492.798.387.276.7
DiffusionDriveCVPR'2598.295.999.499.887.597.396.898.387.784.5
VLM-based planners
ReCogDrive*ICLR'2698.395.299.599.887.197.596.698.386.583.6
SGDriveCVPR'2698.694.399.599.986.097.996.198.385.986.2
DriveFine*arXiv'2698.797.399.599.888.797.897.798.483.889.7
World-model-based planners
DriveVLA-W0ICLR'2698.599.198.099.786.498.193.297.958.986.1
DriveLaWCVPR'2698.796.999.699.887.598.397.698.477.488.6
SimWAM (Ours)-98.698.099.799.987.598.497.998.384.490.2

* indicates training with reinforcement learning.

NAVSIM v2 (navhard)

navhard focuses on safety-critical scenarios and follows a two-stage closed-loop protocol: stage 1 (S1) evaluates the planner on real-world scenarios, while stage 2 (S2) re-evaluates the corresponding synthesized scenarios with reactive traffic agents. Even before reinforcement learning, SimWAM attains the best overall EPDMS of 37.6, surpassing DriveLaW by 7.0 points with leading DAC, DDC, TTC, and LK, especially in the reactive second stage where surrounding agents respond to the ego vehicle.

MethodReferenceStageNC↑DAC↑DDC↑TLC↑EP↑TTC↑LK↑HC↑EC↑EPDMS↑
Traditional E2E planners
TransFuserTPAMI'22S196.279.599.199.584.195.194.297.579.123.1
S277.770.284.298.085.175.645.495.775.9
DiffusionDriveCVPR'25S196.886.098.899.384.095.896.797.679.627.5
S280.172.884.498.485.976.646.496.372.8
VLM-based planners
SGDriveCVPR'26S195.887.697.899.884.494.792.997.828.925.5
S279.465.479.198.988.975.342.796.429.6
ReCogDriveICLR'26S196.478.998.799.882.695.694.497.674.225.7
S280.265.082.498.785.276.943.896.671.8
DriveFinearXiv'26S197.690.099.199.384.996.797.397.672.030.5
S282.171.384.898.488.174.347.296.872.8
World-model-based planners
DriveVLA-W0ICLR'26S196.883.399.099.684.695.396.497.678.224.4
S276.864.379.998.389.275.046.895.853.1
DriveLaWCVPR'26S197.389.199.299.684.397.196.297.867.630.6
S282.567.683.598.184.878.545.896.457.3
SimWAM (Ours)-S198.092.099.799.683.896.297.397.871.637.6
S281.878.687.398.486.378.649.596.369.9

PhysicalAI-Autonomous-Vehicles

We evaluate on the same 1,000-clip test subset adopted by DriveWAM for a consistent comparison, reporting Average Displacement Error (ADE) and Final Displacement Error (FDE) over 3-second and 4-second future trajectories. Although trained on only 65K samples, SimWAM achieves the best ADE and FDE at both horizons. SV denotes single-view camera.

MethodSourceSensorsParams.ADE@3s↓FDE@3s↓ADE@4s↓FDE@4s↓
VaVAM*ValeoSV1.3B2.314.32--
Alpamayo-1.5NVIDIASV10B0.802.311.444.18
DriveWAM-SV5B + 8B0.471.350.832.47
SimWAM (Ours)-SV6B0.401.080.691.96

* evaluated using the released checkpoint, which only supports up to 3s prediction.


⚙️ Installation

Clone the repository:

git clone https://github.com/H-EmbodVis/SimWAM.git
cd SimWAM

Create a Python 3.10 environment and install the pinned runtime dependencies:

conda create -n simwam python=3.10 -y
conda activate simwam
python -m pip install -r requirements.txt
python -m pip install -e navsim --no-deps
python -m pip install -e navsim_v2 --no-deps
python -m pip install -e . --no-deps

For NAVSIM, nuPlan, maps, and dataset preparation, follow the official NAVSIM v1.1 repository and the nuPlan devkit. The required release subset is included under navsim/.

All commands are intended to run from the repository root and use relative paths by default.


📦 Preparation

ActionDiT initialization

bash scripts/model_prepare.sh

Text embeddings

bash scripts/precomput_text_embed.sh

Use +overwrite=false to keep existing embeddings.


🏋️ Training and Evaluation

NAVSIM

Supervised training

NNODES=4 \
NPROC_PER_NODE=8 \
bash scripts/train_navsim_zero1_torchrun.sh \
task=navsim_uncond_front_384x672_1e-4 \
num_workers=8

FlowGRPO LoRA fine-tuning

NPROC_PER_NODE=8 \
bash scripts/train_navsim_grpo_zero1_torchrun.sh \
task=navsim_grpo_action_pdm_384x672_flowgrpo_lora \
num_workers=8 \
model.checkpoint_path=./runs/navsim_uncond_front_384x672_1e-4/<run-id>/checkpoints/weights/step_XXXXXX.pt

Alternatively, set SIMWAM_IL_CHECKPOINT to the supervised checkpoint.

Evaluation

CKPT=./runs/navsim_grpo_action_pdm_384x672_flowgrpo_lora/<run-id>/checkpoints/weights/step_XXXXXX.pt \
TASK=navsim_grpo_action_pdm_384x672_flowgrpo_lora \
NPROC_PER_NODE=8 \
bash experiments/navsim/run_eval_navsim.sh

To verify the released supervised checkpoint with a one-sample smoke test:

CKPT=./weights/SimWAM.pt \
TASK=navsim_uncond_front_384x672_1e-4 \
NPROC_PER_NODE=1 \
bash experiments/navsim/run_eval_navsim.sh \
EVALUATION.max_samples=1 \
EVALUATION.num_inference_steps=2 \
EVALUATION.save_videos=false

Training outputs are written to runs/; evaluation outputs are written to evaluate_results/navsim/.

The supplied launchers use DeepSpeed ZeRO-1 through scripts/ds_configs/ds_zero1_config.json. The matching Accelerate configuration is scripts/accelerate_configs/accelerate_zero1_ds.yaml.

NAVSIM v2 prediction and scoring

The v2 prediction scripts write token-level trajectories for navtest or navhard_two_stage; the scoring launcher consumes those .npy files with the v2 PDM evaluator. Set CKPT, EXP_NAME, and the dataset/cache roots as needed.

CKPT=./weights/SimWAM.pt EXP_NAME=simwam_v2 \
bash experiments/navsim/run_predict_navsim_v2.sh
CKPT=./weights/SimWAM.pt EXP_NAME=simwam_navhard \
bash experiments/navsim/run_predict_navhard.sh
EXP_NAME=simwam_v2 SPLIT=both \
bash navsim_v2/scripts/evaluation/run_npy_trajectory_agent_pdm_score_evaluation.sh

PhysicalAI

The PhysicalAI data is built from the NVIDIA PhysicalAI-Autonomous-Vehicles dataset. The training/test clip splits and data processing follow DriveWAM (Hugging Face).

The migrated metadata files are data/physicalai_train.jsonl and data/physicalai_dataset_stats.json. Keep the referenced front-camera frames under data/physicalai/images/ using the relative paths in the JSONL file.

The PhysicalAI checkpoint and training data are available on our Hugging Face repository.

Train and evaluate with:

NPROC_PER_NODE=2 bash scripts/train_physicalai_zero1_torchrun.sh \
task=physicalai_uncond_front_384x672_1e-4
CKPT=./weights/SimWAM-PAI-AV.pt NPROC_PER_NODE=1 \
bash experiments/physicalai/run_eval.sh \
EVALUATION.max_clips=1 EVALUATION.num_inference_steps=2

👍 Acknowledgement

SimWAM builds upon the following projects and resources:


📖 Citation

If SimWAM is useful in your research, please consider citing the paper:

@article{zhao2026simwam,
title={SimWAM: A Simple World Action Model for End-to-End Autonomous Driving}, author={Zongchuang Zhao and Xin Zhou and Tianyang Xu and Zhengyang Sun and Kaixuan Zhou and Honglin Li and Dingkang Liang and Xiang Bai},
journal={arXiv preprint arXiv:2608.07468},
year = {2026}
}

License

See LICENSE. NAVSIM, Wan2.2, nuPlan, and OpenScene retain their own licenses and distribution terms. Refer to the official NAVSIM license, Wan2.2 repository, and nuPlan license for upstream terms.

About

SimWAM: A Simple World Action Model for End-to-End Autonomous Driving.

Resources

Stars

168 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages