Project / Game of Life

Small core, living display.

Conway's Game of Life began here as a Rust learning project in 2023. It now runs as an independent Lab module without making the rest of the website carry its runtime.

What

A fixed-size, toroidal cellular automaton with bit-packed storage and a Canvas renderer styled as a restrained CRT workstation.

Why

It preserves an early Rust project while turning it into something directly explorable, rather than leaving it as a static code sample.

Technical choices

  • Rust owns simulation state and generation updates.
  • WebAssembly exposes a zero-copy view of bit-packed cells.
  • Plain JavaScript owns rendering, input, and lifecycle.

Current status

Running in Lab 01 with pointer and keyboard controls, reduced-motion behavior, visibility pausing, and deterministic Rust tests.

Implementation process

The simulation was tightened around a bit-packed, reusable two-buffer core; the renderer then gained direct alternating memory views, accessible input, visibility pausing, and explicit cleanup. This refactor moved those working pieces behind an independent Lab route.