Take a row of squares, each lit or dark. Now repeat one tiny instruction to make the next row down: look at a square and its two neighbours, and decide whether that square is lit. That is all an elementary cellular automaton is. Yet a few of these rules draw perfect fractals, one makes noise good enough to generate random numbers, and one can compute anything a laptop can.
A square and its two neighbours can be arranged in exactly 8 ways: from dark-dark-dark up to lit-lit-lit. A rule just says, for each of those 8 patterns, whether the middle square is lit in the next row. Eight yes/no answers means 28 = 256 possible rules. Stephen Wolfram numbered them by reading the eight answers as a binary number, so the rule that answers 0,1,1,0,1,1,1,0 is called Rule 110.
Below, the eight boxes are the rule. Tap the lower square of any box to flip its answer, and the picture rewrites itself. The top row of the picture is one lit square; tap the picture to light or dim other squares in that row.
Tap the picture to flip a square in the top row. Each row is made from the row above it.
Start with Rule 90. It says: a square is lit if exactly one of its two neighbours is lit, ignoring the square itself. From a single lit square you get a triangle made of triangles, the Sierpiński triangle. It is the same picture as Pascal's triangle with every odd number lit, and the reason is the same: each entry is built from the two above it, and only the odd/even parity survives.
Rule 30 is almost as simple: the new square is lit if the left neighbour is lit XOR (the square or its right neighbour is lit). Starting from one lit square, the left edge is a tidy diagonal, but the middle dissolves into something that looks random. Wolfram found it in the early 1980s, and Wolfram later used it in Mathematica to generate random integers, with the centre column as the stream of bits. Rule 30 shows that you don't need a complicated rule for complicated behaviour.
Rule 110 is the strange one. Neither frozen nor noisy, it grows patterns of little moving gliders that collide and pass through each other. Wolfram conjectured in the 1980s that it was rich enough to be a universal computer, and Matthew Cook proved it, for Rule 110 against a particular repeating background, in a paper published in Complex Systems in 2004. In plain terms: given the right starting row, those eight yes/no answers can run any program, just very slowly. Try Rule 110 above, turn the top row into a few scattered squares, and watch the gliders.
You can explore all 256 rules yourself: flip one answer and a fractal can become noise or a dull stripe. Rule 184 shows another face of the same idea, with lit squares drifting along like cars in traffic. Complexity does not need a complicated cause. It needs a simple rule, applied over and over, row after row.