An implementation of Conway's Game of Life in JavaScript
Per Conway's Game of Life any live cell with fewer than two or more than three live neighbors dies, any live cell with two or three live neighbors lives on to the next generation, and any dead cell with exactly three live neighbors becomes a live cell. A neighbor is defined as any adjacent cell, including diagonally adjacent ones. The state of any cell can be toggled at any time with the mouse primary button. Step through each generation with next and back or choose start and watch life find a way.