Rich’s p16 came in at 11th place in the 2016 Pattern of the Year awards. First place was never even a remote possibility, not in a year that produced the Caterloopillar and the Copperhead. (I actually thought the latter would win handily, but I guess that’s just my relative lack of interest in engineered spaceships showing.)

# Tag: cellular automata

## Changing the rules (part 3)

Take a look at a pre-loaf and a pi:

If you run them in B37c/S23, the pre-loaf stabilizes quickly, but the pi takes a while — and some space. It needs 110 generations to settle down.

If you run them in B37e/S23, though, the pre-loaf just becomes a loaf immediately and the pi stabilizes much more quickly, in only 23 generations, and without spreading out so much.

So based on that, maybe it’s plausible B37c/S23 could be explosive while B37e/S23 isn’t. And then that might help account for why B37/S23 is explosive while B36/S23 and B38/S23 aren’t.

But this is still rather hand-wavy. Plausible is one thing, proved is something else entirely. First, it’s not just what happens to these objects that matters, but also how likely they are to arise in the first place. No matter how long and over what area a pi evolves, it won’t cause anything if it never crops up in the first place.

Second, in addition to pre-loafs and pis, you also need to consider larger sub-patterns with pre-loaves and pis embedded in them. How likely are they and what do they do under the two rules?

Anyway, proof or no proof, B37e/S23 really isn’t explosive. That means — unlike B37/S23 — it can be explored with a soup search. But apgmera, the C++ version 3 of apgsearch, can’t handle non-totalistic rules. The Python version 1.0 can, or rather a hacked version of it can. Slowly! I’ve been running it and it’s done 2 or 3 soups per second, about 3 orders of magnitude slower than apgmera can run B3/S23. ~~And for some reason it seemed not to be sending results to Catagolue.~~*

But anyway, 11c/52 diagonal puffers cropped up several times, laying trails of blocks and loaves:

This puffer evolves from this 7 cell object:And if there’s a suitably placed ship nearby, it becomes an 11c/52 diagonal spaceship. This has cropped up in several soups.

**Edit:* My B37e/S23 hauls *are* on Catagolue, but under the enharmonic name B37-c/S23.

## Changing the rules (part 2a)

That lame explanation seems even more lame when you consider this: The non totalistic rule B37c/S23 (meaning birth occurs if there are 3 live neighbors, or if there are 7 live neighbors with the dead neighbor in the corner of the neighborhood) is explosive, but B37e/S23 (birth occurs if there are 3 live neighbors, or if there are 7 live neighbors with the dead neighbor on the edge of the neighborhood) isn’t.

## Changing the rules (part 2)

Here’s an even more perplexing (to me, at least) instance of different CA behavior under similar-but-different rules. Consider this 32 x 32 soup: B36/S23 is a Life-like rule sometimes called HighLife. Many objects behave the same way as in Life; in particular, blocks, loaves, boats, and beehives are still lifes; blinkers are p2 oscillators; gliders are c/4 diagonal spaceships. So after 378 generations in B36/S23 when that soup looks like this, it’s stabilized: B38/S23 has no nickname I know of. Under that rule, the same soup stabilizes in 483 generations: And in B37/S23… here’s what it evolves to after 10,000 generations:Population 17,298 and growing, presumably forever.

Fairly typical. I’ve seen some soups take several thousand generations to stabilize in B38/S23, and I’ve seen a few — *very* few — stabilize in B37/S23. But most soups stabilize in 1000 generations or so in B36/S23 and B38/S23… and almost all soups explode in B37/S23.

Does that make any sense to you? Explain it to me, then.

I guess you can wave your hands and say “well, if you have few births you don’t get explosive behavior, and if you have many births in some small region you get momentary overpopulation which then crashes in the next generation, but somewhere in the middle there’s a point where you have not too few births but not enough crashes and it explodes”. But is that the best we can do at understanding this?

*Edit:* In fact, that lame explanation seems even more lame when you consider this: The non totalistic rule B37c/S23 (meaning birth occurs if there are 3 live neighbors, or if there are 7 live neighbors with the dead neighbor in the corner of the neighborhood) is explosive, but B37e/S23 (birth occurs if there are 3 live neighbors, or if there are 7 live neighbors with the dead neighbor on the edge of the neighborhood) isn’t.

## Changing the rules

It surprises me how hard it can be to guess what kind of behavior a given CA rule will produce. There are some things that are fairly obvious. For instance, under a rule that doesn’t include births with fewer than 4 live neighbors, no pattern will never expand past its bounding box. (Any empty cell outside the bounding box will have no more than 3 live neighbors, so no births will occur there.)

But beyond a few observations like that, it’s hard to predict. At least for me.

Consider the rule B34/S456, for a semi random example. Start with a 32 by 32 soup at 50% density: Then let it run for 1000 generations. It expands to a blob 208 by 208 in size, population 21,132:But change the B34/S456 rule to B3/S456 or B4/S456 — removing one number or the other from the birth rule — and either way, the same initial configuration dies.

How about removing one number from the survival rule? B34/S56 collapses to a little period 2 oscillator:

And so does B34/S45. But B34/S46 dies.

Now try adding numbers to the birth rule. B345/S456 for instance:

At first it expands, but only until it makes this near-square shape. Its boundaries no longer move, but oscillate with period 2. The interior is mostly static but there are a couple of regions that oscillate with period 3, so the whole thing is a p6 oscillator.

So we’re back to infinitely growing irregular blob behavior. Population 53,457. How about B347/S456?Likewise, but slower growing; population only 15,686. Want to guess at B348/S456?Blob again, but population only 9672. Not too surprising. Except that both B347/S456 and B348/S456 grow *slower* than B34/S456, even though both differ only in that there are *more* ways to produce a birth!

Finally let’s add numbers to the survival rule. B34/S4567 first:

Population 196,655. If you see faint squares on that blob it’s an artifact of the image reduction. Click on the image to see it at full size. It’s interesting: there are chaotic regions interspersed with domains where the live cells are arranged regularly. Most of the interior cells are stable or oscillate with period 2, and the only real evolution occurs at the boundary of the blob. That’s true of the B34/S4568 blob too:but here the growth rate is much smaller — the population’s only 23,299 — and the interior of the blob’s pretty random with only very small regular domains.

So twelve rules: B34/S456, B4/S456, B3/S456, B34/S56, B34/S46, B34/S45, B345/S456, B346/S456, B347/S456, B348/S456, B34/S4567, B34/S4568. All look similar in that the last eleven differ from the first only by the addition or removal of a single number. Three die, two collapse to a small oscillator, one shows bounded growth, and the other six show unbounded growth, but not only at different rates but with different behavior: unstable interior versus stable or oscillating interior; random patterns versus random mixed with regular. There’s the seeming paradox that adding a digit to the rule can produce something that grows more slowly, or can even stop it from growing.

Add or subtract a second digit and try guessing what’ll happen. I don’t guess correctly very often.

## Big natural ship in B358/S23

Here’s another big spaceship evolving from a soup. The rule here is B358/S23, and the soup has D2_+1 symmetry.

x = 143, y = 41, rule = B358/S23 47b2o$49bo$51b2o$45bo7bo32bo$b2o21bo20bob3o36bo35b3o$o2bo19bobo24bo3bo 30bobo34bo14b2o$bobo18bo3bo14bobo5b2o32bo5bo32bo4bo12b2o$5bob3o12bo3bo 17b3obo2b4o2bo24bo7bo17bobo12bo12b2obo2bo$7bo2bo12bobo15bo3b2ob2o3bo3b o25bobobobo18bobo14bo2bo4bo3bob2obo$3b5ob2o13bo15bo2b3o11b2o25bo3bo35b 2o2bo4bo3bo2b3o$2bo2bo36bo3b2o3b2o4bobo19b2o34b2o6bo4bo4bo$2bo2b2o5b2o 30bob2o8bo2bo19b2o4bobo20bobo4b2o6bo4b2o4bo2bo$6bo6b2o2bo22b3ob2o2bo7b o27b2ob2o19bobo13bo4bo6bo$4bob2o4b2o2bo3bo23b2o2bo7bobo26b3o37bo$2bobo 12bobobo24bobobo6bo28bo39bo$2bobo4bo7bob4o25b2o$4bo3bo3b2o4b2obo26b2o$ 8b3ob2o3b2obo$18bo4$18bo$8b3ob2o3b2obo$4bo3bo3b2o4b2obo26b2o$2bobo4bo 7bob4o25b2o$2bobo12bobobo24bobobo6bo28bo39bo$4bob2o4b2o2bo3bo23b2o2bo 7bobo26b3o37bo$6bo6b2o2bo22b3ob2o2bo7bo27b2ob2o19bobo13bo4bo6bo$2bo2b 2o5b2o30bob2o8bo2bo19b2o4bobo20bobo4b2o6bo4b2o4bo2bo$2bo2bo36bo3b2o3b 2o4bobo19b2o34b2o6bo4bo4bo$3b5ob2o13bo15bo2b3o11b2o25bo3bo35b2o2bo4bo 3bo2b3o$7bo2bo12bobo15bo3b2ob2o3bo3bo25bobobobo18bobo14bo2bo4bo3bob2ob o$5bob3o12bo3bo17b3obo2b4o2bo24bo7bo17bobo12bo12b2obo2bo$bobo18bo3bo 14bobo5b2o32bo5bo32bo4bo12b2o$o2bo19bobo24bo3bo30bobo34bo14b2o$b2o21bo 20bob3o36bo35b3o$45bo7bo32bo$51b2o$49bo$47b2o!

It goes left to right (right to left in the original soup) at speed 36c/72.

Again, the way this comes about is through development of a small seed. In this case at generation 83 you get a couple of these objectswhich in four generations recur, inverted, but with some debris.By itself, this seed becomes a 36c/72 puffer.But two of them, mirror images at just the right separation, have their smoke trails interact in such a way as to extinguish them, and the result is a spaceship. If you start with this pair

x = 9, y = 29, rule = B358/S23 $2bo2b3o$2bob2obo$b2obo2bo$5b2o$2b2o18$2b2o$5b2o$b2obo2bo$2bob2obo$2bo 2b3o!

you end up with a ship, plus a couple of blinkers.

These puffer seeds crop up fairly regularly — they develop into puffers 214 times out of 5,274,253,500 C1 soups — though this looks like the first time two of them have produced a spaceship. This symmetric object isn’t the only way to kill the puffer smoke, though. Here are six other ships produced by placing two puffers at various relative positions and phases. Undoubtedly there are lots more.

x = 363, y = 80, rule = B358/S23 37bo$11b2o9bo13b4o264bo3bo38bo$10bobo11b2o10b2ob2o262bo2bo2bo14b4obo2b obo9b3obo$12bo8bo3bo7b2o5b2o147b3o131bo3bo2bobob2o7b3o2b2o$13bo11bo6b 4o3b2o148bo14b2o117bob3o5b2o7b2ob4o$2b2o8b3o10bo7b4o152bo4bo12b2o90b2o 3bobobo15bo7bobo2bo4bo2b3o$2b2o6b2o2bo7bobo9b3o138bobo12bo12b2obo2bo 89b2o3bo3bo20bobo4bo$9b2ob2obo7bo151bobo14bo2bo4bo3bob2obo95bobo12b2o 12b3o$11b2o2bo175b2o2bo4bo3bo2b3o96bo3b3o6bo14bo$16bo165b2o6bo4bo4bo 119b2o$15bo159bobo4b2o6bo4b2o4bo2bo102b3o$11bo163bobo13bo4bo6bo102bo2b o$11b3o178bo113bo$193bo112b4o$182b3o123b2o31bo$35bo146bo14b2o107b2o31b o2bo$9b2o9bo13b4o111bo32bo4bo12b2o104b2o3bo26bo$8bobo11b2o10b2ob2o108b obo33bo12b2obo2bo108bo11b2o2b2o3b2o8bo2b3o$10bo8bo3bo7b2o5b2o106bo38bo 2bo4bo3bob2obo104b2o2bo10bobob3o2b3o8bob2obo$11bo11bo6b4o3b2o108b3o34b 2o2bo4bo3bo2b3o98b3o3b2ob2o10b3o2bobo5bo2bo2b2obo2bo$2o8b3o10bo7b4o 112bob2o32bo4bo4bo104b2o2bo2bo2b3o17b3ob3o2bo7b2o$2o6b2o2bo7bobo9b3o 113b2o33bo4b2o4bo2bo100b2o3b2obob2o19b2o3b2o6b2o$7b2ob2obo7bo126b2o34b o4bo6bo122bo12b3o$9b2o2bo171bo119bobo11b2o$14bo134b2o35bo119bo12b2o$ 13bo137bo156b2o$9bo297b4o$9b3o295b4o$309bo25$5bo3bo38bo$4bo2bo2bo14b4o bo2bobo9b3obo$24bo3bo2bobob2o7b3o2b2o251b3o52b2o$24bob3o5b2o7b2ob4o 139b2o108bob2o57b2o$2o3bobobo15bo7bobo2bo4bo2b3o106bo34bob2o9bo6b3o85b 3obobo29b5o8bobo6b2obo2bo$2o3bo3bo20bobo4bo116b2o34bob2o8b2o4bo2bob2o 83b2o3bo29bob2ob2o7b2obo2bo3bob2obo$6bobo12b2o12b3o115b4o5b3o26b3o3b2o 4bo3bo6bo121b2o10bob2obo3bo2b3o$7bo12bo14bo119bo3bo2b3o32b2o2b3o3bo6bo 112b2o20bobobo$21b2o125b2o4b2o3bo3bo20b2o10b3o3b2o3b4o2bo113b2o7bo12b 2o3bo2bo$9bo3b2o133b2o3bobo3bo24b2o10bo5bo8bo123bo20bo$9bo4b2o136bo39b obo138b5o$9bo149bo32b3o137b3o$49bo101bo3bob3o33bo138b3o2bobo$11b2o34bo 2bo99b2o180b3o3bobo$46bo103bob2o178b2o5bo$31b2o2b2o3b2o8bo2b3o95b2o4b 3o173b2o$14b2o14bobob3o2b3o8bob2obo104b2o32b2o160bo$13bo2bo13b3o2bobo 5bo2bo2b2obo2bo99bo4b2o30b5o13bo123b2o9b3o4b4o2bo$6b2o3bobo2bo19b3ob3o 2bo7b2o99bobo3b2o30b2ob2o11bo2bo131b2o7bo6bo$6b2o3b5o21b2o3b2o6b2o105b o2bo32b2o2bo9bo127b7obo5b2obo6bo$27bo12b3o110bo3bo2bo34b5o6bo4bo2b3o 118b5o2b5o6bo2bob2o$27b2o123b3obo39bob3o3b2o5bob2obo110b2o6bo12bobo4b 3o$27b2o123b3o42bo2b2o2b2obo2b2obo2bo110b2o12bo7bo$16b2o169b2o9b2o5b2o 7b2o119b2o$15b4o168b2o8b2ob2o9b2o121b2obo$15b4o176b3o137bobo$17bo178bo 139bo!

## Big and natural and (5,2)c/190

Generally speaking the larger a Life object is, the less likely it is to arise from a random soup. Going by the current Catagolue census, for instance, gliders arise in Life 684 times as often as lightweight spaceships, which are seen 3.8 times as often as middleweight spaceships, which turn up 5.8 times as often as heavyweight spaceships. Or look at the statistics page: All of the still lifes of size up to 13 have arisen, and 616 of the 619 size 14 still lifes, but only 1256 out of 1353 size 15, 2484 out of 3286 size 16, 4199 out of 7773 size 17 and so on… to only 7769 out of 4,051,711 still lifes of size 24.

Now, the smallest known Life spaceship that isn’t a glider, a *WSS, or a flotilla of *WSSs is the loafer, which has population 20 in a 9 by 9 bounding box. For comparison the HWSS is 13 cells in a 7 by 4 bounding box. There are 2^81 possible states for a 9 by 9 box versus 2^28 for a 7 by 4, or 2^53 times as many — about 9 quadrillion. From that point of view it’s not too surprising no loafer has evolved naturally from a soup so far. Only 111 trillion objects have been seen so far, after all.

So what are the odds of natural occurrence of a population 49 spaceship in a 47 by 17 bounding box? Incomprehensibly tiny, you would think — never in many times the lifetime of the universe would it happen.

Well, so you might think, anyway. Evidently that thinking’s not entirely correct:Because that pattern evolved, not in Life but in the Life-like B38/S23, from a random D2_+2 soup, on my computer in the past few hours. It may not look like much… *but it’s a spaceship*. A spaceship which in 190 generations travels obliquely, 5 cells up and 2 cells to the left.

I was pretty excited by this discovery, until I checked the census for B38/S23 C1 soups, and saw that a bunch of p190 ships have been found already, the first by David S. Miller last April. Then I found out, well, re-found out these ships had been discussed extensively in a forum thread shortly after that. A thread which I read. And forgot about.

All these ships are based on the same fundamental engine. Take a look at the part on the right of the above ship. Run just that for 190 generations and you get this:Three of the pieces of the original pattern come back, shifted by (5, 2). The fourth piece gets changed. So this is a near spaceship by itself.

Now if you look at the part on the left and run that 52 generations you get:The same thing as the right half at generation zero, minus the boat. So the ship consists basically of two out of phase copies of a single engine, plus a boat, evolving in such a way that the interaction between them makes up for the lack of a boat for the left engine, and changes the evolution of the 7-bit piece in both engines to make it recur in 190 generations.

Another way to look at it: Start with an R pentomino and a boat:After 192 generations you get this:And if you add a second R pentomino in just the right place at just the right phase, it’ll react with the first R and boat in just such a way as to make a spaceship. Seems kind of miraculous, but in fact there several ways to accomplish it. According to David S. Miller, at least 692 ways. Of which, as of today, apparently 11 have turned up in soup searches. There are also another 120 combinations of two Rs and a boat that produce puffers, rakes, and so on.

So a 47 by 17 spaceship evolving naturally? Not quite as astronomically unlikely as it looks. A remarkable system, though, and there’s nothing like it known in Life. Yet.