Lay a bunch of mousetraps on the floor in a regular grid, and load each mousetrap with two ping pong balls. We implemented this in Swarm as an example of a simple discrete event simulation. Time stepping each mousetrap would be incredibly inefficient, since most mousetraps are doing nothing most of the time. Instead, we simulate each ping-pong ball as an event on the schedule. One power of Swarm is that it supports both discrete event and time stepped models.
Mousetraps change from blue to red when the trap fires.
Each time a mousetrap is triggered, it schedules two trigger events for two random nearby mousetraps sometime in the near future. These two graphs show detail about the reaction rate. The bottom graph is simply the number of events pending on the schedule, this corresponds to the number of ping pong balls currently in the air.