The Adaptive Isolator Model
The Adaptive Isolator seeks to surround other Element's with itself, and move those Elements away from each other. The goal of Adaptive Isolator is to have Element's of a different type than itself not (not Adaptive Isolator nor Empty) be within the same Event Window. The inner radius parameter of Adaptive Isolator determines how much room is maintained between an Element and the Adaptive Isolator's surrounding it. If an Adaptive Isolator does not see any Element's of another type during an Event, it will erase itself.
The Adaptive Isolator accomplishes its goals with two primary behaviors:
Behavior 1: Surround other Element's
When an Adaptive Isolator at site A sees any Element that is not of its own type at site B, it will:
- Look at every site C within Event Window radius R of both A and B
- If C is less than bubble radius away from B and holds an Adaptive Isolator, set C to be Empty
- If C is at least bubble radius away from B and is empty, set C to be another Adaptive Isolator
The result of this behavior is that Adaptive Isolator surrounds the seen Element but gives it empty space of distance inner radius to move. The add/erase behavior is how Adaptive Isolator's are collectively able to keep an Element surrounded as it diffuses spatially.
Behavior 2: Swap Element's apart
When an Adaptive Isolator at site A sees an Element at site B which is distance R-1 from A, it will:
- Look at every site C that is at least distance R from B
- If the Element at C is not an Adaptive Isolator nor empty:
Let X be the horizontal offset from A to B, and Y be the vertical offset from A to B
- If X is 0, swap B one unit in Y direction away from A
- If Y is 0, swap B one unit in X direction away from A
- If both X and Y are non-zero, randomly choose to swap B one unit in either X or Y direction away from A
The result of this behavior is that an Adaptive Isolator on the edge of an isolator bubble will repel (swap away) an Element E if it also sees some other Element E' further away. This can break up Element's that are already close together when Adaptive Isolator's surround them, as well as cause bubble repulsion between groups of Adaptive Isolator's surrounding different Atoms.