Cellular Automata Encryption

Emilie Menard Barnard

About Cellular Automata

"A cellular automaton (CA) consists of a regular grid of cells, each in one of a finite number of states, such as on and off. For each cell, a set of cells called its neighborhood is defined relative to the specified cell. An initial state is selected by assigning a state for each cell. A new generation is created according to some fixed rule. This rule determines the new state of each cell in terms of the current state of the cell and the states of the cells in its neighborhood."-Wikipedia

CA are used for many applications, including biology and video games.

This CA Generator

I designed this CA generator as a final project for my Cryptography course at UC Santa Barbara in 2013 using Python 2, and the code was later updated to Python 3. They Python script takes a vector input and rule number, and outputs the resulting CA grid. Each new generation of a given cell depends on the parent cell and the parent's two neighboring cells. Thus, there are 256 different possible rules than can be used. For this reason, any rule number input will taken as mod 256. By clicking on the boxes in the first row, you turn a specific cell on or off (using binary or base-2 numbers). Running the generator on different inputs and rules will give different outputs. You can also set the number of rows and columns for the grid, and your preferred color scheme. If you'd like to see the step-by-step progress of the generator, enable the animation. Enjoy!

Other CA Generators

The Gata Galaxies 🐈✨ Twitter bot uses a CA generator with numbers in base-7 to create Emoji tweets.

Color Scheme:  

Number of Columns:
Number of Rows:
Rule Number (mod 256):
Animate: