Fredkin's BBM (Billiard Ball Machine)Norman Margolus presented a universal, reversible two-dimensional cellular automata based on the "Margolus neighbourhood" partitioning scheme in CAM (Cellular Automata Machines - 1977).
Note that an implementation of the Billiard Ball Machine (in the form of a Java applet) is available as part of the ["Diffusion"] package.
The automata was based on based on Edward Fredkin's billiard-ball machine, which was developed in the process of studying the "ultimate physics" of computation.
-> -> -> ->
Blank and solid
To illustrate how the model simulates the physics of billiard balls and mirrors in an artificial world, here is a 'ball' bouncing on a 'mirror' surface consisting of four wall tiles places in a row, followed by two colliding balls:
This should help illustrate how signal propagation, signal crossing signal delays and logic gates may be implemented.