256 worlds, one rule class — a sampler for hex rule space

A hex cell and its six neighbours make eight possible live counts, so a rule that depends only on that total has exactly 28 = 256 forms — codes T00 through TFF. That is the whole class, not a sample, and it fits a 16×16 grid with nothing left over. Every wider constraint is too big to draw, so the same 16×16 grid becomes a random slice of it: 256 of the 16,384 outer-totalistic rules, of the 228 rotationally symmetric ones, or of all 2128. Every world is 96 × 112 cells and shares one initial condition, so the only difference between any two tiles is the rule. Click a tile to open it full size.

Built entirely with @hexlife/embed — two custom elements and a DOM-free API, no other dependencies. The map is one <hexlife-grid>; each tile you open is a <hexlife-world>; the short codes, B/S notation, palette list and Explorer links all come from @hexlife/embed/api.

npm install @hexlife/embed

import '@hexlife/embed'                     // registers both elements

grid.rulesets = Array.from({length: 256},   // T00–TFF *is* the totalistic class
  (_, i) => 'T' + i.toString(16).padStart(2, '0'))

grid.rulesets = draw(256, 'R', 28)          // …or 256 of the 2^28 rotational ones —
                                            // a tag letter + a random payload is a rule
0.50

0.50
15/s
generation 0 worlds cells/world 1 WebGL context (a page gets ~16)

Open in Explorer