It's different from most search programs in that the 'config file' format is just 2-state RLE, designed to be easily editable in Golly. Here's an example of a QuFince config file:
Code: Select all
x = 576, y = 448, rule = B3/S23
384o$o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o
62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b
2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o
62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b
2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o
62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b
2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o
62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b
2o62bo$o40b2o20b2o40b2o20b2o40b2o20b2o62b2o62b2o62bo$o41bo20b2o41bo20b
2o41bo20b2o17b20o25b2o17b2o43b2o17b2o43bo$o34bo3b3o21b2o34bo3b3o21b2o
34bo3b3o21b2o17b20o25b2o17b2o43b2o17b2o43bo$o33bobobo7b2o15b2o33bobobo
7b2o15b2o33bobobo7b2o15b2o17b20o25b2o17b2o43b2o17b2o43bo$o33bobobob2o
3bobo15b2o33bobobob2o3bobo15b2o33bobobob2o3bobo15b2o17b20o25b2o17b2o
43b2o17b2o43bo$o32b2obobobo5bo16b2o32b2obobobo5bo16b2o32b2obobobo5bo
16b2o17b20o25b2o17b2o43b2o62bo$o33bobobobo2b3o17b2o33bobobobo2b3o17b2o
33bobobobo2b3o17b2o17b20o25b2o17b2o43b2o62bo$o33bobobobobo20b2o33bobob
obobo20b2o33bobobobobo20b2o17b20o25b2o17b2o43b2o62bo$o32b2obobobobob2o
3bo13b2o32b2obobobobob2o3bo13b2o32b2obobobobob2o3bo13b2o17b20o25b2o17b
2o43b2o62bo$o33bobobobobobobobobo12b2o33bobobobobobobobobo12b2o33bobob
obobobobobobo12b2o17b20o25b2o17b2o43b2o62bo$o33bobobobobobobob2o13b2o
33bobobobobobobob2o13b2o33bobobobobobobob2o13b2o17b20o25b2o17b2o43b2o
62bo$o32b2obobobobobobo16b2o32b2obobobobobobo16b2o32b2obobobobobobo16b
2o62b2o62b2o62bo$o33bobobobobobobo16b2o33bobobobobobobo16b2o33bobobobo
bobobo16b2o62b2o62b2o62bo$o33bobobobobobob2o15b2o33bobobobobobob2o15b
2o33bobobobobobob2o15b2o62b2o62b2o62bo$o32b2obobobobobobo16b2o32b2obob
obobobobo16b2o32b2obobobobobobo16b2o62b2o62b2o62bo$o35bobobobobobo16b
2o35bobobobobobo16b2o35bobobobobobo16b2o62b2o62b2o62bo$o32b2obobobobob
obob2o13b2o32b2obobobobobobob2o13b2o32b2obobobobobobob2o13b2o62b2o62b
2o62bo$o32bo2bobobobobobobobo12b2o33bobobobobobobobobo12b2o33bobobobob
obobobobo12b2o62b2o62b2o62bo$o33bobobobobob2o3bo13b2o33bobobobobob2o3b
o13b2o33bobobobobob2o3bo13b2o62b2o62b2o62bo$o32b2obobobobo20b2o32b2obo
bobobo20b2o32b2obobobobo20b2o62b2o62b2o62bo$o33bobobobo2b3o17b2o33bobo
bobo2b3o17b2o33bobobobo2b3o17b2o62b2o62b2o62bo$o33bobobobo5bo16b2o33bo
bobobo5bo16b2o33bobobobo5bo16b2o62b2o62b2o62bo$o32b2obobob2o3bobo15b2o
32b2obobob2o3bobo15b2o32b2obobob2o3bobo15b2o62b2o62b2o62bo$o33bobobo7b
2o15b2o33bobobo7b2o15b2o33bobobo7b2o15b2o62b2o62b2o62bo$o33bobo2b3o21b
2o33bobo2b3o21b2o33bobo2b3o21b2o62b2o62b2o62bo$o32b2obo5bo20b2o32b2obo
5bo20b2o32b2obo5bo20b2o62b2o62b2o62bo$o33bob2o3b2o20b2o33bob2o3b2o20b
2o33bob2o3b2o20b2o62b2o62b2o62bo$o33bo28b2o33bo28b2o33bo28b2o62b2o62b
2o62bo$o32b2o28b2o32b2o28b2o32b2o28b2o62b2o62b2o62bo$o62b2o62b2o62b2o
62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b
2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o
62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b
2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o
62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b
2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62bo$o
62b2o62b2o62b2o62b2o62b2o62bo$384o65$576o$o62b2o62b2o62b2o62b2o62b2o
62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b
2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o
62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b
2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o
62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b
2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o
62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b
2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o
62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b
2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o17bo44b2o62b2o62b2o62b
2o62b2o62b2o62b2o62bo$o62b2o18bo43b2o62b2o16bobo43b2o62b2o18bo43b2o62b
2o17bo44b2o62bo$o62b2o16b3o43b2o62b2o17b2o43b2o62b2o16bobo43b2o62b2o
18b2o42b2o62bo$o62b2o62b2o62b2o17bo44b2o62b2o17b2o43b2o62b2o17b2o43b2o
62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b
2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o
62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b
2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o
22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o
22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o
22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o
22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o
22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o
22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o
22b15o25b2o62b2o22b15o25bo$o29bo32b2o62b2o22b15o25b2o62b2o22b15o25b2o
62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o
62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o
62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o
62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o
62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o
62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o
62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o
62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o
62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b
2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o
62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b
2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o
62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b
2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o
62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b
2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o
62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b
2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o
62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b
2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o
62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b
2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o
62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$576o$576o$o62b
2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o
62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b
2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o
62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b
2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o
62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b
2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o
62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b
2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o
62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b
2o17bo44b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o18bo43b2o62b2o16bo
bo43b2o62b2o18bo43b2o62b2o17bo44b2o62bo$o62b2o16b3o43b2o62b2o17b2o43b
2o62b2o16bobo43b2o62b2o18b2o42b2o62bo$o62b2o62b2o62b2o17bo44b2o62b2o
17b2o43b2o62b2o17b2o43b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b
2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o
62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b
2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o22b15o
25b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o
25b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o
25b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o
25b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o
25b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o
25b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o
25b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b15o25bo$o29bo32b2o62b2o
22b15o25b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o
22b15o25b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o
22b15o25b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o
22b15o25b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o
22b15o25b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o
22b15o25b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o
22b15o25b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o
22b15o25b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o
62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b
2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o
62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b
2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o
62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b
2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o
62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b
2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o
62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b
2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o
62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b
2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o
62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b
2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o
62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b
2o62b2o62bo$576o65$576o$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$
o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b
2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o
62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b
2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o
62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b
2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o
62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b
2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o
62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b
2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o
62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b
2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o
62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b
2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o
62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b
2o62b2o62b2o62b2o62bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b
15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b
15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b
15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b
15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b
15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b
15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b2o22b
15o25b2o62b2o22b15o25bo$o29bo32b2o62b2o22b15o25b2o62b2o22b15o25b2o62b
2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b
2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b
2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b
2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b
2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o62b2o22b15o25b2o62b
2o22b15o25b2o62b2o22b15o25bo$o62b2o62b2o22b15o25b2o17bo44b2o22b15o25b
2o17b2o43b2o22b15o25b2o17b2o43b2o22b15o25bo$o62b2o16b3o43b2o22b15o25b
2o17b2o43b2o22b15o25b2o16bobo43b2o22b15o25b2o18b2o42b2o22b15o25bo$o62b
2o18bo43b2o62b2o16bobo43b2o62b2o18bo43b2o62b2o17bo44b2o62bo$o62b2o17bo
44b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b
2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o
62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b
2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o
62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b
2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o
62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b
2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o
62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b
2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o
62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b
2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o
62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b
2o62b2o62b2o62bo$o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$o62b2o
62b2o62b2o62b2o62b2o62b2o62b2o62b2o62bo$576o$192o$o62b2o62b2o62bo$o62b
2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b
2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo
$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b
2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b
2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo
$o62b2o62b2o62bo$o62b2o62b2o29bo32bo$o62b2o62b2o29bo32bo$o62b2o62b2o
29bo32bo$o62b2o62b2o29bo32bo$o62b2o62b2o29bo32bo$o62b2o62b2o29bo32bo$o
62b2o62b2o29bo32bo$o29bo32b2o62b2o29bo32bo$o62b2o62b2o29bo32bo$o62b2o
62b2o29bo32bo$o62b2o62b2o29bo32bo$o62b2o62b2o29bo32bo$o62b2o62b2o29bo
32bo$o62b2o62b2o29bo32bo$o62b2o16b3o43b2o29bo32bo$o62b2o18bo43b2o62bo$
o62b2o17bo44b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o
62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o
62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o
62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o
62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o62b2o62bo$o62b2o
62b2o62bo$192o!
- Initial input pattern;
- AND mask (the set of cells that we care about);
- Target (the subset of the AND mask which we want to be on);
- Number of generations by which the conversion must happen (in this case, 200), encoded in the population of the pattern;
- Number of generations beyond that for which it must match again (in this case, 20), largely to rule out false-positives;
- Earliest time at which objects are allowed to interact with each other (in this case, eight), to exclude portions of the search space where (for example) two gliders/catalysts overlap or are too close to be valid.
- The first box in a reactant row consists of a single cell which we'll call the origin.
- The remaining boxes are pairs of the form (reactant, translation_mask). This allows you to specify lots of different positions for a reactant, each corresponding to a cell in the translation mask. The translation mask is interpreted relative to the 'origin' cell in the leftmost box on the row.
Important: all of the boxes must be exactly aligned on multiples of 64 pixels. QuFince checks for this and throws an error if there are unaligned boxes.
Now, QuFince does a Cartesian product search: it tries all combinations of picking exactly one reactant in each row and combining them with the initial input pattern. Because there are 4 rows of reactants in this particular example file, this is a 4-reactant search. The reactants here are gliders; it's searching for ways to use 2 SE and 2 NE gliders to perform a conversion component that helped with the spacefiller synthesis project.
Naively, we have 900 * 900 * 900 * 15 = 11 billion collisions, but QuFince does some optimisations to reduce this:
- At the beginning, on the CPU, we compute the within-A Cartesian product (900 * 900 = 810000 for this example) and the within-B Cartesian product (900 * 15 = 13500).
- If any of the resulting partial products contain invalid interactions, they are removed.
- Duplications within each of the two groups are also removed (this happens quite a lot in A, because the first and second rows are identical, so we end up double-counting possibilities; this deduplication takes care of this).
Code: Select all
Reading file...
Instruction set AVX2 detected
36 boxes found.
Profile: 6 0 9 9 0 9 3
Minimum generation for reaction to begin: 8
Must match in generations 200 and 220
900/900
900/900
900/900
15/15
Estimated search space: 1.0935e+10
810000 --> 617474 --> 308737
13500 --> 9782 --> 9727
Actual search space: 3003084799 (reduced by a factor of 3.64126)
# progress: 100/308737; speed = 907M iters/sec
# progress: 200/308737; speed = 1808M iters/sec
#1 solutions.
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
.........................................oo.....................
..........................................o.....................
...................................o...ooo......................
..................................o.o.o.......oo................
..................................o.o.o.oo...o.o................
..............o.o.....o..........oo.o.o.o.....o.................
...............oo...o.o...........o.o.o.o..ooo..................
...............o.....oo...........o.o.o.o.o.....................
.................................oo.o.o.o.o.oo...o..............
..................................o.o.o.o.o.o.o.o.o.............
..................................o.o.o.o.o.o.o.oo..............
.................................oo.o.o.o.o.o.o.................
..................................o.o.o.o.o.o.o.................
..................................o.o.o.o.o.o.oo................
.................................oo.o.o.o.o.o.o.................
....................................o.o.o.o.o.o.................
.................................oo.o.o.o.o.o.o.oo..............
.................................o..o.o.o.o.o.o.o.o.............
..................................o.o.o.o.o.oo...o..............
.................ooo.............oo.o.o.o.o.....................
...................o..............o.o.o.o..ooo..................
..................o...............o.o.o.o.....o.................
.....................ooo.........oo.o.o.oo...o.o................
.......................o..........o.o.o.......oo................
......................o...........o.o..ooo......................
.................................oo.o.....o.....................
..................................o.oo...oo.....................
..................................o.............................
.................................oo.............................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
# progress: 300/308737; speed = 1847M iters/sec
# progress: 400/308737; speed = 1899M iters/sec
# progress: 500/308737; speed = 1899M iters/sec
# progress: 600/308737; speed = 1897M iters/sec
# progress: 700/308737; speed = 1900M iters/sec
To run this on your computer, you need to have an NVIDIA GPU and have the nvcc compiler installed (same as if you were running the G1 symmetry in apgsearch, which shares a lot of code). You can alternatively run this in Google Colab on the cloud using this link, which also contains the instructions for compiling:
Code: Select all
git clone https://gitlab.com/apgoucher/lifelib.git
cd lifelib
git submodule update --init --recursive
./compile_qufince.sh
As well as searching for glider collisions, you could easily create input files to perform CatForce-style searches instead, by letting the initial input pattern (the top-left box) be an active region, and having different types and orientations of catalysts as reactants. You could even have mixed searches where some reactants are gliders and others are catalysts; QuFince is completely agnostic to this. The name QuFince is inspired by CatForce: we've inserted an F before the preantepenultimate letter in the Spanish word for 15 instead of the Spanish word for 14.
Important: the expanded products for each of A and B (in this case, 810000 and 13500) must be able to fit in memory. It's best to make these two numbers as balanced as possible (so as to minimise the sum subject to the product necessarily equalling the size of the search space). Also, if you have a couple of gliders from the same direction, or catalysts that could interfere with each other, you'll benefit from having them be in the same group of rows to take advantage of the deduplication and invalid interaction elimination.