Tutorials/Glider syntheses: Difference between revisions

From LifeWiki
Jump to navigation Jump to search
Created page with "'''This tutorial was made by Goldtiger''' <br/>Glider synthesis is the process of colliding gliders – the smallest spaceship Conway’s Game of Life – in a specific wa..."
 
Various minor fixes
Line 1: Line 1:
'''This tutorial was made by Goldtiger'''
[[Glider synthesis]] is the process of colliding [[glider]]s – 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.
<br/>[[Glider synthesis]] is the process of colliding gliders – the smallest spaceship 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:
This is an example of a glider synthesis:
{{LV:Viewer|x = 63, y = 67, rule = B3/S23
 
<center>{{LV:Viewer|x = 63, y = 67, rule = B3/S23
2bo$3b2o$2b2o2$60bo$60bobo$60b2o$50bo$48b2o$49b2o2$12bo$13b2o$12b2o3$
2bo$3b2o$2b2o2$60bo$60bobo$60b2o$50bo$48b2o$49b2o2$12bo$13b2o$12b2o3$
7bobo$8b2o$8bo2$42bo$43bo$41b3o6$45bo$45bobob3o$45b2o2bo$50bo3$35bo$
7bobo$8b2o$8bo2$42bo$43bo$41b3o6$45bo$45bobob3o$45b2o2bo$50bo3$35bo$
34bo$31b2ob3o$30bobo$32bo7$18bo$16bobo$17b2o2$24b3o$26bo$25bo$4bo$4b2o
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]]}}
19b2o$3bobo19bobo$25bo2$53b2o$53bobo$53bo5$3o$2bo$bo! [[THUMBNAIL THEME 6 GRID]]}}</center>


It is a 16 glider synthesis of Achim Flammerkamp’s pseudo-barberpole, which, at the time of writing, is the cheapest synthesis known of that object.
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===
===Locating known glider syntheses===
To locate a known glider synthesis, there are four places you should look:
To locate a known glider synthesis, there are four places you should look:


*[http://codercontest.com/mniemiec/lifepage.htm Mark Niemiec’s website]
* [http://conwaylife.com/ref/mniemiec/lifepage.htm Mark Niemiec's website]
*[http://www.conwaylife.com/wiki/Main_Page LifeWiki]
* 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 Cains'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]


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


[[File:SynthesisFlow.png]]
[[File:SynthesisFlow.png|center]]


Sometimes you will not find a synthesis for a particular object in any of these places. That could be because:
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 forums.
* 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 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]].
* 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.  
In the next section we will look at how to make your own syntheses.  
Line 33: Line 33:
==Making your own glider syntheses==
==Making your own glider syntheses==


===Using Catagloue 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]:
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.
If you select an object in Golly and run the 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:
 
<center>{{LV:Viewer|x = 10, y = 5, rule = B3/S23
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.)


Let’s say you want to find a synthesis for  block on down [[candlefrobra]], which, according to Mark Niemiec’s website, takes 12 gliders:
So click on the first asymmetric soup (the first black dot), and copy the [[RLE]] it provides into [[Golly]]. You should get this:
{{LV:Viewer|x = 10, y = 5, rule = B3/S23
4bo$2obob2obo$2obo3bobo$3bo4bo$3b2o! [[THUMBNAIL THEME 6 GRID]]}}
Then select the pattern in Golly and run the script mentioned above. It should bring you to [http://catagolue.appspot.com/object?apgcode=xp3_025qz32qq1&rule=b3s23 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.)


So click on the first asymmetric soup (the first black dot), and copy the rle it provides into Golly. You should get this:
<center>{{LV:Viewer|x = 16, y = 16, rule = B3/S23
{{LV:Viewer|x = 16, y = 16, rule = B3/S23
ob2o3bo2bo2bobo$ob5ob3o2bobo$obobo4b2obo2bo$3b2o5b3obo$2bobo8b3o$bo2bo
ob2o3bo2bo2bobo$ob5ob3o2bobo$obobo4b2obo2bo$3b2o5b3obo$2bobo8b3o$bo2bo
4b5obo$4b6obo2b2o$obo2b2o2b4o$o2bob4obo3b2o$5b3o2bo3bo$6bob2ob2o2bo$2b
4b5obo$4b6obo2b2o$obo2b2o2b4o$o2bob4obo3b2o$5b3o2bo3bo$6bob2ob2o2bo$2b
2ob5obob2o$4o3b2obobo2bo$ob3ob2obo3b2o$3b3ob5o2b2o$bo3b2obob2obo! [[THUMBNAIL THEME 6 GRID]]}}
2ob5obob2o$4o3b2obobo2bo$ob3ob2obo3b2o$3b3ob5o2b2o$bo3b2obob2obo! [[THUMBNAIL THEME 6 GRID]]}}</center>


Now play 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.  
Now run the soup until the [[candlefrobra]] appears (this should happen at generation 919). Use the <tt>goto.py</tt> 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.
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.  
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:
Once you’ve deleted any objects that don’t participate in the reaction, you should get something like this:
 
{{LV:Viewer|x = 11, y = 16, rule = B3/S23
<center>{{LV:Viewer|x = 11, y = 16, rule = B3/S23
9bo$8bobo$9b2o2$6bo$2o3bobo$2o2b2ob2o6$5bobo$4b3o$3b3o$3b2o! [[THUMBNAIL THEME 6 GRID]]}}
9bo$8bobo$9b2o2$6bo$2o3bobo$2o2b2ob2o6$5bobo$4b3o$3b3o$3b2o! [[THUMBNAIL THEME 6 GRID]]}}</center>
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).
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 <tt>two-glider-collisions.rle</tt> 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:
 
<center>{{LV:Viewer|x = 11, y = 19, rule = B3/S23
9bo$8bobo$9b2o2$6bo$2o3bobo$2o2b2ob2o8$5b2o$2b3obo$2b2o$2b2obo$3bobo! [[THUMBNAIL THEME 6 GRID]]}}</center>


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:
{{LV:Viewer|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 there is also no junk left over after the synthesis, only the candlefrobra.


Now to start the synthesis. To do this, you should synthesise each of the reactants separately in such a way that they work when put together.  
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 <tt>two-glider-collisions.rle</tt>. 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.
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:
If you need a hint, these are the syntheses I would use:
{{LV:Viewer|x = 35, y = 29, rule = B3/S23
 
<center>{{LV:Viewer|x = 35, y = 29, rule = B3/S23
bo26bo$2bo14bo11b2ob2o$3o13bobo9b2o2bobo$4bo12b2o13bo$3bo$3b3o8bo$8b2o
bo26bo$2bo14bo11b2ob2o$3o13bobo9b2o2bobo$4bo12b2o13bo$3bo$3b3o8bo$8b2o
3bobo$8b2o2b2ob2o2$25b2o$24bobo$26bo2$27b2o$27bobo$13b2o12bo$10b3obo$
3bobo$8b2o2b2ob2o2$25b2o$24bobo$26bo2$27b2o$27bobo$13b2o12bo$10b3obo$
10b2o$10b2obo$11bobo6$bobo$2b2o2b2o$2bo2b2o$7bo!}}
10b2o$10b2obo$11bobo6$bobo$2b2o2b2o$2bo2b2o$7bo!}}</center>
 
If you used the hint, note that you may need to rewind some of the syntheses to make it work.
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:


How did you go? If you created a synthesis with less than 12 gliders then congratulations, you would have created a record breaking synthesis!
<center>{{LV:Viewer|x = 17, y = 21, rule = B3/S23
For reference, this is the synthesis I created which used 8 gliders:
{{LV:Viewer|x = 17, y = 21, rule = B3/S23
9bobo$bo8b2o$2bo7bo3b3o$3o11bo$4bo10bo$3bo$3b3o2$7b2o$6bobo$8bo$2bo$ob
9bobo$bo8b2o$2bo7bo3b3o$3o11bo$4bo10bo$3bo$3b3o2$7b2o$6bobo$8bo$2bo$ob
o6b2o$b2o6bobo$9bo4$10b3o$10bo$11bo! [[THUMBNAIL THEME 6 GRID]]}}
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 another 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:
{{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$2o8bobo  3b3o$b2o7b3o
4bo$o3$12b2o$12b2o! [[THUMBNAIL THEME 6 GRID]]}}
4bo$o3$12b2o$12b2o! [[THUMBNAIL THEME 6 GRID]]}}</center>


Good Luck!...
Good luck!


===Using Converters to Make Syntheses===
===Using converters to make syntheses===
''(to be added later)


To be added later
[[Category:Tutorials|Glider syntheses]]

Revision as of 12:40, 16 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:

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.)

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$2o8bobo 3b3o$b2o7b3o 4bo$o3$12b2o$12b2o! [[THUMBNAIL THEME 6 GRID]]

Good luck!

Using converters to make syntheses

(to be added later)