Aditya ML & cloud
Back to sandbox

Drawing with rules instead of a mouse

Rule

What you are looking at

The top row is a single lit cell in a field of dark ones. Every row below it is computed from the row above by one rule, applied to every cell at once: look at a cell and its two neighbours, and decide whether the cell below is lit.

Three cells, two states each, is eight possible neighbourhoods. Each gets a yes or a no, so a rule is eight bits — a number between 0 and 255. That number is the entire program. There is nothing else.

// the whole simulation
next[i] = (rule >> ((left << 2) | (self << 1) | right)) & 1;

Why these four

  • Rule 30 produces a stream that passes statistical randomness tests, from a starting condition of one lit cell. Wolfram used it as a random number generator in Mathematica.
  • Rule 90 draws the Sierpiński triangle. Nobody put a triangle in the rule.
  • Rule 110 is Turing complete. Given the right starting row, it can compute anything computable.
  • Rule 150 is the tidy one — symmetric, nested, and completely predictable.

Why this sits next to the prediction work

Same instinct, opposite direction. A forecasting model looks at outcomes and tries to recover the rule that produced them. An automaton hands you the rule and dares you to predict the outcome — and for Rule 30 you cannot, other than by running it. There is no shortcut, no closed form. Simple rules are not the same as predictable ones, which is a useful thing to keep in mind when a model looks too clean.

Back to sandbox See the serious ones