This is my pet algorithm for moving cellular automata in lines without storing state.
Each automata is a single 8 bit number representing an angle, and the pattern of steps necessary for moving along paths between the 8 neighbor positions is derived from the coordinates.
No time input or global state is required. Everything is entirely deterministic and executed in parallel.
Live Demo with Sourcecode