Sequential substitution systems [emulating cellular automata]

Given the rules for an elementary cellular automaton in the form used on page 867, the following will construct a sequential substitution system which emulates it:

CAToSSS[rules_] := Join[rules /. ({a_, b_, c_} d_) ({1, 2a, 2b, 2c} {2d, 1, 2b, 2c}), {{1, 0, 0} {0, 0}, {0} {1, 0, 0, 0}}]

The initial condition {0, 0, 2, 0, 0} for the sequential substitution system corresponds to a single black cell surrounded by white cells in the cellular automaton.