Difference between revisions of "Tutorials/Software"

From LifeWiki
Jump to navigation Jump to search
(5 intermediate revisions by 4 users not shown)
Line 2: Line 2:


== Types of Software ==
== Types of Software ==
There are many types of Life software. Some search for exotic spaceships and others search for fancy oscillators. Some can do both and some more.
There are many types of Life search programs. Some search for exotic spaceships and others search for fancy oscillators. Some can do both and some more.


=== Spaceship Searchers ===
=== Row-by-row ===
Some software search for spaceships. This is by far the most popular use for software, probably because cool new spaceships are scarce. There are a lot, some include:
These programs discover patterns by extending [[partial result]]s by one or more rows at a time. The method of traversing the tree of partial results, and of finding ways to extend a given partial result, differs between search programs.


* Gfind: This is a famous spaceship searcher/finder. It was created by David Eppstein with the programming language C (The most popular for Life software). It was with this that he found the [[Weekender]]. Paul Tooke, another guy, also used it to find the [[Dragon]]. It uses [[de Brujin Graphs]] to search for spaceships.
* [[gfind]]: this is a well-known breadth-first spaceship finder. It was written in C by [[David Eppstein]], who used it to find the [[weekender]]. Paul Tooke used it to find the [[dragon]]. It finds extensions of partial results by means of [[de Bruijn graphs]].
* Zfind: This is another famous piece of software, but was only made recently. It is a modification of gfind made by the user "zdr". Zdr used this to find the legendary [[Copperhead]].
* [[zfind]]: this is a recent program made by the user 'zdr', who used it to find the [[Copperhead]]. It differs from gfind in that partial extension is performed by a memory-intensive lookup table, making it suitable for narrow spaceships of relatively high periods.
* WLS: A very easily used software that can find oscillators, spaceships, and other things. It is actually a Windows version of Lifesrc. It is commonly used by beginners to find still lifes and oscillators, though it can be very useful at some times.
* [[ofind]]: a breadth-first oscillator search program by David Eppstein, differing from gfind in its handling of [[stator]] cells and its approach of extending all [[phase]]s simultaneously.
* '''knight.*''': similar to gfind, but only stores one phase of the partial. This was written by [[Tim Coe]] to find spaceships, and succeeded in discovering the [[spaghetti monster]].
* '''qfind''': parallelised version of zfind, with some features of gfind.


=== Oscillator Finders ===
=== Cell-by-cell ===
Other software search for oscillators. Though they are not as popular as spaceships, oscillators can be useful in creating various circuits.
These programs maintain a grid of cells with known or unknown states and perform constraint propagation.


* Dr: An oscillator search program that mainly searches for "Drifters" or billiard table oscillators. Written in C.
* [[lifesrc]]: the canonical search program, by David Bell. The programs [[JLS]] and [[WLS]] are derivatives thereof.
* Ofind: Another oscillator finder written in C. Easier to use than dr.
* [[Logic Life Search]]: a Python program by Oscar Cunningham which serves as a frontend to one of several different SAT solvers.
* '''dr''': a search program by [[Dean Hickerson]] for finding stabilisations of perturbations moving across a stable background. It can find [[billiard table]] oscillators, signals, and eaters. Written in C.


[[Category:Tutorials]]
=== Catalysis ===
These programs attempt to perturb a reaction by placing [[catalyst]]s at the edge of the reaction envelope. Their main use is finding new [[Herschel]] [[conduit]]s and other stable technology.
 
* '''catalyst''': the original catalysis search program by [[Gabriel Nivasch]].
* '''catgl''': [[Dave Greene]]'s modification of catalyst with the ability to detect and remove escaping [[glider]]s. This found the [[boojum reflector]].
* [[ptbsearch]]: a catalysis search program by [[Paul Callahan]].
* [https://github.com/simsim314/CatForce CatForce]: a catalysis search program by [[Michael Simkin]].
* [http://www.conwaylife.com/forums/viewtopic.php?f=9&t=2246 CollisionsSearch]: a catalysis search program by 'Guam', written in Delphi.
 
=== Soup searchers ===
Instead of constructing a pattern piecewise, these programs run initial seeds in a cellular automaton and observe the resulting behaviour.
 
* [[gsearch]]: brute-force search of small rectangular soups, with the ability to detect if the pattern evolves into an [[oscillator]], [[spaceship]], [[replicator]], or [[puffer]].
* [[apgsearch]]: family of distributed search programs which run pseudorandom soups and report to a centralised server, [[Catagolue]]. It found the [[pufferfish]] and [[Rich's p16]], in addition to rediscovering many known patterns and providing useful [[predecessor]]s thereof.
* [http://www.yucs.org/~gnivasch/life/index.html Random Agar]: a soup searcher by [[Gabriel Nivasch]] supporting periodic grids, able to find [[wick]]s and [[agar]]s in addition to oscillators.
 
=== Glider syntheses ===
These programs search for [[glider syntheses]] of objects.
 
* [[Glue]]: Windows-based slow salvo search program written by [[Paul Chapman]].
* '''HoneySearch''': parallel memory-intensive breadth-first search of [[slow salvo]] reactions. It ran over three days on a 72-core machine to produce 13 gigabytes of output data, which was later postprocessed and cleaned to produce the data for slmake.
* [[slmake]]: a program for assembling [[slow salvo]] syntheses of stable constellations by tail recursion. The syntheses are pieced together from the reactions found by HoneySearch. [[Dave Greene]] used this program to prepare the data tapes for the [[Orthogonoid]] and [[Hydra]].
 
=== Hybrid programs ===
Some software straddles more than one of the above categories:
 
* [[ikpx]]: a heuristic-driven spaceship search program by [[Adam P. Goucher]]. It extends partials in a row-by-row fashion, but performs deep lookaheads by locally executing a cell-by-cell search similar to Logic Life Search (and parallelises). It was used to discover the first [[elementary]] [[knightship]], [[Sir Robin]].
* [[Bellman]]: a search program for [[conduit]]s and [[stable reflector]]s. It constructs catalysts at the edge of the reaction envelope, and shares properties with both catalyst and dr.
 
[[Category:Tutorials|Software]]

Revision as of 15:28, 17 December 2018

A lot of people have been desperate to find new things in Life and be famous, which probably includes YOU. Because of this strange behavior of wanting to become famous, people have created software for searching for things... in Life. You too can use the software that other people have made. Many famous things have been found with software.

Types of Software

There are many types of Life search programs. Some search for exotic spaceships and others search for fancy oscillators. Some can do both and some more.

Row-by-row

These programs discover patterns by extending partial results by one or more rows at a time. The method of traversing the tree of partial results, and of finding ways to extend a given partial result, differs between search programs.

  • gfind: this is a well-known breadth-first spaceship finder. It was written in C by David Eppstein, who used it to find the weekender. Paul Tooke used it to find the dragon. It finds extensions of partial results by means of de Bruijn graphs.
  • zfind: this is a recent program made by the user 'zdr', who used it to find the Copperhead. It differs from gfind in that partial extension is performed by a memory-intensive lookup table, making it suitable for narrow spaceships of relatively high periods.
  • ofind: a breadth-first oscillator search program by David Eppstein, differing from gfind in its handling of stator cells and its approach of extending all phases simultaneously.
  • knight.*: similar to gfind, but only stores one phase of the partial. This was written by Tim Coe to find spaceships, and succeeded in discovering the spaghetti monster.
  • qfind: parallelised version of zfind, with some features of gfind.

Cell-by-cell

These programs maintain a grid of cells with known or unknown states and perform constraint propagation.

  • lifesrc: the canonical search program, by David Bell. The programs JLS and WLS are derivatives thereof.
  • Logic Life Search: a Python program by Oscar Cunningham which serves as a frontend to one of several different SAT solvers.
  • dr: a search program by Dean Hickerson for finding stabilisations of perturbations moving across a stable background. It can find billiard table oscillators, signals, and eaters. Written in C.

Catalysis

These programs attempt to perturb a reaction by placing catalysts at the edge of the reaction envelope. Their main use is finding new Herschel conduits and other stable technology.

Soup searchers

Instead of constructing a pattern piecewise, these programs run initial seeds in a cellular automaton and observe the resulting behaviour.

Glider syntheses

These programs search for glider syntheses of objects.

  • Glue: Windows-based slow salvo search program written by Paul Chapman.
  • HoneySearch: parallel memory-intensive breadth-first search of slow salvo reactions. It ran over three days on a 72-core machine to produce 13 gigabytes of output data, which was later postprocessed and cleaned to produce the data for slmake.
  • slmake: a program for assembling slow salvo syntheses of stable constellations by tail recursion. The syntheses are pieced together from the reactions found by HoneySearch. Dave Greene used this program to prepare the data tapes for the Orthogonoid and Hydra.

Hybrid programs

Some software straddles more than one of the above categories:

  • ikpx: a heuristic-driven spaceship search program by Adam P. Goucher. It extends partials in a row-by-row fashion, but performs deep lookaheads by locally executing a cell-by-cell search similar to Logic Life Search (and parallelises). It was used to discover the first elementary knightship, Sir Robin.
  • Bellman: a search program for conduits and stable reflectors. It constructs catalysts at the edge of the reaction envelope, and shares properties with both catalyst and dr.