Tutorials/Software

From LifeWiki
Revision as of 15:28, 17 December 2018 by AwesoMan3000 (talk | contribs) (→‎Types of Software)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.