# Crowd simulation

Crowd simulation (lett. "simulazione delle folle") è l'espressione che si riferisce al processo di simulazione del movimento (o dinamica) di un vasto numero di entità o personaggi. È comunemente utilizzato per creare scene virtuali per visual media come film e videogiochi, e viene anche usato nel crisis training, in architettura e pianificazione urbanistica, e nelle simulazioni di evacuazione.
La crowd simulation può fare attenzione ad aspetti che mirano a differenti applicazioni. Per il rendering rapido e realistico di una folla per i visual media o la cinematografia virtuale, sono impiegati la riduzione della complessità della scena 3D e l'image-based rendering, mentre variazioni nell'aspetto aiutano a rappresentare una popolazione realistica.
In giochi e applicazioni intesi per replicare il movimento di una folla umana della vita reale, come simulazioni di evacuazioni, gli agenti simulanti potrebbero necessitare di farsi strada verso uno scopo, evitare collisioni, ed esibire altri comportamenti umani. Molti algoritmi timone della folla sono stati sviluppati per guidare folle simulate verso i loro scopi realisticamente. Sono ricercati alcuni sistemi più generali, che possano supportare diversi tipi di agenti (come macchine e pedoni), differenti livelli di astrazione (come l'individuale e il continuo), agenti interagenti con oggetti intelligenti, e dinamiche sociali e fisiche più complesse.

## Dinamiche della folla

Uno dei maggiori obiettivi della crowd simulation è di fare da timone a folle in modo realistico, e ricreare le dinamiche di comportamento umano.
Esistono svariati approcci onnicomprensivi della crowd simulation e dell'IA, e ciascuno fornisce vantaggi e svantaggi basati sulla grandezza della folla e sulla scala temporale. Per scala temporale si intende come lo scopo della simulazione influenza la durata (lunghezza) della simulazione. Per esempio ricercare questioni sociali, come il modo in cui le ideologie si diffondono fra la popolazione, risulterà una simulazione molto lunga dato che, per esempio, un evento può abbracciare un periodo di tempo che va da mesi ad anni. Usando quelle due caratteristiche, i ricercatori hanno tentato di applicare classificazioni per valutare al meglio e organizzare i simulatori di folle esistenti.

### Flow-based Approach

    Le flow based crowd simulations prestano attenzione alla folla considerandone l'insieme piuttosto che i componenti. Questo modello è impiegato principalmente per stimare il flusso di movimento di una folla densa e vasta in un dato ambiente.

### Entity-based Approach

    I modelli che implementano un set di leggi fisiche, predefinite e globali intese per simulare fattori sociali/psicologici che si presentano in individui facenti parte di una folla, cadono nella categoria delle entity-based crowd simulations. Le entità in questo caso non possiedono la capacità di, in un certo senso, pensare per se stesse. Tutti i movimenti sono determinati dalla legge globale che viene imposta a loro. Le simulazioni che impiegano questo modello spesso ricercano dinamiche della folla come il jamming e il floacking. Folle medio-piccole con scopi brevi, si adattano al meglio a questo approccio.

### Agent-based Approach

    Le agent-based crowd simulations sono caratterizzate da individui interagenti autonomi. Ogni agente di una folla, in questo approccio, possiede un grado di intelligenza; essi possono reagire a ogni situazione per fatti propri, basandosi su un set di regole di decisione.
    L'informazione impiegata per decidere un'azione è ottenuta localmente dalle circostanze dell'agente. Più spesso, questo approccio è usato per simulare comportanti delle folle realisti, e al ricercatore è data completa libertà di implementare qualunque comportamento.

## Crowd rendering e animazione

Renderizzare e animare un vasto numero di agenti realisticamente, specialmente in tempo reale, è una sfida. Per ridurre la complessità del rendering 3D di folle di grandi dimensioni, sono utilizzate tecniche come il culling (scartare oggetti non importanti), l'image-based rendering e la diminuzione del livello di dettaglio. Poiché esistono variazioni nell'aspetto, nella forma del corpo e nella dimensione, accessori e comportamento (sociale o culturale) nelle folle reali, la mancanza di varietà influenza il realismo delle simulazioni virtuali. Esistono comunque sistemi che possono creare folle virtuali con varianti di texture, colore, dimensione, forma e animazioni.

## Software per la simulazione di folle

* Alice Software by the Moving Picture Company
* Golaem Crowd
* Massive (software)
* Miarmy
* Quadstone Paramics
* VISSIM