This is a demo of a situation described in "Swarm Intelligence: a Whole New Way to Think About Business", by Eric Bonabeau and Christopher Meyer, published in the Harvard Business Review. The situation described is this: "Imagine, for instance, that you are at a cocktail party, mingling among a hundred people or so. At random, you silently pick two other people (call them A and B) and then follow this simple rule: always position yourself so that A is between B and you. If everyone else were to do the same, what would happen? Now, change the rule slightly: always position yourself so that you are between A and B. Again, if everyone else were to do likewise, what kind of group behavior would emerge?" This model here is extended to include a third dimension.


To start the simulation below, click the button to the top left, labeled "(Re)Start Simulation". A transparent box will appear, populated with "agents" executing the first rule described above.

The "Box Size" is the size of the containing transparent cube. Increasing this will give the agent's more room to move around. (It may look like the agents themselves change size, but actually the box changes size and the camera view moves correspondingly). You can also control the "Number of Agents" acting in the system (more agents will slow down the simulation). After changing this parameters, restart the simulation.

The simulation type allows you to change between the two situations described above. In simulation Type 1, each agent will try to keep their randomly chosen A in between themselves and their chosen B. Simulation Type 2 causes each agent to try and stay in-between their A and B. Changing the simulation type will instantly cause the agents to switch rules.

If "Track Individual" is selected, one of the agents will be highlighted in green and their corresponding A will be in blue and their B will be in red. This will allow you to track one agent's movement as they execute their movement rule. Clicking the "Next" button will track the next agent's movement.

The "Noise Factor" slider will add noise to the agent's movements, causing them to move more randomly as the noise factor is increased.

The "Average Frustration" at the top on the left is a measure of how close the average agent is to their ideal location (on one side of A and B, or in-between A and B). This measure is also graphed over time on the back left wall of the containing box.

You can also rotate the scene by clicking on it and dragging the mouse left and right.


Emergence - As mentioned in the article, one of the most compelling lessons demonstrated by this simple simulation is the emergence of unpredictable, and sometimes counterintuitive, group behaviors from simple actions. Also, that these group behaviors change change radicially from small changes in the simple rules and initial conditions.

Noise - Sometimes the simulation will settle down into a stable state. This stable state could be a poor one, where the average frustration is high. With the addition of some amount of noise the situation becomes more dynamic, allowing the movement of the system to a better state with lower average frustration. This idea of noise as a positive, or even esential, component of a dynamic system runs counter to much of tradition reasoning, which aims to eliminate noise from the system so that it can be better controlled.