This implementation uses Riot to structure the application and jquery for DOM management.
The implementation is not fast. For a 20x20 grid it runs about 10 frames per second. A grid of 100x100 is unbearably slow. The underlying algorith is not fast (it scans every cell), and I have made no attempts to optimize. Riot is event-based, which makes the code clear, but one assumes (but I have not measured!) there's a significant overhead to triggering events on each cell state change. It's also not clear that marking cell state by manipulating the DOM class attributes is a winner.
I know of a much faster implementation of Life. It uses a smarter algorithm, it also uses Canvas for the GUI
The only reason this implementation here might be interesting is for the use of Riot patterns, or perhaps because the underlying model is designed to be extensible should one wish to explore other sorts of cellular automata.
The code is stored on GitHub
Begun Jan 2008; converted to riot and jquery Feb 2014