Design and complexity have been discussed several times in this group. I recently wrote and tested the actual program. Its rules are modeled loosely on molecular dynamics. The screen is divided into rows and columns.
Atoms can spontaneously move, appear, and disappear.
Neighboring atoms can join to form molecular chains. Molecules can move, rotate, and molecular bonds can break. The processes are stochastic. Simple molecules form, move, and break apart. With careful observation and measurement, the first few rules and probabilities could be deduced relatively quickly.