James Metz
Project 01 / Interactive systems

Shared Game of Life

An immediate-mode web experiment where every visitor edits the same evolving set of canvases.

A server-rendered shared space

The application keeps ten 32×32 boards in shared server memory. Each visitor receives a lightweight session containing their active page and chosen color, while the simulation itself remains global.

The interface shell is sent once, then compact board and performance signals stream over server-sent events. Inputs travel back as small event requests, update the session or board, and appear in the next frame. The result is deliberately simple: the server owns the truth and the browser displays it.

Each visitor’s stream adjusts to their connection. The browser confirms which frames arrive, and the server uses those confirmations and the compressed frame size to stay within a 256 KiB/s budget—slowing down on constrained networks and speeding up when bandwidth improves or frames get smaller.

Make something live

Select one of the ten pages, choose a color, and click cells to bring them to life. The board advances continuously using Conway’s rules.