dvgrn wrote:One must take Hofstadter's Law into account.
Nailed it.
Inevitably, though, I had to come up with new names, if just for myself. On my copy of apgsearch I manually edited the names of the still lifes of 10 or fewer cells, sometimes assigning them new names in the process. These are provided below.
Fine then, we should use Goucher's apgsearch notation for larger still lifes in the future
in this context, not Niemec's numbers (i.e. e.g. 16.447) or his nomenclature.* But we can talk about glider synthesis notation now.
A glider within a synthesis is defined by (1) its position on the lattice and (2) its orientation and phase, the latter of which I will denote as the
look. There are 16 possible looks, for which I assign hex digits to them as follows:
Code: Select all
x = 32, y = 32, rule = LifeHistory
.A6.A.A7.A5.A$2.A6.2A5.A.A6.2A$2AC6.AD6.AC5.2AD$5.3D6.D6.3D5.3D$5.D.D
6.D8.D7.D$5.D.D6.D6.3D5.3D$5.D.D6.D6.D9.D$5.3D6.D6.3D5.3D$.AC5.2AD5.
2AC6.AD$A.A6.2A7.A6.2A$2.A5.A8.A6.A.A$5.D.D5.3D5.3D5.3D$5.D.D5.D7.D9.
D$5.3D5.3D5.3D7.D$7.D7.D5.D.D7.D$7.D5.3D5.3D7.D$C2A5.DA6.CA6.D2A$A7.
2A6.A.A5.2A$.A6.A.A5.A9.A$5.3D5.3D5.3D5.2D$5.D.D5.D.D5.D.D5.D.D$5.3D
5.3D5.3D5.2D$5.D.D7.D5.D.D5.D.D$5.3D5.3D5.D.D5.2D$A9.A6.A6.A.A$A.A5.
2A6.A7.2A$CA6.D2A5.C2A5.DA$5.3D5.2D6.3D5.3D$5.D7.D.D5.D7.D$5.D7.D.D5.
3D5.3D$5.D7.D.D5.D7.D$5.3D5.2D6.3D5.D!
The positions of the gliders
as they will be seen by the programs are marked. With that fixed we can already draw up the code for a few syntheses, such as this one for the block:
Code: Select all
x = 6, y = 6, rule = B3/S23
bo$2bo$3o$4bo$3bo$3b3o!
which becomes 2,2-0 3,5-E.
For multi-stage syntheses we insert a plain number
x between one glider and the next to specify that
x generations pass between the placement of the preceding and succeeding glider. For example, 2,2-0
3 7,5-C 2,7-5 means:
- Place the glider with look 3 (in the above LifeHistory pattern) at (2,2). Step three generations.
Place the glider with look C at (7,5) and that with look 5 at (2,7).
The following should be obtained:
Code: Select all
x = 10, y = 9, rule = B3/S23
bo$2b2o$b2o4bo$7bobo$7b2o2$2o$b2o$o!
…which happens to produce a long boat.

Nevertheless, I believe the specified delay assists in manually encoding and decoding syntheses as each step then exists in the code independently of the others and can be easily exported for other constructions.
* I have one small improvement to make to the notation: because after "y" there is no available marker for how many additional columns of five zeros there are beyond four, the size can only be represented with the immediate next character and the objects that the program can canonise are restricted to 40*40. I propose using multiple y's to denote that the number of extra columns is encoded in the next two, three, etc. characters, so for example yy1a would denote 50 columns of five zeros (4 + 1 * 36 + 10).