the card the design's invariants, read off the same byte
{card.error ? null : (
<>
{stamp(read.corners)}
corner i = 4 x0 + 2 x1 + x2, so the top row is l = 0 and the columns run 00, 01, 10, 11 in (c, r)
{read.name}
{read.popcount}
{read.lambda.toFixed(3)}
{read.degree}
{read.genus}
{read.affine ? 'affine over GF(2)' : 'not affine'}
{read.surjective ? 'surjective' : 'not surjective'}
{read.reversible ? 'reversible' : 'not reversible'}
{read.outer_totalistic ? `B${read.outer_totalistic.birth.join('')}/S${read.outer_totalistic.survive.join('')}` : 'not a B/S rule'}
Exactly 30 of the 256 rules are surjective and exactly 6 are reversible, the degree-one single-axis designs 15, 51, 85, 170, 204, 240 and nothing else. Verified, research/automata.md.
>
)}
the classes the cube orbit beside the Wolfram class
{card.error ? null : (
<>
the cube orbit {read.b3_orbit.length} rules, representative {read.b3_rep}
{card.mates.map((mate) => chip(mate.rule, mate.surjective ? 'onto' : ''))}
the Wolfram class {read.wolfram_class.length} rules, representative {read.wolfram_rep}
{read.wolfram_class.map((mate) => chip(mate, ''))}
{read.npn_rep}
a chip is a link, click one to run it
{card.mixed
? surjectivity is not constant on this orbit, so the cube symmetry is not a dynamical one
: every rule in this orbit answers surjectivity the same way}
{CLASSES}
>
)}