a cellular automaton where every step can be run backwards, exactly.
no information is ever lost. the trick is the margolus neighborhood: instead of
one cell looking at its neighbours, 2×2 blocks rotate as a unit, and the block
grid shifts by one cell every step. flip the rotation and you get the past back.