biggiemac wrote:There are messy traveling G + blinker reactions like the following that I would be interested in running through a good script, but I don't yet follow how to input them to catalyst/catgl/etc.
Maybe a converter like this could be called a "P2-even" or "P2-odd" reflector/G-to-H, depending on the phase of the restored blinker.
Here's a sample catgl setup that maybe you can modify for your own purposes. If any of this doesn't work on your system, let me know what goes wrong.
If you have Catgl 1.0.3 installed and working -- same instructions as for the
previous walkthrough -- then you should be able to paste a pattern like this into Golly, and then run catgl.py:
Code: Select all
x = 35, y = 22, rule = LifeHistory
30.AB$16.A2BA4.A2BA4BA$15.A2BA5.10B$14.4B.2BA.A7BA2B$4.A2.ABABABA17BA
2BA$3.A27BA2B$3.30B$.A25B2A2BA$.27B2A$BA13BA2.2A3.A.2BAB$ABA9BA11.4B$
ABA7BA12.A2BA$.A8B12.4B$.9BA10.A2BA$2.A8B9.4B$3.7BA8.A2BA$3.A5BA8.4B$
4.A4B8.A2BA$6.2A8.4B$15.A2BA$14.4B$13.A2BA!
Side note: I'd like to be able to use a pattern like this instead --
Code: Select all
x = 35, y = 22, rule = LifeHistory
30.2B$16.4B4.9B$15.4B5.10B$14.4B.3B.11B$4.B2.23B3A2B$3.31B$3.25B2A3B$
.26BABA2B$.28BA$BA14B2.2B3.B.4B$ABA10B11.4B$ABA8B12.4B$.A8B12.4B$.10B
10.4B$2.9B9.4B$3.8B8.4B$3.7B8.4B$4.5B8.4B$6.2B8.4B$15.4B$14.4B$13.4B!
-- but catgl doesn't support this kind of thing correctly yet. Cells have to be on for at least one tick in order to forbid catalysts from being placed there -- thus the ugly workaround with sparks lining the envelope.
With this reaction envelope, it starts to be possible to place catalysts around T=30. Really it could be earlier, but early catalysts will probably kill the B-heptomino so the interesting part of the search space is probably about T=35 to T=75. Beyond T=100 the explosion is getting so messy that probably no amount of catalysis will get it settled down.
That's just a rough estimate, and I could be totally wrong -- you can try any search settings that look promising. It's absolutely possible that there's a clean catalysis with a first interaction above T=150 or T=200. For a first round, though, let's start with an upper limit of T=80. What we're looking for is a small reflector, and catgl.exe as currently compiled only works up to T=250 (total, catalyst placement time plus survival time) and a 180x180 search area.
The above pattern has envelope cells marking off the path for a Herschel output for this conduit (blocked off by the beehive on the left). If you just want to find a G->G, you might want to remove the beehive and nearby envelope, allowing catgl to place catalysts in that area as well -- that would be a much larger search space.
Quick review: ideally we want some reasonable number of catalysts, such that a clean glider or a Herschel comes out, and the only junk left behind is a blinker in the original location. But we might be interested in any catalysis that drops a blinker back in the right place, even if there's some other junk:
just maybe we'll be able to add more catalysts and remove the other junk.
The hard thing is finding the transparent blinker. That's just the luck of the draw, pretty much, so we'll have to look at a lot of possibilities, and apply some kind of filter to catgl output. There are some basic post-search filtering options built in to catgl.exe, but they mostly haven't found their way into catgl.py yet... work in progress, as the title says.
If you tell catgl it can use just two catalysts, that's a fairly short search -- I got eleven candidates back, of which the likeliest were these:
Code: Select all
x = 123, y = 27, rule = LifeHistory
118.C$117.C.C$117.C.C$116.2C.3C$30.A8.2C81.C$16.A2.A4.A2.A4.A6.C70.A
5.2A.3C$15.A2.A18.C.C56.A2.A4.A2.A4.A3.2A.C$21.A.A7.A5.AC56.A2.A$4.A
2.A.A.A.A17.A2.A66.A.A7.A$3.A27.A52.A2.A.A.A.A17.A2.A$83.A27.A$.A25.
2A2.A5.2A.C$28.2A7.2A.3C38.A25.2A2.A$.A13.A2.2A3.A3.A15.C64.2A$A.A9.A
24.2C.3C38.A13.A2.2A3.A3.A$A.A7.A12.A2.A11.C.C39.A.A9.A$.A36.C.C39.A.
A7.A12.A2.A$10.A10.A2.A14.C41.A$2.A87.A10.A2.A$10.A8.A2.A59.A$3.A5.A
80.A8.A2.A$4.A12.A2.A62.A5.A$6.2A76.A12.A2.A$15.A2.A67.2A$95.A2.A$13.
A2.A$93.A2.A!
That puts a block near the original location instead of a blinker, but the Herschel does escape, and there's lots of room for further catalysts. One of these could be used as the starting point for a new search.
If you tell catgl to place up to three catalysts, you'll get a much larger number of results, most of them duplicates. It doesn't really make sense to look through them all manually. So we need to either adjust catgl.py to sort out any reactions that drop a blinker in the right place, or write a separate script to find the promising candidates.
In the next few weeks I hope to find a little time to get the minimal filtering system in catgl.exe working properly with catgl.py, so that it becomes possible to do longer runs to look for less likely things (like this transparent blinker). And now it's my turn to say that any help would be appreciated -- anything from code assistance, to beta testing, to just occasional reminders that I'm supposed to try to tackle this annoying little problem...!