|The largest collection of online information about Conway's Game of Life and Life-like cellular automata. Contains over 1,000 articles.|
|Share discoveries, discuss patterns, and ask questions about cellular automata with fellow enthusiasts.|
|Golly is a free program that allows you to easily explore much larger patterns at higher speeds than any web-based applet ever could.|
The previous post summarized the new 329-glider reverse caber tosser universal constructor design, but didn't go into detail about what exactly makes the design universal. Here are (most of) the fiddly details.
The idea of a fixed-cost glider recipe for any possible glider-constructible object has gone through several iterations in the past few years. The first completed construction was a decoder that used a double sliding-block memory, and repeatedly divided the stored number by two or three, returning the remainder for each cycle. That information could then be used to run a construction arm, but an explicit construction arm was never created for that design.
A newer "reverse caber tosser" design is an alternate storage mechanism for data feeding a universal constructor. The reverse caber tosser was designed by Adam P. Goucher, with Martin Grant finding the key glider-reflection reaction. A very large integer can be encoded in the position of a very faraway Cordership (instead of a block). If the distance to the Cordership is measured using circuitry designed to be as simple as possible, a complete decoder and universal constructor can be created by colliding exactly 329 gliders.
#C universal constructor based on reverse caber tosser
#C Completed 10 June 2018
#C Original design by Adam P. Goucher
#C Original glider synthesis by Goldtiger997
x = 5379, y = 5173, rule = B3/S23
#C [[ WIDTH 592 HEIGHT 500 X 5 Y -60 PAUSE 2 AUTOSTART ]]
#C [[ T 800 STEP 5 ]]
#C [[ T 2500 GPS 60 X 410 Y 456 Z 2 ]]
#C [[ T 2600 STEP 4 ]]
#C [[ T 2700 STEP 3 ]]
#C [[ T 2800 STEP 2 ]]
#C [[ T 2900 STEP 1 ]]
#C [[ T 3000 STEP 2 ]]
#C [[ T 3100 STEP 3 ]]
#C [[ T 3200 STEP 4 ]]
#C [[ T 3300 STEP 5 ]]
#C [[ T 7850 GPS 60 STEP 50 X 555 Y 628 Z -1.5 ]]
#C [[ T 28000 X 225 Y 300 Z -4 ]]
#C [[ PAUSE 5 LOOP 28050 ]]
There has been speculation for at least a couple of years** about the simplest possible form of universal constructor, where an arbitrarily complex construction recipe is encoded in the position of a single faraway object. The position of the object is measured by the simplest possible decoder mechanism, resulting in a series of bits that can then be interpreted to produce a slow salvo.
It has already been shown that slow salvos can construct any pattern that is constructible by gliders. So with the correct placement of the faraway object, the complete pattern is capable of building any possible glider-constructible pattern of any size. The same pattern is also capable of building a self-destruct mechanism that completely removes all trace of the universal constructor, after its work is done -- leaving only the constructed pattern and nothing else. A counterintuitive consequence is that any glider-constructible object, no matter what size, can be built with a specific fixed number of gliders.
And now the actual number has been calculated, and it's surprisingly small: the current upper limit is 329 gliders. This may be reduced somewhat if a more efficient universal constructor is designed or an improved synthesis is found.
On 6 March 2018 the first member of a new class of Conway's Life spaceships was discovered. This is Sir Robin, the first elementary spaceship that travels in an oblique direction. Its displacement is two cells horizontally and one cell vertically (or vice versa) every six generations, which is the fastest possible knightship speed. The name is a reference to Monty Python's "Brave Sir Robin", who bravely runs away as fast as possible.
#C (2,1)c/6 knightship found by Adam P. Goucher,
#C based on a front end originally found by Josh Ball,
#C rediscovered and extended by Tomas Rokicki,
#C using a SAT solver-based search
x = 79, y = 31, rule = B3/S23
#C [[ GRID THEME 7 TRACKLOOP 6 -1/3 -1/6 THUMBSIZE 2 HEIGHT 480 ZOOM 7 GPS 12 AUTOSTART ]]
The new knightship was found by Adam P. Goucher based on initial results by Tom Rokicki, after about a month of automated searching. The program that completed the knightship was icpx, a "multithreaded hybrid of LLS and gfind".
A detailed summary of the discovery process is now available.
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.)
A week or so ago, a better recipe was found for the last still life on Mark Niemiec's list of expensive 14-bit syntheses. Now all 14-bit still lifes can be constructed with less than 14 gliders -- less than 1 glider per bit, as the old saying goes.
Catagolue results continue to be very useful in finding new recipes.
#C 12-glider synthesis for the last 14-bit still life,
#C snake bridge snake / 12.105, which had previously cost at least
#C one glider per bit.
#C Goldtiger997, 6 October 2016, optimized by Mark Niemiec on 7 October.
x = 79, y = 71, rule = LifeHistory
#C [[ AUTOFIT AUTOSTART GPS 25 LOOP 150 ]]
UPDATE: The next challenge along these lines was to similarly reduce 15-bit still life costs to below 1 glider per bit. The process started later in the same forum thread, and was completed on November 19, 2016, with the following 14-glider synthesis:
#C 14-glider synthesis for the last 15-bit still life
#C which had previously cost at least one glider per bit.
#C Extrementhusiast, 19 November 2016
x = 48, y = 38, rule = B3/S23
#C [[ AUTOFIT AUTOSTART GPS 25 LOOP 150 ]]
UPDATE 2: The next project involved a similar reduction for 16-bit still life recipes. The official project kickoff was on December 16, 2016, when 443 of the 3,286 16-bit still lifes had no synthesis in less than 16 gliders in Chris Cain's database. It concluded successfully on May 24, 2017.
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.
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.
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.
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.
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