Tutorials/Glider syntheses: Difference between revisions
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..." |
Apple Bottom (talk | contribs) Various minor fixes |
||
| Line 1: | Line 1: | ||
[[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. | |||
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 | 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 | ===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:// | * [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 | * [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 | 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 [[ | * 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 | ===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 | |||
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.) | |||
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 | 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 | |||
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 | 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 | |||
{{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 | 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> | |||
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 | 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 | |||
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: | |||
<center>{{LV:Viewer|x = 17, y = 21, rule = B3/S23 | |||
{{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 | 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 | Good luck! | ||
===Using | ===Using converters to make syntheses=== | ||
''(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:
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:
- Mark Niemiec's website
- The LifeWiki, which you're looking at right now
- Chris Cains's display_synth script
- 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:

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:
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:
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:
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:
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:
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:
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:
Good luck!
Using converters to make syntheses
(to be added later)