Collecting data for Hersrch updates
I'll be doing incremental updates to the data.ini file and conduit library. Contributions are definitely welcome -- just pick a conduit and reply to this message with all the patterns and statistics that Hersrch will need to use it in searches (see below). This adds up to a substantial amount of work, and more hands will make it much lighter!
The latest version of Hersrch can be found here (4 December 2012). Conduits added so far: Bx198, Bx260, Bx285, F114p8, F171, F266(m), Fx266(m), Fx78p8, Fx177p6, L161p8, L198, L255, L309, Lx79p6, Lx138, Lx142, Lx159, Lx198(b), Lx212, Lx216p8, Bx167, R126, R178, R246, Rx140, Rx162, and small improvements to the Fx77SW and Bx222w2 variants. See changelog.txt for details. I update this paragraph for every new incremental release. If you find anything wrong with the current Hersrch, please let me know.
Edit by Sokwe: a small update (15 July 2022) can be found here.
Here's a summary and walkthrough of the information needed for each new conduit:
- 1) RLE of the conduit, with "ghost" input and output Herschels.
Input Herschel is o$obo$3o$2bo orientation.
2) RLE of the conduit's active region (where other conduits' catalysts must not overlap).
The input Herschel is shown as a hole in the region matching the output Herschel.
3) Statistics for data.ini -- compression, offsets, etc. Details and example below.
4) List of conduits that can/cannot precede or follow the conduit in question.
Fx177p6.rle:
Code: Select all
#C vfx177p6 standard -- ghost Herschels at start and end points
x = 39, y = 45, rule = B3/S23
14b2o$13bobo$13bo$11b2ob4o$7b2obo3bo2bo$7b2obobo5b2o$10bo4b3o2bo$4b2o
4bob2o4b2obo$4b2o5bo3bobo3bo$4b2o6b3o3b3o$4bo9bobobo$3bobo9b3o12b2o$4b
obob3o5bo14bo$5bob4o20bobo$6bo25bobo$33bo3b2o$37b2o4$38bo$36b3o$36bo$
36bo2$6bo$6bo$6b3o$8bo5$21b5o$3b5o11b3obob3o$b3obob3o8bo4bo4bo$o4bo4bo
3b2obob2obo2b2obo$ob2o2bob2obobobobobo3b2o2bo$bo2b2o3bobob2o2bobo2bo2b
2o$2b2o2bo2bobo5bobo4bo$4bo4bobo6b2ob4o$4b4ob2o9bo$8bo11bobo$6bobo12b
2o$6b2o!
Code: Select all
#C ufx177p6.rle -- active region of standard Fx177p6
x = 36, y = 37, rule = B3/S23
12b3o$12b3o$12b3o$b2o9b3o$4o8b3o$3o9b3o$bo10b3o$obo3bo5b3o$b7o4b3o$2b
6o4b3o5b3o$3bob2o5b3o3b6o$11b4o3b7o$10b6ob8o$10b16o3b3o$10b17ob4o$10b
22o$7b25o3bo$4b28ob3o$4b28obobo$2b30obo$2b22o3b2o2bo$2bob20o$2bobob17o
$2bo3b17o$2b3ob6ob9o$2b7o10b3o$2b3o15b2o$2b2o15b3o$b3o15b3o$b3o15b3o$b
3o15b3o$b3o15b3o$b3o15b3o$b3o15b3o$b3o15b3o$b3o15b3o$b3o!
Code: Select all
#C vfx177p6x.rle -- variant with no tub-with-tail eater needed.
#C The three dots are a visual reminder: no glider from the output H.
x = 39, y = 45, rule = B3/S23
14b2o$13bobo$13bo$11b2ob4o$7b2obo3bo2bo$7b2obobo5b2o$10bo4b3o2bo$4b2o
4bob2o4b2obo$4b2o5bo3bobo3bo$4b2o6b3o3b3o$4bo9bobobo$3bobo9b3o$4bobob
3o5bo$5bob4o$6bo6$38bo$36b3o$36bo$36bo2$6bo$6bo$6b3o$8bo5$21b5o$3b5o
11b3obob3o$b3obob3o8bo4bo4bo$o4bo4bo3b2obob2obo2b2obo$ob2o2bob2obobobo
bobo3b2o2bo$bo2b2o3bobob2o2bobo2bo2b2o$2b2o2bo2bobo5bobo4bo$4bo4bobo6b
2ob4o$4b4ob2o9bo$8bo11bobo$6bobo12b2o$6b2o!
Code: Select all
#C ufx177p6x.rle -- active region of Fx177p6 when followed by
#C a glider-suppressing "dependent conduit" such as F166
14b2o$13bobo$13bo$11b2ob4o$7b2obo3bo2bo$7b2obobo5b2o$10bo4b3o2bo$4b2o
4bob2o4b2obo$4b2o5bo3bobo3bo$4b2o6b3o3b3o$4bo9bobobo$3bobo9b3o$4bobob
3o5bo$5bob4o$6bo3$36bo2$34bo$38bo$32bo3b3o$36bo$36bo2$6bo$6bo$6b3o$8bo
5$21b5o$3b5o11b3obob3o$b3obob3o8bo4bo4bo$o4bo4bo3b2obob2obo2b2obo$ob2o
2bob2obobobobobo3b2o2bo$bo2b2o3bobob2o2bobo2bo2b2o$2b2o2bo2bobo5bobo4b
o$4bo4bobo6b2ob4o$4b4ob2o9bo$8bo11bobo$6bobo12b2o$6b2o!
There's no other easily-defined area that's definitely forbidden for other conduits to overlap, because the eater can be placed in a lot of possible places along the glider's diagonal. For all Hersrch knows, something might be made to work in any particular case of overlap in that area. So the general rule is to err on the side of caution in making these maps (as the minimal area reserved for the p6 sparkers also shows!) It's probably better to let users manually reject a few impossible tracks here and there, rather than forbidding too much and missing out on a really nice close custom fit.
To go along with all of this, we have to add a new section to the "Component Definition" section of Hersrch's data.ini file:
Code: Select all
Fx177 Fx 177 30 -6
# Standard variant
VFX177P6 6 186 0 GSU data/vfx177p6.rle 7 27 data/ufx177p6.rle 4 23
# Standard variant without eater - no following glider
VFX177P6X 6 186 0 GSX data/vfx177p6x.rle 7 27 data/ufx177p6x.rle 4 23
- Fx : forward conduit, output is flipped
177 : time from Herschel to Herschel
30 -6 : dx, dy offset from old Herschel to new one
6 : period of the oscillators in the conduit
186 : minimum number of ticks before the next Herschel can be safely sent
0 : zero if no maximum compression (this is the normal case)
GSU : GS = glider suppressed, GR = glider released; U = uses following glider,
..... : X = glider must not be released from the following Herschel
7 27 : dx, dy from LOWER left corner of vfx177p6x.rle to center cell of Herschel
4 23 : dx, dy from LOWER left corner of ufx177p6x.rle to center cell of Herschel
The only other statistics that have to be collected for each conduit are the forbidden variant pairs -- which conduits should Hersrch not even bother to try to connect to each other? Having this list up-to-date saves Hersrch a lot of time during searches, and/or saves searchers a lot of time throwing out unworkable results. I'll post my working pattern for this task in a separate message.