<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://conwaylife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Random+life+lover</id>
	<title>LifeWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://conwaylife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Random+life+lover"/>
	<link rel="alternate" type="text/html" href="https://conwaylife.com/wiki/Special:Contributions/Random_life_lover"/>
	<updated>2026-11-08T23:20:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://conwaylife.com/w/index.php?title=Bridge&amp;diff=103812</id>
		<title>Bridge</title>
		<link rel="alternate" type="text/html" href="https://conwaylife.com/w/index.php?title=Bridge&amp;diff=103812"/>
		<updated>2022-02-21T12:33:56Z</updated>

		<summary type="html">&lt;p&gt;Random life lover: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Glossary}}&lt;br /&gt;
[[Image:snakebridgesnake.png|right|framed|snake bridge snake]]&#039;&#039;&#039;Bridge&#039;&#039;&#039; is a term used in naming certain [[still life]]s and [[stator]]s of certain [[oscillator]]s. It indicates that the object consists of two smaller objects joined edge to edge, as in [[snake bridge snake]].&lt;br /&gt;
&lt;br /&gt;
This term is generally used for &amp;quot;miscellaneous&amp;quot; diagonal connections of two objects; cases where two [[pre-block]] [[motif]]s make contact are generally considered [[tie]]s, and those where a [[tub]] motif is seen usually use &amp;quot;at&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Siamese]]&lt;br /&gt;
* [[Tie]]&lt;br /&gt;
* [[Weld]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
{{LinkLexicon|lex_b.htm#bridge}}&lt;/div&gt;</summary>
		<author><name>Random life lover</name></author>
	</entry>
	<entry>
		<id>https://conwaylife.com/w/index.php?title=Tutorials/Glider_syntheses&amp;diff=102634</id>
		<title>Tutorials/Glider syntheses</title>
		<link rel="alternate" type="text/html" href="https://conwaylife.com/w/index.php?title=Tutorials/Glider_syntheses&amp;diff=102634"/>
		<updated>2022-02-11T13:05:29Z</updated>

		<summary type="html">&lt;p&gt;Random life lover: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Glider synthesis]] is the process of colliding [[glider]]s – the smallest [[spaceship]] in [[Conway&#039;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.&lt;br /&gt;
&lt;br /&gt;
This is an example of a glider synthesis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 73, y = 28, rule = B3/S23&lt;br /&gt;
52bo$50bobo$51b2o4$51bobo$52b2o2bobo4bo$52bo3b2o5bobo$2bo54bo5b2o$&lt;br /&gt;
obo$b2o$49b2o$13bo35bo$3b2o6b2o37b3o12bo$4b2o6b2o38bo10b2o$3bo51b&lt;br /&gt;
2o7b2o$55b2o$8b2o$9b2o54b2o$8bo48b2o5b2o4b3o$58bo7bo3bo$12bo45bobo&lt;br /&gt;
10bo$12b2o45b2o$11bobo$16b3o$16bo$17bo!&lt;br /&gt;
[[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is a 13-glider synthesis of [[Achim Flammenkamp]]&#039;s [[pseudo-barberpole]], which, at the time of writing, is the cheapest synthesis known of that object. Note that this particular synthesis can be divided into two stages which can take place arbitrarily far apart; multi-stage synthesis are typically shown this way to make it easier to see what is happening in each step.  The three still life syntheses are independent and could also be moved into separate stages, so this is really a four-stage synthesis.  Simple well-separated still lifes tend to be trivial to construct, and often the order of construction doesn&#039;t matter, so several stages are sometimes left combined in cases like this.&lt;br /&gt;
&lt;br /&gt;
==Locating known glider syntheses==&lt;br /&gt;
To locate a known glider synthesis, there are three main places you should look:&lt;br /&gt;
* [https://catagolue.hatsya.com/syntheses The &amp;quot;Syntheses&amp;quot; page] on [[Catagolue]], showing the current synthesis data from [[Shinjuku]]&lt;br /&gt;
* [[Mark Niemiec]]&#039;s [https://conwaylife.com/ref/mniemiec/lifepage.htm synthesis database],&lt;br /&gt;
* [[2718281828]]&#039;s [https://github.com/dvgrn/glider-collisions/tree/main/three-glider-collisions 3G collision database] (see [[#3-glider_collision_database|3-glider collision database]] below)&lt;br /&gt;
&lt;br /&gt;
As of September 2021, many of the syntheses in Niemiec&#039;s database are out of date, but the site does have some recipes that aren&#039;t on Catagolue yet.&lt;br /&gt;
&lt;br /&gt;
Also, there&#039;s a very important difference between the two databases.  Shinjuku/Catagolue focuses on documenting the single synthesis of each object that takes the smallest number of gliders.  By contrast, Niemiec&#039;s database collects many types of syntheses for a large number of objects, including more expensive ones.  For example, there may be syntheses of two combined objects where each type of object is added to an already existing instance of the other type.  Or there might be syntheses where all gliders come from one side of the object (useful in building the object near other existing objects), and so on.&lt;br /&gt;
&lt;br /&gt;
Sometimes you will not find a synthesis for a particular object in any of these places. That could be because:&lt;br /&gt;
&lt;br /&gt;
* There does exist a known synthesis, but it is hidden somewhere obscure. Your best bet is to ask on the ConwayLife.com forums.&lt;br /&gt;
* 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.&lt;br /&gt;
* No syntheses are known because the object is very difficult to synthesise. An example of this would be [[Sir Robin]].&lt;br /&gt;
* The object has been proven impossible to synthesise. Examples of this include all [[Gardens of Eden]] as well as solutions to the [[grandfather problem]].&lt;br /&gt;
&lt;br /&gt;
In the next section we will look at how to make your own syntheses.&lt;br /&gt;
&lt;br /&gt;
==Making your own glider syntheses==&lt;br /&gt;
&lt;br /&gt;
===Using [[Catagolue]] to find glider syntheses===&lt;br /&gt;
Before you start, you will need to download a Python script posted by [[Brett Berger]] [https://conwaylife.com/forums/viewtopic.php?f=9&amp;amp;t=2032&amp;amp;start=0#p27202 here]. (If you are using Golly 4.0 or above, you will need the version linked at the bottom of the post.) If you select an object (which can either be a true object or a [[constellation]]) in [[Golly]] and run this script, it will open the object&#039;s [[Catagolue]] page. You might instead want to use &amp;lt;tt&amp;gt;synthtools.py&amp;lt;/tt&amp;gt; in [[Shinjuku]] to do the following process more quickly. More details about this will be given in &amp;quot;Using search programs to assist in creating syntheses&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say you want to find a synthesis for [[Candlefrobra|cis-block on candlefrobra]], which, according to Mark Niemiec&#039;s website, takes 12 gliders:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 10, y = 5, rule = B3/S23&lt;br /&gt;
4bo$2obob2obo$2obo3bobo$3bo4bo$3b2o! [[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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. This page also contains a best-known synthesis with six gliders or less, but for the purposes of this tutorial, please ignore that!&lt;br /&gt;
&lt;br /&gt;
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.)&lt;br /&gt;
&lt;br /&gt;
So click on the first asymmetric soup (the first black dot), and copy the [[RLE]] it provides into [[Golly]]. You should get this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 16, y = 16, rule = B3/S23&lt;br /&gt;
ob2o3bo2bo2bobo$ob5ob3o2bobo$obobo4b2obo2bo$3b2o5b3obo$2bobo8b3o$bo2bo&lt;br /&gt;
4b5obo$4b6obo2b2o$obo2b2o2b4o$o2bob4obo3b2o$5b3o2bo3bo$6bob2ob2o2bo$2b&lt;br /&gt;
2ob5obob2o$4o3b2obobo2bo$ob3ob2obo3b2o$3b3ob5o2b2o$bo3b2obob2obo! [[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run the soup until the [[candlefrobra]] appears (this should happen at generation 919). Use the &amp;lt;tt&amp;gt;goto.py&amp;lt;/tt&amp;gt; script (which comes with Golly) to go 20 generations back. Watch each generation up to the candlefrobra&#039;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.&lt;br /&gt;
&lt;br /&gt;
Test to see if that pasted pattern works. If it doesn&#039;t work, go back to the layer with the soup, and select and paste a larger area. Once you&#039;ve deleted any objects that don&#039;t participate in the reaction, you should get something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 11, y = 16, rule = B3/S23&lt;br /&gt;
9bo$8bobo$9b2o2$6bo$2o3bobo$2o2b2ob2o6$5bobo$4b3o$3b3o$3b2o! [[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reaction is [[pi]] + [[block]] + [[boat]] + [[traffic light]] --&amp;gt; [[candlefrobra]] + some junk. 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 &amp;lt;tt&amp;gt;two-glider-collisions.rle&amp;lt;/tt&amp;gt; in Golly&#039;s pattern collection).&lt;br /&gt;
&lt;br /&gt;
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&#039;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&#039;t necessary, but to help your understanding, I&#039;ve replaced the traffic light predecessor with one that only makes a blinker to get this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 11, y = 19, rule = B3/S23&lt;br /&gt;
9bo$8bobo$9b2o2$6bo$2o3bobo$2o2b2ob2o8$5b2o$2b3obo$2b2o$2b2obo$3bobo! [[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now there is also no junk left over after the synthesis, only the candlefrobra.&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;tt&amp;gt;two-glider-collisions.rle&amp;lt;/tt&amp;gt;. Try to do this yourself. If you can&#039;t manage to make it work using only 2-glider collisions, look in Mark Niemiec&#039;s website to find more useful syntheses.&lt;br /&gt;
&lt;br /&gt;
If you need a hint, these are the syntheses I would use (zoomed out in case you don&#039;t want the hint):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 35, y = 29, rule = B3/S23&lt;br /&gt;
bo26bo$2bo14bo11b2ob2o$3o13bobo9b2o2bobo$4bo12b2o13bo$3bo$3b3o8bo$8b2o&lt;br /&gt;
3bobo$8b2o2b2ob2o2$25b2o$24bobo$26bo2$27b2o$27bobo$13b2o12bo$10b3obo$&lt;br /&gt;
10b2o$10b2obo$11bobo6$bobo$2b2o2b2o$2bo2b2o$7bo! [[ ZOOM -16 THEME 6 THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you used the hint, note that you may need to rewind some of the syntheses to make it work.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 17, y = 21, rule = B3/S23&lt;br /&gt;
9bobo$bo8b2o$2bo7bo3b3o$3o11bo$4bo10bo$3bo$3b3o2$7b2o$6bobo$8bo$2bo$ob&lt;br /&gt;
o6b2o$b2o6bobo$9bo4$10b3o$10bo$11bo! [[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
If you want more practice for creating synthesis from a reaction, here is the reaction the current record holding synthesis of [[why not]] (7 gliders) was made with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 22, y = 14, rule = B3/S23&lt;br /&gt;
17bo$16b3o$15b2ob2o$19b2o$19b3o$19b2o$10b3o2b2ob2o$2o8bobo3b3o$b2o7b3o&lt;br /&gt;
4bo$o3$12b2o$12b2o! [[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
===Using converters to make syntheses===&lt;br /&gt;
&lt;br /&gt;
Let’s say we want to make a synthesis for this 18-bit still-life:&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 11, y = 6, rule = B3/S23&lt;br /&gt;
9bo$8bobo$2o2b2obobo$o2bobobo$2b2obobo$6bo!&lt;br /&gt;
[[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So we run the pattern-to-Catagolue script, and it brings us [http://catagolue.hatsya.com/object?apgcode=xs18_g8ge1e8628cz01&amp;amp;rule=b3s23 here]&lt;br /&gt;
But there (at the time of writing) are no Catagolue soups!&lt;br /&gt;
So what can we do? It is time to be introduced to the world of converters…&lt;br /&gt;
&lt;br /&gt;
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]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 37, y = 11, rule = B3/S23&lt;br /&gt;
12bo$12bobo$5bo6b2o$3bobo$4b2o$bo26bo$b2o6b2o16bobo$obo7bo17bobo$9bo5b&lt;br /&gt;
2o12bo5b2o$10b3obobo13b3obobo$12b2o18b2o!&lt;br /&gt;
[[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 113, y = 33, rule = B3/S23&lt;br /&gt;
26bo$27b2o15bo$26b2o16bobo$44b2o38bo$82bobo6bo$2bo80b2o4b2o5bo$obo83bo&lt;br /&gt;
3b2o2b2o$b2o83b2o7b2o$85bobo$26bobo$26b2o63b2o$27bo63bo$59bo32bobo$23b&lt;br /&gt;
obo32bo$24b2o5bobo24b3o33bobo$24bo7b2o$32bo9bo53bobo$41b2o7bo$14b3o24b&lt;br /&gt;
obo5b2o47bobo$16bo32bobo$15bo84bobo$47bo55bo$47b2o53b2o$46bobo$107bobo&lt;br /&gt;
$72b2o24b2o7b2o$72bobo24b2o2b2o3bo$72bo25bo5b2o4b2o$103bo6bobo$29b2o&lt;br /&gt;
79bo$28bobo16b2o$30bo15b2o$48bo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are three places you will find converters:&lt;br /&gt;
* Martin Grant’s [https://conwaylife.com/forums/viewtopic.php?p=80949#p80949 collection] (also includes some components taken from [[Shinjuku]])&lt;br /&gt;
* Bob Shemyakin’s [https://conwaylife.com/forums/viewtopic.php?f=2&amp;amp;t=2441&amp;amp;start=175#p38455 collection] (less comprehensive, but has the advantage that components are sorted by both glider cost and change in population)&lt;br /&gt;
* Various places in the [https://conwaylife.com/forums/ forums]&lt;br /&gt;
&lt;br /&gt;
So with this new knowledge, back to synthesising the 18-bit still life:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 11, y = 6, rule = B3/S23&lt;br /&gt;
9bo$8bobo$2o2b2obobo$o2bobobo$2b2obobo$6bo!&lt;br /&gt;
[[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 20, y = 12, rule = B3/S23&lt;br /&gt;
10bo$8bobo$9b2o$15bo$13b2o$14b2o$17b2o$9b2o6bobo$b2o2b2obobo6bo$bo2bob&lt;br /&gt;
obo$3b2obobo$7bo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
Now, when we go to the Catagolue page of the [http://catagolue.hatsya.com/object?apgcode=xs17_0c9jz255lo&amp;amp;rule=b3s23 still-life with the hook], we find it has lots of soups (at the time of writing it is 43!)&lt;br /&gt;
&lt;br /&gt;
So let’s try the first soup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 16, y = 16, rule = B3/S23&lt;br /&gt;
o4b2o5b2o$ob4o2bobo3bo$5bo6bob2o$bob3o6b2obo$obo2bobobo2bo$ob2o2bo3b4o&lt;br /&gt;
bo$o2bobobobo3bobo$2b2ob4ob2o2b2o$bo3bobobobo$5o2b2obobo2bo$o6b3o2b2o$&lt;br /&gt;
2o3bo3b2obo2bo$o3b3o4bo2bo$o3bobob3o2bo$b3ob3o2b2ob3o$ob4ob4obobo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The soup reduces to this predecessor:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 19, y = 25, rule = B3/S23&lt;br /&gt;
9b2o$8bo2bo$9bobo$10bo2$17b2o$17b2o2$13bo$12bobo$12bobo$13bo2$11bo$10b&lt;br /&gt;
3o$9b2ob2o$10b3o$11bo$5b2o$4bo2bo$4bobo$5bo2$2o$2o![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 23, y = 34, rule = B3/S23&lt;br /&gt;
13b2o$12bo2bo$13bobo$14bo2$21b2o$21b2o2$17bo$16bobo$16bobo$17bo2$15bo$&lt;br /&gt;
14b3o$13b2ob2o$14b3o$15bo$9b2o$8bo2bo$8bobo$9bo10$2o$b2o$o!&lt;br /&gt;
[[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 18, y = 34, rule = B3/S23&lt;br /&gt;
8b2o$7bo2bo$8bobo$9bo2$16b2o$16b2o2$12bo$11bobo$11bobo$12bo2$10bo$bo7b&lt;br /&gt;
3o$2bo5b2ob2o$3o6b3o$10bo14$16b2o$15b2o$17bo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 9, y = 8, rule = B3/S23&lt;br /&gt;
4bo$4bobo$4b2o$2bo$obo$b2o4b2o$6b2o$8bo!&lt;br /&gt;
[[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3 gliders less! See if you can complete the synthesis of the 17-bit still-life from there…&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
…How did you go? This is the 11 glider synthesis I got:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 64, y = 75, rule = B3/S23&lt;br /&gt;
39bobo$39b2o$40bo27$18bo$16bobo$17b2o$31bo$18b3o10bobo$18bo12b2o$19bo$&lt;br /&gt;
23bobo$bo21b2o$2bo21bo$3o10bobo12b2o$14b2o12bobo$14bo13bo6$26b2o$26bob&lt;br /&gt;
o$26bo16$61b2o$61bobo$61bo5$34b2o$33b2o$35bo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now all we need to do to complete the synthesis of the 18-bit still-life is to add the converter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 139, y = 75, rule = B3/S23&lt;br /&gt;
39bobo$39b2o$40bo27$18bo$16bobo$17b2o$31bo$18b3o10bobo$18bo12b2o$19bo&lt;br /&gt;
87bo$23bobo79bobo$bo21b2o81b2o$2bo21bo87bo$3o10bobo12b2o80b2o$14b2o12b&lt;br /&gt;
obo80b2o$14bo13bo85b2o21bo$75b2o29b2o6bobo19bobo$67b2o2b2obobo21b2o2b&lt;br /&gt;
2obobo6bo13b2o2b2obobo$67bo2bobobo23bo2bobobo22bo2bobobo$69b2obobo25b&lt;br /&gt;
2obobo24b2obobo$73bo30bo29bo$26b2o$26bobo$26bo16$61b2o$61bobo$61bo5$&lt;br /&gt;
34b2o$33b2o$35bo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
If you want more practice at using converters and Catagolue to find syntheses, try finding a synthesis for this still-life:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 9, y = 10, rule = B3/S23&lt;br /&gt;
2o$obo$3bo3bo$4bobobo$5b2obo$7bo$5b2o$5bo$6bo$5b2o!&lt;br /&gt;
[[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 current best [[weekender]] synthesis as of August 2019 (79 gliders):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 659, y = 46, rule = B3/S23&lt;br /&gt;
635bo$633bobo$634b2o$271bo372bo$272b2o369bo$46bo70bobo151b2o370b3o&lt;br /&gt;
10bo$47b2o69b2o534b2o$46b2o70bo160bo375b2o$277b2o360bo5bo$53bo7bo&lt;br /&gt;
117bo92bo5b2o96bo260bobo6bo$51bobo6bo119bo92b2o99b2o252bo9b2o4b3o$&lt;br /&gt;
52b2o6b3o4bobo108b3o91b2o101b2o252b2o$obo54bo9b2o160bo155bo242b2o$&lt;br /&gt;
b2o52b2o11bo68bo44bo47b2o153bobo$bo54b2o77b2o44bo47b2o154b2o$126bo&lt;br /&gt;
bo7b2o43b3o140b2o49b2o$62b3o61b2o104bo41bo50bo50bo248bo$62bo56b2o&lt;br /&gt;
6bo99bo4bobo38bobo48bo50bo6bo240b2o$10bobo36bo13bo51b2obobo51b2ob&lt;br /&gt;
2o46b2obobo3b2o35b2obobo8bo36b2obo47b2obo7bobo39b2ob2o11bo38b2ob2o&lt;br /&gt;
38b2ob2o46b2ob2o46b2o12b2ob2o14b2o$11b2o35bobo50bo12bobobo52bobob&lt;br /&gt;
2o3b2o40bobob2o40bobob2o9bobo33bobob2o8bobo34bobob2o6b2o39bobobobo&lt;br /&gt;
b2o6bo38bobobobob2o33bobobobob2o41bobobobob2o55bobobobob2o9b2o$11b&lt;br /&gt;
o36bobo5b2o44b2o10bobobo52bobo5bo2bo39bobo43bobo12b2o34bobo11b2o&lt;br /&gt;
35bobo3bo9b2o35bobo3bobo7b3o36bobo3bob2o33bobo3bob2o41bobo3bob2o&lt;br /&gt;
55bobo3bob2o11bo$47b2ob2o3b2o44b2o10b2obob2o10bobo37b2obob2o3b2o4b&lt;br /&gt;
3o32b2obob2o39b2obob2o5b2o37b2obob2o4b2o3bo34b2obob2o10bobo33b2obo&lt;br /&gt;
bobobobo43b2obo3bo35b2obo3bo43b2obo3bo46bo10b2obo3bo$4bo43bobo6bo&lt;br /&gt;
56bobo13b2o36bo2bobob2o9bo32bo2bobobobo3b2o31bo2bobobobo4bobo34bo&lt;br /&gt;
2bobobo5bobo35bo2bobobo11bo33bo2bobob2o3b2o41bo2bobobobo33bo2bobob&lt;br /&gt;
obo41bo2bobobobo46b2o7bo2bobobobo$4b2o42bobo63bobo14bo36b2o2bo14bo&lt;br /&gt;
31b2o2bo3bo4bobo30b2o2bo3bobo3bo36b2o2bo3bo4bo37b2o2bo3bo44b2o2bo&lt;br /&gt;
13bo36b2o2b2ob2o34b2o2b2ob2o42b2o2b2ob2o14bo31bobo7b2o2b2ob2o$3bob&lt;br /&gt;
o43bo51b2o12bo10b2o104bo41bo50bo9b2o39bo59b2o152b2o$9b3o88bobo23bo&lt;br /&gt;
bo52b3o140b2o8b2o39b2o60b2o34bo61bo55b2o$11bo90bo4bo18bo54bo47b2o&lt;br /&gt;
105bo137bo43b2o13b2o34b2o11bo51b2o11bo$10bo96b2o73bo47b2o240b3o3bo&lt;br /&gt;
39bobo13b2o33bobo10b3o49bobo10b3o4b3o$106bobo120bo247b2o40bo50bo&lt;br /&gt;
14bo49bo14bo3bo$178b3o91b2o101b2o59b3o38bobo104b2o63bo5bo$15bo96b&lt;br /&gt;
2o66bo92b2o99b2o44b2o8b2o4bo99b2o111b2o$13b2o98b2o64bo92bo5b2o96bo&lt;br /&gt;
42bobo7b2o6bo98bobo99b2o$9bo4b2o96bo164b2o142bo9bo104bo100bobo$9b&lt;br /&gt;
2o268bo307b3o36b2o11bo$8bobo105b2o308b2o159bo39b2o$116bobo152b2o&lt;br /&gt;
152bobo160bo37bo$116bo155b2o153bo155b3o51bo5b3o$271bo313bo50b2o5bo&lt;br /&gt;
9bo$584bo51bobo5bo7b2o$652bobo$428b3o$428bo214bo$429bo213b2o$631b&lt;br /&gt;
2o9bobo$632b2o$631bo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 WIDTH 1280 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using search programs to assist in creating syntheses (incomplete)===&lt;br /&gt;
&lt;br /&gt;
====3-glider collision database====&lt;br /&gt;
&#039;&#039;For this part of the tutorial, you will need to use Python scripts with Golly.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=====synthesise-constellation.py=====&lt;br /&gt;
Below is a 25-glider synthesis of [[lightweight emulator]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 163, y = 51, rule = B3/S23&lt;br /&gt;
71bo$47bobo19bobo$48b2o20b2o$48bo30bo$79bobo$79b2o18bo$99bobo$63bo6bo&lt;br /&gt;
28b2o$49bo12bo5b2o$50b2o10b3o4b2o$49b2o2$92bobo$92b2o$3bobo87bo$3b2o&lt;br /&gt;
146b2o2b2o2b2o$4bo70b2o74bo2b4o2bo$bo73b2o75b8o$b2o146b3o8b3o$obo146bo&lt;br /&gt;
2bo6bo2bo$150b2o8b2o$93b2o$93bobo$93bo10bo$103b2o$46bobo54bobo$47b2o$&lt;br /&gt;
47bo10bo$56bobo$57b2o$150b2o8b2o$3bobo143bo2bo6bo2bo$3b2o144b3o8b3o$4b&lt;br /&gt;
o70b2o75b8o$bo73b2o69b2o3bo2b4o2bo$b2o142bobo3b2o2b2o2b2o$obo55bo88bo$&lt;br /&gt;
58b2o$57bobo2$101b2o$81b2o4b3o10b2o$82b2o5bo12bo$51b2o28bo6bo$50bobo$&lt;br /&gt;
52bo18b2o$70bobo$72bo30bo$80b2o20b2o$80bobo19bobo$80bo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that in the first step, two [[block]]s are created using a total of four gliders. This may be the most obvious way to synthesise them, but is it the cheapest?&lt;br /&gt;
&lt;br /&gt;
This is where [[2718281828]]&#039;s [https://github.com/dvgrn/glider-collisions/tree/main/three-glider-collisions/synthesise-constellation 3G collision database] comes in. It contains ~460,000 different three-glider collisions and the objects/constellations they produce, and includes a Python script created by [[Goldtiger997]] to search through the database. Download the three files and place them somewhere convenient, preferably your &amp;lt;tt&amp;gt;Scripts\Python&amp;lt;/tt&amp;gt; folder. In Golly, paste the desired constellation into a new layer and run &amp;lt;tt&amp;gt;synthesise-constellation.py&amp;lt;/tt&amp;gt;. If there are any collisions in the database that produce the same objects in the same positions relative to each other, they will all be displayed.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s try this with our two-block constellation. After running the script, we get this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 268, y = 36, rule = B3/S23&lt;br /&gt;
2bo61bo35bo67bo44bo36bo$obo61bobo34b2o63b2o46b2o35b2o$b2o61b2o34b2o65b&lt;br /&gt;
2o44b2o35b2o2$218bo36bo$216b2o35b2o$217b2o35b2o17$111bo39bo$112bo39bo$&lt;br /&gt;
13bo37bo58b3o37b3o$14bo37bo$12b3o35b3o62bo39bo$113b2o38b2o$114b2o38b2o&lt;br /&gt;
$13b2o36b2o$13bobo35bobo$13bo37bo$201bo64bo$201b2o62b2o$200bobo62bobo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All six of these collisions work in essentially the same way, by colliding a glider with a [[pi-heptomino]]. Since the two blocks are the first step of our lightweight emulator synthesis, we don&#039;t have to worry about other nearby objects interfering, so any of these will be suitable. In other cases, you may have to try several of these collisions before finding one that works for the synthesis you&#039;re working on.&lt;br /&gt;
&lt;br /&gt;
Now that we have a three-glider collision of the two blocks, our lightweight emulator synthesis has been reduced to 24 gliders, which is currently the cheapest known as of the time of writing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 167, y = 47, rule = B3/S23&lt;br /&gt;
87bo$66bo21b2o$64bobo20b2o$65b2o26bo$91b2o$92b2o19bo$111b2o$82bo&lt;br /&gt;
29b2o$67bo7bobo3bo$68bo6b2o4b3o$66b3o7bo2$105bo58bo$105bobo43b2o2b&lt;br /&gt;
2o2b2o3bobo$90b2o13b2o44bo2b4o2bo3b2o$90b2o60b8o$149b3o8b3o$106b2o&lt;br /&gt;
41bo2bo6bo2bo$105b2o43b2o8b2o$107bo8b2o$116bobo$116bo$o$b2o3bo$2o&lt;br /&gt;
3b2o$5bobo57bo$63bobo$64b2o8bo$75b2o73b2o8b2o$74b2o73bo2bo6bo2bo$&lt;br /&gt;
149b3o8b3o$90b2o60b8o$75b2o13b2o59bo2b4o2bo$74bobo74b2o2b2o2b2o$&lt;br /&gt;
76bo$31b2o$30b2o73bo7b3o$32bo65b3o4b2o6bo$100bo3bobo7bo$68b2o29bo$&lt;br /&gt;
69b2o$68bo19b2o$89b2o$88bo26b2o$93b2o20bobo$92b2o21bo$94bo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; As of April 2020, [https://github.com/dvgrn/glider-collisions/tree/main/four-glider-collisions a new version of this script] is available which contains a subset of four-glider collisions in addition to the two- and three-glider collisions. The installation instructions are the same; just make sure to copy both the 3G and 4G files. If your three-glider search gives no results, try this search instead. The collisions are also laid out in a grid instead of a line in this version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; As of February 2022, Golly 4.0 and above uses Python3, and the script mentioned above needs slight modifications. If you are unable to run it, replace all the xrange() functions in it with range() and you should be good to go.&lt;br /&gt;
&lt;br /&gt;
=====synthesise-patt.py - synthesising active objects=====&lt;br /&gt;
&amp;lt;tt&amp;gt;synthesise-patt.py&amp;lt;/tt&amp;gt; uses the same database as &amp;lt;tt&amp;gt;synthesise-constellation&amp;lt;/tt&amp;gt;, but is instead used to synthesise unstable objects and is therefore more useful when multiple things are happening during a given synthesis step. It can be found [https://github.com/dvgrn/glider-collisions/tree/main/three-glider-collisions/synthesise-patt here]. Like before, place the three files in your &amp;lt;tt&amp;gt;Scripts\Python&amp;lt;/tt&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s start with a 7-glider [[bridge]] [[snake]] component, taken from [https://conwaylife.com/ref/mniemiec/12/12-105.rle Mark Niemiec&#039;s database]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 22, y = 22, rule = B3/S23&lt;br /&gt;
5bob2o$5b2obo2$10bo$10bo8bobo$10bo8b2o$20bo2$17b2o$16b2o$18bo5$3o16b2o&lt;br /&gt;
$2bo16bobo$bo17bo2$3b3o$5bo$4bo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In generation 25, we can see the following unstable object, created from a [[blinker]] and two gliders, for 4 gliders total:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 6, y = 2, rule = B3/S23&lt;br /&gt;
3o$3b3o![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see if there&#039;s a way to make this object with only 3 gliders, and therefore the bridge snake component in 6 gliders. Place it into a new layer and run the script; if it&#039;s running correctly you should see something like &amp;quot;X collisions found, Y collisions tried&amp;quot; in the top left of Golly. After a few seconds, you should see a list of all syntheses whose population counts over time match that of the given object. For this object in particular, you should see these six syntheses:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 382, y = 14, rule = B3/S23&lt;br /&gt;
4bo70bo74bo81bo67bo77bo$5bo70b2o73b2o80bo67b2o73b2o$3b3o69b2o73b2o79b&lt;br /&gt;
3o66b2o75b2o$155bo$79bo75b2o147bobo74bo$2o77b2o73bobo76b3o68b2o73b2o$b&lt;br /&gt;
2o75bobo154bo69bo74b2o$o158b2o64bobo6bo74b2o65bo$158b2o66b2o80b2o67bo$&lt;br /&gt;
160bo65bo83bo64b3o$7b2o$7bobo67b3o$7bo69bo$78bo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now comes the fun part: determining which, if any, of these is suitable for our bridge snake component. In most cases, collisions where gliders come from only two directions perpendicular to each other tend to be the most likely to work, but in this case third one from the left seemed promising:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 10, y = 11, rule = B3/S23&lt;br /&gt;
obo$b2o$bo2$4b2o$5b2o$4bo2$8bo$7b2o$7bobo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mirroring this horizontally, we can see that it seems to fit in well with the snake, as all three gliders come from the other three directions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 15, y = 11, rule = B3/S23&lt;br /&gt;
12bobo$ob2o8b2o$2obo9bo2$9b2o$8b2o$10bo2$6bo$6b2o$5bobo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 STOP 13 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we can paste in the other three gliders, and rewind them a few generations so they show up at the correct time, and our 6G component is complete:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 17, y = 20, rule = B3/S23&lt;br /&gt;
14bobo$2bob2o8b2o$2b2obo9bo2$11b2o$10b2o$12bo2$8bo$8b2o$7bobo3$3o10b2o&lt;br /&gt;
$2bo10bobo$bo11bo2$3b3o$5bo$4bo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When choosing a generation on which to run the script, it&#039;s often a good idea to pause just before the object begins to interact with other stuff, so you get as many potentially useful collisions as possible. However, if you run the script and it gives you several hundred collisions producing irrelevant objects, you may want to consider rewinding a few generations so that the script searches for a more specific population sequence and is therefore more likely to give the pattern you want.&lt;br /&gt;
&lt;br /&gt;
As practice, try to complete this component:&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 16, y = 14, rule = B3/S23&lt;br /&gt;
o$b2o$2o2$8bo$9b2o$8bobo$8bobo$9bo2$12b2o$12bo$13b3o$15bo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
A four-glider solution can be found [https://conwaylife.com/forums/viewtopic.php?f=2&amp;amp;t=3267&amp;amp;p=122047#p122047 here].&lt;br /&gt;
&lt;br /&gt;
=====find-octohash-Python3.py - finding active objects in 1G collisions=====&lt;br /&gt;
Another database that can be useful when a specific active reaction is needed is the &#039;&#039;&#039;octohash&#039;&#039;&#039; database.  The name &amp;quot;octohash&amp;quot; denotes a hash function that returns the exact same hash value for any of the eight orientations of a pattern -- i.e, the octohash of any rotation or reflection of a pattern will always be the same as the octohash of the original pattern.  [[lifelib]] has a similar function available called &amp;quot;octodigest&amp;quot;, but the octohash database is designed to work with Golly and Python, without any dependency on lifelib.&lt;br /&gt;
&lt;br /&gt;
The database is just a series of simple text files containing ten printable ASCII characters for each generation of each glider collision with each constellation.  Python can search through these text files very quickly to find matching hashes.  The hashing function first finds the canonical orientation of the current phase of the collision.  Then it runs the RLE through a SHA1 hash function, throws away everything except the first seven bytes, and encodes the resulting integer in base 90 using the ASCII characters from 37 to 126 -- mostly.  Backslashes, apostrophes, and commas are replaced with &amp;quot;!&amp;quot;, &amp;quot;#&amp;quot;, and &amp;quot;$&amp;quot; respectively, to make the text strings a little less likely to cause any escape-character or quote-character issues, in any programming language that may be used to work with these octohash strings.&lt;br /&gt;
&lt;br /&gt;
This turns out to be a good enough hash function that no [https://en.wikipedia.org/w/index.php?title=Hash_collision hash collisions] showed up in the entire set of 12x12 constellation / glider interactions.&lt;br /&gt;
&lt;br /&gt;
The current octohash database catalogues every generation of every possible collision between a single glider and all possible small constellations of common objects.  Constellations may contain up to two well-separated objects -- no [[pseudo]] still lifes -- and must fit inside a 12x12 bounding box.  The objects used in the enumeration were [[block]], [[boat]], [[beehive]], [[tub]], [[pond]], [[ship]], [[loaf]], [[eater]], [[long boat]], and [[blinker]].&lt;br /&gt;
&lt;br /&gt;
To use the octohash database, clone the [https://github.com/dvgrn/octohash octohash Git repository], or try the &amp;quot;Download ZIP&amp;quot; option under the &amp;quot;Code&amp;quot; dropdown.  In Golly, select the active pattern you want to create with a 1G collision.  For example, if you want to create a [[pentadecathlon]] by hitting a [[seed]] constellation with a trigger glider, place any of the 15 phases of a pentadecathlon in the Golly universe, select it, and run &#039;&#039;&#039;find-octohash-Python3.py&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
There turns out to be exactly one constellation of two common objects inside 12x12 that produces a clean pentadecathlon when hit by exactly the right glider:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 17, y = 8, rule = B3/S23&lt;br /&gt;
15bo$14bo$14b3o$2o$obo$2bo5bo$2b2o3bobo$7b2o![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The original &#039;&#039;&#039;find-octohash.py&#039;&#039;&#039; works with Python 2.x and Golly 3.x.  Presumably most users going forward will be using Golly 4.0 or above, so will need to run &#039;&#039;&#039;find-octohash-Python3.py&#039;&#039;&#039; instead.&lt;br /&gt;
&lt;br /&gt;
Unlike &#039;&#039;&#039;synthesise-patt.py&#039;&#039;&#039; vs. &#039;&#039;&#039;synthesise-constellation.py&#039;&#039;&#039;, the octohash search script works equally well for stabilized [[ash]] or for active patterns, because the database records a seven-byte hash value for every generation of every collision.&lt;br /&gt;
&lt;br /&gt;
====collisrc.py====&lt;br /&gt;
&#039;&#039;For this part of the tutorial, you will need to first install [[lifelib]]. If you already have [[apgsearch]], you can use the filepath to your&#039;&#039; &amp;lt;tt&amp;gt;apgmera\lifelib&amp;lt;/tt&amp;gt; &#039;&#039;folder to run this script.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[praosylen]]&#039;s &amp;lt;tt&amp;gt;collisrc.py&amp;lt;/tt&amp;gt; (short for &amp;quot;collision search&amp;quot;) script randomly collides gliders with a given still life and records any interesting still lifes it finds, and is primarily designed to find new or reduced components. The latest version can be found [https://conwaylife.com/forums/viewtopic.php?p=80765#p80765 here], and a list of search parameters can be found [https://conwaylife.com/forums/viewtopic.php?p=80044#p80044 here]. You can also try out [https://conwaylife.com/forums/viewtopic.php?p=80542#p80542 Alex Greason&#039;s version] of the script which relies on [[Shinjuku]] and runs on large numbers of still lifes, trying a set number of collisions for each one.&lt;br /&gt;
&lt;br /&gt;
=====spark-search-Python3.py - finding cheaper substitutes for sparks=====&lt;br /&gt;
See Chris Cain&#039;s walkthrough at the beginning of the [https://conwaylife.com/forums/viewtopic.php?p=85119#p85119 spark_search thread] for details. A Python3-compatible version of the spark-search.py script has been edited in to the first post.&lt;br /&gt;
&lt;br /&gt;
=====popseq.py and popseq.c - finding cheaper substitutes for sparks, continued=====&lt;br /&gt;
Another tool related to synthesise-patt.py and synthesise-constellation.py is [[Chris Cain]]&#039;s &#039;&#039;&#039;popseq&#039;&#039;&#039;, which comes in two versions:  the [https://conwaylife.com/forums/viewtopic.php?p=18823#p18823 original Python script] and the [https://conwaylife.com/forums/viewtopic.php?p=43319#p43319 much faster C version].  Here again the idea is to look for active patterns by recognizing their distinct population sequences. In other words, population is used as a simple hash function to recognize the pattern. For active patterns that stabilize too quickly, popseq shares the same limitations as the &#039;synthesise&#039; search tools: it can return an unmanageably large number of false positive matches.&lt;br /&gt;
&lt;br /&gt;
popseq.c by default is set up to find active patterns in the search space of 4-glider collisions consisting of gliders coming from two perpendicular directions, the idea being that these collisions are most likely to produce useful results with good clearance. popseq.py was designed to operate on whatever set of gencols collision results you want it to search, so you might set up the script to use a database of 2-glider, 3-glider, or 4-glider collisions, or whatever custom collision set you might want to search. Setup details can be found in the above links.&lt;br /&gt;
&lt;br /&gt;
(rest of tutorial coming soon)&lt;br /&gt;
&lt;br /&gt;
===assisted cleanup===&lt;br /&gt;
Sometimes the reaction involved in a synthesis produces not only the target product but also some leftovers. For instance, a 20-bit still life appears in the following reaction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|39bo$38bo$38b3o8$31b2o$30bo2bo45bo$22b2o7b2o46bo$21bo2bo54bo$22b2o10bo&lt;br /&gt;
$33b2o39b2o$33bobo38b2o3$77b2o$76bo2bo$76bo2bo$17b2o47bo2bob2o4b2o$16b&lt;br /&gt;
o2bo46b5obo$17b2o3b2o$21bo2bo43bob5o$22b2o38b2o4b2obo2bo$61bo2bo$61bo&lt;br /&gt;
2bo$62b2o3$5bobo57b2o$6b2o57b2o$6bo10b2o$16bo2bo41bo$8b2o7b2o42bo$7bo&lt;br /&gt;
2bo50bo$8b2o8$3o$2bo$bo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make a synthesis from it, you need to get rid of the surrounding objects with extra gliders. But where should they go? Well, there are a couple of handy programs that can help you out.&lt;br /&gt;
&lt;br /&gt;
=====glider-destruction.py=====&lt;br /&gt;
&#039;&#039;For this part of the tutorial, you will need to use Python scripts with Golly.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An easy way to locate the cleanup gliders is to apply gameoflifeboy&#039;s &amp;lt;tt&amp;gt;glider-destruction.py&amp;lt;/tt&amp;gt; (see [https://conwaylife.com/forums/viewtopic.php?p=36381#p36381 here]). Given a pattern, the script attempts to find a clean 1-glider destruction for it; if there isn&#039;t one, it tells you the results with minimum bounding box and population. As usual, save the script in &amp;lt;tt&amp;gt;Scripts\Python&amp;lt;/tt&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
Since the pattern is rotationally symmetric, considering one half is enough. Select the upper right constellation and copy it to a new pattern:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|5bo$5bo$5bo2$2o$2o3$3b2o$2bo2bo$2bo2bo$3b2o![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the script and — presto! It gives a solution:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|5bo$5bo$5bo2$2o$2o3$3b2o$2bo2bo$2bo2bo$3b2o$8b2o$8bobo$8bo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasting it back, we find that it is compatible with the target still life. So the cleanup is done successfully:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|23bo$23bo$23bo2$18b2o$18b2o3$21b2o$20bo2bo$20bo2bo$10bo2bob2o4b2o$2bo&lt;br /&gt;
7b5obo9b2o$obo23bobo$b2o9bob5o7bo$6b2o4b2obo2bo$5bo2bo$5bo2bo$6b2o3$9b&lt;br /&gt;
2o$9b2o2$5bo$5bo$5bo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, it should be noted that we are lucky in this case. The results from the script is not guaranteed to be actually usable, as either the glider or the cleaning reaction may crash into the target. Besides, the suggested method is not always the most efficient if there isn&#039;t a clean 1-glider destruction.&lt;br /&gt;
&lt;br /&gt;
=====Seeds of Destruction Game=====&lt;br /&gt;
{{alsosee|Tutorials/Seeds of Destruction Game}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For this part of the tutorial, you will need to install Java.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Seeds of Destruction Game]] is an interactive application that allows one to modify a pattern &#039;&#039;by hovering the mouse around&#039;&#039; and see the effects &#039;&#039;immediately&#039;&#039;. Basically the idea is simple — put a glider somewhere manually, observe and repeat — but what is italicized makes the trial-and-error process easier.&lt;br /&gt;
&lt;br /&gt;
A brief summary of the procedure, for those who don&#039;t bother to read another tutorial:&lt;br /&gt;
&lt;br /&gt;
# Copy the pattern to be cleaned to clipboard.&lt;br /&gt;
# In Seeds of Destruction Game, click the third button from below when its label reads &amp;quot;Puzzle&amp;quot;. (If instead it reads &amp;quot;Seed&amp;quot;, use mouse wheel to change.) This loads the pattern to the application and creates a new &amp;quot;Puzzle (something)&amp;quot; entry on the right.&lt;br /&gt;
# Ensure that the first button from above is labelled as &amp;quot;Glider&amp;quot; (if not, use mouse wheel again to change). Adjust the orientation and parity of the glider shown in the second button by rolling mouse wheel.&lt;br /&gt;
# Click somewhere to lay down the glider and observe how the pattern evolves by rolling mouse wheel on the &amp;quot;Start&amp;quot; and &amp;quot;Gens&amp;quot; buttons. If the result is not satisfying, click the &amp;quot;Puzzle (something)&amp;quot; entry on the right to reset and start a new attempt.&lt;br /&gt;
# Upon obtaining a good result, click the fifth button from above. This loads the current pattern to clipboard in [[LifeHistory]] RLE format (if the label shows &amp;quot;Golly&amp;quot;) or in plain two-state RLE format (&amp;quot;Life&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
With Seeds of Destruction Game, it is even possible to suppress debris by throwing a glider into the active soup. In the following synthesis for a variant of [[gray counter]], the uppermost glider was found in this way, which tamed quite a lot of mess:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{LV:Viewer|x = 114, y = 79, rule = B3/S23&lt;br /&gt;
60bobo$61b2o$61bo48$96bo$94bobo$95b2o$101bo$101bobo$101b2o$88bobo$89b&lt;br /&gt;
2o$89bo2$91bo$91bobo6bobo$91b2o7b2o$101bo5$27bobo$6bobo18b2o$6b2o20bo$&lt;br /&gt;
bo5bo81b2o$2bo86bobo$3o25b2o60b2o$27b2o82b3o$29bo56b2o$3b2o80bo2bo$3bo&lt;br /&gt;
bo80bobo$3bo83bo![[ THEME 6 GRID THUMBNAIL THUMBSIZE 2 ]]}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Submitting syntheses to Catagolue==&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve completed a new record-breaking synthesis for a still life, oscillator, or spaceship, you can add it to the object&#039;s Catagolue page by pasting the [[RLE]] into the submission box at the bottom of the [https://catagolue.hatsya.com/syntheses &amp;quot;Syntheses&amp;quot; page]. There are some important things to note about how to format the pattern in order for it to be interpreted correctly:&lt;br /&gt;
*The rule must be either B3/S23 or [[LifeHistory]] (in the latter case only states 0 and 1 are allowed).&lt;br /&gt;
*The pattern must not exceed a [[bounding box]] of 9999&amp;amp;times;9999, a [[population]] of 100,000, or a file size of 400 kilobytes.&lt;br /&gt;
**Note that this restriction is in place to prevent the queue of user-submitted synthesis components from exceeding the object size limit of one megabyte. If you wish to submit more than about a megabyte of syntheses at a time, you&#039;re probably better off submitting [https://gitlab.com/parclytaxel/Shinjuku a merge request to Shinjuku] containing a &amp;lt;tt&amp;gt;.sjk&amp;lt;/tt&amp;gt; file of your syntheses so that it doesn&#039;t exceed the size limit.&lt;br /&gt;
*[[xWSS]]es &#039;&#039;are&#039;&#039; allowed to substitute for gliders, and Shinjuku will automatically attempt to convert them into their respective three-glider collisions. However, because the conversions all happen at the same time, the resulting synthesis may not be valid due to gliders crossing paths, and the conversion must instead be done manually.&amp;lt;ref name=&amp;quot;post90908&amp;quot; /&amp;gt;&lt;br /&gt;
*Each individual step, including the gliders/xWSSes, must be separated by at least 20 empty rows/columns.&lt;br /&gt;
*It is recommended that every glider/xWSS should begin interacting before generation 1000 if possible, and each step should overall stabilize by generation 4000. If Catagolue does not parse your synthesis properly, there&#039;s unfortunately not much that can be done about it other than posting it somewhere else (e.g. the forums or Discord).&lt;br /&gt;
*The initial pattern in each step must match the resulting pattern of the previous step (though rotations/reflections are allowed).&lt;br /&gt;
*Although the synthesis RLEs on Mark Niemiec&#039;s website have the final object displayed next to the synthesis for each individual step, these are technically redundant and should be removed from the pattern when submitting to Catagolue.&lt;br /&gt;
&lt;br /&gt;
When you submit, your RLE is added to [https://catagolue.hatsya.com/readsynth a queue] to be processed by the automatic update process, which runs every 8 hours. If you&#039;re not sure whether your synthesis is on Catagolue yet, you can check the [https://gitlab.com/apgoucher/catagolue/-/jobs &amp;quot;Jobs&amp;quot; page on the Catagolue repository], particularly the jobs named &amp;lt;tt&amp;gt;shinjuku&amp;lt;/tt&amp;gt;, to see the console output for the update process. [https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm Djikstra&#039;s algorithm] is used to calculate the shortest path to the desired object using the known components, so you may find that earlier steps of your synthesis have been replaced by an already-known cheaper way of producing the same intermediate object.&lt;br /&gt;
&lt;br /&gt;
Also, if you&#039;re submitting a new or newly-improved component to Catagolue, don&#039;t worry about manually applying it to every single possible object in the database, because Shinjuku&#039;s &amp;lt;tt&amp;gt;transfer.py&amp;lt;/tt&amp;gt; does this automatically. The script has to be invoked manually, but as long as there&#039;s at least one synthesis featuring your component, the script will consider it when automatically creating new syntheses. Do note, however, that it will only attempt to synthesise objects that either already have a synthesis or are strict still lifes with 20 bits or less; in other cases you may want to consider submitting the synthesis yourself.{{refn|group=note|Other &amp;lt;tt&amp;gt;transfer.py&amp;lt;/tt&amp;gt; runs have targeted objects constructible through intermediate components&amp;lt;ref&amp;gt;{{cite web|url=https://gitlab.com/parclytaxel/Shinjuku/-/commit/19f65d1a2fabf5da15aa3d3649af3f2d3a96656c|title=level-2 and level-3 transfer searches|author=Adam P. Goucher|date=October 13, 2019|work=GitLab}}&amp;lt;/ref&amp;gt; and large objects which have appeared at least once in an [[apgsearch]] soup.&amp;lt;ref&amp;gt;{{cite web|url=https://gitlab.com/parclytaxel/Shinjuku/-/commit/7faa448fade873f5fd447d6a36bc885b753d4b63|title=Transfer run targeting all still lifes with at least one soup in an official symmetry but no synthesis|author=Alex Greason|date=June 9, 2020|work=GitLab}}&amp;lt;/ref&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references group=note /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;post90908&amp;quot;&amp;gt;{{LinkForumThread&lt;br /&gt;
|format = ref&lt;br /&gt;
|title  = Re: Shinjuku: a database of glider syntheses&lt;br /&gt;
|p      = 90908&lt;br /&gt;
|author = Ian07&lt;br /&gt;
|date   = March 9, 2020&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
===Forum threads===&lt;br /&gt;
{{LinkForumThread|f=2|t=3267|title=Still Life Synthesis Thread}}&lt;br /&gt;
{{LinkForumThread|f=2|t=1155|title=Synthesising Oscillators}}&lt;br /&gt;
{{LinkForumThread|f=2|t=1557|title=Small Spaceship Syntheses}}&lt;br /&gt;
{{LinkForumThread|f=2|t=3960|title=Soup-based syntheses}}&lt;br /&gt;
{{LinkForumThread|f=2|t=4257|title=Randomly enumerating glider syntheses}}&lt;br /&gt;
{{LinkForumThread|f=2|t=1394|title=4 glider syntheses}}&lt;br /&gt;
{{LinkForumThread|f=2|t=4063|title=Synthesis components}}&lt;br /&gt;
&lt;br /&gt;
===Code repositories===&lt;br /&gt;
*[https://github.com/dvgrn/b3s23life/tree/master/synthesis-tools synthesis-tools] on Github&lt;br /&gt;
*[https://github.com/dvgrn/glider-collisions glider-collisions] on Github&lt;br /&gt;
&lt;br /&gt;
{{Tutorial}}&lt;br /&gt;
{{CatagolueNavbox}}&lt;br /&gt;
{{GollyNavbox}}&lt;/div&gt;</summary>
		<author><name>Random life lover</name></author>
	</entry>
	<entry>
		<id>https://conwaylife.com/w/index.php?title=Tutorials/Rules&amp;diff=99381</id>
		<title>Tutorials/Rules</title>
		<link rel="alternate" type="text/html" href="https://conwaylife.com/w/index.php?title=Tutorials/Rules&amp;diff=99381"/>
		<updated>2022-01-27T03:48:19Z</updated>

		<summary type="html">&lt;p&gt;Random life lover: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
OK, so you want to understand rules, or even make your own cellular automata? Here&#039;s the place to learn how!&lt;br /&gt;
&lt;br /&gt;
== Preliminaries ==&lt;br /&gt;
Some care needs to be taken to distinguish between &#039;&#039;rules&#039;&#039;, which are part of the specification of a cellular automaton (CA), the rules according to which patterns in that CA evolve; and &#039;&#039;rulestrings&#039;&#039;, which are string representations of rules in the previous sense.&lt;br /&gt;
&lt;br /&gt;
There are several ways of specifying rules beyond rulestrings, such as [[rule integer]]s or rule tables, and different rulestrings may yet represent the same rule. Nonetheless, in common parlance the term &amp;quot;rule&amp;quot; is often used where &amp;quot;rulestring&amp;quot; would be more appropriate.&lt;br /&gt;
&lt;br /&gt;
== Outer-totalistic rules ==&lt;br /&gt;
&#039;&#039;&#039;[[Life-like cellular automata|Outer-totalistic]] rules&#039;&#039;&#039; are defined in terms of [[birth]] and [[survival]] conditions: the circumstances under which dead cells get born, and live cells survive.&lt;br /&gt;
&lt;br /&gt;
There&#039;s different ways of specifying these; two common ways to write rulestrings are called &amp;quot;B/S notation&amp;quot; and &amp;quot;S/B&amp;quot; notation respectively. [[Conway&#039;s Game of Life|Life]] itself is specified by &amp;quot;B3/S23&amp;quot; or &amp;quot;23/3&amp;quot;, but since S/B notation has fallen out of style, we&#039;ll only be focussing on B/S notation for the rest of this tutorial.&lt;br /&gt;
&lt;br /&gt;
So, let&#039;s look at Life&#039;s B3/S23. In Life:&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;dead&#039;&#039; cell gets &#039;&#039;born&#039;&#039; if and only if it has three live neighbors; this is expressed by &amp;quot;B3&amp;quot;.&lt;br /&gt;
* A &#039;&#039;live&#039;&#039; cell &#039;&#039;survives&#039;&#039; if and only if it has two &#039;&#039;or&#039;&#039; three live neighbors; this is expressed by &amp;quot;S23&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-left: auto; margin-right: auto;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; | [[File:INT Moore R1 3i dead.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; style=&amp;quot;max-width: 25em;&amp;quot; | Cell birth in Life: if the cells in purple are live, the center cell will be born in the next generation.&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | [[File:INT Moore R1 2a.png]]&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | [[File:INT Moore R1 3i.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; style=&amp;quot;max-width: 25em;&amp;quot; | Cell survival in Life: if the cells in purple are live, the center cell will survive in the next generation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
As you can see, birth and survival conditions are each encoded as a string of numbers following the respective letter (&amp;quot;B&amp;quot; for birth, &amp;quot;S&amp;quot; for survival). Since there are eight cells directly neighboring a given cell, all numbers from 0 to 8 can be specified, and each combination yields a different outer-totalistic rule.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s look at two more examples. [[Day &amp;amp; Night]] has the rulestring B3678/S34678, so in this rule, dead cells get born if they have 3, 6, 7 or 8 live neighbors, and live cells survive if they have 3, 4, 6, 7 or 8 live neighbors. [[Live Free or Die]] has the rulestring B2/S0, so in this rule, dead cells are born if they have precisely two live neighbors, and live cells only survive if they have no live neighbors at all &amp;amp;mdash; if they are surrounded entirely by dead cells. (Knowing this, you can probably tell how the rule got its name.)&lt;br /&gt;
&lt;br /&gt;
Why are these CAs called &amp;quot;outer-totalistic&amp;quot;? The reason is simply that a cell&#039;s fate depends on (in addition to the state of the cell itself) on the &#039;&#039;total&#039;&#039; number of live &#039;&#039;outer&#039;&#039; cells. Outer-totalistic CAs are also called semi-totalistic, in the sense that they are &amp;quot;sort of (but not quite)&amp;quot; totalistic in the sense of the next section.&lt;br /&gt;
&lt;br /&gt;
There are many ways to generalize such CAs. For instance, one could:&lt;br /&gt;
&lt;br /&gt;
* Take into account the (relative or absolute) alignment of live neighbors, in addition to their total count; this leads to [[Non-totalistic Life-like cellular automaton|non-totalistic rules]].&lt;br /&gt;
* Change the definition of what constitutes a &amp;quot;[[neighbourhood|neighbor]]&amp;quot;, e.g. using the [[von Neumann neighbourhood]] rather than the [[Moore neighbourhood]], or increasing the distance at which cells are considered ([[Larger than Life]] rules).&lt;br /&gt;
* Increase the number of states a cell can be in, up from 2 (&amp;quot;dead&amp;quot; and &amp;quot;live&amp;quot;).&lt;br /&gt;
* Change the [[topology]] of the [[universe]]: operate on e.g. a [[cylinder]], [[torus]] or [[Klein bottle]], rather than an infinite plane.&lt;br /&gt;
* Increase the dimension of the universe, considering [[one-dimensional cellular automata]] (e.g. Wolfram&#039;s [[Rule 110]]), 3-dimensional cellular automata, etc.&lt;br /&gt;
* Change the tiling of the universe: instead of using a [[square tiling]], use a [[hexagonal tiling]] or [[triangular tiling]], or even exotic tilings such as [[hyperbolic]] or [[Penrose]] tilings.&lt;br /&gt;
* ...and much more.&lt;br /&gt;
&lt;br /&gt;
== Totalistic rules ==&lt;br /&gt;
&#039;&#039;&#039;[[Totalistic Life-like cellular automaton|Totalistic rules]]&#039;&#039;&#039; are a sub-class of outer-totalistic rules in which the center cell is not afforded special treatment anymore when determining its fate. With outer-totalistic rules, the center cell and the total number of live neighbors are considered separately; in totalistic rules, the center cell is counted like any other cell, and only the total number of live cells in the neighborhood, &#039;&#039;including&#039;&#039; the center cell, is used to determine evolution.&lt;br /&gt;
&lt;br /&gt;
Totalistic rules can be described using B/S notation, of course; alternatively, they can be expressed by a string of digits listing the live-cells-in-the-neighborhood counts which lead to the center cell being alive in the next generation.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s look at an example. B3/S2 is an outer-totalistic rule (more precisely, a rulestring encoding a rule) in which dead cells get born if they have precisely three live neighbors, and live cells survive if they have precisely two live neighbors. But if a live cell has two live neighbors, that means the total number of live cells in the neighborhood is three as well &amp;amp;mdash; so this rule is actually not just outer-totalistic but also totalistic, and its totalistic rulestring would simply be 3.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-left: auto; margin-right: auto;&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[File:INT Moore R1 3i dead.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;max-width: 25em;&amp;quot; | Cell birth in B3/S2: if the cells in purple are live, the center cell will be born in the next generation.&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[File:INT Moore R1 2a.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;max-width: 25em;&amp;quot; | Cell survival in B3/S2: if the cells in purple are live, the center cell will survive in the next generation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Replicator 2|Fredkin]], also known as Replicator 2, is another example. Its rulestring is B1357/S02468; look closely, and you will see that this means that a cell will be alive in the next generation if and only if the number of live cells in its neighborhood is odd (1, 3, 5, 7 or 9). Its totalistic rulestring, therefore, is 13579.&lt;br /&gt;
&lt;br /&gt;
== Non-totalistic rules ==&lt;br /&gt;
&#039;&#039;&#039;[[Non-totalistic Life-like cellular automaton|Non-totalistic rules]]&#039;&#039;&#039; differ from outer-totalistic rules in that not only the number of live neighbors of a cell is considered when deciding whether the cell should be born (or survive, if it is already live) &amp;amp;mdash; birth and survival also depend on the relative alignment of the cell&#039;s live neighbors.&lt;br /&gt;
&lt;br /&gt;
Rulestrings for non-totalistic rules are typically given in [[Hensel notation]]. As an example, let&#039;s look at a hypothetical rule, B2ek/S12. We understand &amp;quot;S12&amp;quot; well enough &amp;amp;ndash; a live cell survives if it has one or two live neighbors &amp;amp;ndash;, but what does &amp;quot;B2ek&amp;quot; mean?&lt;br /&gt;
&lt;br /&gt;
Imagine, if you will, a cell with two live neighbors. How can these two live neighbors be aligned, relative to each other? All the following configurations are possible:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin-left: auto; margin-right: auto;&amp;quot;&lt;br /&gt;
| [[File:INT Moore R1 2c.png]]&lt;br /&gt;
| [[File:INT Moore R1 2e.png]]&lt;br /&gt;
| [[File:INT Moore R1 2k.png]]&lt;br /&gt;
| [[File:INT Moore R1 2a.png]]&lt;br /&gt;
| [[File:INT Moore R1 2i.png]]&lt;br /&gt;
| [[File:INT Moore R1 2n.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | c&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | e&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | k&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | a&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | i&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | n&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(Some of these configurations have mnemonic names; &amp;quot;c&amp;quot; stands for &amp;quot;corner&amp;quot;, &amp;quot;e&amp;quot; for &amp;quot;edge&amp;quot;, &amp;quot;k&amp;quot; for &amp;quot;knightwise&amp;quot;, &amp;quot;a&amp;quot; for adjacent, and so on. Others are less obvious and simply have to be remembered, or looked up as necessary.)&lt;br /&gt;
&lt;br /&gt;
For an outer-totalistic rule, say B2/S12, any of these configurations would cause the center cell to be born. By contrast, in non-totalistic rules, each configuration is considered separately: in B2ek/S12 a dead cell gets born if and only if it has two live neighbors &#039;&#039;which are in &amp;quot;e&amp;quot; or &amp;quot;k&amp;quot; alignment&#039;&#039; (as shown above).&lt;br /&gt;
&lt;br /&gt;
For some neighbor counts, particularly 4, there is a fairly large number of possible alignments, so it is sometimes convenient to negate rather than specify, essentially saying &amp;quot;...in &#039;&#039;all but&#039;&#039; these alignments&amp;quot;. As an example, consider the first non-totalistic rule ever explored, [[Just Friends]], which is described by the rulestring B2-a/S12. In this rule, a dead cell will get born if it has two live neighbors... unless those two live neighbors are in &amp;quot;a&amp;quot; alignment! Cells in this rule don&#039;t like getting cozy; they&#039;re &amp;quot;just friends&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Non-isotropic rules ==&lt;br /&gt;
The above non-totalistic rules are sometimes called &#039;&#039;isotropic&#039;&#039;: although birth or survival of a cell may depend on the relative alignment of its live neighbors, no attempt is made to distinguish between the absolute alignment. Put another way, two live neighbors north and northwest of a cell will satisfy the &amp;quot;B2a&amp;quot; or &amp;quot;S2a&amp;quot; conditions, but so will two live neighbors south and southeast of the same cell.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Non-isotropic Life-like cellular automaton|Non-isotropic rules]]&#039;&#039;&#039; further distinguish such cases. This part of the tutorial isn&#039;t written yet; for now you may want to look at the [[rule integer]] article, which briefly talks about &amp;lt;tt&amp;gt;MAP&amp;lt;/tt&amp;gt; strings, a different way of encoding rules as 512-bit strings unrelated to B/S notation that naturally lends itself to describing non-isotropic rules.&lt;br /&gt;
&lt;br /&gt;
== Rules with larger neighbourhoods ==&lt;br /&gt;
This part of the tutorial isn&#039;t written yet, either; for now you may want to look at the [[Larger than Life]] article, which talks about such rules.&lt;br /&gt;
&lt;br /&gt;
== Creating custom rules ==&lt;br /&gt;
[[Golly]] has powerful facilities to run a very large class of different rules. You want to create your own custom rules? Then look no further than the &#039;&#039;[[Tutorials/Creating custom rules|Creating custom rules]]&#039;&#039; tutorial. If you&#039;re not familiar with Golly yet, you may also want to take a look at the [[Tutorials/Golly|Golly tutorial]] first.&lt;br /&gt;
&lt;br /&gt;
{{Tutorial}}&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Random life lover</name></author>
	</entry>
	<entry>
		<id>https://conwaylife.com/w/index.php?title=Bi-loaf_2&amp;diff=87071</id>
		<title>Bi-loaf 2</title>
		<link rel="alternate" type="text/html" href="https://conwaylife.com/w/index.php?title=Bi-loaf_2&amp;diff=87071"/>
		<updated>2021-12-24T08:51:01Z</updated>

		<summary type="html">&lt;p&gt;Random life lover: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stilllife&lt;br /&gt;
|name             = Bi-loaf 2&lt;br /&gt;
|pname            = biloaf2&lt;br /&gt;
|c                = 14&lt;br /&gt;
|bx               = 7&lt;br /&gt;
|by               = 7&lt;br /&gt;
|fc               = 22.7&lt;br /&gt;
|rulemin          = B/S23&lt;br /&gt;
|rulemax          = B3678/S012345678&lt;br /&gt;
|rulespecial      = [[Conway&#039;s Game of Life|Conway Life]], [[HighLife]]&lt;br /&gt;
|isorulemin       = B/S2ckn3y&lt;br /&gt;
|isorulemax       = B2-ae34-ejw5-k678/S012345678&lt;br /&gt;
|synthesis        = 4&lt;br /&gt;
|synthesisRLE     = true&lt;br /&gt;
|plaintext        = true&lt;br /&gt;
|rle              = true&lt;br /&gt;
|apgcode          = xs14_4a9m88gzx121&lt;br /&gt;
|niemiecid        = 14.520&lt;br /&gt;
|pentadecathlonid = 14.615&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Bi-loaf 2&#039;&#039;&#039; is a fairly uncommon [[still life]] composed of two [[loaf|loaves]].&lt;br /&gt;
&lt;br /&gt;
In D2 diagonal symmetry, it is significantly more common in symmetric soups than in asymmetric soups.&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Bi-loaf]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
{{LinkLexicon|filename=lex_b.htm#biloaf|patternname=Bi-loaf}}&lt;br /&gt;
{{LinkCatagolue|xs14_4a9m88gzx121}}&lt;br /&gt;
{{LinkNiemiec|p1-14.htm|patternname=The 619 fourteen-bit still-lifes}}&lt;br /&gt;
&lt;br /&gt;
{{Symmetry|diagonal4}}&lt;/div&gt;</summary>
		<author><name>Random life lover</name></author>
	</entry>
	<entry>
		<id>https://conwaylife.com/w/index.php?title=Jaydot&amp;diff=48915</id>
		<title>Jaydot</title>
		<link rel="alternate" type="text/html" href="https://conwaylife.com/w/index.php?title=Jaydot&amp;diff=48915"/>
		<updated>2018-11-04T02:57:41Z</updated>

		<summary type="html">&lt;p&gt;Random life lover: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Methuselah&lt;br /&gt;
|name         = Jaydot&lt;br /&gt;
|pname        = jaydot&lt;br /&gt;
|c            = 9&lt;br /&gt;
|bx           = 3&lt;br /&gt;
|by           = 6&lt;br /&gt;
|l            = 6929&lt;br /&gt;
|f            = 1124&lt;br /&gt;
|mcps         = 10&lt;br /&gt;
|discoverer   = Tanner Jacobi&lt;br /&gt;
|discoveryear = 2014&lt;br /&gt;
|synthesis    = 4&lt;br /&gt;
|rle          = true&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Jaydot&#039;&#039;&#039; is a 9-cell methuselah that dies after 6929 generations. The ratio of its lifespan to the number of cells in its bounding box is unusually high for a methuselah, though [[Bunnies 11]] is superior in that respect. Because the pattern is composed of common spark and a [[Prepond|common pond predecessor]], it is simple to synthesize.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
{{LinkNiemiec|meth.htm#meth-9|patternname=2 nine-bit methuselahs}}&lt;/div&gt;</summary>
		<author><name>Random life lover</name></author>
	</entry>
	<entry>
		<id>https://conwaylife.com/w/index.php?title=Jaydot&amp;diff=48914</id>
		<title>Jaydot</title>
		<link rel="alternate" type="text/html" href="https://conwaylife.com/w/index.php?title=Jaydot&amp;diff=48914"/>
		<updated>2018-11-04T02:57:07Z</updated>

		<summary type="html">&lt;p&gt;Random life lover: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Methuselah&lt;br /&gt;
|name         = Jaydot&lt;br /&gt;
|pname        = jaydot&lt;br /&gt;
|c            = 9&lt;br /&gt;
|bx           = 3&lt;br /&gt;
|by           = 6&lt;br /&gt;
|l            = 6929&lt;br /&gt;
|f            = 1124&lt;br /&gt;
|mcps         = 10&lt;br /&gt;
|discoverer   = Tanner Jacobi&lt;br /&gt;
|discoveryear = 2014&lt;br /&gt;
|synthesis    = 4&lt;br /&gt;
|rle          = true&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Jaydot&#039;&#039;&#039; is a 9-cell methuselah that dies after. The ratio of its lifespan to the number of cells in its bounding box is unusually high for a methuselah, though [[Bunnies 11]] is superior in that respect. Because the pattern is composed of common spark and a [[Prepond|common pond predecessor]], it is simple to synthesize.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
{{LinkNiemiec|meth.htm#meth-9|patternname=2 nine-bit methuselahs}}&lt;/div&gt;</summary>
		<author><name>Random life lover</name></author>
	</entry>
</feed>