Tutorials/Contributing to 5S: Difference between revisions

From LifeWiki
Jump to navigation Jump to search
Created page with "Do you want to find really cool spaceships in unexplored, alien rules? Well now you can! == What is 5S? == 5S or SSSSS, which stands for "Smallest SpaceShips Supporting Spec..."
 
Whoopsie daisies accidentally spelt username wrong
 
(13 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{stub}}
Do you want to find really cool spaceships in unexplored, alien rules? Well now you can!
Do you want to find really cool spaceships in unexplored, alien rules? Well now you can!


== What is 5S? ==
== What is 5S? ==
5S or SSSSS, which stands for "Smallest SpaceShips Supporting Specific Speeds" is a project which aims to find the smallest spaceship (in cell count) for every speed, as the name suggests. To do this, contributors mainly use two pieces of software: LLS and searchRule-matchPatt2.py. In this article, we will only go over matchPatt.py, as a tutorial for LLS already exists and can be found [[Tutorials/LLS|here]].
5S or SSSSS, which stands for "Smallest SpaceShips Supporting Specific Speeds", is a project which aims to find the smallest spaceship (in cell count) for every speed, as the name suggests. To do this, contributors mainly use two pieces of software: LLS and searchRule-matchPatt2.py. In this article, we will only go over matchPatt2.py, as a tutorial for LLS already exists and can be found [[Tutorials/LLS|here]].
 
You can find the current collection on the wiki at [[LifeWiki:Smallest Spaceships Supporting Specific Speeds]], although the most up to date collection can be found on the [https://drive.google.com/drive/folders/0BxMqKdt7EuS4ZktDLXE0ZGVSMzg 5S official Google Drive folder]. The forum thread for the project can also be found [http://www.conwaylife.com/forums/viewtopic.php?f=11&t=2892 here].


You can find the current collection on the wiki at [[LifeWiki:Smallest Spaceships Supporting Specific Speeds]], The most up-to-date collections are LaundryPizza03's [https://drive.google.com/drive/folders/18TeGhxuojV_uEyl__bH8XACz24e01MHl?usp=sharing Google Drive folder] and Ampere's  [https://github.com/AforAmpere/sssss github respository] with Ampere's also having the most up to date code. GUYTU6J has a version of the main program that allows for periodic seed saving,and seperates oscillators, and ships into different files: https://conwaylife.com/forums/viewtopic.php?f=11&t=2892&start=1200#p150958. Before using GUYTU6J's version, make sure to remove "+1" from line 356.


== searchRule-matchPatt2.py ==
== searchRule-matchPatt2.py ==
Line 13: Line 12:
To run searchRule-matchPatt2.py, you will need to download the following files:
To run searchRule-matchPatt2.py, you will need to download the following files:
# The latest version of [http://golly.sourceforge.net/ Golly]
# The latest version of [http://golly.sourceforge.net/ Golly]
# [https://www.python.org/ Python] 2.7
# [https://www.python.org/ Python] The current code works with the most recent version of python
# [https://drive.google.com/open?id=1arDZCXk9jk_wIqybBaoBtC-A4zrNVTeM searchRule-matchPatt2.py] from the 5S Google Drive folder
# The rest of the files are at https://github.com/AforAmpere/sssss
# [https://drive.google.com/open?id=1ulCQy4opH8Z9u1g0qQc9Cx2W0xd_ufAA sss.py], also from the 5S Google Drive folder
# [https://drive.google.com/open?id=1nT3uaCA0rU5V8Za3T_g9CsdaOSgvYcYr Diagonal ships.sss.txt], [https://drive.google.com/open?id=1uhyPrvQUYEQTolxU4ztrGKMgyB908xtT Oblique ships.sss.txt], and [https://drive.google.com/open?id=1ql_1b79MwWYt73XA86LXEpBrLffOJOpE Orthogonal ships.sss.txt], all from the 5S Google Drive folder


Once you have downloaded those files, go ahead and put them in the same folder.
Once you have downloaded those files, go ahead and put them in the same folder.
Line 22: Line 19:
=== How to Use ===
=== How to Use ===
First, you'll need to open Golly, as this script is made to run from within Golly.<br><br>
First, you'll need to open Golly, as this script is made to run from within Golly.<br><br>
Next, you'll need what's called the '''target pattern''' and a '''gen constraint''', the way searchRule-matchPatt2.py works is by taking a target pattern and the gen constraint, running the target constraint for a number of gens (the gen constraint), getting the set of rules where the pattern evolves the same way for the number of gens, and then searching those rules for spaceships (or oscillators).<br><br>
Next, you'll need what's called the '''target pattern''' and a '''gen constraint''', the way searchRule-matchPatt2.py works is by taking a target pattern and the gen constraint, running the target pattern for a number of gens (the gen constraint), getting the set of rules where the pattern evolves the same way for the number of gens, and then searching those rules for spaceships (or oscillators).<br><br>
To input a target pattern, simply open or draw the target pattern in Golly. It is better if the target pattern is a spaceship, but other patterns can work alright as well. An example of a target pattern is this B-Heptomino spaceship:
To input a target pattern, simply open or draw the target pattern in Golly. It is better if the target pattern is a spaceship, but other patterns can work alright as well. An example of a target pattern is this B-Heptomino spaceship:


Line 28: Line 25:
  bo$3o$ob2o!
  bo$3o$ob2o!


You can find target patterns from the current 5S collection, look for a small (3-10 cells, preferably 3) high-period ship. Or, look for B-Heptomino ships on the forums. B-Heptomino ships tend to give many results.<br><br>
You can find target patterns from the current 5S collection. Look for a small (3-10 cells, preferably 3) high-period ship. Or, look for B-Heptomino ships on the forums. B-Heptomino ships tend to give many results.<br><br>
Once you have the target pattern, simply run searchRule-matchPatt2.py from within Golly, which you can do by going to <tt>Files -> Run script...</tt> in Golly. The script will ask you for a gen constraint; depending on the ship's period, the gen constraint could be anything. A good range for gen constraints is 15-20 gens, again, depending on the period of the ship.<br><br>
Once you have the target pattern, simply run searchRule-matchPatt2.py from within Golly, which you can do by going to <tt>Files -> Run script...</tt> in Golly. The script will ask you for a gen constraint; depending on the ship's period, the gen constraint could be anything less than the period. A good range for gen constraints is 15-20 gens, again, depending on the period of the ship.<br><br>
searchRule-matchPatt2.py will (by default) create a text file named <tt>matchPatt2-test.txt</tt> in the same folder as all the other files which contains the results of your search.
searchRule-matchPatt2.py will (by default) create a text file named <tt>matchPatt2-test.txt</tt> in the same folder as all the other files which contains the results of your search.


Line 35: Line 32:
Before you start searching for cool spaceships in alien rules, make sure that no one else has done the exact same search as you by reading the 5S forum thread. People there might specify the seed they used, which you can change. To change the seed, go to line 69 of searchRule-matchPatt2.py and just change the number there.
Before you start searching for cool spaceships in alien rules, make sure that no one else has done the exact same search as you by reading the 5S forum thread. People there might specify the seed they used, which you can change. To change the seed, go to line 69 of searchRule-matchPatt2.py and just change the number there.


== Picking Out Interesting Ships ==
After a while you'll notice your matchPatt2-test.txt file filling up with spaceships. Here's an example of what it may look like:
# Search results matching pattern 2bo$b3o$2obo! for 5 gen in rule B3/S23 with searchRule-matchPatt2.py using seed=1<br>
11, B3aijqr/S2-ci3-acy4i, 2, 0, 82, 4bo$3b3o$2b2o2bo$4b3o6$o!
7, B2k3-ek4krz5cer6-ek7e/S2-cn3-acky4iqz5cjr6ekn7c, 6, 6, 44, 2b3o$3bo$obo$3bo!
6, B2in3-cny4eijy5ackr7/S2aek3-aey4aceinq5-ijqy6ckn7e, 6, 6, 256, 3o$o2bo$o!
13, B3-eny4ejrz5eky6c7/S23-aky4iy5ajr6k, 8, 8, 54, o$b2o6$12bo$12b2o$11bob2o$11bobo$11b2o!


== Picking Out Interesting Ships ==
Once you're done searching, copy any spaceships you want from your matchPatt2-test.txt file and click on the 5S_update.py script (available from AforAmpere's github respository). The script will update the current 5S collection and notify you about any new or improved speeds.
Coming soon!
 
{{Tutorial}}
{{GollyNavbox}}

Latest revision as of 06:07, 4 January 2024

This article is a stub. You can help LifeWiki by expanding it.

Do you want to find really cool spaceships in unexplored, alien rules? Well now you can!

What is 5S?

5S or SSSSS, which stands for "Smallest SpaceShips Supporting Specific Speeds", is a project which aims to find the smallest spaceship (in cell count) for every speed, as the name suggests. To do this, contributors mainly use two pieces of software: LLS and searchRule-matchPatt2.py. In this article, we will only go over matchPatt2.py, as a tutorial for LLS already exists and can be found here.

You can find the current collection on the wiki at LifeWiki:Smallest Spaceships Supporting Specific Speeds, The most up-to-date collections are LaundryPizza03's Google Drive folder and Ampere's github respository with Ampere's also having the most up to date code. GUYTU6J has a version of the main program that allows for periodic seed saving,and seperates oscillators, and ships into different files: https://conwaylife.com/forums/viewtopic.php?f=11&t=2892&start=1200#p150958. Before using GUYTU6J's version, make sure to remove "+1" from line 356.

searchRule-matchPatt2.py

Things You Will Need

To run searchRule-matchPatt2.py, you will need to download the following files:

  1. The latest version of Golly
  2. Python The current code works with the most recent version of python
  3. The rest of the files are at https://github.com/AforAmpere/sssss

Once you have downloaded those files, go ahead and put them in the same folder.

How to Use

First, you'll need to open Golly, as this script is made to run from within Golly.

Next, you'll need what's called the target pattern and a gen constraint, the way searchRule-matchPatt2.py works is by taking a target pattern and the gen constraint, running the target pattern for a number of gens (the gen constraint), getting the set of rules where the pattern evolves the same way for the number of gens, and then searching those rules for spaceships (or oscillators).

To input a target pattern, simply open or draw the target pattern in Golly. It is better if the target pattern is a spaceship, but other patterns can work alright as well. An example of a target pattern is this B-Heptomino spaceship:

x = 4, y = 3, rule = B3-cnqy4ejz5ekr6n8/S2-i3-ay4-ajkqw5-iqy6c7
bo$3o$ob2o!

You can find target patterns from the current 5S collection. Look for a small (3-10 cells, preferably 3) high-period ship. Or, look for B-Heptomino ships on the forums. B-Heptomino ships tend to give many results.

Once you have the target pattern, simply run searchRule-matchPatt2.py from within Golly, which you can do by going to Files -> Run script... in Golly. The script will ask you for a gen constraint; depending on the ship's period, the gen constraint could be anything less than the period. A good range for gen constraints is 15-20 gens, again, depending on the period of the ship.

searchRule-matchPatt2.py will (by default) create a text file named matchPatt2-test.txt in the same folder as all the other files which contains the results of your search.

Before you start searching for cool spaceships in alien rules, make sure that no one else has done the exact same search as you by reading the 5S forum thread. People there might specify the seed they used, which you can change. To change the seed, go to line 69 of searchRule-matchPatt2.py and just change the number there.

Picking Out Interesting Ships

After a while you'll notice your matchPatt2-test.txt file filling up with spaceships. Here's an example of what it may look like:

# Search results matching pattern 2bo$b3o$2obo! for 5 gen in rule B3/S23 with searchRule-matchPatt2.py using seed=1
11, B3aijqr/S2-ci3-acy4i, 2, 0, 82, 4bo$3b3o$2b2o2bo$4b3o6$o! 7, B2k3-ek4krz5cer6-ek7e/S2-cn3-acky4iqz5cjr6ekn7c, 6, 6, 44, 2b3o$3bo$obo$3bo! 6, B2in3-cny4eijy5ackr7/S2aek3-aey4aceinq5-ijqy6ckn7e, 6, 6, 256, 3o$o2bo$o! 13, B3-eny4ejrz5eky6c7/S23-aky4iy5ajr6k, 8, 8, 54, o$b2o6$12bo$12b2o$11bob2o$11bobo$11b2o!

Once you're done searching, copy any spaceships you want from your matchPatt2-test.txt file and click on the 5S_update.py script (available from AforAmpere's github respository). The script will update the current 5S collection and notify you about any new or improved speeds.