CatForce .in file generator

Fill in the form, copy the result into a file, run ./CatForce yourfile.in. Works for Conway's Life and INT rules.

Instructions (click to hide)
  1. Rule: type a Life-like / Hensel INT rulestring (e.g. B3/S23, B2ei3aeikqr/S2-a3) or a Golly MAP… string. Rules with B0 are not supported. Pasting an RLE from Golly also offers its rule.
  2. Auto-split (optional): paste a whole pattern (e.g. several glider + still-life test cases) and the page simulates each object under your rule, makes still lifes and oscillators baits, and splits independent clusters into separate setups you can load or export all at once.
  3. Active pattern: paste the RLE of the thing you want to find catalysts for (Golly: select it, Edit → Copy). Headers and line breaks are cleaned automatically, since CatForce only accepts o b $ ! and digits. The offset is where the pattern's top-left corner sits; the map shows it.
  4. Search settings: leave a box empty to use CatForce's default. The search area is a set of rectangles x y w h in torus coordinates (centre = 0,0; x right, y down; edges −32…31): all "include" rectangles are combined and all "exclude" rectangles are removed, so you can leave out a quadrant or any other shape made of rectangles.
  5. Catalysts: add each catalyst's RLE and how long (in generations) it may be missing. dx dy is the offset of its top-left corner; symmetry transforms rotate/reflect about the origin, so for + x / * | catalysts, use the thumbnail's crosshair to put the centre of symmetry on the origin (a 3×3 boat/block-like shape usually wants -1 -1).
  6. You can paste existing cat … lines (e.g. from the repo's catlists/) or a whole old .in file into Import.
  7. Bait (optional): an object added to the starting pattern that must be disturbed and later reappear intact. See the card for details.
  8. Run options: threads uses several cores, max-time/max-results stop a long search cleanly, include loads a catalyst list from a file instead of pasting it. You can also run ./CatForce file.in --check first to see a summary without searching.
  9. Filters (optional) restrict results to solutions that produce a given pattern.
  10. Press Copy (or Save), save as a text file, then run ./CatForce file.in. CatForce does not care about the file extension. Open the result RLE in Golly with the same rule set.

Field hints come from CatForce's README; options not in the README are marked "(from source)". Orange/red messages next to the output tell you what to fix; the output is still generated.

Rule

Written as a rule line; empty means B3/S23 (Conway).

Search settings

Empty = CatForce default (shown as placeholder).


Search area search-area / exclude-area
Leave one quadrant out (of the whole 64x64 torus, origin at its centre):
Positions allowed = all "include" rectangles combined, minus all "exclude" rectangles (no include rectangle = CatForce default -30 -30 60 60). This restricts where a catalyst's origin point (set by its dx dy) may go. x right, y down, edges -32...31.

Auto-split a whole pattern (optional)

Paste a complete pattern from Golly (with its header). Each separate object is simulated alone under the current rule: still lifes and oscillators become baits, everything that moves or evolves stays in the active pattern. Change any object's role below. Objects that are close together form one setup, so a file with several independent test cases splits into several searches.

Active pattern

The pattern the catalysts react to. Gray box on the map = search area, blue crosshair = origin (0,0).

64×64 torus, each square = 1 cell. Dark = active pattern at its offset, blue cells = bait, shaded = allowed catalyst positions.

Bait (optional)

An object added to the starting pattern that must be disturbed at some point and later reappear (cells alive, surrounding cells dead) and survive. Oscillators are accepted in any phase. All baits must succeed together with the catalysts.

Catalysts

One cat line each. CatForce tries all placements and orientations allowed by the symmetry character.

Import cat lines or a whole .in file

Filters (optional)

and: every one must match. or: at least one must match. match: pattern may appear anywhere. A generation range only succeeds after every catalyst has interacted.