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 √3, j}, {i, 1, m}, {j, Mod[i, 2], n, 2}].