Controllable Crowd Generation through World-Model Planning
Organizations: Yonsei University · GIST
Abstract
Crowd simulation plays a central role in robot navigation, autonomous driving, and urban planning. For these applications, realistic simulation requires crowds to adapt their behavior to environmental changes and user objectives. However, existing methods that rely on predefined control settings have limited flexibility in accommodating new user-specified objectives. To address this limitation, we propose Ctrl-CWM, a multi-agent Controllable Crowd World Model that integrates crowd generation and run-time control. Our key idea is to adapt the world-model principle of planning using imagined futures to crowd simulation. To this end, Ctrl-CWM consists of an encoder that learns a representation of human motion dynamics, an actor that proposes pedestrian displacements, a critic that evaluates imagined crowd trajectories, and a planner that selects actions. We first learn human motion dynamics through trajectory prediction on real-world pedestrian videos and then freeze the encoder to preserve them. Using this representation, the actor generates imagined crowd trajectories through repeated state updates, and the planner combines the critic's scores with user costs to select actions. Repeated planning advances the simulated crowd, while additional user costs introduce new control objectives without retraining. We extensively evaluate crowd generation under varied agent arrival conditions and run-time control across avoidance and attraction scenarios. Ctrl-CWM outperforms the state-of-the-art method on most crowd realism and collision metrics, and adapts crowd behaviors to user-specified objectives introduced during simulation. The project page is available at https://jungyu0413.github.io/Ctrl-CWM
Figures & tables
| Arrivals from the RS emitter | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Dataset/Fold | Model | Scene-Level Realism | Agent-Level Accuracy | ||||||
| Dens. | Freq. | Cov. | Pop. | Kinem. | DTW | Div. | Col.(%) | ||
| ETH | ORCA | 0.019 | 0.016 | 0.016 | 0.205 | 0.839 | 2.848 | 0.092 | 0.004 |
| CrowdES | 0.044 | 0.025 | 0.025 | 0.461 | 1.138 | 2.608 | 0.240 | 2.660 | |
| Ours | 0.034 | 0.016 | 0.016 | 0.398 | 0.358 | 1.511 | 0.171 | 0.265 | |
| HOTEL | ORCA | 0.044 | 0.017 | 0.017 | 0.396 | 0.623 | 1.094 | 0.179 | 0.015 |
| Variant | Scene-level realism | Agent-level accuracy | Control | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Dens. | Freq. | Cov. | Pop. | Kinem. | DTW | Div. | Col.(%) | Comp. | |
| Random encoder | 0.101 | 0.067 | 0.067 | 0.304 | 1.205 | 1.031 | 0.157 | 1.101 | N/A |
| Actor only | 0.077 | 0.047 | 0.047 | 0.271 | 0.432 | 0.970 | 0.280 | 0.931 | N/A |
| User-cost only | 0.089 | 0.075 | 0.075 | 0.294 | 0.812 | 1.178 | 0.078 | 2.398 | 0.858 |
| Ctrl-CWM (full) | 0.078 | 0.047 | 0.047 | 0.254 | 0.465 | 0.925 | 0.285 | 0.756 | 0.824 |
| w/o soft-DTW | 0.082 | 0.051 | 0.051 | 0.275 | 0.846 | 0.989 | 0.182 | 0.838 | N/A |
Appendix figures & tables16 assets
Supplementary material from the paper’s appendix.
Appendix
| ID | Operation | Input | Output |
|---|---|---|---|
| Inputs and scene encoder | |||
| 1-1 | Similarity transform | Scene, trajectories | Grid, |
| 1-2 | Walkability and semantic channels | Transformed scene | |
| 1-3 | Focal-agent Gaussian, | Agent position | |
| 1-4 | Crowd Gaussian accumulation | Crowd positions | |
| 1-5 | Channel concatenation | 1-2, 1-3, 1-4 | |
| Module | Layers or input | Output |
|---|---|---|
| Actor input | 108 features | |
| Actor hidden | Linear , ReLU | 128 features |
| Actor output | Linear | Displacement |
| Critic input | Six geometric features at each imagined step | |
| Critic recurrent | GRU , final hidden state | 128 features |
| Critic output | MLP | Rollout score |
| Setting | Value |
|---|---|
| Prediction pretraining | |
| Optimizer | AdamW |
| Learning rate / weight decay | / |
| Learning-rate schedule / gradient clipping | Cosine / 1.0 |
| Epochs / scenes per optimizer update | 80 / 3 |
| Batch size / accumulation steps | 1 / 3 |
| Evaluation | Setting and aggregation | Repeats and window |
|---|---|---|
| Generation, Table 1 | Two replayed arrival protocols. Mean of five ETH–UCY folds, SDD, and GCS. | Full episodes. |
| Avoidance, Table 2 | Disc, rectangle, multiple zones. . Same seven-entry mean. | 10 trials per scene. Final two thirds. |
| Components, Table 3 | Diffusion arrivals over five folds. Generation ablations use full episodes; the user-cost-only comparison uses the same avoidance-control protocol as the full model. | Full episodes for generation; post-activation window for control. |
| Planning, Fig. 5 | Five folds. , , and varied individually. | Post-activation window. |
| Additional components, Appendix C | Five folds. Disc avoidance, . | 20 trials per scene. Final two thirds. |
| Weight/population sweeps, Appendix D | Five folds. Weights and emitter multipliers varied as reported. | One trial per configuration. Post-activation window. |
| Full model | w/o interaction | |||
|---|---|---|---|---|
| Fold | Col. (%) | Comp. | Col. (%) | Comp. |
| ETH | 0.458 | 0.932 | 20.32 | 0.950 |
| HOTEL | 1.522 | 0.992 | 1.292 | 0.497 |
| UNIV | 0.766 | 0.882 | 1.133 | 0.468 |
| ZARA1 | 3.508 | 0.839 | 0.868 | 0.466 |
| ZARA2 | 2.033 | 0.754 | 1.062 | 0.510 |
| Fold | Full model | w/o dynamics head |
|---|---|---|
| ETH | 0.932 | 0.880 |
| HOTEL | 0.992 | 0.215 |
| UNIV | 0.882 | 0.245 |
| ZARA1 | 0.839 | 0.880 |
| ZARA2 | 0.754 | 0.699 |
| AVG | 0.880 | 0.584 |
| Variant | Kinem. | DTW | Col. (%) | Comp. |
|---|---|---|---|---|
| Pointwise critic | 0.433 | 0.994 | 2.454 | 0.870 |
| Full model (listwise) | 0.404 | 0.985 | 1.657 | 0.880 |
| Avoidance compliance | |||||
|---|---|---|---|---|---|
| Fold | |||||
| ETH | 0.657 | 0.949 | 0.987 | 0.955 | 0.997 |
| HOTEL | 0.661 | 0.823 | 0.990 | 0.964 | 0.992 |
| UNIV | 0.694 | 0.931 | 1.000 | 1.000 | 1.000 |
| ZARA1 | 0.422 | 0.759 | 0.963 | 0.973 | 0.938 |
| ZARA2 | 0.600 | 0.855 | 0.986 | 0.949 | 0.967 |
| Fold | |||
|---|---|---|---|
| ETH | 0.480 | 0.674 | 0.977 |
| HOTEL | 0.406 | 0.580 | 0.907 |
| UNIV | 0.244 | 0.670 | 0.960 |
| ZARA1 | 0.390 | 0.572 | 0.930 |
| ZARA2 | 0.386 | 0.727 | 0.983 |
| AVG | 0.381 | 0.645 | 0.951 |
| Fold | Kinem. | Col. (pp) | Kinem. | Col. (pp) |
|---|---|---|---|---|
| ETH | ||||
| HOTEL | ||||
| UNIV | ||||
| ZARA1 | ||||
| ZARA2 | ||||
| Fold | Comp. | Col. (pp) | Comp. | Col. (pp) | Comp. | Col. (pp) |
|---|---|---|---|---|---|---|
| ETH | 0.928 | 0.949 | 0.836 | |||
| HOTEL | 0.843 | 0.823 | 0.632 | |||
| UNIV | 1.000 | 0.931 | 0.732 | |||
| ZARA1 | 0.651 | 0.759 | 0.744 | |||
| Model | Year | ETH | HOTEL | UNIV | ZARA1 | ZARA2 | AVG | SDD | GCS |
|---|---|---|---|---|---|---|---|---|---|
| AgentFormer Yuan et al. (2021) | 2021 | 0.46/0.80 | 0.14/0.22 | 0.25/0.45 | 0.18/0.30 | 0.14/0.24 | 0.23/0.40 | 8.7/14.9 | 10.2/16.9 |
| MID Gu et al. (2022) | 2022 | 0.57/0.93 | 0.21/0.33 | 0.29/0.55 | 0.28/0.50 | 0.20/0.37 | 0.31/0.54 | 7.6/14.3 | 10.7/18.2 |
| EqMotion Xu et al. (2023) | 2023 | 0.40/0.61 | 0.12 /0.18 | 0.23/0.43 | 0.18/0.32 | 0.13 /0.23 | 0.21 /0.35 | 7.9/11.9 | 7.6/13.1 |
| MART Lee et al. (2024) | 2024 | 0.35 /0.47 | 0.14/0.22 | 0.25/0.45 | 0.17/ 0.29 | 0.13 / 0.22 | 0.21 /0.33 | 7.4 /11.8 | 10.6/14.1 |
| LMTraj Bae et al. (2024) | 2024 | 0.41/0.51 | 0.12 / 0.16 | 0.22 / 0.34 | 0.20/0.32 | 0.17/0.27 | 0.22/0.32 | 7.8/ 10.1 | 7.1 / 9.6 |
| MoFlow Fu et al. (2025) | 2025 | 0.40/0.57 | 0.11 /0.17 | 0.23/0.39 | 0.15 / 0.26 | 0.12 / 0.22 | 0.20 /0.32 | 7.5/12.0 | 9.1/11.6 |
| Data | Method | Dens. | Freq. | Cov. | Pop. | Kin. | DTW | Div. | Col. |
|---|---|---|---|---|---|---|---|---|---|
| ETH | ORCA | 0.019 | 0.016 | 0.016 | 0.205 | 0.839 | 2.848 | 0.092 | 0.004 |
| CrowdES | 0.044 | 0.025 | 0.025 | 0.461 | 1.138 | 2.608 | 0.240 | 2.660 | |
| Ctrl-CWM | 0.034 | 0.016 | 0.016 | 0.398 | 0.358 | 1.511 | 0.171 | 0.265 | |
| HOTEL | ORCA | 0.044 | 0.017 | 0.017 | 0.396 | 0.623 | 1.094 | 0.179 | 0.015 |
| CrowdES | 0.015 | 0.016 | 0.016 | 0.130 | 0.524 | 0.907 | 0.184 | 2.471 | |
| Ctrl-CWM | 0.012 | 0.012 | 0.012 | 0.098 | 0.419 | 0.746 | 0.224 | 0.828 |
| Data | Method | Dens. | Freq. | Cov. | Pop. | Kin. | DTW | Div. | Col. |
|---|---|---|---|---|---|---|---|---|---|
| ETH | ORCA | 0.026 | 0.013 | 0.013 | 0.265 | 0.867 | 3.794 | 0.096 | 0.006 |
| CrowdES | 0.020 | 0.020 | 0.020 | 0.208 | 0.377 | 1.649 | 0.203 | 0.697 | |
| Ctrl-CWM | 0.017 | 0.006 | 0.006 | 0.193 | 0.214 | 1.458 | 0.181 | 0.620 | |
| HOTEL | ORCA | 0.022 | 0.010 | 0.010 | 0.199 | 1.052 | 1.588 | 0.112 | 0.013 |
| CrowdES | 0.013 | 0.009 | 0.009 | 0.117 | 0.336 | 0.643 | 0.242 | 1.197 | |
| Ctrl-CWM | 0.011 | 0.009 | 0.009 | 0.087 | 0.305 | 0.548 | 0.259 | 1.046 |
| Disc | |||
|---|---|---|---|
| Data | ORCA + obstacle | CrowdES + map | Ctrl-CWM |
| ETH | 1.000 | 0.599 | 0.837 |
| HOTEL | -1.154 | 0.546 | 0.988 |
| UNIV | 0.530 | 0.727 | 0.831 |
| ZARA1 | 0.428 | 0.469 | 0.752 |
| ZARA2 | 1.000 | 0.598 | 0.714 |