Cellular Automata in BASIC (rule 126)
It should be trivial modify it to produce any of these: https://en.wikipedia.org/wiki/Elementary_cellular_automaton
We render one row at a time, based on simple rules: we look at the cell above, one cell to the left, and one to the right.
In this case, a cell is turned on if any one or two of the three cells above it are alive, but dies if all three cells are alive.
We can produce quite a lot of complexity from a small number of simple rules. Here's rule 30 for example: https://en.wikipedia.org/wiki/Rule_30