Crowd Simulation (INFOMCRWS) - Introduction to Crowd Simulation Wouter van Toll November 15, 2017
INFOMCRWS: Introduction to Crowd Simulation Contents Recap Path planning and navigation meshes Overview of crowd simulation research Multi-level crowd simulation Other topics Open problems November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Recap Path planning and navigation meshes November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
INFOMCRWS: Introduction to Crowd Simulation Virtual environment (3D) Crowd simulation (often 2D) Fancy visualization (3D) November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Crowd simulation Many applications (entertainment + serious) Large crowds Many queries We want real-time performance Planet Coaster (Frontier) Grand Depart 2015 (Movares), using our software November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Region-based path planning Navigation mesh Many spatial subdivisions exist Grids are easiest, but imperfect Coverage, connectivity, storage = Regions + (Dual) Graph Trapezoidal map Triangulation Grid November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Region-based path planning Query Sequence of regions Indicative route (via funnel algorithm) Simulation loop Shortest path in the graph Q: Shortest path? November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
INFOMCRWS: Introduction to Crowd Simulation Path planning in games Trend Graphs, grids Navigation meshes Manual Automatic Static Dynamic Increasingly large crowds Typical errors Incorrect graphs Unnatural paths Poor response to dynamic updates Insufficient local methods / collision avoidance November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Overview of crowd simulation methods Towards an Overview of crowd simulation methods A Generic Categorization of Research Areas November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Overview (1/6) Path planning Algorithms: Data structures: A*, Dijkstra, ... Data structures: Navigation meshes, grids, ... November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Path planning – Examples Shortest path Other criteria Funnel algorithm: Shortest path from a corridor Density-based (van Toll et al., 2012) Stealth-based (Schager & Geraerts, 2010) November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Overview (2/6) Path planning Local movement Algorithms: A*, Dijkstra, ... Data structures: Navigation meshes, grids, ... Local movement (“steering”) Collision avoidance Groups, coherence, social rules, ... November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Local movement: Examples Social forces (Helbing & Molnár, 1995) Flocking (Reynolds, 1987) Velocity obstacles (van den Berg et al., 2009+) Vision-based collision avoidance (Moussaïd et al, 2010) November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Local movement: More examples Streams (van Goethem et al., 2015) Social groups (Kremyzas et al., 2016) Coherent groups (Kamphuis & Overmars, 2004) November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Overview (3/6) Path planning Indicative route Path following Algorithms: A*, Dijkstra, ... Data structures: Navigation meshes, grids, ... Indicative route Path following Local movement Collision avoidance Groups, coherence, social rules, ... November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Intermezzo: Weighted regions What if the environment is more complex than “walkable + obstacles”? Polygonal areas with (personal) costs Find minimum-cost path? Unsolvable in the Algebraic Computation Model over the Rational Numbers Approximation algorithms Path following MIRAN (Jaklin et al., 2013) November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
INFOMCRWS: Introduction to Crowd Simulation Overview (4/6) Visualization Path planning Animation Rendering Path following Local movement Simulation loop November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
INFOMCRWS: Introduction to Crowd Simulation Overview (5/6) High-level planning Path planning Modelling Logic: BDI, rules, memory, ... Path following Fixed steps of 0.1 s Local movement Simulation loop As fast as possible Visualization Animation loop November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
INFOMCRWS: Introduction to Crowd Simulation Overview (6/6) High-level planning Path planning Path planning Path following Path following Local movement Local movement Visualization November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
INFOMCRWS: Introduction to Crowd Simulation Multi-level planning Advantages? Split a big problem into simpler components Mix and match various algorithms Different behaviour per character Disadvantages? Choices in one level affect behavior in lower levels When to reconsider these choices? (e.g. re-planning) Path planning Path following Local movement November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Alternative: Potential field Continuous field of forces Goal attracts, obstacles repel Follow the direction of steepest descent Common implementation: Grid In case of moving characters (obstacles): update potential field each frame Robot motion planning (Latombe, 1991) November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Alternative: Potential field Advantages Unifies global and local movement Re-usable for similar characters Good for high-density crowds Disadvantages Grid implementation Different potential field for each goal / each character type Local minima Can be avoided, but (even) more expensive Treuille et al., 2006 Narain et al., 2009 November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
INFOMCRWS: Introduction to Crowd Simulation Other topics A mixed bag November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Coordination and re-planning Linear programming (Karamouzas et al., 2013) Dynamic updates + visibility-based re-planning (van Toll et al., 2015) November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Moving through a dense crowd Find a path that uses gaps between characters Global becomes local? Torso crowds (Stüvel et al., 2015) November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
INFOMCRWS: Introduction to Crowd Simulation Multi-threading In a simulation step, many characters do “the same thing” at the same time Allows parallel programming GPU: thousands of tasks at the same time Advantage: performance Disadvantage (GPU): What about rendering? November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Evaluation How to compare different methods? Generic definitions Objective quality metrics Scenarios that cover the problem space Conclusions(?) SteerBench (Singh et al., 2009) A comparative study of navigation meshes (van Toll et al., 2016) November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
INFOMCRWS: Introduction to Crowd Simulation Evaluation How to prove that a simulation is close to reality? Compare to reality! ...but how? Individual trajectories Global trends Density/speed relation When is a conclusion general enough? Lerner et al., 2009 November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
INFOMCRWS: Introduction to Crowd Simulation Closing comments */ November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
INFOMCRWS: Introduction to Crowd Simulation Summary Path planning Local movement Path following Visualization High-level planning Coordination, re-planning or: Potential fields Multi-threading / GPU Evaluation November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
INFOMCRWS: Introduction to Crowd Simulation Remaining challenges Navigation: see previous lecture Problems within this paradigm Reconsider global paths due to local hazards High-level coordination Long-term goals Reliable validation Human-like simulation for any scenario? Huge crowds (≥1M) in real-time Crowd prediction during a real-time event November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
INFOMCRWS: Introduction to Crowd Simulation Next time Explanation of our crowd simulation software Tutorial to get started with Assignment 2 November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation
Preparation for next time If you haven’t done so yet... Choose a non-taken paper (1-20) to present Form teams for Assignments 1 and 2 Prepare for the tutorial Bring a (Windows) laptop! Install Unity Read up on basic Unity usage See website November 18, 2018 INFOMCRWS: Introduction to Crowd Simulation