Project
Roulette

Game of Life

Draw a pattern, press play, and watch it evolve or die out.

IntermediateWeb appCreative6–14hAI-buildable 5/5no setup

Conway's Life with a paintable grid, adjustable speed, and a library of known patterns. Simple rules, endlessly watchable, and a real performance exercise once the grid gets large — the naive full-grid scan per generation stops being viable quickly.

UI
Logic
Useful

Hosting · Free forever

Deploys free on GitHub Pages, Cloudflare Pages or Vercel Hobby.

Deploy it and share a link.

Core features · 7

  • A grid where cells toggle by click and drag
  • Play, pause and single-step controls
  • Generation speed is adjustable live
  • A generation counter and live-cell count
  • A library of known patterns can be stamped onto the grid
  • Edges either wrap or stay bounded, chosen explicitly
  • Randomise and clear controls

The interesting part

  • Computing a generation without reading partially-updated state
  • Performance on large grids, where only live cells and their neighbours matter
  • Painting cells by drag without skipping any on fast movement

Once it works

  • Detect still lifes and oscillators automatically
  • Add zoom and pan across a much larger grid
  • Add pattern import from standard formats

Suggested stack

reacttypescripttailwindcanvas-api

Track it