Binary rule-space showcase

256 worlds, one rule class

Run an entire cellular-automaton class at once, then sample rule spaces too large to enumerate.

Built with the published npm package @hexlife/embed <hexlife-grid> · one WebGL2 context for every tile
Why 256 is the whole class, and how this page is built with @hexlife/embed

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 at 16×16 all of it is on screen with nothing left over. Every wider constraint is too big to draw, so the same 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. Set the grid to whatever your screen can hold, and 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
generation 0 worlds cells/world 1 WebGL context (a page gets ~16)

Open in Explorer