• This is an implementation of Conway's Game of Life.
  • The display area shows a grid of cells that are either on or off. At each time step, each cell transitions to on or off based on the number of adjacent cells that are on.
  • If the number of adjacent cells is less than two or more than three, it will turn off. If the number is two, the cell will stay the same as it was. If three, the cell will turn on.


  • Observe how spatiotemporal patterns emerge from these simple rules.
  • Make patterns that travel across the display area.


  • Click on the display area to toggle the state of a cell between on and off.
  • The Reset button resets the simulation with all cell states randomized.
  • The Speed slider adjusts the simulation update rate.
  • The Display Update Rate checkbox displays the sampled rate.
  • Use the Pause checkbox to suspend updates while you click cells on or off.


  • In 2008, I wrote a Java-based implementation of Conway's Game of Life. I also wrote an implementation using Drools, an open source Java rule engine.
  • I wrote this 2023 implementation in the Rust programming language and then compiled it to WebAssembly (Wasm) so that it can run in a webpage. See my Rust and WebAssembly research page for links to tutorials that I wrote on how to do this.