Modeling Audience Group Behavior

Nuria Oliver and Stephen Intille, MIT Media Lab

MIT Media Lab class project, Spring 1996.

Overview

We built a system that models audience behavior with multiple communicating agents. Each agent is a simple model of a person in a grid-like auditorium who listens for clapping or whistling from nearby agents and responds according to assigned rules. We wanted to see whether a simulation could begin chaotically and settle into a shared pattern, such as a synchronized rhythm, without central control. The agents communicate only through the environment by observing what their neighbors have done in the recent past.

Our starting point was a class discussion about involving several thousand people in a graduation speech: instructions placed under seats might let a real crowd turn an initially chaotic response into a coordinated one.

Agent types

Each simulation uses up to ten agent types, each defined by four parameters:

Each agent type is also assigned a percentage of the total audience and a display color that flashes when the agent is active.

System

We made a Tcl/Tk interface for setting the seating grid, number of agent types, and simulation parameters. Once the agents are created, their assigned colors flash in the seating grid as the simulation runs.

Agent configuration interface.

Temporal perception

We gave each agent access to the last sixteen time steps so it could estimate the frequency of its neighbors' actions. It identifies the two time steps with the most observed activity and treats the interval between them as the current frequency. This was a simple majority-rule approximation of how people synchronize.

Simulation results

In our simulations, we observed:

Key factors affecting convergence:

Scope and possible extensions

These findings came from simulated agents, not a study with a real audience. The local, uniformly weighted neighborhoods were also a computational simplification: people in an auditorium can hear distant participants, and distance, tone, and loudness affect whom they attend to.

At the time, we saw several possible extensions:

Technical details

We implemented the system in C++ and Tcl/Tk and compiled it on an SGI Indy workstation.