We have an \(m \times n\) rectangular lattice of sites (referred to as voters):
\[ V = \{0, 1, \ldots, m - 1\} \times \{0, 1, \ldots, n - 1\} \]
Each element of \(V\) has four neighbors; the neighbors of \((i, j)\) are \(\{(i - 1, j), (i + 1, j), (i, j - 1), (i, j + 1)\}\) where the arithmetic operations in the first coordinate are interpreted modulo \(m\):

\((m - 1) + 1 = 0 \mod m\)

\(0 - 1 = m - 1 \mod m\)

and where the arithmetic operations in the second coordinate are interpreted modulo \(n\):

\((n - 1) + 1 = 0 \mod n\)

\(0 - 1 = n - 1 \mod n\)

With this neighborhood structure, our set of sites is topologically a torus, a doughnut-shaped surface.

Each site can be in any of 7 different states, denoted by the colors red, blue, green, yellow, orange, gray, and black. Initially, the each site is randomly given one of the colors.

Time is discrete, and the dynamics of the voter process are as follows: at each time \(t\),

A site is chosen at random (each site is equally likely to be chosen),

A neighbor of this site is chosen at random.

The state of the selected site is changed to the state of the selected neighbor.

You can choose either a 5 by 5 lattice, a 10 by 10 lattice, or a 20 by 20 lattice. The voters are shown graphically in the large center box. At each update, the counts for each state are recorded in the table. In addition to the usual stop options, the simulation can be set to stop whenever a color is eliminated.