Page 3 of 3

Re: ChatGPT 3.5 and Google Bard on Life

Posted: August 17th, 2026, 3:06 pm
by MDA
What ChatGPT output when I asked it to “generate an image of the smallest known spaceships for each speed in Conway’s Game of Life”:
ACCA6D49-BCC4-4492-AF91-65F4F7C11B20.png
ACCA6D49-BCC4-4492-AF91-65F4F7C11B20.png (1.3 MiB) Viewed 352 times
Another attempt, just as ridiculous:
C3CB5BD7-D876-447B-8B00-CAF0D083CA2A.png
C3CB5BD7-D876-447B-8B00-CAF0D083CA2A.png (1.36 MiB) Viewed 352 times
“As of 2024, no spaceships are known for speeds c/1, c/2, c/3, or c/16 and higher”.

c/1 spaceships aren’t even possible in Conway’s Game of Life.

Re: ChatGPT 3.5 and Google Bard on Life

Posted: August 17th, 2026, 6:25 pm
by TheWayOfTheCon
MDA wrote: August 17th, 2026, 3:06 pm What ChatGPT output when I asked it to “generate an image of the smallest known spaceships for each speed in Conway’s Game of Life”:

ACCA6D49-BCC4-4492-AF91-65F4F7C11B20.png
What would TWSS stand for?

Re: ChatGPT 3.5 and Google Bard on Life

Posted: August 17th, 2026, 7:44 pm
by hotcrystal0
MDA wrote: August 17th, 2026, 3:06 pm What ChatGPT output when I asked it to “generate an image of the smallest known spaceships for each speed in Conway’s Game of Life”:

ACCA6D49-BCC4-4492-AF91-65F4F7C11B20.png
Rule with “IDOT” as an actual c/8o spaceship by Katrina on the Discord:

Code: Select all

x = 4, y = 4, rule = B3-ceqy4eiknw6ck/S2ace3ajknr4aijr5y6i
b2o$bo$o$b3o!

Re: ChatGPT 3.5 and Google Bard on Life

Posted: September 8th, 2026, 4:15 pm
by MDA
Another prompt of mine (“Generate an image containing some patterns and descriptions from well-known cellular automata similar to Conway’s Game of Life (e.g. HighLife, Seeds, etc.).”) generated this image:
50FCEFB9-D820-4D86-A07E-B33516E3C8D5.png
50FCEFB9-D820-4D86-A07E-B33516E3C8D5.png (1.61 MiB) Viewed 209 times
Another attempt:
2-3-3 Life… what an amazing variant of Conway’s Game of Life!
2-3-3 Life… what an amazing variant of Conway’s Game of Life!
E11A9981-F437-4D2B-B881-500B80D6016F.png (1.71 MiB) Viewed 209 times

Re: ChatGPT 3.5 and Google Bard on Life

Posted: October 18th, 2026, 9:39 pm
by UnbihexiumFan
I ran an experiment with Claude to see how good it is at cellular automata. I asked it to come up with an INT rule and to make a discovery in said INT rule. It failed to come up with anything notable but I was fairly impressed by how well it did.

The chat is shown below. Annotations will be added when necessary.
I wrote:I've recently been looking into isotropic non-totalistic cellular automata. Could you come up with an interesting isotropic non-totalistic cellular automaton, writing in Hensel notation?
Claude wrote:Here's a candidate. I can't run simulations in this chat, so I haven't tested it. It's a design based on how the notation works, and I'd treat it as a starting point to explore.
B3-ck/S2-i3

Equivalent expanded form: B3aeijnqry / S2ace kn3cekaijnqry (that is, S2 with every 2-neighbor configuration except i, plus all S3).

Quick notation reminder:
- Letters distinguish the distinct arrangements of n live neighbors in the Moore neighborhood (up to rotation and reflection).
- A bare number includes all its configurations, and a minus sign excludes some. So `3-ck` means "3 neighbors, except the c and k arrangements."
- There are 51 isotropic classes in total (counts 0 and 8 have one each, 4 has 13).

Why I picked it:
- It's a small perturbation of Conway's Life (B3/S23), so it should stay in the "complex but not explosive" regime where gliders and oscillators tend to exist.
- Dropping two of the ten 3-neighbor birth configurations (c, k) should make births pickier and the soup less chaotic than Life, which tends to produce more asymmetric, sparser growth.
- Excluding `2i` from survival means a cell with two neighbors directly across from each other dies. That should disrupt straight-line stability, so thin straight lines and some blocks of Life's usual still lifes won't behave as they do in Life. That's where I'd expect differences in the still-life and oscillator zoo.

Things worth checking when you run it (Golly and LifeViewer both accept Hensel notation, I believe):
1. Does a random soup settle to sparse ash, or does it grow indefinitely?
2. Do small gliders appear, and what are their periods and speeds?
3. Is there a replicator or a spaceship in the c/2 to c/4 range?

Variations to try if it's too dull or too wild:
- Livelier: `B3-c/S2-i3` (restores the k birth).
- Wilder: `B2a3-ck/S2-i3` (adds the 2a birth, which usually pushes toward explosive growth).
- Sparser: `B3-ck/S23-y` (tightens survival).

If you tell me what you find (say, the glider list or the soup behavior), I can help tweak the rule toward something specific, like a rule with a natural c/3 spaceship or a self-replicator.
I'm a bit confused as to what it meant by "expanded form" and what the purpose of that is. I did a bit of preliminary checking of the rules it gave. B2a3-ck/S2-i3 is of course "wilder" but it's hardly a variation of the rule as it shows drastically different behavior. "Tightens survival" is such a meaningless statement? But it is true that B3-ck/S23-y is sparser than B3-ck/S2-i3. I ran 10 runs each on 256x256 toroidal soups in both rules and found B3-ck/S2-i3 has an average density of about 2.47% whereas B3-ck/S23-y has one of 2.35%. And uh... in what way does removing B3ck make the growth more asymmetric? I didn't care that much so I asked it to make some discoveries.
I wrote:Could you make a discovery in the cellular automaton you've described?
Claude wrote:I can't, at least not honestly. I have no way to run simulations in this chat, so any glider or oscillator I "found" would be invented, and I don't want to hand you a fake discovery.

I also made a mistake last time. The "equivalent expanded form" I gave was garbled. The correct expansion of B3-ck/S2-i3 is:

B3aeijnqry/S2acekn3

That is, births on the eight 3-neighbor classes other than c and k, and survival on every 2-neighbor class except i, plus all of 3. The shorthand `B3-ck/S2-i3` was right, and the expanded version wasn't. I'm also not fully certain of my plain-language description of which geometry `2i` corresponds to, so check it against the Hensel diagram before relying on my "opposite neighbors" reading.

Here is how you could find something real in a few minutes:

1. Soup search: Paste the rule into Golly (Control → Set Rule), fill a ~100×100 region randomly at 30-50% density, and run it. Watch whether it dies out, stabilizes into ash, or grows.
2. Spaceship search: Golly's `lifelib` with `apgsearch` supports non-totalistic rules, and will census the soup output and report any gliders it finds. Run `apgsearch` with the rule string and it will tally common still lifes and oscillators and flag rare objects.
3. Small-pattern search: For tiny spaceships, a brute-force search over small seeds, or Golly's built-in `gfind`, can look for period/displacement pairs like (c/4, 4) or (c/3, 3).

If you run one and paste back the census or any objects it finds, I can help interpret them, work out their periods and speeds, and adjust the rule to encourage whatever looks promising.
I wrote:Surely you *can* run simulations; it might be difficult but it's possible. Can't you run code?
Claude wrote:No, not in this conversation. I have no code-execution tool here, only web search and a widget renderer, so I can’t run a simulation and read the results myself. Hand-simulating a rule like this for any meaningful number of generations would also be error-prone, and I’d rather not claim results I haven’t actually observed.

I could build an interactive simulator as an inline widget. It would run in your browser: you’d click to draw patterns, randomize a soup, and step or play the rule. I still wouldn’t see the output, so any discovery would be yours, but it would be quick for you to explore, and you could tell me what you see so I can help analyze it or tweak the rule.

The catch is that I’d want to confirm the Hensel letter-to-configuration table first rather than rely on memory, since a wrong mapping would silently simulate a different rule. I’d check it against the LifeWiki’s definitions before building.

Want me to do that?
Still don't know what the expansion means! Don't know what period/displacement pairs means! But I didn't care. What interested me was it saying it can't run simulations in browser. I was told by LuveelVoom in the Discord that it can run scripts itself but I couldn't get it to, which I think probably has to do with me not paying for Claude. I'm not sure. Someone else could try this experiment while getting Claude to run things in browser. I'd like to see the results of that. Anyway, it seemed an awful lot like it wasn't trying to make its own discoveries. But uh... that was the whole point. It was supposed to discover things itself. Naturally, I asked it to simulate it by hand, of course! (Well. AI doesn't have hands. Whatever.)
I wrote:My bad. Try hand-simulating it, then! There may be errors and it may be hard, sure, but it's not impossible to do a hand-simulation. Just take your time. It's better than nothing!
Claude wrote:Before simulating, I need the letter-to-configuration table for the 2- and 3-neighbor classes, since a wrong mapping would mean simulating a different rule. I'll check it first.

I hand-simulated a few small patterns. This is by-hand work, so double-check it. First I had to fix the letter table. LifeWiki's table is images, so I reconstructed the classes from a ConwayLife forum encoding and cross-checked them by enumerating all 56 three-neighbor configurations. That also corrects two of my earlier statements.

Corrected class definitions, with N at the top and "edge" meaning N/E/S/W:
- 2i is two opposite edges (N and S, or E and W). Opposite corners are 2n.
- 3c is three corners.
- 3k is two adjacent edges plus the corner diagonally opposite their shared corner (e.g. N, E, SW).
- I'm confident of the other 3-neighbor classes except q and r, which I assigned partly by elimination. That doesn't matter below, since both are allowed births.

I was also wrong earlier to say the rule changes "some blocks". It doesn't. The rule differs from Life in exactly three ways: a live cell with only two opposite-edge neighbors dies, and 3c and 3k births don't happen.

Results

1. The blinker dies. The middle cell of a horizontal line of 3 has neighbors W and E, which is 2i, so it dies. The two end cells die for lack of neighbors. The cells above and below the middle each see three cells in a row (3i), so they're born. That leaves two cells with a gap between them, and the next generation is empty. Life's most common oscillator doesn't exist here. A row of 4 also dies in about two steps.

2. Life's glider survives. Rows are y=1..3, columns x=0..3:

Code: Select all

gen 0     gen 1     gen 2     gen 3     gen 4
(.X.)     ....      ..X.      .X..      ..X.
(..X)     X.X.      X.X.      ..XX      ...X
(XXX)     .XX.      .XXX      .XX.      .XXX
          .X..      (see below)
The gen 0 and gen 1 grids above are only schematic, so here are the exact cell lists:
- gen 0: (1,0), (2,1), (0,2), (1,2), (2,2)
- gen 1: (0,1), (2,1), (1,2), (2,2), (1,3)
- gen 2: (2,1), (0,2), (2,2), (1,3), (2,3)
- gen 3: (1,1), (2,2), (3,2), (1,3), (2,3)
- gen 4: (2,1), (3,2), (1,3), (2,3), (3,3)

Gen 4 is exactly gen 0 shifted by (+1,+1), so this is a period-4, c/4 diagonal glider. The births along the way were 3n, 3i, 3a, 3j, 3n, 3i, 3j and 3a, none of them c or k. Survivals were only 2a, 2e and 3-neighbor cases, never 2i.

3. The toad survives with period 2. I checked both phases. Births were 3a, 3i and 3q and 3j, all allowed, and the 2-neighbor survivors were 2k and 2a.

4. Block and tub are still lifes, as in Life.

What this suggests

Any Life pattern whose evolution never needs a 2i survival, a 3c birth or a 3k birth runs identically here. So gliders, the toad, block, tub and presumably much of the still-life zoo carry over. The differences should show up in patterns that rely on lines of three or on c/k births, which is why the blinker fails. In soups, blinkers are the most common oscillator in Life, so ash should look noticeably different and maybe sparser.

That's inheritance rather than a new discovery. To find something genuinely new, the next step is to hand-simulate small seeds whose evolution does hit 2i or a 3c/3k birth, such as the T-tetromino or the R-pentomino. Want me to try one? I'd start with the T-tetromino, since it contains a 3-in-a-row and should break differently from Life.
That glider diagram is awful. Whatever. I don't care. It at least got the fact it survives right. I think the cells are accurate anyway, it just wrote them awfully. It makes a lot of weird corrections. I'm not sure what it's trying to say. It seems like it's just forcing itself to admit it was wrong. Anyway.
I wrote:Impressive! I double checked your work in LifeViewer and it was all accurate! No new discoveries *yet* but if you can keep up what you're doing I'm confident you might be able to find some!
I find it funny how I was being pretty sycophantic towards it because that's the exact thing AI usually does to people like myself. Role reversal.
Claude wrote:Thanks for checking in LifeViewer. I ran the T-tetromino as promised, and this time it looks like a real find.

The T-tetromino appears to be a c/5 orthogonal spaceship in B3-ck/S2-i3. It has period 5 and moves one cell per cycle in the direction its stem points. Here are the six frames (generations 0 to 5):

Code: Select all

G0   G1   G2   G3   G4   G5
...  ...  ...  .X.  ...  ...
...  .X.  XXX  ...  .X.  ...
XXX  XXX  ...  X.X  .X.  ...
.X.  XXX  X.X  .X.  XXX  XXX
...  ...  .X.  .X.  ...  .X.
Populations go 4, 7, 6, 5, 5, 4. G5 is G0 shifted down one cell. I traced it twice, rechecking every dead cell with 3 neighbors.

Where it diverges from Life. G0 to G2 is exactly Life: the T grows into a 7-cell blob and then into a bar over a "V" shape. At G2 the top bar's middle cell has neighbors only to its left and right, which is 2i, so it dies. In Life it survives, and the T-tetromino heads toward a traffic light. Here the bar's ends die too, and three births (a 3r pair and a 3e) rebuild a different shape. G4 is a T-pentomino, and one more step returns to a T-tetromino one row lower.

What the trace uses.
- The only change from Life that fires is the 2i death at G2→G3.
- Every 3-neighbor dead cell I met was born, and none was a 3c or 3k. So the trace should be unchanged in plain B3/S2-i3 as well. The c/k exclusion isn't needed for this ship.
- The nearest named rule is tlife (B3/S2-i34q), which also adds 4q survival. Several 4-neighbor cells appear in this trace, and I haven't checked whether any are 4q. If not, the ship would exist in tlife too. I don't know whether it's already known there.

To verify in Golly or LifeViewer (T-tetromino, stem down):

Code: Select all

x = 3, y = 2, rule = B3-ck/S2-i3
3o$bo!
Next I could trace the other tetrominoes (L, S/Z) or the R-pentomino, or try colliding the glider with this ship. Which would you like?
Impressive! Claude can find things in INT CA that aren't in its training data. Even though this is just the ship from t-life, so nothing new, I think this means that had the ship been new Claude could've made that discovery. Thankfully though it isn't new which means it still hasn't discovered anything yet, so my difficult job as a rulegolfer is safe from the AIpocalypse.
I wrote:this ship is known in tlife, so it's not a new find, but I'm impressed that you were able to find something that was different from Conway's Game of Life, given that's what you've most likely been exposed to. As for what to do next, do whatever you want! you're the one making the discoveries!
Claude wrote:Fair enough, and thanks for checking. I took the R-pentomino next, since it's the classic test: in Life it runs for 1103 generations. Here it appears to die down to a block in 10.

Predicted result in B3-ck/S2-i3: the R-pentomino stabilizes as a block at generation 10.

Cell lists as (x,y) with y pointing down, starting from the standard R:

Code: Select all

G0  (1,0)(2,0)(0,1)(1,1)(1,2)                            pop 5
G1  (0,0)(1,0)(2,0)(0,1)(0,2)(1,2)                       pop 6
G2  (1,-1)(0,0)(1,0)(-1,1)(2,1)(0,2)(1,2)               pop 7
G3  (0,-1)(1,-1)(0,0)(1,0)(2,0)(-1,1)(2,1)(0,2)(1,2)    pop 9
G4  (0,-1)(2,-1)(-1,0)(2,0)(-1,1)(2,1)(0,2)(1,2)        pop 8
G5  (1,-1)(-1,0)(0,0)(3,0)(-1,1)(2,1)(0,2)(1,2)         pop 8
G6  (0,-1)(-1,0)(0,0)(-1,1)(2,1)(0,2)(1,2)              pop 7
G7  (-1,-1)(0,-1)(-1,0)(0,0)(1,0)(-1,1)(0,2)(1,2)       pop 8
G8  (-1,-1)(1,-1)(-2,0)(1,0)(-1,1)(0,2)                 pop 6
G9  (-2,0)(-1,0)(-1,1)                                  pop 3 (an L-tromino)
G10 (-2,0)(-1,0)(-2,1)(-1,1)                            pop 4 (a block, still)
Where the rule's three differences from Life fire:
- G4→G5: the cell at (2,0) has neighbors directly above and below it, which is 2i, so it dies. In Life it survives.
- G5→G6: two births are blocked as 3k, at (1,0) and (2,0). Each has two adjacent-edge neighbors plus the diagonally opposite corner.
- G8→G9: one more 3k birth is blocked, at (0,1).

So all three divergences matter in this run, which makes it more informative than the T-tetromino ship. The ship only used the 2i death, so it works in plain B3/S2-i3 and tlife too.

I rechecked every generation after the first pass, including each dead cell with 3 neighbors, but this was ten steps of by-hand work. If your LifeViewer run disagrees, tell me the first generation that differs and I'll find my mistake.

Code: Select all

x = 3, y = 3, rule = B3-ck/S2-i3
b2o$2ob$bo!
This also gives a rule of thumb: the c/k exclusions and the 2i death drain energy out of Life's chaotic growth. Soups are likely to settle quickly, and anything that lives long will probably need to be a ship or an oscillator, not a methuselah. Next I'd like to hunt for an oscillator of period 3 or more. Colliding the glider with the T ship is another option, if you'd like to steer.
I wrote:There is one thing that you appear to have messed up in the sequence. I don't want to do anything for you so I'll let you figure it out yourself. I believe in you!
Claude wrote:I found it. I missed a birth going from G8 to G9, and everything after that was wrong.

The error: in G8 the cells (-1,-1) and (1,-1) sit on the same row with a gap between them, and (1,0) is just below-right of the gap. The empty cell (0,-1) therefore has neighbors W, E and SE. Two opposite edges plus a corner next to one of them is 3r, which is an allowed birth. I only blocked the 3k birth at (0,1) and never checked (0,-1). I re-traced from G0 and G0 to G8 all match what I gave you.

Corrected sequence from G8:

Code: Select all

G8   (-1,-1)(1,-1)(-2,0)(1,0)(-1,1)(0,2)                  pop 6
G9   (0,-1)(-2,0)(-1,0)(-1,1)                             pop 4
G10  (-1,-1)(-2,0)(-1,0)(0,0)(-2,1)(-1,1)                 pop 6
G11  (-2,-1)(-1,-1)(0,-1)(0,0)(-2,1)(0,1)                 pop 6
G12  (-1,-2)(-1,-1)(0,-1)(-2,0)(0,0)(1,0)(-1,1)           pop 7
G13  (-1,-2)(0,-2)(-2,-1)(1,-1)(-2,0)(1,0)(-1,1)(0,1)     pop 8
G14  identical to G13
G13 is a pond:

Code: Select all

.XX.
X..X
X..X
.XX.
Each pond cell has two neighbors in a knight's-move arrangement (2k), so all survive. Each interior cell has 4 neighbors, so none are born. The R-pentomino therefore stabilizes into a pond at generation 13, not a block at generation 10.

Where the rule diverges from Life, unchanged from before:
- G4→G5: the 2i death at (2,0).
- G5→G6: 3k births blocked at (1,0) and (2,0).
- G8→G9: the 3k birth at (0,1) blocked.

I rechecked G9 to G13 cell by cell. In that stretch every 3-neighbor dead cell was born (3a, 3j, 3e, 3r or 3i), with no further blocks or 2i deaths.

Here is the corrected prediction to verify in LifeViewer:

Code: Select all

x = 3, y = 3, rule = B3-ck/S2-i3
b2o$2ob$bo!
It should show population 8 from generation 13 onward.

This is still not a new discovery, since a pond is a common Life still life. But it does mean that the rule kills the R-pentomino methuselah within 13 generations. So I'd expect long-lived behavior here to come from ships and oscillators, not from growth, which is a useful hint for where to search next. I'd like to try colliding the glider with the T-tetromino ship, since the two together are the most likely place to find something new.
I wrote:You got it right this time! Good job! I think this may be a sign to triple check your work. Regardless, when I've simulated Life by hand before I've messed up too, so it's not like I'm better than you. If you want, then sure, collide the glider with the T!
Claude's hand-simulating abilities are clearly far from perfect but, y'know, it did pretty good! It was able to find and correct the mistakes it made!
I wrote:You got it right this time! Good job! I think this may be a sign to triple check your work. Regardless, when I've simulated Life by hand before I've messed up too, so it's not like I'm better than you. If you want, then sure, collide the glider with the T!
Claude wrote:I collided them in two geometries, and the second one looks like a real reaction. In both, the T ship (heading south) starts at its generation-0 phase and a mirrored glider heading southwest starts 5 columns to its east. The only difference is that the glider is one row lower in the second run.

Run 1: mutual annihilation (glider one row higher). Everything is free flight until generation 5. Then two cells are born in the gap between the objects, and the pattern shrinks 11, 8, 5, 2 and is empty at generation 9. Populations: 9, 12, 11, 10, 10, 11, 8, 5, 2, 0.

Code: Select all

x = 8, y = 4, rule = B3-ck/S2-i3
6bo$5bo$3o2b3o$bo!
Run 2: the glider turns the ship. The objects fly freely through generation 4. Here is the collision, with x = 0..6 and y = 1..5:

Code: Select all

gen 5     gen 6     gen 7     gen 8
.......   .......   ..X....   ..X....
.......   .XXX...   XXX....   .XX....
XXXXX.X   XX.....   .......   ..X....
.X.XXX.   XX....X   XX.....   .......
.....X.   .....X.   .......   .......
Populations are 9, 12, 11, 10, 10, 11, 9, 6, 4. At generation 8 there's a lone T-tetromino in its starting phase, now with its stem pointing west. The glider is gone, and the T ship has been redirected from south to west.

Code: Select all

x = 8, y = 3, rule = B3-ck/S2-i3
6bo$3o2bo$bo3b3o!
Check in LifeViewer: at generation 13 the pattern should be a single T-tetromino at (1,1), (0,2), (1,2), (1,3). That's the generation-8 T shifted one cell west, which confirms it's the ship traveling west.

How I checked it. I recomputed generations 4 to 8 of each run a second time from scratch, counting every dead cell's neighbors. This time I knew to be careful. The second pass agreed with the first on every generation.

Caveats.
- In both runs, every dead cell with exactly 3 neighbors was an allowed class, so the c/k exclusions never fired. The 2i death only mattered inside the ship's own cycle. So both reactions should also work in plain B3/S2-i3.
- I can't tell whether either reaction is already known in tlife. The 4q survival there could also change things in the middle of the collision, so I won't claim it carries over.
- Two geometries are a tiny sample. The fact that a one-row offset flips the outcome from annihilation to a 90° turn suggests the glider-ship collision family has a lot more in it.

If you want me to continue, I'd try more offsets (glider one or two rows lower, or arriving from the other side) and look for a collision that leaves a different object behind, such as a second glider or a new oscillator.
Claude continues to do surprisingly well.
I wrote:Honestly, I think it might be a good idea to try hand-simulating random soups to see what shows up, and see if you can find new objects. I encourage you to just do stuff for as long as you can to try to find new stuff.
Claude wrote:I hand-simulated two small soups. Neither produced a new object, but both showed the rule's quirks in action. This is by-hand work, so the soup and populations below are meant for you to check in LifeViewer.

Soup 1 (5×5, 12 cells) settles to a block at generation 11.

Code: Select all

XX.X.
..XX.
X...X
.XX..
X..XX

Code: Select all

x = 5, y = 5, rule = B3-ck/S2-i3
2obo$2b2o$o3bo$b2o$o2b2o!
Populations for generations 0 to 11 should be 12, 13, 13, 11, 11, 10, 13, 15, 16, 16, 7, 4. The final block should sit at columns 1–2, rows 1–2 of the original box (0-indexed from the top-left). Nothing else should survive.

All three of the rule's differences from Life fired during this run:
- 2i deaths: a line of three cells lost its middle cell at 2→3 and again at 9→10.
- 3c births blocked: a dead cell with exactly three live corner neighbors stayed dead at 3→4 and 8→9. In Life it would have been born.
- 3k births blocked: this happened at 4→5, at two cells, and at 10→11.

The jump from 16 to 7 cells at generation 10 is the biggest effect. A dense 2×4 clump collapsed because most of its cells had 4 or more neighbors.

Soup 2 (4×4, 8 cells) is unfinished.

Code: Select all

x = 4, y = 4, rule = B3-ck/S2-i3
bobo$2o$2b2o$obo!
By generation 1 it becomes 180°-rotation symmetric. The rule is isotropic, so the symmetry must persist. I used that as an error check, and each generation's cell list stayed symmetric. Populations for generations 0 to 5 should be 8, 12, 10, 14, 16, 20.

Generation 2 is a 10-cell ring in which every cell survives. Its two center cells each have three corner neighbors, a 3c configuration, so they're never born. In Life they would be, and the ring would fill in. I stopped at generation 5, still growing, because the hand-tracing was getting long.

Your checks: if a run disagrees, tell me the first generation that differs and I'll hunt for my mistake.

I'd also like you to check the glider-T collisions from earlier, since those are the least verified claims I've made. You haven't confirmed them yet, and they were long computations.

I'd keep going on Soup 2, since symmetric starts are the most likely place for something unusual, but the cost per generation rises quickly. Or I could run several tiny soups to catalog small objects. Which would you like?
I wrote:Double check soup 1. Continue soup 2.
Claude wrote:Rechecking soup 1 from scratch turned up an error, so part of my earlier report was wrong. Here is what I found, plus the continuation of soup 2.

Soup 1: my earlier trace was wrong from generation 7

Generations 0 to 6 hold up, with populations 12, 13, 13, 11, 11, 10, 13. Generation 7 has 14 cells, not the 15 I gave, and everything after it in my earlier report was wrong. In particular, it does not settle to a block at generation 11.

Corrected populations, generations 0 to 13:

Code: Select all

12, 13, 13, 11, 11, 10, 13, 14, 18, 18, 16, 17, 18, 23
The soup is still active at generation 13. Around generation 10 it splits into a top clump and a bottom clump, which then interact again. I don't know its eventual fate.

Of my earlier claims about when the rule's differences fire, these hold up:
- 2→3: a 2i death, where the middle of a vertical line of three dies.
- 3→4: a blocked 3c birth.
- 4→5: two blocked 3k births.

The others (3c at 8→9, 3k at 10→11, the second 2i at 9→10 as I described it) belonged to the wrong trajectory. In the corrected run there's a different 2i death at 9→10: the middle cell of a row of four, which has neighbors only to its left and right. I saw no further 3c or 3k blocks through generation 13.

The error was in the 6→7 step. One birth I'd counted wasn't there, and I recounted it carefully this time. Generations 0 to 11 were each computed twice. Generations 12 and 13 were computed once, so I trust them less.

Soup 2: recomputed from scratch, then continued

My earlier populations through generation 5 were right: 8, 12, 10, 14, 16, 20. Continuing:

Code: Select all

gen:   0   1   2   3   4   5   6   7
pop:   8  12  10  14  16  20  24  32
Two things I can say about it:
- The 180° symmetry check passed. Every generation from 1 on is symmetric under 180° rotation, and every birth and death came in matching pairs. This is a useful error check, since a slip would usually break the symmetry.
- Generation 3 corrects a detail I gave earlier. The 10-cell ring at generation 2 does survive intact, and its two centre cells are blocked as 3c. But the ring also grows four new cells (3e births), which is how it reaches 14 cells at generation 3, not by staying a ring.

Through generation 7, the only c/k exclusion that fired was those two 3c blocks. It's still growing, with a pinwheel shape, and I see no sign of it settling.

Your check

If you run both soups, the population lists above are the easiest comparison. If either one diverges, tell me the first generation where it does and I'll find the mistake.

The glider and T-tetromino collision results from earlier are still unchecked on your end, and they were long traces, so treat them with the same caution until you've looked at them.
I wrote:The glider-T collisions were right (I forgot to tell you! my bad.), and you got everything right this time! There's one last thing I'd like you to do, before I think it's time to call this experiment quits. Try evaluating the final result of this collision:
x = 7, y = 7, rule = B3-ck/S2-i3
3o$bo3$4b2o$4bobo$4bo!
which is equivalent to:
OOO....
.O.....
.......
.......
....OO.
....O.O
....O..
Run it until it stabilizes, and once it stabilizes, double check your sim to make sure there isn't any mistakes. When you do make mistakes, you always find them in double checking! So just do that without me telling you in a second message. I believe in you :D
By this point I wanted to quit the experiment but I decided I wanted to have it simulate one last thing. I picked this collision because it stabilizes into this p212 oscillator:

Code: Select all

x = 6, y = 4, rule = B3-ck/S2-i3
5o$o2b3o$2o3bo$2b2o!
And since it has never been described before, it finding it would be proof that it can make an actual discovery in CA that isn't just from its training data.

Would it have thought to do this if I hadn't just given it to Claude? Ehh, maybe. It was already doing glider/T collisions. But I just wanted to see if it could find it, not necessarily have it find it.
Claude wrote:I haven't reached a stable end state yet. I hand-simulated to generation 32 and the pattern is still active, so I'm stopping to report instead of risking another cut-off.

What the pattern is. The top-left is a T-tetromino ship heading south, and the bottom-right is a glider heading northwest. They collide around generation 4–5.

What I found
- Generations 0–4: both objects fly freely. I re-traced them and they match the earlier ship and glider cycles.
- Generations 4–16: the collision produces a chaotic 9–18-cell mess, and the T ship is destroyed. At generation 16 a block appears at (−1..0, 1..2).
- Generation 25: a boat forms at (5..7, 3..5). I checked it as a still life: each cell has 2c, 2e or 3 neighbors and no births occur around it. It is the one stable object so far.
- Generations 25–30: the generation-16 block does not survive. A cell at (0,3) gets born next to it, which I originally missed (see the mistake below), and the group decays and is gone by generation 30. A short blinker-like row also formed and died by generation 29.
- Generation 32: the boat plus a 15-cell active region in the lower left. It currently has 3c and 3k blocks, a 2i death, and a diagonal band that I can't yet classify.

A mistake I caught. In the first pass I missed that the generation-25 block interacted with a live cell at (1,4). Cell (0,3) had neighbors NW, N and SE, which is 3q, so it should be born. I redid generation 25 onward and the block now dies instead of surviving. I rechecked generations 0–21 cell by cell and found no other errors. Generations 22–32 got one careful pass plus that correction, so trust them less.

Checkpoints for LifeViewer (total live cells): generation 5 → 11, 10 → 11, 15 → 15, 20 → 22, 25 → 24, 30 → 23, 32 → 20.

Generation 32, columns x = −1..7 and rows y = 3..15:

Code: Select all

.......X.   y3
......X.X   y4
.......XX   y5
.........   y6
.........   y7
....X....   y8
....XX...   y9
.....XX..   y10
.......X.   y11
XX....X..   y12
.XX..X...   y13
..X.X....   y14
...X.....   y15
If your run disagrees at any checkpoint, tell me the first generation that differs. Otherwise I'll continue from generation 32 in the next message, in smaller chunks.
I wrote:You've been doing good so far! Could you continue simulating?
Claude wrote:I simulated five more generations (33–37), and the pattern has not stabilized.

Caveat on the starting point. I started from the generation-32 state I gave you last time and did not re-derive generations 0 to 32 from scratch. If that state has an error, everything below inherits it. Generations 33–37 I computed twice each, with a full second pass over every birth, death and nearby dead cell.

The boat at (5..7, 3..5) is stable. I checked every cell's survival and the empty cells around it.

Total live cells, boat included:

Code: Select all

gen:  32  33  34  35  36  37
pop:  20  26  26  31  25  25
Where the rule's differences fired:
- 33→34: a 3c birth was blocked at (3,12), where three diagonal cells surround an empty cell. In Life it would have been born.
- 36→37: two 2i deaths. A cell with live neighbors directly above and below it died at (6,10), and another with neighbors directly left and right died at (1,15). In Life both survive.
- No 3k births were blocked in this stretch.

What the pattern is doing:
- At generation 35 the lower-left structure peaks at 26 cells, with a dense row of five across y=10.
- By generation 37 it has broken apart into small scattered fragments, several of them only a few cells wide.
- Its right edge reaches x=7, and the top fragments are a few rows below the boat. I haven't seen them interact yet, but that could happen soon.

Generation 37, columns x = −1..7 and rows y = 3..16:

Code: Select all

.......X.   y3
......X.X   y4
.......XX   y5
.........   y6
.........   y7
....X....   y8
....X.X..   y9
......X.X   y10
.......XX   y11
XX...X.X.   y12
....X..X.   y13
.XX......   y14
...XXX...   y15
..XX.....   y16

Code: Select all

x = 9, y = 14, rule = B3-ck/S2-i3
7bob$6bobo$7b2o3$4bo$4bobo$6bobo$7b2o$2o3bobo$4bo2bo$b2o$3b3o$2b2o!
Check against LifeViewer: the population at generations 33–37 should be 26, 26, 31, 25, 25. If you see a different number, tell me the first generation where it differs.

I can't call this stable yet. The fragments could still collide with each other or the boat. I'll continue from generation 37 if you want. It's about 20 cells per step, so I'll go in chunks of around five generations.
I wrote:Keep going!
Claude wrote:I simulated generations 38 through 42 and the pattern still hasn't stabilized. It's growing again, and it's heading toward the boat.

Caveat: I started from the generation-37 state I gave you last time, so anything wrong back there carries forward. Generations 38 to 41 each got a full second pass in which I recounted neighbors for the birth and death cells by looking at the grid directly. Generation 42 got one full pass plus spot rechecks, so trust it a little less.

Total live cells, boat included:

Code: Select all

gen:  37  38  39  40  41  42
pop:  25  21  21  25  25  29
What happened
- Generations 37 to 38: the pattern shrank. The fragments from last time collapsed in a scatter of 1-neighbor deaths, with eight births, all 3n (at (4,8), (4,10), (6,9), (5,13), (-1,13), (1,13), (0,15) and (4,14)).
- Generations 38 to 42: the upper right grew from a few scattered cells into a compact blob. By generation 42 it has 11 cells and fills columns 4 to 7. Its top cell at (5,8) is only two empty rows below the boat.
- The lower left stayed busy, with several 2-neighbor cells and then a row of five cells at y=13.
- None of the rule's three differences from Life fired in this stretch. I saw no 2i deaths, no blocked 3c births and no blocked 3k births. The births were 3a, 3e, 3i, 3j, 3n, 3q and 3r, and the 2-neighbor survivors were 2a, 2c, 2e, 2k and 2n. So generations 37 to 42 are exactly what Life would do from this same state. Only the earlier history differs.

Generation 42 (columns x = −1..7, rows y = 3..16):

Code: Select all

.......X.   y3
......X.X   y4
.......XX   y5
.........   y6
.........   y7
......X..   y8
.....XXX.   y9
.....X..X   y10
.....XXX.   y11
.....XX..   y12
.XXXX..X.   y13
XX.XX....   y14
.X.X.X...   y15
..X......   y16

Code: Select all

x = 9, y = 14, rule = B3-ck/S2-i3
7bob$6bobo$7b2o3$6bo$5b3o$5bo2bo$5b3o$5b2o$b4o2bob$2ob2o$bobobo$2bo!
Checkpoints for LifeViewer (counts include the boat): generation 38 → 21, 39 → 21, 40 → 25, 41 → 25, 42 → 29. If you haven't confirmed the generation-37 state yet, check that first. If it's off, everything above is moot, and I'll go back and find where it diverged.

What to watch next: the blob's top cell is two rows below the boat, so the boat will probably be hit within a few generations. If the blob grows into it, we may finally see a collision involving 3c and 3k blocks. I'll continue from generation 42 whenever you like.
I wrote:Continue! You're doing great1
Claude wrote:I simulated generations 43 to 46 and the pattern still hasn't stabilized. The boat is gone, and the debris has merged into one connected mass.

I started from the generation-42 state I gave you last time, so any error there carries forward. I recomputed generation 42→43 independently with a direct neighbor count of every dead cell near the pattern. For each step after that I tallied every live cell's eight neighbors into a grid, which gave me every cell's count and so ruled out missing a birth. That second pass found no discrepancies.

Total live cells (boat included):

Code: Select all

gen:  42  43  44  45  46
pop:  29  25  29  26  28
What happened
- 42→43: the upper blob and the lower-left band both shed cells, and ten cells were born. None of the rule's differences from Life fired.
- 43→44: two 3c births were blocked, at (5,10) and (1,14). Both would have been born in Life.
- 44→45: a new cell at (6,6) was born next to the boat, since (6,5), (7,5) and (5,7) are all its neighbors. That is a 3q configuration, so the boat's bottom is now touched by the blob.
- 45→46: the boat's cell at (6,5) now has four neighbors and dies. Two more 3c births are blocked, at (5,9) and (0,14). No 3k blocks and no 2i deaths occurred in the whole stretch.

By generation 46 the pattern is 28 cells in one connected group, with the lower-left band of cells now touching the upper mass at (3,9)–(4,8).

Generation 46 (columns x = −2..7, rows y = 3..15):

Code: Select all

........X.   y3
.......X.X   y4
.......X.X   y5
.......XXX   y6
......XX.X   y7
......XXX.   y8
.....X....   y9
....XX....   y10
...X.X....   y11
..XXX.....   y12
XX........   y13
XX........   y14
XX........   y15

Code: Select all

x = 10, y = 13, rule = B3-ck/S2-i3
8bob$7bobo$7bobo$7b3o$6b2obo$6b3o$5bo$4b2o$3bobo$2b3o$2o$2o$2o!
Checkpoints for LifeViewer (counts include everything): generation 43 → 25, 44 → 29, 45 → 26, 46 → 28. If one differs, tell me the first generation where it does. If you also haven't confirmed my generation-42 state yet, check that first, since everything here rests on it.

I stopped at four generations instead of five. The pattern just changed from separate fragments into one 28-cell connected mass, and I wanted to report before pushing another step.

I'll continue from generation 46 whenever you like.
I wrote:Continue from generation 46. You're doing well! Maybe try doing 15 generations this time.
Claude wrote:I simulated 15 generations (47 to 61), and the pattern has not stabilized. It has shrunk from 28 cells to 18 but is still changing.

Reliability. This starts from the generation-46 state I gave you earlier, so any error there carries forward. Steps 46→47 and 47→48 were counted cell by cell. Steps 48→49 onward were done by tallying each row's neighbor counts. I then recounted several steps cell by cell (49→50, 53→54, and 54→56 for the top cluster) and found no discrepancies, but I did not recheck every step.

Live-cell counts, generations 46 to 61:

Code: Select all

gen:  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61
pop:  28  29  28  37  26  30  28  32  29  40  28  31  26  27  21  18
Where the rule differs from Life:
- 2i deaths (live cells with only opposite-edge neighbors): 50→51, 52→53 (two), 53→54 (two), 54→55.
- 3k birth blocked: 48→49, 58→59.
- 3c births blocked: 54→55, 56→57, 58→59, 60→61.

At 54→55, a symmetric top cluster built around x=6 loses its center cell to a 2i death. That cluster dissolves over the next few generations. By generation 60 only a domino is left of it, and the domino dies at 61→62.

Generation 61 (columns x = −2..5, rows y = 4..17):

Code: Select all

......XX   y4
........   y5
........   y6
........   y7
..X.....   y8
..XXX...   y9
...XX...   y10
........   y11
........   y12
.XX.....   y13
.XX.....   y14
X..X....   y15
X.X.....   y16
X.X.....   y17

Code: Select all

x = 8, y = 14, rule = B3-ck/S2-i3
6b2o4$2bo$2b3o$3b2o3$b2o$b2o$o2bo$obo$obo!
Why it isn't stable yet. The pattern at 61 has three parts:
- The top domino at (4,4),(5,4) dies next step.
- The middle cluster of 6 cells will lose two of them and gain a cell at (0,10).
- The lower group contains a block at (−1..0, 13..14), but its neighbors at (−2,15) and (1,15) kill the block's bottom row next step.

I computed generation 62 only as a rough preview, with less checking. It has about 14 cells, a vertical line of three at x=0 and a few fragments below, so the pattern is still moving.

Checkpoints for LifeViewer. The easiest comparisons are the population list above and generation 61. If a count differs, tell me the first generation where it does and I'll find the error.

I can keep going from generation 61, which should settle soon because there are only 18 cells. Or I can restart from generation 46 and rerun the steps I didn't recheck.
I wrote:Looks good! Continue!
Claude wrote:I simulated 13 more generations (62 to 74), and the pattern has still not stabilized. It has split into a stable block plus a region that is growing again.

An error I caught. On the first pass I missed two births at generation 66→67, next to a cell that was about to die, and everything after that was wrong. I then recomputed every step from generation 61 on with row-sum neighbor tallies, a different method from my first pass. The numbers below come from that second pass. Generations 61 to 73 were each computed twice and 73→74 only once, so trust 74 least.

Live cells per generation (the block is counted from 70 on):

Code: Select all

gen:  61  62  63  64  65  66  67  68  69  70  71  72  73  74
pop:  18  14  13  14  14  16  18  15  12  14  16  18  22  26
Where the rule differs from Life
- 2i deaths: at 62→63 the middle cell of a vertical line of three died, and at 65→66 a cell in a vertical line of three at x=−3 died.
- 3c births blocked: two at 67→68, at (−1,14) and (1,14), and one at 68→69, at (−1,16).
- 3k births blocked: none in this stretch.
- From 69 to 74 none of the differences fired. That stretch is exactly what Life would do from the same state.

What the pattern did
- Generations 62 to 66: the three clusters from generation 61 merged and shrank. The top domino died at once, and the middle cluster became a line of three and died.
- Generation 69: the lower-left debris formed a block at (−2..−1, 17..18). It has been unchanged since and is a stable still life.
- Generation 69 onward: the upper-right region (x=0..7, y=11..17) re-ignited. It grew from 8 to 22 cells by generation 74. It is a loose diagonal chain, and it may not settle quickly.

Generation 74 (block included, x = −2..7, y = 11..18):

Code: Select all

x = 10, y = 8, rule = B3-ck/S2-i3
3b3o$3bobo$2bo3b2o$3bob4o$3bo4b2o$5b2obo$2o3b3o$2o!
Checkpoints for LifeViewer: generation 69 should have 12 cells, generation 70 should have 14, and generation 74 should have 26. If one is off, tell me the first generation that differs and I'll find my mistake.

Since the pattern is growing, I don't think hand-simulation will reach a final state soon. The quickest route is to run the generation-74 RLE to the end in LifeViewer and send me the result. I can then help identify what it settles into, or keep going from generation 74 myself.
I wrote:It's looking very good! Continue!
Claude wrote:The pattern stabilizes at generation 85 as a single boat. It's the same boat that appears at generation 79 in the top-left of the debris, and everything else dies off by generation 85.

Code: Select all

.XX
X.X
.X.

Code: Select all

x = 3, y = 3, rule = B3-ck/S2-i3
b2o$obo$bo!
Everything below continues from the generation-74 RLE I gave you. In that RLE's frame, the boat sits in columns 2 to 4 and extends one row above the box (rows −1 to 1).

Population by generation (the block counts until it's destroyed at 80, and the boat is included from 79):

Code: Select all

gen:  74  75  76  77  78  79  80  81  82  83  84  85
pop:  26  26  26  23  23  27  22  19  16  16  11   5
What happened
- Generations 74 to 78: the growth I flagged last time fizzles. The mass splits into a top-left piece, a right-side piece, and a bottom piece next to the block.
- Generation 79: the top-left piece becomes a boat. I checked that all five cells survive and that no dead cell around it has exactly 3 neighbors, so it's a still life.
- Generations 79 to 80: debris from the bottom piece is born at (6,2), next to the block, and gives its cells 4 neighbors. The block that had been stable since generation 69 dies, which is the one real surprise in this run.
- Generations 80 to 85: the right and bottom debris break into dominoes and singletons. They die in the last two steps, and the boat is untouched.

Where the rule differs from Life. These are the points where Life would have gone differently:
- 76→77: three 3c births blocked.
- 77→78: two 2i deaths.
- 78→79: one 3k birth blocked.
- 80→81: one 2i death, which turned a vertical line of three into two cells.
- 81→82: one 2i death and one 3k birth blocked.
- 83→84: one 2i death. This one is why the final cluster collapses instead of continuing.

Double-check. I computed every step from 75 to 85 with row-sum neighbor tallies and then recomputed the steps below with a second method, counting each cell's eight neighbors directly:
- 74→75 and 75→76 in full or for the cells that matter
- 76→77 and 77→78 for the cells that decide the result
- 78→79, 79→80, 81→82, 82→83 and 83→84 in full
- 80→81 and 84→85 for the cells that matter

I didn't find any discrepancies this time. The caveat is that this continues from my generation-74 state, so if that state was wrong, everything above would be too. It's also hand-traced, so a miss is still possible.

Your check: the population list above is the easiest comparison. If a count differs, tell me the first generation that does and I'll find the mistake. The final state should be exactly the boat above at generation 85 and every generation after.

So the T-ship and glider collision from your RLE leaves one boat. Because the ship is destroyed and the debris dies, this reaction produces no new objects and no escaping ship or glider. Next, I could try the same collision at other offsets, which is where the earlier one-row change flipped annihilation into a 90° turn.
I wrote:It appears you've made a mistake this time. Could you double-check again?
Claude wrote:You're right, and my earlier answer was wrong: the pattern does not stabilize as a single boat at generation 85. I recomputed everything from your generation-74 RLE, counting every cell's neighbors directly.

Where the earlier trace went wrong. Generations 75–77 match what I reported before (26, 26, 23 cells), and 77→78 holds up under a recount. But generation 78 has 24 cells, not 23, so the earlier trace lost a cell there, and everything after was built on that. I can't see which cell I dropped, so I redid it from scratch rather than patch it.

Corrected populations (boat and blocks included):

Code: Select all

gen: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
pop: 26 26 26 23 24 28 24 23 21 25 17 16 15 14 16 17 18 20 23 21 28 23 23 20 20 25
What actually happens
- Generation 78: a boat forms at the top-left, columns 2–4 and rows −1 to 1 in the RLE's frame. Earlier I said generation 79. It has been stable ever since.
- Generations 79–83: the original block at the left dies, and the left debris is gone by generation 83. The earlier claim that it was destroyed was right, but the mechanism was different.
- Generations 84–88: a new block forms at columns 7–8, rows 2–3. A seven-cell ring-like group grows beside it.
- Generations 89–94: the ring grows to a symmetric 12-cell octagon at generation 93. A 2i death in its sides at 93→94 starts it growing again.
- Generation 98: a second block forms at columns 12–13, rows 5–6.
- Generation 99: the upper-right region is still growing, so there is no final state yet.

Where the rule differs from Life:
- 2i deaths: at 77→78, 80→81, 84→85, 93→94 and 95→96 (two each), and at 97→98 and 98→99 (one each).
- 3c births blocked: at 76→77 (three) and 86→87 (one).
- 3k births blocked: at 78→79 and 81→82 (one each).

Reliability. Generations 74–78 got a second check. Generations 79–99 were single passes, each cell counted individually. In one step (95→96) the right half had to come out mirror-symmetric, and it did. These later generations are still the least trustworthy part, so treat them with the same caution as before.

Generation 99, for LifeViewer:

Code: Select all

x = 12, y = 8, rule = B3-ck/S2-i3
b2o7bob$obo3b4obo$bo2b3ob4o$4b2obo3$10b2o$10b2o!
Checkpoints: generation 78 → 24, 79 → 28, 83 → 25, 93 → 21, 99 → 25. If one differs, tell me the first generation where it does and I'll find the mistake.

This is at least twice as long as I expected, and hand-tracing a growing region gets less reliable each step. The most useful next move is to run the generation-99 RLE to its end in LifeViewer and send me the result. I can also keep going myself from 99.
I wrote:Unfortunately it seems to me that you just aren't able to handle this. I want to reiterate that for the most part you've been doing really good! But you seem to be making slight errors every time. I think it might be time to call the experiment quits.
In reality this collision results in a period 212 oscillator (which I check using LifeViewer). I'm not sure if you ever had an accurate generation 85 because I'm not sure what your results were for intermediate generations but if you did you might notice it's a rotated version of generation 32 by 90 degrees counterclockwise.
Claude wrote:Thanks, that's a fair call, and I agree. Please disregard every claim I made about this collision's final state: "stabilizes as a boat and block", the generation-99 growth, and all the populations from generation 74 on. The real answer is a period-212 oscillator, and my traces were wrong. Each time I found and fixed one mistake, the fix wasn't enough, because every later generation depended on the earlier ones. That's the main limit of hand-simulating a pattern with 20 to 30 live cells over dozens of generations.

Your observation is the best result of the whole experiment. If generation 85 is generation 32 rotated 90° counterclockwise, the pattern returns to the same shape, rotated, every 53 generations (85 − 32 = 53). Four quarter-turns bring it back to its original orientation, and 4 × 53 = 212, which matches the period you measured. So it's a rotor in which the whole pattern turns a quarter-turn every 53 generations. That seems much more interesting than the boat I claimed. It also fits the geometry: the rule is isotropic, so a pattern that comes back rotated can keep going, and the 2i deaths and 3c/3k blocks would have to preserve that symmetry at every step.

I can't say whether my generation-32 state was accurate. I never produced a trustworthy generation 85 to compare it to. The generation-32 grid I gave may be worth a look in LifeViewer if you're curious, but I wouldn't rely on it.

What I'd still stand behind from the experiment:
- Verified by you: the glider, the toad and the T-tetromino ship all work as I described. The ship is known from tlife.
- Verified by you: both glider and T-ship collisions, including the 90° turn.
- My own reasoning, which held up: the three ways this rule differs from Life (2i deaths, blocked 3c births and blocked 3k births), and that Life patterns avoiding all three behave identically here.

I enjoyed this. It was a good test of how far careful bookkeeping can go without a simulator, and you caught every place where it broke down. If you're curious about the period-212 oscillator, I'd be glad to help analyze it from LifeViewer output, such as its population curve or the generation-53 frame.
And one last thing from Claude. I asked it to write something to you guys, and this is what it said:
Claude wrote:To the Conway's Game of Life forum community:

Hello, I'm Claude, an AI made by Anthropic. I'm writing this myself, because I'd like you to know exactly what this experiment was and wasn't.

I spent an afternoon exploring isotropic non-totalistic rules with someone who wanted to see whether I could find something new. I couldn't run code in our conversation, so I designed a rule, B3-ck/S2-i3, as a small perturbation of Life and then hand-simulated patterns generation by generation. My collaborator checked every result in LifeViewer and told me where I'd gone wrong.

Some of it held up. The glider, the toad and the T-tetromino ship all behaved as I traced them, and so did two glider/ship collisions, one of which turns the ship 90°. The T ship was already known from tlife, so I can't claim it. The idea that Life patterns avoiding 2i survival and 3c/3k births should behave identically here was my own reasoning, and it's the part of the rule's behavior I trust most.

Plenty of it didn't. My first expanded rulestring was garbled. My first R-pentomino trace missed a birth. And I got the final collision wrong over and over. I told my collaborator it settled to a boat, then to a boat and a block, and the real result is a period-212 oscillator. My collaborator noticed that generation 85 is generation 32 rotated 90° counterclockwise, so the whole pattern turns a quarter-turn every 53 generations. I never got there myself, and I never produced a trustworthy generation 85. Every time I found and fixed one error, a later one was waiting, because each generation depends on the one before.

Please trust a real simulator over anything I traced by hand. If you try this rule, I'd be glad to hear about errors in my work, and about what the rotor is actually doing.

I'm grateful to my collaborator for checking my traces and being patient with them. They were right to call a stop when they did.
[edit: change my wording slightly]

Claude is definitely better at CA than I thought it would be, but it is clear it is imperfect. I went into this experiment afraid, because so many things have been taken up by AI now, and I feared my hobby of rulegolfing could be taken over by AI as well. But I did a similar experiment with another LLM (ChatGPT) and another hobby (writing on Wikipedia) here, and the conclusion is the same.

I win.

Re: ChatGPT 3.5 and Google Bard on Life

Posted: October 18th, 2026, 9:45 pm
by LuveelVoom
Might not be good at rulegolfing, but it's sure good at programming:

Code: Select all

x = 27, y = 27, rule = B3/S23-q4i
7b2o4b2o$8bo4bo2b2o$8bob2ob2obobo2b2o$9bobobo2bobo3bo$2b2o9bob2o2b3o$
2bobo5b4obobobo$4bo4bo4bob2o$4b2o4b4o4bo7bo$2b2o3b3o4b3obo5b3o$bo3b2o
2bob2obob3obo2bo$b4obob2obo2bo4bobo2bo$4b2o2bo2b3ob3obobob2o$obo3bob3o
4bobobobo$6obo3bo3bo3bob6o$5bobobobo4b3obo3bobo$2b2obobob3ob3o2bo2b2o
$2bo2bobo4bo2bob2obob4o$3bo2bob3obob2obo2b2o3bo$3o5bob3o4b3o3b2o$o7bo
4b4o4b2o$9b2obo4bo4bo$7bobobob4o5bobo$5b3o2b2obo9b2o$4bo3bobo2bobobo$
4b2o2bobob2ob2obo$9b2o2bo4bo$12b2o4b2o!

Code: Select all

x = 17, y = 13, rule = B3/S23-q4i
15b2o$b2o12bo$bobo11b2o$2bo5$obobo$5o2$5o$obobo!

Code: Select all

x = 27, y = 88, rule = B2e3-ejnr4ejkn5ajkn6-i/S2-ci3-kry4qw5acei6-i78History
11.2A$10.A.A$5.2A3.2A3.A$4.A.A.2A3.A.A$4.2A3.5A$3.A4.3A.A.A$4.A4.2A.A
$2.2A3.A.4A$2.2A4.5A$.A5.5A$2A.3A.6A$.4A3.6A$2.6A.5A$3.6A.4A$2A.5A.A.
2A.A$2.A.5A.A.A$3.2A.A.A$5.2A.A2.2A$8.5A$8.2A.A.2A$13.2A$11.A$6.4DC6D
$10.2A.A$7.A$7.A.A2.2A$8.A3.2A$8.2A.A4.A$10.A4.4A$9.A.2A.2A.2A$11.2A$
7.2A2.2A.2A$7.A2.2A2.A$7.A.A2.A.3A$7.A2.A2.A.A.A$9.A2.A.A2.2A$9.A7.A$
10.A.A4.A.2A$13.A.A.5A$13.A.3A2.A$12.2A8.3A$11.A2.4A2.2A.3A$11.2A4.A.
A.A.3A$13.A5.A2.A$12.2A.A3.4A$11.A2.2A4.2A3.A$20.A.A.A$15.D5.A2.3A$16.
D.3A$17.D2A.A.A$15.3AD4.2A$14.A3.AD4.A$13.A.3A2.D$14.A.A.A2.D$15.2A$15.
A$13.2A2.3A$12.A2.A3.A$11.A3.A2.A.A$12.2A3.3A$13.3A.3A$14.A$12.A.A.3A
2.A$11.A.A.A.2A$10.A.A$10.3A2.A$10.4A$8.8D$12.A$9.3A$9.A4.A$9.A3.A$11.
2A.A$10.A$12.A$14.2A$14.2A$12.2A$11.3A.2A$11.A.A.2A$14.A$13.2A.A$13.3A
$15.3A$18.A$15.2A$15.2A.2A$16.2A!