The Ash Pattern Generator Search program, more commonly known as apgsearch, is an automated search program created by Adam P. Goucher. It generates 16x16 soups and runs them until stabilization, recording any resulting still lifes, oscillators, spaceships, periodic linear infinite growth patterns, and "unusual growth" patterns. Version 1.x and later upload the results to the online database Catagolue.
Two versions of apgsearch, versions 0.x and 1.x, were written in Python for use in Golly.
apgsearch v0.x was the initial version of the script, first published on September 8, 2014. When running the script, the user is first prompted to enter the number of soups to be searched, the rule under which to search, and the initial seed for soup generation. The script proceeds to search soups in sets of 100 until either the specified number of soups has been exceeded, or the user stops the search by pressing <q>. After the search finishes, Golly opens an HTML window which displays the results. Aidan F. Pierce modified this version to allow soup-searching non-totalistic Life-like cellular automata, and made a later modification to allow the results to be uploaded to Catagolue.
apgsearch v1.x was first released on February 20, 2015. The main improvements from version 0.x are the ability to search symmetrical soups and the periodic uploading of results to Catagolue. apgsearch 1.x supports a variety of different symmetries.
Two versions of apgsearch, versions 2.x and 3.x, were written in C++. These versions are much faster, and are intended to be run from the command line of a Unix shell.
apgsearch v2.x, codenamed apgnano, was first published on July 19, 2015 and released onto the conwaylife.com forums on July 28. It uses a bespoke algorithm called Life128, written in assembly language for speed, and can utilize both the SSE2 and AVX1 instructions sets on x86_64 CPUs. It can only run searches under asymmetric Life.
apgsearch v3.x, codenamed apgmera, was first published on March 3, 2016 and released onto the conwaylife.com forums on March 19. Unlike version 2.x, it supports arbitary totalistic rules, as well as the full range of symmetries from apgsearch 1.1. It can use the AVX2 instruction set on x86_64 CPUs if available.
Although the main program is written in C++, version 3.x contains a shell script and a Python file to generate assembly code for different rules and symmetries.
- "apgsearch: a high-performance soup searcher". Retrieved on June 12, 2016.
- "apgsearch v1.0". Retrieved on June 12, 2016.
- "apgsearch v2.2". Retrieved on June 12, 2016.
- "apgsearch v3.1". Retrieved on June 12, 2016.