|
A celular automaton is a system in which a grid of cells determines its state (ON or OFF) according to rules stablished on the states of a
determined neighborhood of cells in the grid. The system behaves according to a set of game rules that commands each cell in the grid to adopt in the net step
a state based on the previous states of the neighbors.
These Game rules are codified in a structure similar to DNA. Each cell has 8 neighbors, so there are 9 states each cell hast to handle (including own state). As ech one of these
states are values 0 (OFF) or 1 (ON), the number of different possible neighborhood configurations are 2 to the power of 9, or 512. Each configuration has a response ,for example, if the inmediate left
neighbor is ON, then this cell turns ON as well. If we assign each one of this states to a position in a
512-length string, and in this string we store the response, the result is a 512-length string of 0's and 1's describing the behaviour of the system. This might be codified to be expressed as genes
in the form of alfanumeric values and colors. This 512-string is called the "rule code".
This means that a single rule code describes the unique behavior of a system and, moreover, there exist as much as 2 to the power of 512 possible rule code configurations. In other words,
there are more than 10 million million million million . . . (25 times million) . . . million million million possible systems.
This gene structure was, in a beginning, a way to store compressed data information of the state, but as experimentation went on I realized common beahviors tend to be stored in the same Gene.
experimentation with cellular automata is easy and fun as long as you find the beauty of the patterns made by simpple binary rules. These systems are controversial in the study of life emergence and
complex systems, for example, you may know the famous "Conway's Game of Life" which is an specific rule code for 2D cellular automata that ressemebles organic movement from simple configurations.
CONTROL: Mouse Click may allow you to switch cell states manually and interact with sliders and buttons in the simulator. Load - Save butttons are for inserting or retrieving codified genomes in case there's a rule code you
dont want to lose. Random DNA creates a random rule for the system and Empty DNA will create a rule code in zeros. Examples of genomes you can load easily are: conway , conway-4 , maze-gen , square , triangle , tissue . With other genomes it is necessary to copy-paste the desired encoded genome (long alphanumeric sequence).
In Settings you can change the color palette of the System . The system will evolve untill the max. generation limit is reached. You could modify this
limit with the slider in the bottom or setting the max generation parameter to "infinite". In the Behavior programation Module you can configure specific cases and its response, where the 3X3 grid represents the neighboorhood with the
evaluated cell is in the middle. The cells apart represents the actual response to that configuration (will set automatically) and the new response (modify manually with click).The green button is to modify the genome with the case displayed in the module.
the "sinlge case option" is to apply only the case that is displayed, the "all rotations" option applies the rule to all 4 rotations of that case.
The case setting line in the bottom is to create rules based on the number of neighbors, to create a rule press the blue button, to update the genome with the created rules press the white button and to delete al created rules (before update) press the red button.
Keyboard :
ENTER : Runs/Stops the simulation .
R : Create random rule code (Random DNA button).
E : Evolves a single step (Step button).
X : Toogles bombing (switch random cell every generation).
M : Mutates a random gene.
P : Switches the state of a random cell.
B : Sets all cells to OFF (Blank button).
I : Inverts the value of every cell.
C : Sets the center Cell to ON.
H / V / D / A : Sets an alternating pattern along the central (Horizontal / Vertical / Diagonal / Antidiagonal) respectively.
0 / 1 : create arule code with only 0 / 1 respectively (Empty DNA button).
2/3/4 : Sets a figure of ON cells in the center.
|