Here is the first version. It takes a while to get initialized.
When you see the tape recorder controls and the big rectangle of TV snow,
press the ">" (play) button.

The idea is this:
For every 3 x 3 neighborhood, there are 512 possible combinations of black
and white. Assign each of the possible combinations a random "energy,"
say between 0 and 511. This sets up the rules, a sort of imaginary physics
for the game.

The board starts in some initial state, and then you flip one square
at a time, only making flips that reduce the total energy for the
board.

I imagined this would do something like crystalization. Well, not yet,
although it is doing something.
Some things to try next: rules that are symmetrical, rules that are smoothed
so that similar states have similar energies, and doing something more like
real annealing.

Source code

Take a look in the src directory. Much of this code (and
some of it is irrelevant now) is taken from my LangtonsAnt applet. One new
thing I'm proud of is the "WeightMap" which records the relative probabilities
of all the potential bit-flips, and then picks one according to the
probabilities.