Creating Your Own Automaton

A comprehensive guide to configuring cellular automata

What is a Cellular Automaton?

A cellular automaton is a grid of cells where each cell can be in one of several states. Every generation, each cell looks at its neighbors and changes state according to rules you define.

The most famous example is Conway's Game of Life, but you can create infinitely many variations by changing the rules!

Configuration Overview

When you open the automaton settings, you'll configure:

1. Automaton Name

Give your creation a unique name to identify it

2. States

Define what different conditions cells can be in (like Dead, Alive, Dying, etc.)

3. Transitions

Define rules for when cells change from one state to another based on their neighbors

Understanding States

States are the different conditions a cell can be in. You need at least 2 states, but you can add as many as you want.

State Configuration Fields

Name

A descriptive name for this state (e.g., "Dead", "Alive", "Dying", "Growing", "Stable")

Color

The color this state will display on the board. Choose contrasting colors for better visibility.

Default Transition

This is crucial: What state does this cell become if none of the specific transition patterns match?

Think of it as the "otherwise" rule. For example, if an alive cell doesn't match any survival patterns, it might die by default.

Transition Patterns

The specific neighborhood configurations that cause this cell to change to a different state. This is where the magic happens!

State Indexing

States are numbered starting from 0. The order matters because you'll reference these numbers in your transitions:

  • State 0 (first state you define)
  • State 1 (second state you define)
  • State 2 (third state you define)
  • And so on...

Understanding Neighbors

Every cell has exactly 8 neighbors surrounding it (like a 3×3 grid with the cell in the center):

NW
N
NE
W
Cell
E
SW
S
SE

The cell checks all 8 surrounding positions each generation

The automaton counts how many of these 8 neighbors are in each state, then uses that information to decide what happens next.

The Pattern System Explained

Patterns are the heart of your automaton. They tell cells when to change state based on their neighborhood.

Pattern Format

A pattern is written as: pattern:targetState

Where pattern is a string of digits (one for each state) and targetState is the state number to transition to.

Example: 53:1

If this cell has 5 neighbors in state 0 and 3 neighbors in state 1, it becomes state 1

How Patterns are Constructed

2-State Example (Dead=0, Alive=1)

The pattern string has 2 positions (one for each state):

  • Position 0: Count of neighbors in state 0 (Dead)
  • Position 1: Count of neighbors in state 1 (Alive)
53

Position 0 = 5 (five dead neighbors), Position 1 = 3 (three alive neighbors)

80

Position 0 = 8 (eight dead neighbors), Position 1 = 0 (zero alive neighbors)

62

Position 0 = 6 (six dead neighbors), Position 1 = 2 (two alive neighbors)

Note: The two digits must add up to 8 (total number of neighbors)

3-State Example (Dead=0, Alive=1, Dying=2)

The pattern string has 3 positions (one for each state):

  • Position 0: Count of neighbors in state 0 (Dead)
  • Position 1: Count of neighbors in state 1 (Alive)
  • Position 2: Count of neighbors in state 2 (Dying)
422

4 dead neighbors, 2 alive neighbors, 2 dying neighbors

530

5 dead neighbors, 3 alive neighbors, 0 dying neighbors

161

1 dead neighbor, 6 alive neighbors, 1 dying neighbor

Note: The three digits must add up to 8

Wildcards: The Shortcut

Sometimes you only care about the count of one specific state. Use * as a wildcard to mean "any number".

Wildcard Examples

*3*

Means: "I don't care about states 0 and 2, I only care that there are exactly 3 neighbors in state 1"

This matches: 530, 431, 332, 233, 134, 035

*2*

Means: "exactly 2 neighbors in state 1, don't care about the rest"

This is especially useful in Brian's Brain where only alive neighbor count matters

2**

Means: "exactly 2 neighbors in state 0, don't care about states 1 and 2"

Wildcards work in any position!

When to Use Wildcards

  • You have 3+ states but only care about counting one of them
  • You want to avoid listing many similar patterns
  • You're creating rules like "any cell with exactly N alive neighbors should..."

Writing Transition Rules

In the Transition Patterns field, write one pattern per line in the format pattern:targetState

Example: Conway's Game of Life

State 0: Dead

Transition Patterns:

53:1

If a dead cell has exactly 5 dead neighbors and 3 alive neighbors, it becomes alive (state 1)

Default Transition:

State 0 (stays dead)

If no patterns match, the cell stays dead

State 1: Alive

Transition Patterns:

62:1
53:1

An alive cell stays alive (state 1) if it has 2 or 3 alive neighbors

Default Transition:

State 0 (dies)

If it has 0, 1, 4, 5, 6, 7, or 8 alive neighbors, it dies (becomes state 0)

This creates the classic Life behavior: birth with 3 neighbors, survival with 2-3 neighbors, death otherwise.

Complete Example: Brian's Brain

Let's walk through a complete 3-state automaton configuration that creates colorful, pulsing patterns.

Brian's Brain Configuration

State 0: Dead

Name: Dead

Color: #202020

Transition Patterns:

*2*:1

Dead cells with exactly 2 alive neighbors become alive

Default Transition:

State 0 (stays dead)

State 1: Alive

Name: Alive

Color: #00FF00

Transition Patterns:

(Leave empty)

No specific patterns needed

Default Transition:

State 2 (becomes dying)

Alive cells always become dying in the next generation, no exceptions

State 2: Dying

Name: Dying

Color: #0000FF

Transition Patterns:

(Leave empty)

No specific patterns needed

Default Transition:

State 0 (becomes dead)

Dying cells always become dead in the next generation

How This Creates Patterns:
  1. Dead cells with 2 alive neighbors spring to life
  2. Alive cells immediately start dying (creating a green flash)
  3. Dying cells become dead (creating a blue trail)
  4. The cycle repeats, creating wave-like patterns with colorful trails

Pattern Matching Priority

Understanding how the automaton evaluates patterns is important when you have multiple rules.

1. Exact Matches First

The system first looks for exact pattern matches (like 53)

2. Then Wildcard Patterns

If no exact match is found, it checks wildcard patterns (like *3*) in the order you wrote them

3. Finally, the Default

If nothing matches, the default transition is used

Pro Tip:

Order your patterns from most specific to least specific. Put exact patterns first, then wildcards with fewer wildcards, then wildcards with more wildcards.

Design Tips

1. Start Simple

Begin with 2 states and a few simple rules. You can always add complexity later.

Example starter rules:

  • Dead cells with 3 alive neighbors become alive
  • Alive cells with 2-3 alive neighbors stay alive
  • Everything else dies

2. Balance Birth and Death

If birth is too easy, everything explodes. If death is too easy, everything dies immediately.

Too aggressive:

Birth with 1-6 neighbors → everything fills up instantly

Too restrictive:

Birth with exactly 8 neighbors → nothing ever happens

Just right:

Birth with 2-4 neighbors → interesting patterns emerge

3. Think About Survival

The survival rules determine whether patterns are stable, oscillating, or chaotic.

  • Narrow survival range (like 2-3): Creates dynamic, evolving patterns
  • Wide survival range (like 1-6): Creates stable, frozen patterns
  • No survival rules: Creates one-shot explosions that quickly die

4. Use Colors Strategically

Choose colors that help you understand what's happening:

  • Dark colors for dead/inactive states
  • Bright colors for active states
  • Transitional colors for intermediate states
  • Contrasting colors to see different states clearly

5. Add States for History

Extra states can show where cells have been, creating trails and patterns:

2 states:

On/Off, present only

3 states:

Born → Alive → Dying (shows one generation of history)

4+ states:

Born → Young → Mature → Old → Dead (shows multiple generations)

6. Use Wildcards for Simplicity

If you have 3+ states but only care about one, wildcards save you from listing dozens of patterns.

Instead of:

530:1431:1332:1233:1134:1035:1

Just write:

*3*:1

7. Test Incrementally

After each change, run the simulation and observe:

  • Does it stabilize or keep evolving?
  • Do patterns emerge or does it turn chaotic?
  • Do cells spread too fast or die too quickly?
  • Adjust one rule at a time based on what you see

Common Patterns to Experiment With

Here are some interesting patterns to try in your automatons:

Classic Life Birth

53:1

Dead cells with 3 alive neighbors become alive. The foundation of Conway's Game of Life.

Classic Life Survival

62:1
53:1

Alive cells stay alive with 2-3 alive neighbors. Creates stable patterns and oscillators.

High Life

53:1
26:1

Birth with 3 or 6 alive neighbors. Creates self-replicating patterns.

Brian's Brain Birth

*2*:1

Birth with exactly 2 alive neighbors (ignoring other states). Creates wave patterns.

Seeds

62:1

Birth with 2 neighbors, no survival rules. Creates explosive patterns that quickly die out.

Majority Rules

*5*:1
*6*:1
*7*:1
*8*:1

Cells adopt the majority state. Creates blob-like, smoothing patterns.

Day and Night

53:1
26:1
17:1
44:1

Birth with 3,6,7,8 alive neighbors. Symmetrical rules create interesting dynamics.

Slow Growth

44:1

Birth only with 4 alive neighbors. Creates sparse, slowly evolving patterns.

Troubleshooting Common Issues

Everything Dies Immediately

Problem: Your survival rules are too strict or your default transitions kill cells.

Solution: Add more survival patterns, or check that your defaults aren't forcing everything to state 0.

Everything Explodes and Fills the Screen

Problem: Your birth rules are too lenient.

Solution: Require more specific neighbor counts for birth (like exactly 3 instead of 1-5).

Nothing Changes After the First Generation

Problem: Your rules create immediate stability.

Solution: Make survival conditions more specific, or add states that force cells through cycles.

Patterns Don't Match What I Expected

Problem: Pattern format might be wrong, or you're confusing state indices.

Solution: Double-check that pattern positions match state indices (0, 1, 2, etc.), and verify the numbers add up to 8.

Wildcards Aren't Working

Problem: Wildcard length doesn't match the number of states.

Solution: Make sure your wildcard pattern has the same length as the number of states. For 3 states, use *2*, not *2.

Quick Start Checklist

  1. 1 Give your automaton a descriptive name
  2. 2 Define at least 2 states with contrasting colors
  3. 3 Set default transitions for each state (what happens when no pattern matches)
  4. 4 Add birth patterns (when does a cell become active?)
  5. 5 Add survival patterns (when does an active cell stay active?)
  6. 6 Click "Generate Automaton" and watch it run!
  7. 7 Experiment and adjust based on what you observe

Ready to Create?

Now you understand how patterns work, how states transition, and how to build your own rules. Head back to the app and start experimenting! Remember: the best way to learn is by trying things and seeing what happens.