The program can be used to find interesting rules. It does this by generating random rule parameters and then running the resulting rule starting with a randomly generated pattern. This process is controlled by simply clicking a New Rule menu button. Options specifying how the rule parameters are to be modified are provided.
Patterns generated by running a CA simulation can be saved to and loaded from pattern files.
The program provides controls which can be used to edit the CA simulation display and analyze the simulation patterns.
The program's main display is shown below.
The program will execute on a PC running Windows XP, is written in Delphi 5 and uses the Graphics32 library.
To get started, execute the program and click the Rule menu. This will display the Weighted Generations rule dialog set to the well known rule Star Wars. Click Ok to close the dialog . Now click the Random menu to set the cells to random states and click the Start menu to run the simulation. Stop the simulation by clicking the Stop menu and step the simulation by clicking the Step menu. Clear the display by clicking the Clear menu. This sets the state of each cell to 0.
Now click Start and repeatedly click New Rule. This simple process together with setting new rule options, described below, randomly selects new rules in the Weighted Generations rule family and runs them.
Cell patterns may be saved to a pattern file by clicking 'File | Save' and restored from a pattern file by clicking 'File | Open'. The pattern files contain the rule string and the collection of cell states.
Cell patterns may be analyzed to determine if they are ships, oscillators or are stable. The message box shown below displays the result after clicking the Analyze menu button with Conway's well known glider displayed.
Each cell can be in one of 16 possible states in the range 0..15. Each iteration, the states of a cells 24 neighbors are multiplied by appropriate State and Position Weights and then counted. For example, if the NW neighbor is in state 3 and the State Weight corresponding to state 3 is 5 and the NW Position Weight is 2 then the NW neighbor will contribute a count of 10 (5 * 2) to the cells neighbor count. Both the State and Position Weights are in the range -10..10. If the C Position Weight is non zero then the cell may contribute to its own neighbor count. For example if the C Position Weight is -3 and the cell is in state 2 and the State Weight corresponding to state 2 is 3 then the cell's neighbor count will be decremented by 9 (3 * -3).
If a cell is in state 0 then it changes to state 1 if its neighbor count is included in the Birth Group. Otherwise the cell remains in state 0. If a cell is in state 1 then it remains in state 1 if its neighbor count is included in the Survival Group. If a cell is in state 1 and the cell's neighbor count is not included in the Survival Group and the number of states is greater than 2 then the cell's state changes to state 2, otherwise it changes to state 0. If a cell is in state n where n >= 2 and the number of states is s, then it changes to state n + 1 if n + 1 < s, otherwise the cell returns to state 0.
The Number of States, the State Weights and the Position Weights are modified by clicking the associated up or down arrow controls. The Birth and Survival Groups are provided with edit and button controls to add, delete and clear entries.
A group of cells is selected by clicking the display with the 'Ctrl' key down. The first click marks a corner of the area to be selected and the second click marks an opposite corner. A third click clears the selection. A selected cell group may be manipulated by controls on the Selection Control popup dialog shown below. This dialog is displayed by Right clicking the display.
The cells inside the selecting rectangle may be set to state 0 by clicking the Clear Inside button. Similarly, the cells outside this rectangle may be set to 0 by clicking the Clear Outside button. Selected cell groups may be flipped about the X or Y axis or rotated through 90 degrees. All the cells that are not in state 0 may be selected by clicking the Select All button. As a convenience for group rotation, all cells that are not in state 0 may also be selected by surrounding them with a square by clicking the Select Square button. Control buttons are also provided to center the selected group of cells, set the selected cell states to randomly generated values and save the selected cells in a pattern file. Selected cell groups may be moved or copied by dragging them. The setting of the two radio buttons on the Selection Control dialog specify which function is active.
Each of the colors associated with the cell states, the cell grid and the cell group selector can be changed. Simply click on the appropriate square to display the color selector and choose a color.
The cell size in pixels can be set to any number in the range 1..15 using the Grid Size selector.
The number of simulation steps executed when the Step menu is clicked can be set using the Step Size edit control.
When either the display cells or a selected group of cells are set to random states (colors), the cell density can be set using the Density selector.
For the Weighted Generations family, the new rule function generates random State Weights, random Birth Counts and random Survival Counts according to the settings of the check boxes in the New Rule Controls group. If a check box is checked, random values are generated and replace the current values and if the check box is not checked the current values are unchanged.