Difference between revisions of "Tutorials/Glider syntheses"

From LifeWiki
Jump to navigation Jump to search
(Added converters tutorial. Revisions welcome)
m (Trivial copy editing, and a detail about symmetric soups)
Line 16: Line 16:
* [http://conwaylife.com/ref/mniemiec/lifepage.htm Mark Niemiec's website]
* [http://conwaylife.com/ref/mniemiec/lifepage.htm Mark Niemiec's website]
* The [http://www.conwaylife.com/wiki/Main_Page LifeWiki], which you're looking at right now
* The [http://www.conwaylife.com/wiki/Main_Page LifeWiki], which you're looking at right now
* [https://github.com/ceebo/glider_synth/blob/master/display_synth.py Chris Cains's display_synth script]
* [https://github.com/ceebo/glider_synth/blob/master/display_synth.py Chris Cain's display_synth script]
* [http://www.conwaylife.com/forums/viewtopic.php?f=2&t=1155&start=550#p42862 Compressed Folder of cheapest oscillator syntheses]
* [http://www.conwaylife.com/forums/viewtopic.php?f=2&t=1155&start=550#p42862 Compressed Folder of cheapest oscillator syntheses]


Line 34: Line 34:


===Using [[Catagolue]] to find glider syntheses===
===Using [[Catagolue]] to find glider syntheses===
Before you start, you will need to download the second python script posted by [[Brett Berger]] [http://www.conwaylife.com/forums/viewtopic.php?f=9&t=2032&start=0#p27202 here]. If you select an object in Golly and run this script, it will open the object's catagolue page.
Before you start, you will need to download the second Python script posted by [[Brett Berger]] [http://www.conwaylife.com/forums/viewtopic.php?f=9&t=2032&start=0#p27202 here]. If you select an object in Golly and run this script, it will open the object's catagolue page.


Let's say you want to find a synthesis for block on down [[candlefrobra]], which, according to Mark Niemiec's website, takes 12 gliders:
Let's say you want to find a synthesis for block on down [[candlefrobra]], which, according to Mark Niemiec's website, takes 12 gliders:
Line 41: Line 41:
4bo$2obob2obo$2obo3bobo$3bo4bo$3b2o! [[THUMBNAIL THEME 6 GRID]]}}</center>
4bo$2obob2obo$2obo3bobo$3bo4bo$3b2o! [[THUMBNAIL THEME 6 GRID]]}}</center>


Select the pattern in Golly and run the script mentioned above. It should bring you to {{LinkCatagolue|xp3_025qz32qq1|style=raw|patternname=this page}} on Catagolue. Scroll down to the part of the page with lots of differently coloured dots. These are all sample soups for the object.  The black ones are [[symmetry|asymmetric]] [[soup]]s, which are the easiest to make syntheses from. (However, it should not be forgotten that you can still get good syntheses from symmetric soups.)
Select the pattern in Golly and run the script mentioned above. It should bring you to {{LinkCatagolue|xp3_025qz32qq1|style=raw|patternname=this page}} on Catagolue. Scroll down to the part of the page with lots of differently coloured dots. These are all sample soups for the object.  The black ones are [[symmetry|asymmetric]] [[soup]]s, which are the easiest to make syntheses from. (However, it should not be forgotten that you can still get good syntheses from symmetric soups -- especially if the object has the same type of symmetry as the soup.)


So click on the first asymmetric soup (the first black dot), and copy the [[RLE]] it provides into [[Golly]]. You should get this:
So click on the first asymmetric soup (the first black dot), and copy the [[RLE]] it provides into [[Golly]]. You should get this:
Line 83: Line 83:
o6b2o$b2o6bobo$9bo4$10b3o$10bo$11bo! [[THUMBNAIL THEME 6 GRID]]}}</center>
o6b2o$b2o6bobo$9bo4$10b3o$10bo$11bo! [[THUMBNAIL THEME 6 GRID]]}}</center>


In this example with the block on trans-candlefrobra, we were lucky to get a good reaction from the very first soup.  
In this example with the block on trans-candlefrobra, we were lucky to get a good reaction from the very first soup. Sometimes you will have to look through 20 or more soups before finding a suitable reaction.
Sometimes, you will have to look through 20 or more soups before finding a suitable reaction.


If you want more practice for creating synthesis from a reaction, here is the reaction the current record holding synthesis of [[why not]] (8 gliders) was made with:
If you want more practice for creating synthesis from a reaction, here is the reaction the current record holding synthesis of [[why not]] (8 gliders) was made with:


<center>{{LV:Viewer|x = 22, y = 14, rule = B3/S23
<center>{{LV:Viewer|x = 22, y = 14, rule = B3/S23
17bo$16b3o$15b2ob2o$19b2o$19b3o$19b2o$10b3o2b2ob2o$2o8bobo  3b3o$b2o7b3o
17bo$16b3o$15b2ob2o$19b2o$19b3o$19b2o$10b3o2b2ob2o$2o8bobo3b3o$b2o7b3o
4bo$o3$12b2o$12b2o! [[THUMBNAIL THEME 6 GRID]]}}</center>
4bo$o3$12b2o$12b2o! [[THUMBNAIL THEME 6 GRID]]}}</center>


Line 101: Line 100:
[[THUMBNAIL THEME 6 GRID]]}}</center>
[[THUMBNAIL THEME 6 GRID]]}}</center>


So we run the pattern to catagolue script, and it brings us [http://catagolue.appspot.com/object?apgcode=xs18_g8ge1e8628cz01&rule=b3s23 here]
So we run the pattern-to-catagolue script, and it brings us [http://catagolue.appspot.com/object?apgcode=xs18_g8ge1e8628cz01&rule=b3s23 here]
But there (at the time of writing) are no catagolue soups!
But there (at the time of writing) are no catagolue soups!
So what can we do? It is time to be introduced to the world of converters…
So what can we do? It is time to be introduced to the world of converters…
Line 124: Line 123:
Here are three places you will find converters:
Here are three places you will find converters:
* Martin Grant’s [http://www.conwaylife.com/forums/viewtopic.php?f=2&t=2380#p46552 collection]
* Martin Grant’s [http://www.conwaylife.com/forums/viewtopic.php?f=2&t=2380#p46552 collection]
* Bob Shemyakins’s [http://www.conwaylife.com/forums/viewtopic.php?f=2&t=2441&start=175#p38455 collection]
* Bob Shemyakin’s [http://www.conwaylife.com/forums/viewtopic.php?f=2&t=2441&start=175#p38455 collection]
* Various places in the [http://www.conwaylife.com/forums/ forums]
* Various places in the [http://www.conwaylife.com/forums/ forums]


Line 199: Line 198:
2o$obo$3bo3bo$4bobobo$5b2obo$7bo$5b2o$5bo$6bo$5b2o!
2o$obo$3bo3bo$4bobobo$5b2obo$7bo$5b2o$5bo$6bo$5b2o!
[[THUMBNAIL THEME 6 GRID]]}}</center>
[[THUMBNAIL THEME 6 GRID]]}}</center>


Converters are used in many others ways than just assisting soup search result-based syntheses. They are used a lot in the syntheses of difficult objects like billiard tables and spaceships. For example, this is the weekender synthesis:
Converters are used in many others ways than just assisting soup search result-based syntheses. They are used a lot in the syntheses of difficult objects like billiard tables and spaceships. For example, this is the weekender synthesis:

Revision as of 13:55, 31 July 2017

Glider synthesis is the process of colliding gliders – the smallest spaceship in Conway's Game of Life – in a specific way to construct a specific object. It is one of the few areas in the Game of Life that many discoveries can still be made without using scripts.

This is an example of a glider synthesis:

x=63, y = 67, rule = B3/S23 2bo$3b2o$2b2o2$60bo$60bobo$60b2o$50bo$48b2o$49b2o2$12bo$13b2o$12b2o3$ 7bobo$8b2o$8bo2$42bo$43bo$41b3o6$45bo$45bobob3o$45b2o2bo$50bo3$35bo$ 34bo$31b2ob3o$30bobo$32bo7$18bo$16bobo$17b2o2$24b3o$26bo$25bo$4bo$4b2o 19b2o$3bobo19bobo$25bo2$53b2o$53bobo$53bo5$3o$2bo$bo! [[THUMBNAIL THEME 6 GRID]]

It is a 16 glider synthesis of Achim Flammenkamp's pseudo-barberpole, which, at the time of writing, is the cheapest synthesis known of that object.

Locating known glider syntheses

To locate a known glider synthesis, there are four places you should look:

Here is a flowchart showing which of those places you should look in, depending on what type of object you chose:

SynthesisFlow.png

Sometimes you will not find a synthesis for a particular object in any of these places. That could be because:

  • There does exist a known synthesis, but it is hidden somewhere obscure. Your best bet is to ask on the ConwayLife.com forums.
  • No syntheses are known because no-one has decided to synthesise that specific object before. These are usually pretty easy to make a synthesis for yourself.
  • No syntheses are known because the object is very difficult to synthesise. An example of this would be spider.

In the next section we will look at how to make your own syntheses.

Making your own glider syntheses

Using Catagolue to find glider syntheses

Before you start, you will need to download the second Python script posted by Brett Berger here. If you select an object in Golly and run this script, it will open the object's catagolue page.

Let's say you want to find a synthesis for block on down candlefrobra, which, according to Mark Niemiec's website, takes 12 gliders:

x=10, y = 5, rule = B3/S23 4bo$2obob2obo$2obo3bobo$3bo4bo$3b2o! [[THUMBNAIL THEME 6 GRID]]

Select the pattern in Golly and run the script mentioned above. It should bring you to this page on Catagolue. Scroll down to the part of the page with lots of differently coloured dots. These are all sample soups for the object. The black ones are asymmetric soups, which are the easiest to make syntheses from. (However, it should not be forgotten that you can still get good syntheses from symmetric soups -- especially if the object has the same type of symmetry as the soup.)

So click on the first asymmetric soup (the first black dot), and copy the RLE it provides into Golly. You should get this:

x=16, y = 16, rule = B3/S23 ob2o3bo2bo2bobo$ob5ob3o2bobo$obobo4b2obo2bo$3b2o5b3obo$2bobo8b3o$bo2bo 4b5obo$4b6obo2b2o$obo2b2o2b4o$o2bob4obo3b2o$5b3o2bo3bo$6bob2ob2o2bo$2b 2ob5obob2o$4o3b2obobo2bo$ob3ob2obo3b2o$3b3ob5o2b2o$bo3b2obob2obo! [[THUMBNAIL THEME 6 GRID]]

Now run the soup until the candlefrobra appears (this should happen at generation 919). Use the goto.py script (which comes with Golly) to go 20 generations back. Watch each generation up to the candlefrobra's formation step-by-step to see which objects react to make the candlefrobra. Next, go back 20 generations, select the objects that reacted to make a candlefrobra, and paste them into a new layer.

Test to see if that pasted pattern works. If it doesn't work, go back to the layer with the soup, and select and paste a larger area. Once you've deleted any objects that don't participate in the reaction, you should get something like this:

x=11, y = 16, rule = B3/S23 9bo$8bobo$9b2o2$6bo$2o3bobo$2o2b2ob2o6$5bobo$4b3o$3b3o$3b2o! [[THUMBNAIL THEME 6 GRID]]

We know how to make all those reactants with gliders, so we can now make a synthesis! In fact, all of the reactants can be made in two gliders (those collisions can be found in two-glider-collisions.rle in Golly's pattern collection).

However, before you start, you may notice that not all of the blinkers in the traffic light react before making the candlefrobra. So maybe we don't need all of the blinkers. In fact, the only blinker we need is the top one. Try deleting the rest of the blinkers just before the Traffic Light first reacts. This isn't necessary, but to help your understanding, I've replaced the traffic light predecessor with one that only makes a blinker to get this:

x=11, y = 19, rule = B3/S23 9bo$8bobo$9b2o2$6bo$2o3bobo$2o2b2ob2o8$5b2o$2b3obo$2b2o$2b2obo$3bobo! [[THUMBNAIL THEME 6 GRID]]

Now there is also no junk left over after the synthesis, only the candlefrobra.

Now you can start the synthesis. To do this, you should synthesise each of the reactants separately in such a way that they work when put together. You can find all the syntheses you need for this in two-glider-collisions.rle. Try to do this yourself. If you can't manage to make it work using only 2-glider collisions, look in Mark Niemiec's website to find more useful syntheses.

If you need a hint, these are the syntheses I would use:

x=35, y = 29, rule = B3/S23 bo26bo$2bo14bo11b2ob2o$3o13bobo9b2o2bobo$4bo12b2o13bo$3bo$3b3o8bo$8b2o 3bobo$8b2o2b2ob2o2$25b2o$24bobo$26bo2$27b2o$27bobo$13b2o12bo$10b3obo$ 10b2o$10b2obo$11bobo6$bobo$2b2o2b2o$2bo2b2o$7bo!

If you used the hint, note that you may need to rewind some of the syntheses to make it work.

How did you go? If you created a synthesis with less than 12 gliders then congratulations, you would have created a record-breaking synthesis! For reference, this is the synthesis I created which used 8 gliders:

x=17, y = 21, rule = B3/S23 9bobo$bo8b2o$2bo7bo3b3o$3o11bo$4bo10bo$3bo$3b3o2$7b2o$6bobo$8bo$2bo$ob o6b2o$b2o6bobo$9bo4$10b3o$10bo$11bo! [[THUMBNAIL THEME 6 GRID]]

In this example with the block on trans-candlefrobra, we were lucky to get a good reaction from the very first soup. Sometimes you will have to look through 20 or more soups before finding a suitable reaction.

If you want more practice for creating synthesis from a reaction, here is the reaction the current record holding synthesis of why not (8 gliders) was made with:

x=22, y = 14, rule = B3/S23 17bo$16b3o$15b2ob2o$19b2o$19b3o$19b2o$10b3o2b2ob2o$2o8bobo3b3o$b2o7b3o 4bo$o3$12b2o$12b2o! [[THUMBNAIL THEME 6 GRID]]

Good luck!

Using converters to make syntheses

Let’s say we want to make a synthesis for this 18-bit still-life:

x=11, y = 6, rule = B3/S23 9bo$8bobo$2o2b2obobo$o2bobobo$2b2obobo$6bo! [[THUMBNAIL THEME 6 GRID]]

So we run the pattern-to-catagolue script, and it brings us here But there (at the time of writing) are no catagolue soups! So what can we do? It is time to be introduced to the world of converters…

A converter is a collision of gliders with a still-life/oscillator, which turns it into a new still-life/oscillator. Here is an example of a converter. It turns a hook into a barge:

x=37, y = 11, rule = B3/S23 12bo$12bobo$5bo6b2o$3bobo$4b2o$bo26bo$b2o6b2o16bobo$obo7bo17bobo$9bo5b 2o12bo5b2o$10b3obobo13b3obobo$12b2o18b2o! [[THUMBNAIL THEME 6 GRID]]

Converters are very useful for creating syntheses that are too large and/or rare to turn up on catagolue. For example, the duodecapole currently has no appearances on catagolue, but we can still create a synthesis from a barberpole-lengthening converter and an already known synthesis for the decapole like this:

x=113, y = 33, rule = B3/S23 26bo$27b2o15bo$26b2o16bobo$44b2o38bo$82bobo6bo$2bo80b2o4b2o5bo$obo83bo 3b2o2b2o$b2o83b2o7b2o$85bobo$26bobo$26b2o63b2o$27bo63bo$59bo32bobo$23b obo32bo$24b2o5bobo24b3o33bobo$24bo7b2o$32bo9bo53bobo$41b2o7bo$14b3o24b obo5b2o47bobo$16bo32bobo$15bo84bobo$47bo55bo$47b2o53b2o$46bobo$107bobo $72b2o24b2o7b2o$72bobo24b2o2b2o3bo$72bo25bo5b2o4b2o$103bo6bobo$29b2o 79bo$28bobo16b2o$30bo15b2o$48bo![[THUMBNAIL THEME 6 GRID]]

Here are three places you will find converters:

So with this new knowledge, back to synthesising the 18-bit still life:

x=11, y = 6, rule = B3/S23 9bo$8bobo$2o2b2obobo$o2bobobo$2b2obobo$6bo! [[THUMBNAIL THEME 6 GRID]]

So what could we convert that from? We could convert it from the equivalent with a snake instead of a carrier, but I would convert it from the equivalent with a hook instead of a tub, because it is more likely to have more soups on catagolue, and the corresponding converter is cheaper:

x=20, y = 12, rule = B3/S23 10bo$8bobo$9b2o$15bo$13b2o$14b2o$17b2o$9b2o6bobo$b2o2b2obobo6bo$bo2bob obo$3b2obobo$7bo![[THUMBNAIL THEME 6 GRID]]

Now, when we go to the catagolue page of the still-life with the hook, we find it has lots of soups (at the time of writing it is 43!)

So let’s try the first soup:

x=16, y = 16, rule = B3/S23 o4b2o5b2o$ob4o2bobo3bo$5bo6bob2o$bob3o6b2obo$obo2bobobo2bo$ob2o2bo3b4o bo$o2bobobobo3bobo$2b2ob4ob2o2b2o$bo3bobobobo$5o2b2obobo2bo$o6b3o2b2o$ 2o3bo3b2obo2bo$o3b3o4bo2bo$o3bobob3o2bo$b3ob3o2b2ob3o$ob4ob4obobo![[THUMBNAIL THEME 6 GRID]]

The soup reduces to this predecessor:

x=19, y = 25, rule = B3/S23 9b2o$8bo2bo$9bobo$10bo2$17b2o$17b2o2$13bo$12bobo$12bobo$13bo2$11bo$10b 3o$9b2ob2o$10b3o$11bo$5b2o$4bo2bo$4bobo$5bo2$2o$2o![[THUMBNAIL THEME 6 GRID]]

But before we start the synthesis, there are a few clever tricks we can do that will reduce the overall synthesis. The block only acts as cleanup, so perhaps it can be replaced with a glider:

x=23, y = 34, rule = B3/S23 13b2o$12bo2bo$13bobo$14bo2$21b2o$21b2o2$17bo$16bobo$16bobo$17bo2$15bo$ 14b3o$13b2ob2o$14b3o$15bo$9b2o$8bo2bo$8bobo$9bo10$2o$b2o$o! [[THUMBNAIL THEME 6 GRID]]

1 glider less. The loaf only partly reacts before being separated from the rest of the reaction, so maybe it can be substituted with a glider. Also, the glider that we replaced a block with actually is only acting as cleanup for the loaf’s reaction, so if we replace the loaf with a glider in the right way, the other glider can be removed. Unfortunately, the loaf can’t be replaced by 1 glider, but replacing it with 2 gliders still reduces the cost:

x=18, y = 34, rule = B3/S23 8b2o$7bo2bo$8bobo$9bo2$16b2o$16b2o2$12bo$11bobo$11bobo$12bo2$10bo$bo7b 3o$2bo5b2ob2o$3o6b3o$10bo14$16b2o$15b2o$17bo![[THUMBNAIL THEME 6 GRID]]

2 gliders less. But we can do even more! Often it is possible to synthesise two nearby objects at once, instead of separately, to achieve a cheaper cost in gliders. In this example, the beehive and the traffic light can be made together in a 3-glider synthesis, instead of using 4 gliders to synthesise them separately. (More details on how these are found in a later tutorial.)

x=9, y = 8, rule = B3/S23 4bo$4bobo$4b2o$2bo$obo$b2o4b2o$6b2o$8bo! [[THUMBNAIL THEME 6 GRID]]

3 gliders less! See if you can complete the synthesis of the 17-bit still-life from there…


…How did you go? This in the 11 glider synthesis I got:

x=64, y = 75, rule = B3/S23 39bobo$39b2o$40bo27$18bo$16bobo$17b2o$31bo$18b3o10bobo$18bo12b2o$19bo$ 23bobo$bo21b2o$2bo21bo$3o10bobo12b2o$14b2o12bobo$14bo13bo6$26b2o$26bob o$26bo16$61b2o$61bobo$61bo5$34b2o$33b2o$35bo![[THUMBNAIL THEME 6 GRID]]

Now all we need to do to complete the synthesis the 18-bit still-life is to add the converter:

x=139, y = 75, rule = B3/S23 39bobo$39b2o$40bo27$18bo$16bobo$17b2o$31bo$18b3o10bobo$18bo12b2o$19bo 87bo$23bobo79bobo$bo21b2o81b2o$2bo21bo87bo$3o10bobo12b2o80b2o$14b2o12b obo80b2o$14bo13bo85b2o21bo$75b2o29b2o6bobo19bobo$67b2o2b2obobo21b2o2b 2obobo6bo13b2o2b2obobo$67bo2bobobo23bo2bobobo22bo2bobobo$69b2obobo25b 2obobo24b2obobo$73bo30bo29bo$26b2o$26bobo$26bo16$61b2o$61bobo$61bo5$ 34b2o$33b2o$35bo![[THUMBNAIL THEME 6 GRID]]

And we’re done! We successfully created a 14 glider synthesis of a still-life with no appearances on catagolue, by constructing it from another still-life which did have appearances on catagolue.

If you want more practice at using converters and catagolue to find syntheses, try finding a synthesis for this still-life:

x=9, y = 10, rule = B3/S23 2o$obo$3bo3bo$4bobobo$5b2obo$7bo$5b2o$5bo$6bo$5b2o! [[THUMBNAIL THEME 6 GRID]]

Converters are used in many others ways than just assisting soup search result-based syntheses. They are used a lot in the syntheses of difficult objects like billiard tables and spaceships. For example, this is the weekender synthesis:

x=188, y = 177, rule = B3/S23 160bo$160bobo$7bo152b2o8bo$5bobo160b2o$6b2o161b2o9bo$179bo$179b3o$31bo $29bobo$30b2o$170bo$168b2o$169b2o$4bo174bo$5b2o156bobo11b2o$4b2o157b2o 13b2o$36bo127bo$34bobo$35b2o2$179bo$178bo$37bobo138b3o$38b2o$38bo4bo 122bo$44bo107bobo11bobo$42b3o107b2o12b2o$153bo3$136bobo$38bobo95b2o16b o$39b2o96bo15bo$18bo20bo113b3o7bobo$16bobo24bobo117b2o$17b2o25b2o89bob o26bo$44bo5bo84b2o$51b2o83bo$50b2o2$55bo77bo$37bo18bo75bo12bo$35bobo 16b3o75b3o10bobo$36b2o107b2o$128bo$127bo$43bobo81b3o7bobo$44b2o91b2o$ 44bo93bo$57bo60bo6bo$55bobo59bo7bobo$56b2o59b3o5b2o3$60bo61bo$61bo59bo $59b3o11bo47b3o$74bo$72b3o4$81bo$79bobo$80b2o2$75bo33bo$73bobo31b2o$ 74b2o3bo28b2o$80b2o$79b2o3$90bo$90bobo$79bo10b2o$77bobo39bo$78b2o37b2o $118b2o2$80bobo11bobo$81b2o11b2o$81bo13bo8$77b3o$79bo$78bo$92b3o$82bob o3b2o2bo$74bo8b2o4b2o2bo$74b2o7bo4bo$73bobo2$64b2o$63bobo17b2o5b3o$65b o18b2o6bo$83bo7bo$98b3o$98bo$99bo13b3o$113bo$114bo2$55b3o67b3o$57bo52b 2o13bo$56bo53bobo13bo$110bo3$52b2o75b2o$53b2o23b3o27b2o18b2o$52bo27bo 26b2o21bo$79bo29bo3$46bo89bo$40bo5b2o87b2o5bo$40b2o3bobo87bobo3b2o$39b obo99bobo16$158b2o$157b2o$159bo2$172b2o$171b2o$154b2o17bo$153b2o$155bo 6$9b2o$10b2o$9bo173b3o$183bo$184bo2$9bo164bo$9b2o162b2o$8bobo162bobo$ 30bo$bo28b2o$b2o26bobo$obo$185b2o$185bobo$185bo$11b2o$10bobo$12bo162b 2o$175bobo$163b3o9bo$163bo$164bo![[THUMBNAIL THEME 6 GRID]]


Using search programs to assist in creating syntheses

Coming Soon