Epilepsy Warning: 

This content may contain flashing lights or patterns that could trigger seizures for people with photosensitive epilepsy. Viewer discretion is advised.

----------------------------------------------------------------------------------------------------

Cyclic cellular automata is a simulation where cells interact with their neighboring cells to create beautiful patterns. In this simulation, you can explore different neighborhood styles, different color palettes, and different simulation settings to create mesmerizing patterns and shapes.

Controls & Settings

Grid settings:

The grid creation section allows you to customize the grid and cell sizes. Select your preferred sizes and click Generate Grid

If the grid appears stuck or you change the number of states, use the Reset Cells button to shuffle the cell colors.

Iteration settings:

In the second section, press Play to start the simulation at the desired speed, Pause to stop it, and Next Frame to move only one step forward.

Neighborhood settings:

These are the main settings of the simulation that control the output pattern.

States:  the maximum number of states a cell can have.

Threshold:  number of neighboring cells needed to increment the cell's state.

Range:  the radius around the cell to detect its neighbors.

Neighborhood type:  the pattern of the neighboring cells

Wrapping:  cells wrap around the other sides of the grid.

Color Settings:

To modify the state colors, you can use a preset color palette or modify them manually by inputting color hex codes or selecting from the color panel when you click the state's color.

Randomization Settings:

The randomization settings panel can be opened from the small settings icon next to the randomize button; from there, you can do the following:

  1. Lock one or multiple settings.
  2. Choose the minimum and maximum values.
  3. Toggle picking random neighborhoods or palettes.
  4. Skip grids that are likely to be dead or less interesting.

Neighborhood Types

How It Works

In a 2D grid, each cell examines its neighbors during each step. If the number of neighbors with a state one higher than the current cell's state meets a specified threshold, the cell's state is incremented in the next step. Otherwise, the cell's state remains unchanged.

For example, if the threshold is 3 and the current cell's state is 1, and at least three of the cell's neighbors have a state of exactly 2, the cell's state is incremented in the next step or iteration. If there aren't enough neighbors to satisfy the threshold, however, the cell's state remains unchanged in the next step. 


Original paper: https://www.math.ucdavis.edu/~gravner/papers/cca.pdf

Possible Future Updates

Save and load options for settings and color palettes, allowing users to preserve their configurations.

Improvements in performance for larger grids and faster simulation speeds.

Improvement to random generation to get better grid patterns from randomizing

Looping the simulation from a specific point of progress.

Implementation of functionality to save generated simulations as videos or GIFs.


Contacts

If the project caught your interest and you wanted to participate in its development, or simply talk about it, please let me know at:

Fiki - itch.io

aelfiky71@yahoo.com

Ahmed Alfiki | LinkedIn

Fiki#6850

Leave a comment

Log in with itch.io to leave a comment.