Cellular Automata
Conway's Game of Life
A cellular automaton playground with pattern editing, playback controls, randomization, wrapped neighbor logic, and live population history.

What this project shows
This project shows careful handling of deterministic state changes, where one bad update order can corrupt the entire next generation.
The problem
Game of Life is often presented as a tiny ruleset, but building an interactive version requires preventing user edits, playback timing, and next-state computation from interfering with each other.
How I built it
I kept the grid update as a separate step function and tracked population history independently, so the simulation could be paused, edited, randomized, and graphed without mixing concerns.
The outcome
The project is a clear example of state-machine thinking and UI control design around a deterministic algorithm.
A closer look
Source signal
The old sketch stores `cell_count_history`, uses `stepGame(len_x, len_y)`, and maintains a bounded history array for the population graph.
Practical signal
The controls show attention to the whole user workflow: pause, edit, observe, randomize, then step again.