Implementation [of hexagonal cellular automata]

One can treat hexagonal lattices as distorted square lattices, updated according to

CAStep[rule_List, a_] := Map[rule[[14 - #]] &, a + 2 ListConvolve[{{1, 1, 0}, {1, 0, 1}, {0, 1, 1}}, a, 2], {2}]

where rule=IntegerDigits[code,2,14]. On this page the rule used is code 16382; on page 371 it is code 10926. The centers of an array of regular hexagons are given by Table[{i Sqrt[3], j}, {i, 1, m}, {j, Mod[i,2], n, 2}].