Or John Conway's Life, in any case. Introduced in 1970 in an article in Scientific American, this was the first example of cellular automata. Counters placed on a two-dimensional grid live, die, and reproduce based on certain rules (in this case, live if surrounded by two or three counters, and reproduce into empty squares surrounded by three counters) - the entire board changes with each timestep. Of course knitting is not going to blink around in this fashion! - but the stitches already knitted can be used to formulate rules for the next stitch. The easiest way to think of it is the row beneath (1-dimensional) generates the row above in the next "timestep." Though technically, you can also include the stitch just knitted in your rules (the coming stitch determined by the three stitches below, or the three stitches below plus the one just knitted).
I was thinking about developing a fractal pattern (more thoughts on that later, Sahara! - I will get to that eventually) - but wasn't enthused about combining fair isle with intarsia, which would be necessary for the pattern I was going to use. Enter Debbie New's Unexpected Knitting, with her cellular automata knitting. Voila! What could be geekier?
I wanted to use the three stitches below to generate the stitch above. I looked more closely at New's suggested rules and was not happy with either. With two-stranded knitting, there are 8 (2 to the 3rd power) possible combinations. Either by writing them all out, or by using the wonders of geometric distribution, we can find that the probability is:
1/8 for XXX
3/8 for 2 Xs and 1 O
3/8 for 1 X and 2 Os
1/8 for OOO
Debbie New had two suggested rules using the three stitches below. The first had a probability of 3/8 for knitting stitch X, and the second had a probability of 6/8 (!) for knitting stitch X. It was difficult to keep the pattern from dying (becoming all X or all O) using these rules.
I thought a probability of 1/2 X and 1/2 O would generate the best patterns. Without really thinking about it, I initially chose to generate X for the case of XXX or 2 Xs and an O. Oops! When the pattern inevitably started skewing towards one extreme, there was no way to recover - it quickly died. I quickly reformulated to generating X for the case of XXX or 1 X and two Os. Probability of knitting X is 1/2, and the pattern is robust - it can recover from either a large number of X or Os in the preceding row. I hand-generated 35 rows from an initial starting pattern of 16 Xs and Os (eight of each). Of course I could have written a program, but writing it out also partly tested the ease of generating the pattern by knitting, which of course is not programmed. The pattern occasionally dipped down to 3 or 4, but was able to recover. In theory the ratios should produce a normal bell curve distribution, but I have not calculated it with this "data."
For those of you still reading: I reproduce for you the first 10 rows of the cellular automata pattern. I "wrapped" around the sides to generate the edge stitches.
Rule: knit X if the stitches below are XXX or if there is one X.
OOOOOXXOXOXXOXXO (7X/16) row 10
XXXOOXOOXXOOOXOX (8X/16) row 1
Now, to learn fair isle! I think that would work, if I twist the longer floats. There is a maximum of about six consecutive stitches.