The Rotor Router Model is composed of a directed graph (infinite or finite) with a rotor attached to each vertex. The rotor at a given vertex is a pointer to one of the edges that leaves that vertex. In the model, a bug traverses the graph along the edges, following the direction of the rotor at each vertex.
The twist is that each time a bug visits a vertex, she rotates the rotor so that it points to the next edge, before following the rotor.
This is a deterministic system.
A sink is a vertex with no edges leaving it, If there is a sink in the system, it has no rotor on it. If a bug visits a sink, she disappears from the system. After that happens, we put a new bug on some specified vertex, called the source.
To switch between graphs, choose one from the drop-down menu and hit “Reset”.
Pressing the Step button increments the system by one step. The bug alternates between moving to the next vertex and moving a rotor each step.
The Stage button increments the system until a bug hits a sink (or, in the case of aggregation, a new site becomes occupied). A stage is made of many steps.
The Reset button resets the system to the initial state and zeros out any counters.
The Pause/Unpause button controls the automated iterations. If the applet is unpaused, the system will increment by steps or stages, according to the Skip Each variable.
This work is Copyright (C) 2003-2004 Hal Canary, University of Wisconsin-Madison.
This work was supported by the University of Wisconsin.
This work comes with ABSOLUTELY NO WARRANTY. This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation.