Stable signal converters

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
User avatar
otismo
Posts: 318
Joined: August 18th, 2010, 1:41 pm
Location: Florida
Contact:

Re: Stable signal converters

Post by otismo » March 4th, 2020, 4:38 pm

dvgrn wrote:
March 4th, 2020, 11:31 am
JP21 wrote:
March 4th, 2020, 10:31 am
Replaced some snarks and the eater...
By the way, is this the smallest one?
Usually nobody worries much in this thread about the Snark variants, or the eater-vs.-snake substitution.

This isn't the smallest G-to-MWSS, no. If we're talking about stable conduits, I think that's the 81x52 extension of Kazyan's H-to-MWSS. But that has a repeat time of 157.

So this is just the smallest stable G-to-MWSS that has a repeat time as good as the syringe.
I cannot seem to get a clean pattern, here or in wiki.
In the Game of Life there are no winners there are no losers there are only SURVIVORS.
.....**
...****
.******
*( ͡° ͜ʖ ͡°)*

Code: Select all

#CXRLE Pos=0,0
x = 26, y = 34, rule = B3/S23
23bo$23bobo$23b2o9$2b3o2$o5bo$o5bo$o5bo2$2b3o5b2o$10b2o3$2b2o$2b2o10$
15b2o$15b2o!

User avatar
dvgrn
Moderator
Posts: 6842
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Stable signal converters

Post by dvgrn » March 4th, 2020, 5:13 pm

otismo wrote:
March 4th, 2020, 4:38 pm
I cannot seem to get a clean pattern, here or in wiki.
Sorry, I meant to post the 81x52 G-to-MWSS converter, but it looks like I forgot to do that part. Here it is:

Code: Select all

x = 81, y = 61, rule = B3/S23
39b3o$39bo2bo$39bo$39bo3bo$39bo$40bobo4$72b2o$72b2o3$78b2o$78b2o$74b2o
$74b2o$35bo$34bobo16b2o$34bobo16b2o$35bo43b2o$79b2o7$37bo$36bobo$37b2o
4$4bo23bo$5bo22b3o$3b3o25bo$18bo11b2o11b2o$16b3o24b2o$15bo$15b2o$2o$bo
$bob2o$2bo2bo68b2o$3b2o69b2o$18b2o48b2o$18b2o29b2o17b2o$50bo$47b3o$47b
o22b2o$63b2o5b2o$26bo3b2o31b2o$25bobo3bo$21b2obobo3bo12b2o$21b2obo4bo
13bo$25b5obo12b3o$17b2obob2obo4bobo13bo$17bob2obo2bob2o2bo$10b2o12b2ob
ob2o$10b2o!
The MWSS doesn't count as part of the bounding box.

JP21
Posts: 1046
Joined: October 26th, 2019, 5:39 am
Location: PH

Re: Stable signal converters

Post by JP21 » March 5th, 2020, 4:30 am

Here is what I know:
The conduit can be replaced (disappointingly useless):

Code: Select all

x = 81, y = 61, rule = B3/S23
39b3o$39bo2bo$39bo$39bo3bo$39bo$40bobo4$72b2o$72b2o3$78b2o$78b2o$74b2o
$74b2o$35bo$34bobo16b2o$34bobo16b2o$35bo43b2o$79b2o7$37bo$36bobo$37b2o
4$4bo23bo$5bo22b3o$3b3o25bo$18bo11b2o11b2o$16b3o24b2o$15bo$15b2o$2o$bo
$bob2o$2bo2bo68b2o$3b2o69b2o$18b2o48b2o$18b2o29b2o17b2o$50bo$47b3o$47b
o22b2o$27bo3b2o30b2o5b2o$26bobo3bo30b2o$25bobo3bo$21b2obobo3bo12b2o$
21b2obo2b4obo10bo$25bobo3bobo10b3o$21b2ob2o2bo2bobo12bo$22bobo2b2o3bo$
10b2o10bobo$10b2o11bo!
There are no g-to-hwss
The g-to-lwss on wiki isn't the smallest
There are no lists for the smallest (and second, fourth, fifth smallest) g-to-xwss converters.

User avatar
dvgrn
Moderator
Posts: 6842
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Stable signal converters

Post by dvgrn » March 5th, 2020, 8:28 am

JP21 wrote:
March 5th, 2020, 4:30 am
Here is what I know:
The conduit can be replaced (disappointingly useless):

Code: Select all

[syringe catalyst replacement]
Yeah, that's another replacement that people mostly just make whenever it's necessary. There's probably no need to re-post a pattern, at least on this thread, if that's the only change you're going to make to it.

If you'd like these variants to be documented better, maybe a good way to do that would be to improve the LifeWiki syringe article by adding a few embedded LifeViewers, e.g., for Sokwe's high-clearance syringe (the one you replaced, which is the standard version in the Elementary Conduits Collection), and the dependent syringe.
JP21 wrote:
March 5th, 2020, 4:30 am
There are no g-to-hwss
On the LifeWiki, you mean? There are lots of G-to-HWSSes, starting with the one Stephen Silver built in September 1997:

Code: Select all

# Still glider-to-HWSS converter
x = 316, y = 254, rule = B3/S23
304b2o$304b2o$309bo$307b3o$306bo$306b2o$284b2o$284b2o2$295bobo$296b2o$
296bo2$296b2o$296b2o$310b2o$310b2o$314b2o$314b2o14$290b2o$290bobo$291b
o7$286bob2o$286b2obo2$295b2o$295b2o7$305b2o$305bo$303bobo$281bo21b2o$
279b3o$278bo$278b2o2$285b2o$212bo73bo$212b3o71bobo$215bo43bo27b2o$214b
2o34bo7bobo$250b3o6bo$194b2o57bo$187b2o5b2o56b2o$120bo66b2o$119bobo$
119bobo$118b2ob3o65b2o17b2o$124bo64b2o17bo$118b2ob4o2bo55b2o21bobo36b
2o25b2o$118b2obo3b3o55b2o21b2o37b2o25bo$124bo145bobo6bo8b2o15b2o$96b2o
26b2o144b2o7b3o6b2o15bobo$97bo184bo24bo$97bobo181b2o24b2o$98b2o157b2o$
142b2o70b2o32b2o6bobo$142b2o70b2o11b2o20bo6bo41bo$227bo20bo6b2o39b3o$
228b3o17b2o45bo$92bob2o52b2o80bo64b2o$92b2obo52b2o$144b2o34bo$101b2o
41b2o34b3o46b2o$101b2o80bo45b2o28b2o$182b2o50bo23bobo$232b3o23bo$149b
2o80bo25b2o$149b2o80b2o$113b2o3b2o89b2o$114bo3bo90b2o$111b3o5b3o180b2o
$111bo9bo55b2o123b2o$109bobo66bo$109b2o67bobo$179b2o$221b2o74b2o$221b
2o74b2o$13b2o178b2o40b2o64b2o$6b2o5b2o76b2o49b2o49bobo39b2o64b2o$6b2o
84bo49bo52bo43b2o19b2o21b2o$42b2o48bobo48b3o49b2o42b2o19b2o21bobo$42bo
50b2o50bo120b2o17bo9b2o$8b2o33bo11bo73b2o135b2o17b2o8b2o$8b2o32b2o9b3o
72bobo44bob2o$2b2o48bo75bo46b2obo$2b2o48b2o10b2o61b2o135b2o$64bo17b2o
100b2o78b2o5b2o$62bobo17bo6b2o93b2o85b2o$62b2o19bo6bo$39b2o41b2o6bobo$
39b2o50b2o2$137b2o$104b2o31b2o$104bobo108b2o$79b2o25bo37bob2o67bobo$
79b2o25b2o36b2obo68bo$29b2o97b2o$29bo18b2o79bo$22bo7b3o16bo79bobo$20b
3o9bo13b3o52b2o27b2o$19bo26bo54bo72bo$19b2o65b2o14b3o41bo27b3o$11b2o
56b2o16bo16bo39b3o30bo33bob2o$11b2o56bo14b3o6bo49bo11bo20b2o33b2obo$
70b3o11bo7bobo33bo14b2o8b3o16b2o$72bo20bo33bobo22bo19bo47b2o$128bo23b
2o20bo45b2o$173b2o2$28b2o$28bo$26bobo$26b2o$132b2o36b2o58b2o$131bobo
36b2o17b2o39bo$131bo57b2o37bobo$130b2o7b2o87b2o$140bo$137b3o50b2o$137b
o52bo$177b2o12b3o$30b2o128b2o16bo14bo$30bobo127bo14b3o$32bo128b3o11bo$
32b2o129bo$22b2o$22b2o$3bob2o$3b2obo2$12b2o192b2o$12b2o193bo$207bobo$
208b2o$232b2o$232b2o3$22b2o$22bo$20bobo$20b2o208b2o$230bo$190b2o39b3o$
190b2o41bo$49b2o180b2o$2b2o38b2o5b2o180bo$3bo38b2o148b2o35bobo$3bobo
72b2o112b2o35b2o$4b2o72bo126b2o$44b2o17b2o14bo11bo113bo$44b2o17bo14b2o
9b3o111bobo$38b2o21bobo24bo41bo9bo15bo46b2o$38b2o21b2o25b2o10b2o28b3o
5b3o13b3o50b2o2b2o$100bo17b2o13bo3bo15bo53b2o3bo$2o96bobo17bo13b2o3b2o
14b2o57bobo$bo96b2o19bo93b2o$bobo71b2o41b2o$2b2o71b2o3$15b2o177b2o$15b
obo145b2o29b2o$17bo97b2o46b2o$17b2o96b2o$35bo29b2o$35b3o27bo18b2o89bo$
2b2o34bo27b3o16bo88bobo$bobo33b2o29bo13b3o90b2o37b2o15b2o$bo80bo83b2o
46b2o15bobo$2o144b2o19bo65bo$105b2o19bo6b2o11bobo17bo66b2o$105bo18b3o
6b2o13bo17b2o$106b3o14bo24b2o51b2o$58b2o48bo14b2o76b2o21bo$58bo163b3o$
56bobo162bo$56b2o163b2o7$56b2o24bo$56bo24bobo$57b3o9bo12b2o66bo$59bo9b
3o12b2o64b3o37bo$42b2o28bo7b4o2bo66bo36b3o35b2o$42b2o27b2o6bo4bobo65b
2o39bo34b2o$79b2o2b2ob3o103b2o$89bo$83b2ob4o2bo$83b2obo3b3o130b2o$89bo
133b2o$89b2o136b2o$227b2o$112b2o$112bo70b2o$49bo63bo69b2o36b2o$49b3o
60b2o92b2o13b2o$52bo153bobo$51b2o155bo$196b2o10b2o$196bo$137b2o13b2o
32b2o9b3o$109b2o26b2o13b2o11b2o20bo11bo$109b2o54bo20bo$166b3o17b2o$
168bo2$77b2o$64b2o10bobo4b2o$64bo11bo6bo55b2o$45b2o8b2o8b3o7b2o7b3o12b
2o38bobo$46bo8bo11bo18bo12bo41bo$43b3o10b3o41b3o11b2o25b2o$43bo14bo43b
o11b2o3$128b2o$128bo$129b3o$131bo$118b2o$119bo$116b3o$116bo!
#C [[ STEP 50 ]]
There's a link to a newer one in the first post in this thread.
JP21 wrote:
March 5th, 2020, 4:30 am
The g-to-lwss on wiki isn't the smallest
Here again, improvements to the wiki article would be appreciated. If you have a link to a smaller G-to-LWSS available, please post it instead of just mentioning it. Otherwise it can be quite difficult for anyone else to find what you're talking about.

User avatar
Goldtiger997
Posts: 611
Joined: June 21st, 2016, 8:00 am

Re: Stable signal converters

Post by Goldtiger997 » March 6th, 2020, 9:25 am

Here's a reasonably small alternate G-to-LWSS converter (90x94) with repeat time 93 which kind of works as a compromize between the G-to-LWSS depicted in LifeWiki and the slower but smaller one. It's based off this post

Code: Select all

x = 90, y = 94, rule = LifeHistory
30.2A28.5B$30.A.A27.5B$32.A4.2A21.B3DB$28.4A.2A2.A2.A19.D2BDB$28.A2.A
.A.A.A.2A19.3BDB$30.BABABA.A22.3BDB$31.B2ABA.A22.DBD2B$32.2B.BA23.5B$
31.3B26.5B$22.2A6.4B26.6B$23.A6.B2A3B24.8B$23.A.AB3.B2A3B24.9B.4B8.2A
$24.2AB.10B22.14B9.A$26.13B21.15B5.3A$26.14B19.16B5.A$26.15B17.22B$
28.8B2.4B17.22B$28.6B5.4B14.2AB.18B.2A.2A$27.9B4.4B12.A.AB.19B.A.2A$
26.4B4.2A5.4B11.A4.17B.B.A$25.4B5.A7.4B9.2A5.15B3.2A$24.4B7.3A5.4B15.
13B$23.4B10.A6.4B7.4A3.12B$22.4B19.4B5.A3.A3.15B$21.4B21.4B4.2A5.4B2.
11B$20.4B23.9B4.4B3.11B7.2A$19.4B25.6B5.4B4.11B2.2A2.A2.A$18.4B26.8B
2.4B3.2AB2.4B3DB2.A.A2.2A$17.4B25.15B3.A.AB3.4BD2B3.B.2A$16.4B26.14B
4.A6.2B3D2B2.2B2.A$3.2A10.4B27.13B4.2A7.6B.2BAB.A.2A$4.A9.4B26.2AB.
10B14.8BA.A.2A.A$2.A10.4B26.A.AB3.B2A3B16.8B.A.A$2.5A5.4B5.2A20.A6.B
2A3B17.5B4.A2.2A$7.A4.4B5.A20.2A6.4B19.6B4.2A.3A$4.3AB2.7B.BA.A29.3B
18.6B6.B4.A$3.A.2B3.7B.B2A31.2B.BA15.7B3.B2AB3A$3.4A12B32.B2ABA.A15.
8B.B2A.A$.2A2.BA3B2A7B31.BABABA.A15.10B$A2.3AB.2B2A7B29.A2.A.A.A.A.2A
11.3B2A6B$2A.A.B3.10B29.4A.2A2.A2.A5.2A5.2B2A6B$3.A8.8B32.A4.2A8.A5.
10B$3.2A7.9B16.2A11.A.A14.A.AB2.11B$13.3B2.4B14.B2AB10.2A16.2AB.12B$
11.5B3.4B14.2B6.B24.15B$11.2A7.4B14.2B4.3B23.16B$12.A8.4B12.14B19.16B
.2B$9.3A10.4B11.14B19.18B2A$9.A13.4B.B5.17B11.A6.17B.B2A$24.28B8.3A5.
4B2.8B.4B.B$24.30B5.A7.4B4.7B$24.31B4.2A5.4B5.6B$24.37B4.4B6.4B$25.
34B5.4B5.A3B$23.2AB2.23B2.8B2.4B5.A.AB$22.A.AB4.B.16B3.15B6.A.A$22.A
11.10B.2B4.14B8.A$21.2A12.9B7.13B6.3A$32.11B6.2AB.10B7.A$31.12B5.A.AB
3.B2A3B$22.2A7.12B5.A6.B2A3B$21.A2.A2.2A2.11B5.2A6.4B$22.2A2.A.A2.B3D
4B.4B12.3B$24.2A.B3.2BD4B4.2A13.2B.BA$24.A2.2B2.2B3D2B4.A13.B2ABA.A$
21.2A.A.BA2B.6B6.3A9.BABABA.A$21.A.2A.A.A8B8.A7.A2.A.A.A.A.2A$25.A.A.
8B16.4A.2A2.A2.A$22.2A2.A4.5B21.A4.2A$20.3A.2A4.6B19.A.A$19.A4.B6.6B
18.2A$20.3AB2AB3.7B$22.A.2AB.8B$26.10B$26.6B2A3B$26.6B2A2B5.2A$26.10B
5.A$25.11B2.BA.A$25.12B.B2A$24.15B$23.16B$20.2B.16B$19.2A18B$19.2AB.
17B$20.B.4B.8B2.4B$27.7B4.4B$28.6B5.4B$30.4B6.4B$32.3BA5.2B2C$33.BA.A
5.BCBC$34.A.A6.CB$35.A$36.3A$38.A!

JP21
Posts: 1046
Joined: October 26th, 2019, 5:39 am
Location: PH

Re: Stable signal converters

Post by JP21 » March 6th, 2020, 11:19 am

So, you guys are telling me that these are the smallest G-to-XWSS??? (Minimum bounding box)

Code: Select all

x = 123, y = 326, rule = B3/S23
96bo$96b3o$99bo$98bobo$98bobo$99bo5$114b2o$114b2o3$100bobo$94b2o5b2o$
93bobo5bo$93bo$92b2o7b2o$101b2o$70b2o$69bobo37b2obo$63b2o4bo39b2ob3o$
61bo2bo2b2ob4o41bo$61b2obobobobo2bo35b2ob3o$64bobobobo37bo2b2o$64bobob
2o37bobo$65bo23bo16bobob2obo$89b3o15bo2bob2o$78b2o12bo17bo$69b2o7bo12b
2o16b2o$69b2o5bobo27bobo2b2o$76b2o28b2o2bo2bo$84b2o25b2o$85bo$85bobo$
86b2o3$66b2o$67bo$64b3o16b2o19b2o$64bo18b2o19b2o3$41b2o16bo45b2o$41b2o
16b3o43bo$62bo11bo31b3o$61b2o9b3o34bo$71bo32b5o$32b2o37b2o31bo$33bo68b
obo2b2o$33bobo66b2o3b2o$34b2o$77bo$75b3o$31b2o41bo$32bo9b2o4b2o24b2o
29b2o$32bobo7bobo3bobo55bo$33b2o8bo6bo52b3o$50b2o51bo7$33b2o$33b2o3$
29bo$29b3o$32bo$31b2o$60b2o$60b2o3$50b2o$50bobo28b2o$52bo28b2o7b2o$52b
2o36bo$37b2o52b3o$37b2o54bo33$52bo$50b3o$49bo$48bobo$48bobo$49bo5$33b
2o$33b2o3$46bobo$46b2o5b2o$47bo5bobo$55bo$46b2o7b2o$46b2o2$36bob2o$34b
3ob2o$33bo$34b3ob2o$36b2o2bo$39bobo$35bob2obobo$35b2obo2bo16b2o$38bo
19bo$38b2o16bobo$36b2o2bobo13b2o$35bo2bo2b2o$36b2o$74b2o$73bo2bo$64bo
9b2o$63bobo$63b2o5$38b2o15b2o$37bobo15b2o$37bo$36b2o$43b2o$44bo$44bobo
$45b2o3$74b2o$74b2o9$41b2o$41b2o4$46b2o$46b2o$42b2o$42b2o$83b2o$83b2o$
48b2o27b2o$48b2o27b2o3$79b2o$72b2o5b2o$72b2o24$56b2o11bo$56b2o10bobo$
68bobo2b2o3bo$67b2ob2o2bo2bobo$71bobo3bobo$67b2obo2b4obo$67b2obobo3bo$
71bobo3bo$72bobo3bo7bob2o$73bo3b2o7b2obo$93b2o$86b3o4bo$86bo2bo4bo6bo$
64b2o22b2o3b2o4b3o$64b2o32bo$49b2o47b2o$48bo2bo$47bob2o$47bo$46b2o$61b
2o$61bo$62b3o$64bo5$99b2o$99b2o6$26b2o73bo$27bo72bobo$25bo75b2o$25b5o
14b2o$30bo13bo$27b3o12bobo$26bo15b2o40b2o$26b4o54bobo$24b2o3bo3b2o50bo
$23bo2b3o4b2o$23b2obo$26bo$26b2o60b2o$89bo25bo$86b3o24b3o$34b2o50bo25b
o$35bo76b2o$32b3o$32bo$90b2o19b2o$28bo42bo18b2o19b2o$28b3o38b3o$31bo
36bo9bo$18bo11b2o11b2o23b2o6b3o$16b3o24b2o30bo$15bo59b2o16b2o$15b2o62b
2o11bobo$2o77bo12bo$bo75bobo11b2o25b2o$bob2o72b2o34b2o2bo2bo$2bo2bo
107bobo2b2o$3b2o9bo83b2o16b2o$15b2ob2o79bo17bo$14b2o2b2o35b2o23bo15b3o
15bo2bob2o$56bo22bobo14bo16bobob2obo$53b3o8b2o14bo33bobo$53bo11bo49bo
2b2o$27bo3b2o29b3o51b2ob3o$26bobo3bo29bo59bo$25bobo3bo12b2o70b2ob3o$
21b2obobo3bo13bobo69b2obo$21b2obo2b4obo13bo$25bobo3bobo12b2o60b2o$21b
2ob2o2bo2bobo65b2o7b2o$22bobo2b2o3bo36b2o26bo2bo$10b2o10bobo45bo26b2ob
obo$10b2o11bo43b3o29bob2o$67bo31bo$97b3o$96bo$96b2o23b2o$121b2o5$106bo
$86b2o17bobo$85bobo5b2o10bobo$85bo7b2o11bo$84b2o17b3o$103bo$98bo$94b2o
bobo$93bobobobo$90bo2bobobobob2o$90b4ob2o2bo2bo$94bo4b2o$92bobo$92b2o!
I also want the smallest for each in terms of population size.

User avatar
dvgrn
Moderator
Posts: 6842
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Stable signal converters

Post by dvgrn » March 6th, 2020, 2:55 pm

JP21 wrote:
March 6th, 2020, 11:19 am
q
So, you guys are telling me that these are the smallest G-to-XWSS??? (Minimum bounding box)
That looks right. At least I don’t remember anything smaller offhand.
I also want the smallest for each in terms of population size.
That’s a much trickier problem. Nobody has ever paid the slightest attention to converters with big bounding boxes and small populations. There might be ways to use mostly Snarks to get a slightly lower cell count, by feeding signals to one of the old H + G —> LWSS/MWSS reactions — basically a glider hitting a preblock with different timings. But there won’t be a very interesting amount of improvement, if any at all.

Maybe good to double-check: are you only interested in stable converters? If oscillators are allowed, there are much smaller converters in both categories (but they wouldn’t belong on this thread).

User avatar
Goldtiger997
Posts: 611
Joined: June 21st, 2016, 8:00 am

Re: Stable signal converters

Post by Goldtiger997 » March 12th, 2020, 10:02 am

Here's a glider-to-spider converter with a bounding box of 10083 x 9478 and repeat time 2619 (the repeat time of the current 261 glider synthesis). Sadly the pattern is over the character limit so I need to post it as an attachment:
p2619 spider gun from converter.rle
(401.28 KiB) Downloaded 57 times

There's still a fair bit of optimization that could be done but this project was already taking long enough already so I neglected to optimize the pattern as much as I would have liked. Feel free to try to optimize it yourself if you feel up to it of course.

To place the edgeshooters I used an edgeshooter placing script that I made which I will post soon once I make it more user-friendly.

User avatar
dvgrn
Moderator
Posts: 6842
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Stable signal converters

Post by dvgrn » March 12th, 2020, 11:04 am

Goldtiger997 wrote:
March 12th, 2020, 10:02 am
Here's a glider-to-spider converter with a bounding box of 10083 x 9478 and repeat time 2619 (the repeat time of the current 261 glider synthesis).
Nice work! Somehow when you can't see individual pixels anyway when you're looking at the full converter, no matter how you optimize it, it stops seeming so important whether every last row and column has been squeezed out. It's just nice to have another converter in working order.

I'm definitely supposed to be doing other things these days, but when I need a break I'll try extending the LifeSuper-assisted approach to optimization -- see if I can get an auto-adjuster working, to speed up the longitudinal optimization of these huge shotguns.
Goldtiger997 wrote:
March 12th, 2020, 10:02 am
To place the edgeshooters I used an edgeshooter placing script that I made which I will post soon once I make it more user-friendly.
Looking forward to it!

User avatar
Entity Valkyrie 2
Posts: 579
Joined: February 26th, 2019, 7:13 pm
Location: Hijuatl, Zumaland
Contact:

Re: Stable signal converters

Post by Entity Valkyrie 2 » March 13th, 2020, 5:20 am

Can I ask, does my spider gun and GoldTiger's spider gun deserve pages? Dart guns did, Cordership guns did...
Bx222 IS MY WORST ENEMY.

Please click here for my own pages.

Also, please apgsearch B34t5y7/S23 (B-life)

The ENEERG-y of the EVAD is watching.
The 70th NAI-ve guy is watching.

User avatar
dvgrn
Moderator
Posts: 6842
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Stable signal converters

Post by dvgrn » March 13th, 2020, 10:03 am

Entity Valkyrie 2 wrote:
March 13th, 2020, 5:20 am
Can I ask, does my spider gun and GoldTiger's spider gun deserve pages? Dart guns did, Cordership guns did...
The old 2c/5 spaceship guns -- p416 60P5H2V0 gun and p690 60P5H2V0 gun -- also have pages. Like the three Cordership gun articles, those articles were created by Nathaniel a decade ago when the LifeWiki made its first appearance, because they were pretty much the only non-*WSS-based, non-glider guns in existence at that time.

Looking Back to Ancient History
The articles for the two different-period dart guns were put together by codeholic back in 2014. At that point in time, new spaceship syntheses were just starting to appear -- dart, crab, and HBK recipes showed up that year. So these dart guns were rare things at the time, new and obviously notable.

But it seems like there was already a question then about whether it was going to be worth filling the LifeWiki with more and more huge patterns, when links to forum pages from the relevant spaceship article really seemed to work just as well or better.

In the next year, 2015, recipes showed up for B29, X66, half-X66 with HWSS, Pushalong 1, 25P3H1V0.1, 30P5H2V0, 30P4H2V0.4, pufferfish spaceship, and weekender -- and I think that's when the new tradition solidified, about mentioning new guns and converters in the text of the relevant spaceship article but not bothering with separate pages for each. See the spider page for how it's being done these days. We've been fairly consistent about adding these links, I think, though a survey would probably turn up an occasional exception. The crab article seems to need links to guns and converters, for example.

Current Status Quo
Personally I''m happy with the Add Links Not Articles rule of thumb, so I'm not even slightly tempted to make new articles for every known gun or converter for all of the above, and for all of the megaconverters that have showed up in the last few years. As soon as a converter is known there are instantly an infinite number of known guns. Some guns will have lower periods, some will have smaller bounding boxes, and some will have fewer cells. Seems like having a lot of these as separate LifeWiki articles won't have much useful effect, it will just clutter up the "List of guns" page.

It might make some sense to do a full survey, and make a project of putting all the relevant guns and converters in as embedded viewers on the relevant spaceship pages. That way we'd end up having all those pattern files available in the LifeWiki pattern collection. But that's a lot of work, and clutters up a lot of spaceship pages and makes them load slower. Here again, the current Add Links rule of thumb still seems like it might be the best option.

User avatar
Entity Valkyrie 2
Posts: 579
Joined: February 26th, 2019, 7:13 pm
Location: Hijuatl, Zumaland
Contact:

Re: Stable signal converters

Post by Entity Valkyrie 2 » March 14th, 2020, 1:31 am

dvgrn wrote:
March 13th, 2020, 10:03 am
Personally I''m happy with the Add Links Not Articles rule of thumb, so I'm not even slightly tempted to make new articles for every known gun or converter for all of the above, and for all of the megaconverters that have showed up in the last few years. As soon as a converter is known there are instantly an infinite number of known guns. Some guns will have lower periods, some will have smaller bounding boxes, and some will have fewer cells. Seems like having a lot of these as separate LifeWiki articles won't have much useful effect, it will just clutter up the "List of guns" page.

It might make some sense to do a full survey, and make a project of putting all the relevant guns and converters in as embedded viewers on the relevant spaceship pages. That way we'd end up having all those pattern files available in the LifeWiki pattern collection. But that's a lot of work, and clutters up a lot of spaceship pages and makes them load slower. Here again, the current Add Links rule of thumb still seems like it might be the best option.
And that's the exact reason why my user page has so many nonstandard guns pages. If it went on the wiki, it would not be on my user page.
Bx222 IS MY WORST ENEMY.

Please click here for my own pages.

Also, please apgsearch B34t5y7/S23 (B-life)

The ENEERG-y of the EVAD is watching.
The 70th NAI-ve guy is watching.

User avatar
Goldtiger997
Posts: 611
Joined: June 21st, 2016, 8:00 am

Re: Stable signal converters

Post by Goldtiger997 » March 14th, 2020, 5:02 am

dvgrn wrote:
March 12th, 2020, 11:04 am
Goldtiger997 wrote:
March 12th, 2020, 10:02 am
To place the edgeshooters I used an edgeshooter placing script that I made which I will post soon once I make it more user-friendly.
Looking forward to it!
Here's the script:

Code: Select all

#place-edgeshooters-automatic.py
#Goldtiger997 February 2020

import golly as g

gap_size = int(g.getstring("Please enter the diagonal spacing between the edgeshooters","50"))
flip_mode = int(g.getstring("Which mode?\n\n1) gliders are preferred to inserted from alternating sides\n2) gliders are preferred to be inserted all from the same side","1"))
safe_space = int(g.getstring("How much additional spacing do you want between the gliders and the edgeshooters? Increase this parameter if the script places gliders too close to the edgeshooters","50"))
edgeshooter_preference = g.getstring("Please enter your order of preference of the following four edgshooter types by entering the numbers that correspond to those edgeshooters in order of preference (most preferred to least preferred) separated by commas.\n Omit a number if you wish the corresponding edgeshooter to be banned\n\n1: NW31\n2: BNE14T30\n3: RNE-19T84\n4: Fx119\n\nFor example the input '1,4,2' would indicate that NW31 edgeshooters are most preferred, Fx199s are second-most preferred, BNE14T30s are least preferred and RNE-19T84s are outright banned from being used.\n\nAlternatively just enter 'n' for the default settings (equivalent to '1,2,3,4')","n").split(",")

sel_desc = g.getselrect()
selection = g.getcells(g.getselrect())
glider_phases = [g.parse("3o$2bo$bo!"),g.parse("bo$b2o$obo!"),g.parse("b2o$obo$2bo!"),g.parse("2o$b2o$o!")]
gliders = []
gliders_sorted = []
gliders_lanes = []

the_numbers = ["1","2","3","4","5"] #full list ["1","2","3","4","5","6","7","8","9","0"]

#edgeshooters
#format is [rle, output glider lane adjustment, input glider lane adjustment, input glider positioning adjustment,delay of edgeshooter,flip_adjust,flip_time_adjust]
edgeshooter1 = [g.parse("18bb$17b2b$16b3b$15b4b$14b4b$13b4b$12b4b$11b4b$10b4b$9b4b$8b4b$8b4b$7b5b$4b9b$4b9b$4b9b$4b10b$3b12b$2b13b8b2o$3b11b9bo$4b12b4bbobo$4b15bbb2o13b2o$4b17b14bb2ob$4b17b15b2b$bbb17b17b2b3bb$2o19b15b4bbb2o$2obb19b11b8b2o$bb4b20b2b2b2b6b2obbb$6b32b2o$6b9bb24b$7b7b2b28b$7b7b2b28b$7b6b4b26b2o$7b7b10b4bb14b2o$7b6b12b4b2b11bbb$6b7b13b4b2b10b$7b6b14b14b$8b5b15b14b$8b6b14b13b$10b4b14b13b$9bb2o2b2b2ob2o2b2o3b8bb4b$10b2o5bobo2bobo3b8b$17bo2b2obb4b8b$18bobo2b2b3b10b$17b2obobbo2bb7b2b2o$20bobobo9b2bo$17b4o2bob8b4b3o$17bo3b2o3b7b6bo$19bobb6b6b$18b2ob2ob3b7b$21b2obb8b$18b2o3b10b$18bo4b6b2o3b$19bo3b6b2o2b5b2o$18b2o3b10b5bo$22b11b2bbobo$22b12bbb2o$21b15b$20b16b$17b2bb16b$16b2o18b$16b2obb17b$17bbb4bb8b2b4b$24b7b4b4b$25b6b5b4b$27b4b6b4b$29b3bo5b4b$30bbobo5b3b$31bobo6b2b$32bo8bb$33b3o$35bo!"),18,0,27,1,19,-100]
edgeshooter2 = [g.parse("22b4b$21b4b$20b4b$19b4b$18b4b5b2o$17b6b3bo2bo$16b8bbbbobo$16b10b2o2b2o$15b11b2b2o2bo$15b11b2o3b2o$15b10b2bo$15b9b2bo$10b14b3b3o$9b13b7bo$9b14b$9b14b$9b13b$10b11b$9b14b$9b2b2o11b$10bb2o11b$10b14b$10b4bb8b$11b2bb9b3b2o$14b8b3bobo$14b8b3bo$14b9bb2o$13b11b$12b12b$12b12b$5b2o6b10b$6bo7b11b$6bobobb14b$7b2obb13b2o$9b15b2o$8b15bbb$9b14b$7b2obb11b$6bobob3b9b$6bo8b8b$5b2o9b7b$13b11b$12b12b$12b12b$12b11b$2ob2o2b2o3b8bb4b$bobo2bobo3b7b4b2o$bo2b2obb4b7b4bo$2bobo2b2bbbb6b6b3o$b2obobbo10b8bo$4bobobo9b$b4o2bob8b$bo3b2o4b6b$3bobb6b6b$2b2ob2ob3b7b$5b2obb8b$2b2o3b10b$2bo4b6b2o3b$3bo3b6b2o2b5b2o$2b2o3b10b5bo$6b11b2bbobo$6b12bbb2o$5b15b$4b16b$b2bb16b$2o18b$2obb17b$bbb4bb8b2b4b$8b7b4b4b$9b6b5b4b$11b4b6b4b$13b3bo5b4b$14bbobo5b4b$15bobo$16bo$17b3o$19bo!"),22,12,48,39,23,-184]
edgeshooter3 = [g.parse("18b4b$17b4b$16b4b$15b4b$14b6b7b2o$13b7b7bo$13b9b2bbobo$9bb2b11bbb2o$9b2bb9bo3b$9b3bb7bobo2b$9b11bobo2b$10b4bbb2b3bo3b$11b4b4b6b$12b4b4b6b$13b4b3b6b$14b4b2b5b$15b14b$16b14b$17b13b$10b2o5b13b$11bo5b11bbb2o$11bobob2b10b2bbobo$12b2obb9b7bo$14b11b7b2o$14b13b$14b9bbb2obo$15b7b2bb2ob3o$14b8b4bb4bo$15b8b2b2ob3o$16b7b3bobo$13b11b2bobo$12b11b4bo$12b11b$12b11b$2ob2o2b2o3b8b2bb2o$bobo2bobo3b7b3bbobo$bo2b2obb4b7b6bo$2bobo2b2b3b6b7b2o$b2obobbob2b7b$4bobobo2b7b$b4o2bo4b5b$bo3b2o4b6b$3bobb6b6b$2b2ob2ob3b7b$5b2obb8b$2b2o3b10b$2bo4b6b2o3b$3bo3b6b2o2b5b2o$2b2o3b10b5bo$6b11b2bbobo$6b12bbb2o$5b15b$4b16b$b2bb16b$2o18b$2obb17b$bbb4bb8b2b4b$8b7b4b4b$9b6b5b4b$11b4b6b4b$13b3bo5b4b$14bbobo5b4b$15bobo6b4b$16bo8b4b$17b3o6b4b$19bo7b4b$28b4b!"),18,4,37,14,19,-140]
edgeshooter4 = [g.parse("17b4b$16b4b$15b4b$14b4b$13b4b$12b4b$11b4b$10b4b$9b7b$9b9b$8b11b$5b13b$4b14b$3b16b$3b17b$2b18b$2b19b$b20b19bo$20b20b3o$b21b21bo$b21b20b2o$3b19b20bb8bo$2bbb17b19b3b6b3o$4b18b16b6b4bo$4b20b11b10b3b2o$5b22b2b2b3b16b$5b34b2o7b$7b32b2o9b$8b42b$8b42b$8b44b$8b13b4b4bb13bb9b$8b6b4b3b5b3b5bbb19b$7b7b5b4b4b4b12b14b$8b6b7b2o6b2o11b15b$9b6b6bo7bo12b14b$9b6b7b3o5b3o9b13b$8b8b8bo7bo6b15b$9b6b17bobob2b15b$8b7b18b2obb17b$6b11b18b19b$4b9b2o2bbb15b19b$4b9b2o3b2o15b20b2b2o$4b14b2o13b2obb16b2obobo$5b14b13bobob2b13bbb2obo$5b3bb2b2bb2b5b11bo6b11b4bb2bo$5b2o5b3b4b2o10b2o7b11b2b2ob2o$6bo5bb2ob3bo17b14b3bobo$3b3o7b2o5b3o13b16b2bobo$3bo18bo4b2o7b13bbb2ob2o$26bo2bo2b2o2b13bbbobo$27b2o2bobo2b8bb2b6bo$29b2obb3b7b10b2o$29bo2b2b2b7b$26b2obobbo2bb6b$26bob2obobo8b$30bobob8b$27b2o2bo2b7b$25b3ob2o4b6b$24bo4bb6b6b$25b3ob2ob3b7b$27bob2obb8b$31b10b$31b6b2o3b$31b6b2o2b5b2o$31b10b5bo$30b11b2bbobo$30b12bbb2o$29b15b$28b16b$25b2bb16b$24b2o18b$24b2obb17b$25bbb4bb8b2b4b$32b7b4b4b$33b6b5b4b$35b4b6b4b$37b3bo5b4b$38bbobo5b4b$39bobo6b4b$40bo8b3b$41b3o6bb$43bo!"),17,0,30,87,18,-112]
edgeshooters_unordered = [edgeshooter1,edgeshooter2,edgeshooter3,edgeshooter4]
#order edgeshooters according to preferences
if edgeshooter_preference[0] == "n":
	edgeshooters = edgeshooters_unordered
else:
	edgeshooters = []
	for i in edgeshooter_preference:
		try:
			edgeshooters.append(edgeshooters_unordered[(int(i)-1)%4])
		except ValueError:
			g.note("Your edgeshooter preferences cannot be understood so the default preferences will be used")
			edgeshooters = edgeshooters_unordered
			break

if g.getrule() != "B3/S23":
	g.warn("Please change the rule to life.")
	g.exit()
if g.getselrect() == []:
	g.warn("Please select some northeast heading gliders")
	g.exit()
g.shrink()

#crude glider detection
def find_glider(phase_num):
	count = 0
	size = ((sel_desc[2]-2)*(sel_desc[3]-2))
	for i in range(0,sel_desc[2]-2):
		for j in range(0,sel_desc[3]-2):
			x = sel_desc[0]+i
			y = sel_desc[1]+j
			g.select([x,y,3,3])
			old_patt = g.getcells(g.getselrect()) #for restoration
			g.putcells(glider_phases[phase_num],x,y,1,0,0,1,"xor")
			if len(g.getcells(g.getselrect())) == 0:
				gliders.append([phase_num,x,y])
			g.clear(0)
			g.putcells(old_patt,0,0,1,0,0,1,"or")
			count += 1
			g.show(str(25*phase_num + count*25/size) + "% glider detection done")

			
for i in range(0,4):			
	find_glider(i)

if len(gliders) == 0:
	g.warn("Your selection has no (detectable) gliders")
	g.exit()
	
g.setrule("B3/S23")
#now convert into format of [[lane,point on that lane]...]
for glid in gliders:
	if glid[0] == 0:
		gliders_lanes.append([glid[2]+glid[1],glid[1]*4])
	elif glid[0] == 1:
		gliders_lanes.append([glid[2]+glid[1] + 1,glid[1]*4 + 1])
	elif glid[0] == 2:
		gliders_lanes.append([glid[2]+glid[1] + 1,glid[1]*4 + 2])
	elif glid[0] == 3:
		gliders_lanes.append([glid[2]+glid[1],glid[1]*4 - 1])

gliders_lanes_sorted = sorted(gliders_lanes, key = lambda x: x[0])[::-1]	
for e in gliders_lanes_sorted:
	gliders_sorted.append(gliders[gliders_lanes.index(e)])


last_selected_glider = 0
completed_gliders = []
for blah_blah_blah in gliders:
	completed_gliders.append(False)
	
	
last_selected_glider = 0

g.putcells(selection,-(186 + safe_space) - gap_size*len(gliders),(186 + safe_space) + gap_size*len(gliders),1,0,0,1,"or")
g.update()

edgeshooter_gap = 150
edgeshooters_placed_count = 0
edgeshooter_storage = [] #to facilitate deletion
 
def place_edgeshooter(num,gap,count):
	if flipped%2 == 0:
		edge_x = -gap-edgeshooters[num][1] + edgeshooters[num][2] + sel_desc[0]
		edge_y = gliders_lanes_sorted[last_selected_glider%len(gliders)][0]+gap - edgeshooters[num][2] - sel_desc[0]
		g.putcells(edgeshooters[num][0],edge_x,edge_y,1,0,0,1,"or")
		delay = edgeshooters[num][4] + gliders_lanes_sorted[last_selected_glider%len(gliders)][1] - 4*safe_space - 4*sel_desc[0]
		x = edge_x - delay/4 + gap_size*(len(gliders) - count)
		y = edge_y + edgeshooters[num][3] - delay/4 + gap_size*(len(gliders) - count)
		g.putcells(g.evolve(g.parse("$b3o$bo$2bo!"),delay%4),x-1,y-1,1,0,0,1,"copy")
	else:
		edge_x = -gap-edgeshooters[num][1] + edgeshooters[num][2] + edgeshooters[num][5] + sel_desc[0]
		edge_y = gliders_lanes_sorted[last_selected_glider%len(gliders)][0]+gap - edgeshooters[num][2] + edgeshooters[num][5] + 1  - sel_desc[0]
		g.putcells(edgeshooters[num][0],edge_x,edge_y,0,-1,-1,0,"or")
		delay = edgeshooters[num][4] + gliders_lanes_sorted[last_selected_glider%len(gliders)][1] + edgeshooters[num][6] - 4*safe_space - 4*sel_desc[0]
		x = edge_x + delay/4 - gap_size*(len(gliders) + count) + 1 + 2*gap_size*count
		y = edge_y + edgeshooters[num][3] + delay/4 - gap_size*(len(gliders) + count) + 2*gap_size*count
		g.putcells(g.evolve(g.parse("$b3o$bo$2bo!"),delay%4),x-1,y-1,-1,0,0,-1,"copy")
	#remove the comparison glider
	g.putcells(glider_phases[gliders_sorted[last_selected_glider%len(gliders)][0]],gliders_sorted[last_selected_glider%len(gliders)][1] - (186 + safe_space) - gap_size*len(gliders),gliders_sorted[last_selected_glider%len(gliders)][2] + (186 + safe_space) + gap_size*len(gliders),1,0,0,1,"xor")
	g.update()
	
	edgeshooter_storage.append([edge_x,edge_y,x,y,num,last_selected_glider%len(gliders),flipped%2])
	
def remove_edgeshooter(e):
	g.putcells(edgeshooters[e[4]][0],e[0],e[1],1-e[6],-e[6],-e[6],1-e[6],"xor")
	g.select([e[2]-1-e[6]*3,e[3]-1-e[6]*3,4,4])
	g.clear(0)
	
	completed_gliders[e[5]] = False
	glid = gliders_sorted[e[5]]
	g.putcells(glider_phases[glid[0]],glid[1],glid[2],1,0,0,1,"copy")
	g.putcells(glider_phases[gliders_sorted[e[5]][0]],gliders_sorted[e[5]][1] - (186 + safe_space) - gap_size*len(gliders),gliders_sorted[e[5]][2] + (186 + safe_space) + gap_size*len(gliders),1,0,0,1,"or")
	edgeshooter_storage.pop()

flipped = 0
prev_flipped = 1
flip_fix = 0
no_successes_count = -1

i = 0
while edgeshooters_placed_count < len(gliders):
	if flip_mode == 2 or prev_flipped == 1:
		a = 1
	else:
		a = -1
	last_selected_glider = (a*i)%len(gliders)
	g.show(str(edgeshooters_placed_count) + " gliders done. " + str(len(gliders)-edgeshooters_placed_count) + " gliders remain.")
	if completed_gliders[(a*i)%len(gliders)] != True:
		for x in range(0,len(edgeshooters)):
			place_edgeshooter(x%4,edgeshooter_gap,edgeshooters_placed_count)
			edgeshooters_placed_count += 1
			edgeshooter_gap += gap_size
			g.run(744 +4*safe_space + 4*gap_size*len(gliders))
			if g.getcells(sel_desc) == selection:
				g.reset()
				completed_gliders[last_selected_glider%len(gliders)] = True
				prev_flipped = flipped
				flipped = (flip_mode - flipped)%2
				no_successes_count = -1
				break
			else:
				g.reset()
				remove_edgeshooter(edgeshooter_storage[-1])
				edgeshooters_placed_count -= 1
				edgeshooter_gap -= gap_size
		no_successes_count += 1
	i += 1
	if no_successes_count == (len(gliders)-edgeshooters_placed_count) and edgeshooters_placed_count != len(gliders):
		flipped = (prev_flipped)%2
	elif no_successes_count > 2*(len(gliders)-edgeshooters_placed_count) and edgeshooters_placed_count != len(gliders):
		g.warn("No method of inserting the remaining gliders could be found")
		g.exit("")
g.show("Success!")
To use the script select some northeast-heading gliders and run the script. The script will ask you several questions at the start all of which should be sufficiently explained in the diaolog boxes I think. For most purposes you can just use the default answers anyway. The script will then attempt to insert the all the gliders in the salvo with the four edgeshooters it knows of from both sides of the salvo. To do this the script sorts the gliders by how "easy to insert" they look and then loops through the list of sorted gliders trying all four edgeshooters on each glider until it finds an edgeshooter that works. It then repeats this process with the remaining gliders until all gliders have edgeshooters that insert them or it can't find any way of inserting any of the remaining gliders.

Even though the script doesn't have powerful glider inserters like the clock inserter it seems to work for the majority of salvoes (e.g. it worked on all four of the spider's salvoes). For the salvoes that cannot be done with this script (e.g. two gliders 14-ticks apart) I think a decent approach is to use my script to solve all the "easy" gliders and then use chris_c's script to solve the hard remaining ones. I'm also pretty confident that the script should find a solution with its 4 edgshooters if such a solution does exist since its edgeshooter test method involves testing whether all the gliders can make it to the required final location after the edgeshooter is placed (a feature which chris_c's script didn't have).

For example, paste the following salvo anywhere in the Golly grid with rule set to Life:

Code: Select all

x = 34, y = 59, rule = B3/S23
25b3o$27bo$26bo$14b3o$16bo$15bo$19bo$19b2o$18bobo10b3o$33bo$32bo2$7b2o
$6bobo6b2o$8bo7b2o$15bo8bo$24b2o$23bobo2$b2o$2b2o7b2o$bo10b2o$11bo2$b
2o$obo$2bo4$11bo$11b2o$10bobo3$2b2o$bobo$3bo19$17b3o$19bo$18bo!
Run the script with default settings and after about 20 seconds the following result should be produced:

Code: Select all

x = 1381, y = 1325, rule = B3/S23
7bo$5bobo$6b2o203$5bobo$6b2o$6bo183$888b3o$890bo$889bo$877b3o$879bo$
878bo$882bo$882b2o$881bobo10b3o$896bo$895bo2$870b2o$869bobo6b2o$871bo
7b2o$11bobo864bo8bo$12b2o873b2o$12bo873bobo2$864b2o$865b2o7b2o$864bo
10b2o$874bo2$864b2o$863bobo$865bo4$874bo$874b2o$873bobo3$865b2o$864bob
o$866bo19$880b3o$882bo$881bo123$621b2o$618b2o2bo$616b3ob2o$615bo$612bo
2b4ob2o$612b3o3bob2o$615bo$614b2o26b2o$642bo$640bobo$640b2o$600bo$598b
3o$597bo$597b2o$582b2o60b2o$583bo60bobo$583bob2o59bo$584bo2bo49b2o7b2o
$obo582b2o50b2o$b2o597b2o$bo598b2o3$620b2o3b2o$609bo3b2o6bo3bo$608bobo
3bo3b3o5b3o$607bobo3bo4bo9bo$603b2obobo3bo15bobo$603b2obo2b4obo14b2o$
607bobo3bobo$603b2ob2o2bo2bobo$604bobo2b2o3bo$592b2o10bobo$592b2o11bo
21b2o$628bo$615b2o11bobo$616bo12b2o$616bobo$617b2o2b2o$621b2o4$616b2o
4b2o$616b2o4b2o7$617b2o$616bobo$616bo$615b2o5$718b2o$718bo$716bobo$
716b2o13b2o$731b2o3$695b2o40b2o$695b2o40b2o$733b2o$733b2o4$738b2o$738b
2o7$705b2o4b2ob2o2b2o$705b2o5bobo2bobo$712bo2b2o$713bobo$712b2obo2bo
12b2o$715bobobo11bo$712b4o2bo13b3o$712bo3b2o16bo$714bo$713b2ob2o$716b
2o$713b2o$713bo10b2o$714bo9b2o7b2o$713b2o18bo$731bobo$731b2o4$711b2o$
711b2o2$521b2o$518b2o2bo$516b3ob2o$515bo211bo$512bo2b4ob2o204bobo$512b
3o3bob2o204bobo$515bo211bo$514b2o26b2o184b3o$542bo187bo$540bobo$540b2o
$500bo$498b3o$497bo$497b2o$482b2o60b2o$483bo60bobo$483bob2o59bo$484bo
2bo49b2o7b2o88bo$485b2o50b2o97b3o$500b2o137bo$500b2o136b2o$647bo$645b
3o$520b2o3b2o117bo$509bo3b2o6bo3bo118b2o$508bobo3bo3b3o5b3o$507bobo3bo
4bo9bo106b2o$503b2obobo3bo15bobo104b2o$503b2obo2b4obo14b2o$507bobo3bob
o$503b2ob2o2bo2bobo$504bobo2b2o3bo$492b2o10bobo$492b2o11bo21b2o$528bo
88b2o6b2o$515b2o11bobo86bo7bo$516bo12b2o87b3o5b3o$516bobo101bo7bo$517b
2o2b2o105bobo$521b2o106b2o2$609b2o$609b2o3b2o37b2o$516b2o4b2o90b2o13b
2o18b2obobo$516b2o4b2o104bobo18b2obo$628bo24bo$601b2o12b2o10b2o20b2ob
2o$602bo6b2o4bo34bobo$599b3o7b2o5b3o31bobo$599bo18bo4b2o22b2ob2o$622bo
2bo2b2o17bobo$517b2o104b2o2bobo19bo$516bobo106b2o22b2o$516bo108bo$515b
2o105b2obo2bo$622bob2obobo$626bobo$623b2o2bo$621b3ob2o$620bo$621b3ob2o
$623bob2o2$633b2o$633b2o7b2o$642bo$640bobo$640b2o4$620b2o$620b2o5$636b
o$635bobo$635bobo$636bo$637b3o$639bo11$421b2o$418b2o2bo$416b3ob2o$415b
o$412bo2b4ob2o$412b3o3bob2o$415bo$414b2o26b2o$442bo$440bobo$440b2o$
400bo$398b3o$397bo$397b2o$382b2o60b2o$383bo60bobo$383bob2o59bo$384bo2b
o49b2o7b2o$385b2o50b2o$400b2o$400b2o3$420b2o3b2o$409bo3b2o6bo3bo$408bo
bo3bo3b3o5b3o$407bobo3bo4bo9bo$403b2obobo3bo15bobo$403b2obo2b4obo14b2o
87b2o$407bobo3bobo102bo$403b2ob2o2bo2bobo100bobo$404bobo2b2o3bo101b2o
13b2o$392b2o10bobo124b2o$392b2o11bo21b2o$428bo$415b2o11bobo64b2o40b2o$
416bo12b2o64b2o40b2o$416bobo114b2o$417b2o2b2o110b2o$421b2o3$538b2o$
416b2o4b2o114b2o$416b2o4b2o6$505b2o4b2ob2o2b2o$21bo395b2o86b2o5bobo2bo
bo$19bobo394bobo93bo2b2o$20b2o394bo96bobo$415b2o95b2obo2bo12b2o$515bob
obo11bo$512b4o2bo13b3o$512bo3b2o16bo$514bo$513b2ob2o$516b2o$513b2o$
513bo10b2o$514bo9b2o7b2o$513b2o18bo$531bobo$531b2o4$511b2o$511b2o5$
527bo$526bobo$526bobo$527bo$528b3o$530bo31$331b2o$331b2o5b2o$338b2o3$
311bo5b2o17b2o98bo$309b3o6bo17b2o98b3o$308bo9bobo21b2o95bo$308b2o9b2o
21b2o94b2o$293b2o152bo$294bo150b3o$294bob2o146bo$295bo2bo145b2o$296b2o
$311b2o122b2o$311b2o122b2o5$319bo3b2o21bo$318bobo3bo19b3o$314b2obobo3b
o19bo73b2o6b2o$314b2obo4bo20b2o72bo7bo$318b5obo93b3o5b3o$310b2obob2obo
4b2o95bo7bo$310bob2obo2bob2o106bobo$303b2o12b2obob3o104b2o$303b2o19bo$
409b2o$409b2o3b2o37b2o$414b2o13b2o18b2obobo$428bobo18b2obo$323b2o103bo
24bo$323b2o76b2o12b2o10b2o20b2ob2o$402bo6b2o4bo34bobo$399b3o7b2o5b3o
31bobo$399bo18bo4b2o22b2ob2o$422bo2bo2b2o17bobo$423b2o2bobo19bo$425b2o
22b2o$425bo$422b2obo2bo$338b2o82bob2obobo$338b2o86bobo$423b2o2bo$421b
3ob2o$420bo$421b3ob2o$423bob2o2$433b2o$433b2o7b2o$442bo$440bobo$440b2o
4$420b2o$420b2o5$436bo$435bobo$435bobo$436bo$437b3o$439bo26$221b2o$
218b2o2bo$216b3ob2o$215bo$212bo2b4ob2o$212b3o3bob2o$215bo$214b2o26b2o$
242bo$240bobo$240b2o$200bo$198b3o$197bo$197b2o$182b2o60b2o$183bo60bobo
$183bob2o59bo$184bo2bo49b2o7b2o70b2o$185b2o50b2o79bo$200b2o114bobo$
200b2o114b2o13b2o$331b2o2$220b2o3b2o$209bo3b2o6bo3bo69b2o40b2o$208bobo
3bo3b3o5b3o66b2o40b2o$207bobo3bo4bo9bo104b2o$203b2obobo3bo15bobo102b2o
$10bo192b2obo2b4obo14b2o$8bobo196bobo3bobo$9b2o192b2ob2o2bo2bobo$204bo
bo2b2o3bo123b2o$192b2o10bobo131b2o$192b2o11bo21b2o$228bo$215b2o11bobo$
216bo12b2o$216bobo$217b2o2b2o$221b2o82b2o4b2ob2o2b2o$305b2o5bobo2bobo$
312bo2b2o$313bobo$216b2o4b2o88b2obo2bo12b2o$216b2o4b2o91bobobo11bo$
312b4o2bo13b3o$312bo3b2o16bo$314bo$313b2ob2o$316b2o$313b2o$217b2o94bo
10b2o$216bobo95bo9b2o7b2o$216bo96b2o18bo$215b2o114bobo$331b2o4$311b2o$
311b2o5$327bo$326bobo$326bobo$327bo$328b3o$330bo47$218b2o$145bo72bo$
145b3o68bobo$141bo6bo67b2o13b2o$140bobo4b2o82b2o$140bobo$138b3ob2o20bo
$137bo24b3o30b2o40b2o$131bo6b3ob2o17bo33b2o40b2o$131b3o6bob2o17b2o70b
2o$134bo98b2o$121bo11b2o$119b3o36b2o$118bo38bo2bo$118b2o38b2o78b2o$
103b2o133b2o$104bo$104bob2o$105bo2bo$106b2o$121b2o$121b2o23b2o$146bo
58b2o4b2ob2o2b2o$147b3o55b2o5bobo2bobo$149bo62bo2b2o$213bobo$129bo3b2o
77b2obo2bo12b2o$128bobo3bo80bobobo11bo$124b2obobo3bo78b4o2bo13b3o$124b
2obo4bo79bo3b2o16bo$128b5obo79bo$120b2obob2obo4b2o78b2ob2o$120bob2obo
2bob2o84b2o$113b2o12b2obob3o78b2o$113b2o19bo78bo10b2o$214bo9b2o7b2o$
213b2o18bo$231bobo$231b2o4$211b2o$211b2o5$227bo$226bobo$226bobo$227bo$
228b3o$230bo33$118b2o$118bo$116bobo$116b2o13b2o$131b2o3$95b2o40b2o$95b
2o40b2o$133b2o$133b2o4$138b2o$138b2o7$105b2o4b2ob2o2b2o$105b2o5bobo2bo
bo$112bo2b2o$113bobo$112b2obo2bo12b2o$115bobobo11bo$112b4o2bo13b3o$
112bo3b2o16bo$114bo$113b2ob2o$116b2o$113b2o$113bo10b2o$114bo9b2o7b2o$
113b2o18bo$131bobo$131b2o4$111b2o$111b2o5$127bo$126bobo$126bobo$127bo$
128b3o$130bo32$764b2o$764bobo$764bo3$177b2o$177bobo185bo$177bo186b2o$
364bobo6$572b2o$572bobo599bo$572bo600b2o$1173bobo12$985b2o$985bobo$
985bo23$1379bo$1378b2o$1378bobo!
Some more notes about the script:
  • The script allows you to ban specific edgeshooters from being used. I don't imagine this feature will be useful very often but I can envisage situations in which you might want to ban Fx119 edgeshooters for repeat time reasons so I added it.
  • The script doesn't bother to place the eaters required to suppress the additional glider outputs from the RNE-19T84 pseudo-edgeshooters so you will have to place them yourself
  • The script allows you to choose whether you prefer all the gliders to be inserted from one side or from alternating sides of the salvo. I think this feature is nice since you (usually) get greater space efficiency from inserting the gliders from alernating sides. If the script is not able to insert a glider from the side of your preference it will attempt to insert it from the other side and then go back to following your preferences
I also updated my old manual edgeshooter placing script. It now produces consistent results regardless of where the inital gliders are placed and has a few new features such as being able to place edgeshooters that insert from both sides and the ability to select gliders with the mouse rather than just with the arrow keys. I think this script is a fair bit less useful than my other script but it might be helpful if you want to handpick all the edgeshooters that are used:

Code: Select all

#place-edgeshooters-v2.py
#Goldtiger997 February 2020

import golly as g

gap_size = int(g.getstring("Please enter the diagonal spacing between the edgeshooters","50"))
safe_space = int(g.getstring("How much additional spacing do you want between the gliders and the edgeshooters? Increase this parameter if the script places gliders too close to the edgeshooters","50"))

sel_desc = g.getselrect()
selection = g.getcells(g.getselrect())
glider_phases = [g.parse("3o$2bo$bo!"),g.parse("bo$b2o$obo!"),g.parse("b2o$obo$2bo!"),g.parse("2o$b2o$o!")]
glider_phases_lh1 = [g.parse("3A$2.A$.A!"),g.parse(".A$.2A$A.A!"),g.parse(".2A$A.A$2.A!"),g.parse("2A$.2A$A!")]
glider_phases_lh2 = [g.parse("3C$2.C$.C!"),g.parse(".C$.2C$C.C!"),g.parse(".2C$C.C$2.C!"),g.parse("2C$.2C$C!")]
glider_phases_lh3 = [g.parse("3D$2.D$.D!"),g.parse(".D$.2D$D.D!"),g.parse(".2D$D.D$2.D!"),g.parse("2D$.2D$D!")]
gliders = []
gliders_sorted = []
gliders_lanes = []

the_numbers = ["1","2","3","4","5"] #full list ["1","2","3","4","5","6","7","8","9","0"]

#edgeshooters
#format is [rle, output glider lane adjustment, input glider lane adjustment, input glider positioning adjustment,delay of edgeshooter,flip_adjust,flip_time_adjust]
edgeshooter1 = [g.parse("18.B$17.2B$16.3B$15.4B$14.4B$13.4B$12.4B$11.4B$10.4B$9.4B$8.4B$8.4B$7.5B$4.9B$4.9B$4.9B$4.10B$3.12B$2.13B8.2A$3.11B9.A$4.12B4.BA.A$4.15B.B2A13.2A$4.17B14.B2AB$4.17B15.2B$.B.17B17.2B3.B$2A19B15.4B.B2A$2AB.19B11.8B2A$.B4.20B2.2B2.6B2AB.B$6.32B2A$6.9B.24B$7.7B2.28B$7.7B2.28B$7.6B4.26B2A$7.7B10.4B.14B2A$7.6B12.4B2.11B.B$6.7B13.4B2.10B$7.6B14.14B$8.5B15.14B$8.6B14.13B$10.4B14.13B$9.B2A2B2.2A.2A2.2A3.8B.4B$10.2A5.A.A2.A.A3.8B$17.A2.2A.B4.8B$18.A.A2.2B3.10B$17.2A.A.BA2B.7B2.2A$20.A.A.A9B2.A$17.4A2.A.8B4.3A$17.A3.2A3.7B6.A$19.A.B6.6B$18.2AB2AB3.7B$21.2AB.8B$18.2A3.10B$18.A4.6B2A3B$19.A3.6B2A2B5.2A$18.2A3.10B5.A$22.11B2.BA.A$22.12B.B2A$21.15B$20.16B$17.2B.16B$16.2A18B$16.2AB.17B$17.B.4B.8B2.4B$24.7B4.4B$25.6B5.4B$27.4B6.4B$29.3BA5.4B$30.BA.A5.3B$31.ABA6.2B$32.A8.B$33.3A$35.A!"),18,0,27,1,19,-100]
edgeshooter2 = [g.parse("22.4B$21.4B$20.4B$19.4B$18.4B5.2A$17.6B3.A2.A$16.8B.B.A.A$16.10B2A2.2A$15.11B2.2A2.A$15.11B2A3.2A$15.10B2.A$15.9B2.A$10.14B3.3A$9.13B7.A$9.14B$9.14B$9.13B$10.11B$9.14B$9.2B2A11B$10.B2A11B$10.14B$10.4B.8B$11.2B.9B3.2A$14.8B3.A.A$14.8B3.A$14.9B.2A$13.11B$12.12B$12.12B$5.2A6.10B$6.A7.11B$6.A.AB.14B$7.2AB.13B2A$9.15B2A$8.15B.B$9.14B$7.2AB.11B$6.A.AB3.9B$6.A8.8B$5.2A9.7B$13.11B$12.12B$12.12B$12.11B$2A.2A2.2A3.8B.4B$.A.A2.A.A3.7B4.2A$.A2.2A.B4.7B4.A$2.A.A2.2B.B.6B6.3A$.2A.A.BA10B8.A$4.A.A.A9B$.4A2.A.8B$.A3.2A4.6B$3.A.B6.6B$2.2AB2AB3.7B$5.2AB.8B$2.2A3.10B$2.A4.6B2A3B$3.A3.6B2A2B5.2A$2.2A3.10B5.A$6.11B2.BA.A$6.12B.B2A$5.15B$4.16B$.2B.16B$2A18B$2AB.17B$.B.4B.8B2.4B$8.7B4.4B$9.6B5.4B$11.4B6.4B$13.3BA5.4B$14.BA.A5.4B$15.ABA$16.A$17.3A$19.A!"),22,12,48,39,23,-184]
edgeshooter3 = [g.parse("18.4B$17.4B$16.4B$15.4B$14.6B7.2A$13.7B7.A$13.9B2.BA.A$9.B2.11B.B2A$9.2B.9BA3B$9.3B.7BABA2B$9.11BABA2B$10.4B.B2.3BA3B$11.4B4.6B$12.4B4.6B$13.4B3.6B$14.4B2.5B$15.14B$16.14B$17.13B$10.2A5.13B$11.A5.11B.B2A$11.A.AB2.10B2.BA.A$12.2AB.9B7.A$14.11B7.2A$14.13B$14.9B.B2A.A$15.7B2.B2AB3A$14.8B4.B4.A$15.8B2.2A.3A$16.7B3.A.A$13.11B2.A.A$12.11B4.A$12.11B$12.11B$2A.2A2.2A3.8B2.B2A$.A.A2.A.A3.7B3.BA.A$.A2.2A.B4.7B6.A$2.A.A2.2B3.6B7.2A$.2A.A.BAB2.7B$4.A.A.A2.7B$.4A2.A4.5B$.A3.2A4.6B$3.A.B6.6B$2.2AB2AB3.7B$5.2AB.8B$2.2A3.10B$2.A4.6B2A3B$3.A3.6B2A2B5.2A$2.2A3.10B5.A$6.11B2.BA.A$6.12B.B2A$5.15B$4.16B$.2B.16B$2A18B$2AB.17B$.B.4B.8B2.4B$8.7B4.4B$9.6B5.4B$11.4B6.4B$13.3BA5.4B$14.BA.A5.4B$15.A.A6.4B$16.A8.4B$17.3A6.4B$19.A7.4B$28.4B!"),18,4,37,14,19,-140]
edgeshooter4 = [g.parse("17.4B$16.4B$15.4B$14.4B$13.4B$12.4B$11.4B$10.4B$9.7B$9.9B$8.11B$5.13B$4.14B$3.16B$3.17B$2.18B$2.19B$.20B19.A$20B20.3A$.21B21.A$.21B20.2A$3.19B20.B8.A$2.B.17B19.3B6.3A$4.18B16.6B4.A$4.20B11.10B3.2A$5.22B2.2B3.16B$5.34B2A7B$7.32B2A9B$8.42B$8.42B$8.44B$8.13B4.4B.13B.9B$8.6B4.3B5.3B5.B.19B$7.7B5.4B4.4B12.14B$8.6B7.2A6.2A11.15B$9.6B6.A7.A12.14B$9.6B7.3A5.3A9.13B$8.8B8.A7.A6.15B$9.6B17.A.AB2.15B$8.7B18.2AB.17B$6.11B18.19B$4.9B2A2B.B15.19B$4.9B2A3B2A15.20B2.2A$4.14B2A13.2AB.16B2A.A.A$5.14B13.A.AB2.13B.B2ABA$5.3B.2B2.B2.5B11.A6.11B4.B2.A$5.2A5.3B4.2A10.2A7.11B2.2A.2A$6.A5.B2AB3.A17.14B3.A.A$3.3A7.2A5.3A13.16B2.A.A$3.A18.A4.2A7.13B.B2A.2A$26.A2.A2.2A2.13B.BA.A$27.2A2.A.A2.8B.2B6.A$29.2A.B3.7B10.2A$29.A2.2B2.7B$26.2A.A.BA2B.6B$26.A.2A.A.A8B$30.A.A.8B$27.2A2.A2.7B$25.3A.2A4.6B$24.A4.B6.6B$25.3AB2AB3.7B$27.A.2AB.8B$31.10B$31.6B2A3B$31.6B2A2B5.2A$31.10B5.A$30.11B2.BA.A$30.12B.B2A$29.15B$28.16B$25.2B.16B$24.2A18B$24.2AB.17B$25.B.4B.8B2.4B$32.7B4.4B$33.6B5.4B$35.4B6.4B$37.3BA5.4B$38.BA.A5.4B$39.ABA6.4B$40.A8.3B$41.3A6.B$43.A!"),17,0,30,87,18,-112]
edgeshooter5 = [g.parse("23.4B$22.4B$21.4B$20.4B$19.4B$18.4B$17.4B$16.4B$3.2A10.4B$4.A9.4B$2.A10.4B$2.5A5.4B5.2A$7.A4.4B5.A$4.3AB2.7B.BA.A$3.A.2B3.7B.B2A$3.4A12B$.2A2.BA3B2A7B$A2.3AB.2B2A7B$2A.A.B3.10B$3.A8.8B$3.2A7.9B$13.3B2.4B$11.5B3.4B$11.2A7.4B$12.A8.3B$9.3A10.2B$9.A13.B!"),23,-14,2,-76,24,0]
edgeshooters = [edgeshooter1,edgeshooter2,edgeshooter3,edgeshooter4,edgeshooter5]

if g.getselrect() == []:
	g.warn("Please select some northeast heading gliders")
	g.exit()
g.shrink()

#crude glider detection
def find_glider(phase_num):
	count = 0
	size = ((sel_desc[2]-2)*(sel_desc[3]-2))
	for i in range(0,sel_desc[2]-2):
		for j in range(0,sel_desc[3]-2):
			x = sel_desc[0]+i
			y = sel_desc[1]+j
			g.select([x,y,3,3])
			old_patt = g.getcells(g.getselrect()) #for restoration
			g.putcells(glider_phases[phase_num],x,y,1,0,0,1,"xor")
			if len(g.getcells(g.getselrect())) == 0:
				gliders.append([phase_num,x,y])
			g.clear(0)
			g.putcells(old_patt,0,0,1,0,0,1,"or")
			count += 1
			g.show(str(25*phase_num + count*25/size) + "% glider detection done")

			
for i in range(0,4):			
	find_glider(i)

if len(gliders) == 0:
	g.warn("Your selection has no (detectable) gliders")
	g.exit()
	
g.setrule("LifeHistory")
#now convert into format of [[lane,point on that lane]...]
for glid in gliders:
	if glid[0] == 0:
		gliders_lanes.append([glid[2]+glid[1],glid[1]*4])
	elif glid[0] == 1:
		gliders_lanes.append([glid[2]+glid[1] + 1,glid[1]*4 + 1])
	elif glid[0] == 2:
		gliders_lanes.append([glid[2]+glid[1] + 1,glid[1]*4 + 2])
	elif glid[0] == 3:
		gliders_lanes.append([glid[2]+glid[1],glid[1]*4 - 1])

gliders_lanes_sorted = sorted(gliders_lanes, key = lambda x: x[0])[::-1]	
for e in gliders_lanes_sorted:
	gliders_sorted.append(gliders[gliders_lanes.index(e)])

#g.note(str(gliders_lanes_sorted))

last_selected_glider = 0
completed_gliders = []
for blah_blah_blah in gliders:
	completed_gliders.append(False)
	
	
last_selected_glider = -1
#highlight gliders in the white LifeHistory state
def select_glider(num):
	global last_selected_glider
	glid = gliders_sorted[num%len(gliders)]
	g.putcells(glider_phases_lh2[glid[0]],glid[1],glid[2],1,0,0,1,"copy")
	#revert previous selected glider to its previous state
	if completed_gliders[last_selected_glider%len(gliders)] == False:
		old_glid = gliders_sorted[last_selected_glider%len(gliders)]
		g.putcells(glider_phases_lh1[old_glid[0]],old_glid[1],old_glid[2],1,0,0,1,"copy")
	else:
		old_glid = gliders_sorted[last_selected_glider%len(gliders)]
		g.putcells(glider_phases_lh3[old_glid[0]],old_glid[1],old_glid[2],1,0,0,1,"copy")
	last_selected_glider = num

select_glider(0)
g.putcells(selection,-(186 + safe_space) - gap_size*len(gliders),(186 + safe_space) + gap_size*len(gliders),1,0,0,1,"or")
g.update()

def find_glider_from_click(x,y):
	answer = ""
	for i in range(0,len(gliders)):
		if gliders_sorted[i][1] - x >= -4 and gliders_sorted[i][1] - x <= 1 and gliders_sorted[i][2] - y >= -4 and gliders_sorted[i][2] - y <= 1:
			answer = i
			break
	return answer
			

edgeshooter_gap = 150
edgeshooters_placed_count = 0
edgeshooter_storage = [] #to facilitate deletion
 
def place_edgeshooter(num,gap,count):
	if flipped%2 == 0:
		edge_x = -gap-edgeshooters[num][1] + edgeshooters[num][2] + sel_desc[0]
		edge_y = gliders_lanes_sorted[last_selected_glider%len(gliders)][0]+gap - edgeshooters[num][2] - sel_desc[0]
		g.putcells(edgeshooters[num][0],edge_x,edge_y,1,0,0,1,"or")
		delay = edgeshooters[num][4] + gliders_lanes_sorted[last_selected_glider%len(gliders)][1] - 4*safe_space - 4*sel_desc[0]
		x = edge_x - delay/4 + gap_size*(len(gliders) - count)
		y = edge_y + edgeshooters[num][3] - delay/4 + gap_size*(len(gliders) - count)
		g.putcells(g.evolve(g.parse("$b3o$bo$2bo!"),delay%4),x-1,y-1,1,0,0,1,"copy")
	else:
		edge_x = -gap-edgeshooters[num][1] + edgeshooters[num][2] + edgeshooters[num][5] + sel_desc[0]
		edge_y = gliders_lanes_sorted[last_selected_glider%len(gliders)][0]+gap - edgeshooters[num][2] + edgeshooters[num][5] + 1  - sel_desc[0]
		g.putcells(edgeshooters[num][0],edge_x,edge_y,0,-1,-1,0,"or")
		delay = edgeshooters[num][4] + gliders_lanes_sorted[last_selected_glider%len(gliders)][1] + edgeshooters[num][6] - 4*safe_space - 4*sel_desc[0]
		x = edge_x + delay/4 - gap_size*(len(gliders) + count) + 1 + 2*gap_size*count
		y = edge_y + edgeshooters[num][3] + delay/4 - gap_size*(len(gliders) + count) + 2*gap_size*count
		g.putcells(g.evolve(g.parse("$b3o$bo$2bo!"),delay%4),x-1,y-1,-1,0,0,-1,"copy")
	#remove the comparison glider
	g.putcells(glider_phases[gliders_sorted[last_selected_glider%len(gliders)][0]],gliders_sorted[last_selected_glider%len(gliders)][1] - (186 + safe_space) - gap_size*len(gliders),gliders_sorted[last_selected_glider%len(gliders)][2] + (186 + safe_space) + gap_size*len(gliders),1,0,0,1,"xor")
	g.update()
	
	edgeshooter_storage.append([edge_x,edge_y,x,y,num,last_selected_glider%len(gliders),flipped%2])
	
def remove_edgeshooter(e):
	g.putcells(edgeshooters[e[4]][0],e[0],e[1],1-e[6],-e[6],-e[6],1-e[6],"xor")
	g.select([e[2]-1-e[6]*3,e[3]-1-e[6]*3,4,4])
	g.clear(0)
	g.update()
	
	completed_gliders[e[5]] = False
	glid = gliders_sorted[e[5]]
	g.putcells(glider_phases_lh1[glid[0]],glid[1],glid[2],1,0,0,1,"copy")
	select_glider(last_selected_glider%len(gliders))
	g.putcells(glider_phases[gliders_sorted[e[5]][0]],gliders_sorted[e[5]][1] - (186 + safe_space) - gap_size*len(gliders),gliders_sorted[e[5]][2] + (186 + safe_space) + gap_size*len(gliders),1,0,0,1,"or")
	g.update()
	edgeshooter_storage.pop()

flipped = 0

while True:
	event = g.getevent()
	if event.startswith("key h"):
		g.note("Commmands:\n\n- press the up and down arrows to toggle between the gliders\n- alternatively, click on a glider to select it\n- press the number keys to place one of the five supported edgeshooters\n- press d to delete the most recently placed edgeshooter\n- press t to test the current pattern\n- press r to return from the testing to generation 0\n- press f to fit the entire pattern into the viewport\n- press x to copy the current pattern to the clipboard\n- press k to toggle between inserting the gliders from the NE and the SW\n- press [ to zoom out\n- press ] to zoom in\n - press v view the gliders")
	if event.startswith("key f"):
		g.fit()
		g.update()
	if event.startswith("key v"):
		g.select(sel_desc)
		g.fitsel()
		g.update()
	if event.startswith("key ["):
		g.setmag(g.getmag() - 1)
		g.update()
	if event.startswith("key ]"):
		g.setmag(g.getmag() + 1)
		g.update()
	if event.startswith("key x"):
		g.select(g.getrect())
		g.copy()
		g.select([])
	if g.getgen() == "0":
		if flipped%2 == 0:
			g.show("Press <h> for help. Press <esc> to quit the script with the current edgeshooters. Currently inserting from the SE")
		else:
			g.show("Press <h> for help. Press <esc> to quit the script with the current edgeshooters. Currently inserting from the NW")
		if event.startswith("click"):
			ans = find_glider_from_click(int(event.split()[1]),int(event.split()[2]))
			if ans != "":
				select_glider(ans)
				g.update()
		elif event.startswith("key up"):
			select_glider(last_selected_glider+1)
			g.update()
		elif event.startswith("key down"):
			select_glider(last_selected_glider-1)
			g.update()
		elif event.startswith("key k"):
			flipped += 1
		elif event.startswith("key t"):
			g.run(744 + 4*safe_space + 4*gap_size*len(gliders))
			g.update()
		elif event.startswith("key d"):
			if edgeshooter_storage != []:
				remove_edgeshooter(edgeshooter_storage[-1])
				edgeshooters_placed_count -= 1
				edgeshooter_gap -= gap_size
		elif event.startswith("key ") and event[4] in the_numbers:
			if completed_gliders[last_selected_glider%len(gliders)]:
				g.note("this glider has already had an edgeshooter constructed")
			else:
				place_edgeshooter(the_numbers.index(event[4]),edgeshooter_gap,edgeshooters_placed_count)
				edgeshooter_gap += gap_size
				edgeshooters_placed_count += 1
				completed_gliders[last_selected_glider%len(gliders)] = True
	else:
		g.show("Advanced pattern to generation " + str(744 + 4*safe_space + 4*gap_size*len(gliders)) + ". Press <r> to return to generation 0")
		if event.startswith("key r"):
			g.reset()
			g.update()

User avatar
Goldtiger997
Posts: 611
Joined: June 21st, 2016, 8:00 am

Re: Stable signal converters

Post by Goldtiger997 » April 15th, 2020, 6:12 am

Here's a smaller and faster 2c/3 signal-to-glider converter (repeat time 1109) using an alternate end to the 2c/3 wire.

Code: Select all

x = 158, y = 201, rule = LifeHistory
130.2A$130.2A2$128.4A$127.A4.A$127.4A.A$124.A7.2A$124.4A2BA.A$128.A.A
.A$122.4A2BA.A.2A$121.A4.A.A.A$121.3A2BA.A.A$118.A5.A.A.2A$118.4A2BA.
A$122.A.A.A$116.4A2BA.A.2A$115.A4.A.A.A$115.3A2BA.A.A$112.A5.A.A.2A$
112.4A2BA.A$116.A.A.A$110.4A2BA.A.2A$109.A4.A.A.A$109.3A2BA.A.A$106.A
5.A.A.2A$106.4A2BA.A$110.A.A.A$104.4A2BA.A.2A$103.A4.A.A.A$103.3A2BA.
A.A$100.A5.A.A.2A$100.4A2BA.A$104.A.A.A$98.4A2BA.A.2A$97.A4.A.A.A$97.
3A2BA.A.A$94.A5.A.A.2A$94.4A2BA.A$98.A.A.A$92.4A2BA.A.2A$91.A4.A.A.A$
91.3A2BA.A.A$88.A5.A.A.2A$88.4A2BA.A$92.A.A.A$86.4A2BA.A.2A$85.A4.A.A
.A$85.3A2BA.A.A$82.A5.A.A.2A$82.4A2BA.A$86.A.A.A$80.4A2BA.A.2A$79.A4.
A.A.A.A$79.3A2BA.A.A.A.A$76.A5.A.A.A.A2.2A$40.4B32.4A2BA.A.A.A$39.4B
30.A6.A.A.A2.A$38.4B31.5A2BA.A.A5.2A26.2A$37.4B37.A.A.A.2A3.A.A25.A.A
$36.4B28.A2.5A2BA.A.A.A4.A21.2A4.A$17.2A16.4B27.3A2.A4.A.A.A.A.A2.2A.
4A15.A2.A2.2A.4A$10.2A3.2B2AB14.4B27.A6.2A2BA.A2.2A.A.A.A.A2.A15.2A.A
.A.A.A2.A$9.B2AB2.4B14.4B28.7A2.A.A.A5.A.ABABAB20.A.ABABAB$10.2B3.6B.
B9.4B10.2A21.B2.ABA.A.2A4.A.AB2AB21.A.AB2AB$11.2B2.10B6.4B11.A20.6A2.
A9.AB.2B23.AB.2B32.2A$10.2B2A11B5.4B13.A13.2A3.A.2B3.2A13.3B25.3B31.
2A$7.B.3B2A12B3.4B13.2A13.A4.A.B4A2.3A10.4B6.2A16.4B6.2A$6.2A18B2.4B
14.B8.2A5.3A.A.A3B.2A2.A8.3B2AB6.A15.3B2AB6.A21.4A$6.2AB.15B2.4B13.3B
7.A.A7.A.A.A2B2A3.A9.3B2AB3.BA.A15.3B2AB3.BA.A20.A4.A$7.B3.19B12.6B6.
BA9.A2BA.A.A.2A8.10B.B2A14.10B.B2A21.A.3A$11.18B10.10B2.B3.3B7.2B.A.A
.A.A8.13B15.13B5.2A14.B2A.A$12.19B2.2B3.20B.B5.BA.A.2A4.A5.14B14.14B
4.B2AB9.2B.2B$12.15BD15B2A3BD13B.3B2A.A5.2A4.15B2.A10.15B4.3B7.8B3A$
13.7B.4BDBD15B2A2B2D10BA3BA4B.A10.4B2.8B4.3A7.4B2.8B4.B2.15B.BA2.A$
13.6B2.4B3D18B2D10BADCBABA4.A.2A6.4B5.6B7.A5.4B5.6B3.21B2.2A$12.7B.5B
D21BD10BCDABABAB2.2A.2A5.4B4.9B5.2A4.4B4.9B.22B$12.6B.29BD10BC3BA2B
11.4B5.2A4.4B4.9B5.2A4.26B$13.9B7.4B.13B5.13B11.4B7.A5.4B5.6B7.A5.24B
$13.8B9.4B4.B.7B5.13B3.B6.BD2B5.3A7.4B2.8B4.3A7.22B$12.8B11.4B19.11B.
4B4.2D2B6.A10.15B2.A10.20B$4.A7.7B13.4B20.8B2.4B3.2B2D19.14B14.7B.3B.
8B$4.3A5.6B15.4B19.8B.BD9B21.13B15.4B8.7B$7.A3.2B3D2B16.4B18.10B2D7B
23.10B.B2A12.5B3.13B$6.2A3.4BD2B17.4B17.9BDBD3BD28.3B2AB3.BA.A11.2A.B
4.13B$6.8B3DB18.4B16.14B2DB27.3B2AB6.A12.A6.13B$8.10B19.4B15.14BDBDB
28.4B6.2A8.3A7.12B$7.11B20.4B15.18B27.3B17.A9.2B3D4B.4B$8.10B12.A8.4B
15.12B2.4B23.AB.2B28.3BD5B3.2A$7.11B10.3A9.4B15.10B4.4B21.A.AB2AB27.
3B3D3B3.A$7.12B8.A13.4B13.8B8.4B20.A.ABABAB26.9B4.3A$7.13B7.2A13.4B
11.6B12.4B18.2A.A.A.A2.A24.9B6.A$11.4B2.4B3.5B14.4B9.4B.B14.4B18.A2.
2A.4A23.10B$10.B2A2B3.4B2.3B17.4B7.4B18.4B17.A4.A26.11B$9.A2BAB5.9B7.
2A8.4B5.4B20.4B17.3A.A2.2A21.9B$8.A.2A2B6.8B8.A9.4B3.4B22.4B18.2A3.2A
20.4B.6B$8.A.3B8.10B3.B.A.2A7.4B.4B24.4B43.4B.7B$5.2A.A4.A7.7B2A2B.B
3A2.A8.7B26.4B41.4B2.6B15.2A$5.2A.2A3.3A5.7B2A3BAB2.2A10.5B28.4B39.4B
3.8B4.B8.A$16.A4.12B4A12.5B29.4B37.4B5.B2A6B.4B3.BA.A$15.2A2.2AB.7B3.
2B.A11.7B29.4B35.4B5.2B2A13B.B2A$13.A2.A.A.AB.7B2.B3A11.4B.4B29.4B33.
4B7.18B$13.2A3.A5.4B4.A13.4B3.4B29.4B31.4B9.17B$17.2A5.4B5.5A7.4B5.4B
29.4B29.4B13.13B$9.A13.4B10.A6.4B7.4B29.4B27.4B13.12B$9.3A10.4B9.A7.
4B9.4B29.4B25.4B14.10B$12.A8.4B10.2A5.4B11.4B29.4B23.4B14.11B$11.2A7.
4B17.4B13.4B29.4B21.4B15.7B.3B$11.5B3.4B17.4B15.4B29.4B19.4B15.12B$
13.3B2.4B17.4B17.4B29.4B6.A10.4B17.11B$3.2A7.9B5.2A10.4B19.4B29.4B5.
3A7.4B18.11B7.2A$3.A8.8B7.A9.4B21.4B29.4B7.A5.4B19.11B2.2A2.A2.A$2A.A
.B3.10B6.A10.4B23.4B29.4B5.2A4.4B18.2AB2.4B3DB2.A.A2.2A$A2.3AB.2B2A7B
6.5A5.4B5.2A18.4B29.4B4.9B18.A.AB3.4BD2B3.B.2A$.2A2.BA3B2A7B11.A4.4B
5.A20.4B29.4B5.6B19.A6.2B3D2B2.2B2.A$3.4A12B8.3AB2.7B.BA.A21.4B29.4B
2.8B18.2A7.6B.2BAB.A.2A$3.A.2B3.7B.B2A5.A.2B3.7B.B2A23.4B29.15B25.8BA
.A.2A.A$4.3AB2.7B.BA.A4.4A12B26.4B29.14B25.8B.A.A$7.A4.4B5.A2.2A2.BA
3B2A7B27.4B29.13B26.5B4.A2.2A$2.5A5.4B5.A.A2.3AB.2B2A7B28.4B29.10B.B
2A24.6B4.2A.3A$2.A10.4B3.2A.2A.A.B3.10B29.4B30.3B2AB3.BA.A22.6B6.B4.A
$4.A9.4B8.A8.8B29.4B29.3B2AB6.A22.7B3.B2AB3A$3.2A10.4B7.2A7.9B29.4B
30.4B6.2A22.8B.B2A.A$16.4B16.3B2.4B29.4B29.3B31.10B$17.4B13.5B3.4B29.
4B25.AB.2B31.3B2A6B$18.4B12.2A7.4B29.4B23.A.AB2AB24.2A5.2B2A6B$19.4B
12.A8.4B29.4B22.A.ABABAB24.A5.10B$20.4B8.3A10.4B29.4B18.2A.A.A.A.A2.A
22.A.AB2.11B$21.4B7.A13.4B29.4B17.A2.A2.2A.4A23.2AB.12B$22.4B21.4B29.
4B18.2A4.A29.15B$23.4B21.4B29.4B23.A.A27.16B$24.4B21.4B29.4B23.2A27.
16B.2B$25.4B21.4B29.4B51.18B2A$26.4B21.4B29.4B49.17B.B2A$27.4B21.4B
29.4B47.4B2.8B.4B.B$28.4B21.4B29.4B45.4B4.7B$29.4B21.4B29.4B43.4B5.6B
$30.4B21.4B29.4B41.4B6.4B$31.4B21.4B29.4B39.4B5.A3B$32.4B21.4B29.4B
37.4B5.A.AB$33.4B21.4B29.4B35.4B6.A.A$34.4B21.4B29.4B33.4B8.A$35.4B
21.4B29.4B31.4B6.3A$36.4B21.4B29.4B29.4B7.A$37.4B21.4B29.4B27.4B$38.
4B21.4B29.4B25.4B$39.4B21.4B29.4B23.4B$40.4B21.4B29.4B21.4B$41.4B21.
4B29.4B19.4B$42.4B21.4B29.4B10.A6.4B$43.4B21.4B29.4B7.3A5.4B$44.4B21.
4B29.4B5.A7.4B$45.4B21.4B29.4B4.2A5.4B$46.4B21.4B29.9B4.4B$47.4B21.4B
29.6B5.4B$48.4B21.4B28.8B2.4B$49.4B21.4B25.15B$50.4B21.4B24.14B$51.4B
21.4B23.13B$52.4B21.4B20.2AB.10B$53.4B21.4B18.A.AB3.B2A3B$54.4B21.4B
17.A6.B2A3B$55.4B21.4B15.2A6.4B$56.4B21.4B23.3B$57.4B21.4B23.2B.BA$
58.4B21.4B21.B2ABA.A$59.4B21.4B19.BABABA.A$60.4B21.4B16.A2.A.A.A.A.2A
$61.4B21.4B15.4A.2A2.A2.A$62.4B21.4B18.A4.2A$63.4B21.4B15.A.A$64.4B
21.4B14.2A$65.4B21.4B$66.4B21.4B$67.4B21.4B8.A$68.4B14.2A5.5B4.5A$69.
4B11.A2.A5.5B3.A5.A$70.4B10.2A.A.AB.7B2.B3A2.A$71.4B11.A.2AB.7B3.2B.A
.2A$72.4B10.A3.12B4A2.A$73.4B7.3A3.7B2A3BAB2.2A$74.4B5.A6.7B2A2B.B3A$
75.4B4.2A5.10B3.B.A$76.9B4.8B8.A.2A$77.6B5.9B7.2A.2A$77.8B2.4B2.3B$
75.15B3.5B$75.14B7.2A$75.13B8.A$73.2AB.10B10.3A$72.A.AB3.B2A3B14.A$
72.A6.B2A3B$71.2A6.4B$80.3B$81.2B.BA$80.B2ABA.A$79.BABABA.A$77.A2.A.A
.A.A.2A$77.4A.2A2.A2.A$81.A4.2A$79.A.A$79.2A!
The beehive on beehive bait was the best I could find after a fair bit of experimentation but there may be something better that uses a flipping loaf similar to the following:

Code: Select all

x = 40, y = 47, rule = LifeHistory
.2A$A2.A$.2A2$.2A$.2A$5.A$4.A.A3.2A.2A$3.A2.A4.A.2A$4.2A5.A$8.2A.A5.
2A$8.A.A.2A4.A$10.A.A.A.A$7.A2.A.A.A.2A$6.A.A.A2.2A3.A$4.3A.A.A4.2A2.
A$3.A4.A2.4A2.3A$3.2A3.A6.2A$9.6A2.A$14.A.A.A.2A$7.7A2.A.A.A$7.A6.2A
2.A.A$8.3A2.A4.A.A.2A$10.A2.5A2.A.A.A$20.A.A.A$15.5A2.A.A.2A$15.A6.A.
A.A$18.4A2.A.A$18.A5.A.A.2A$21.3A2.A.A.A$21.A4.A.A.A$22.4A2.A.A.2A$
28.A.A.A$24.4A2.A.A$24.A5.A.A.2A$27.3A2.A.A.A$27.A4.A.A.A$28.4A2.A.A.
2A$34.A.A.A$30.4A2.A.A$30.A7.2A$33.4A.A$33.A4.A$34.4A2$36.2A$36.2A!

User avatar
dvgrn
Moderator
Posts: 6842
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Stable signal converters

Post by dvgrn » April 15th, 2020, 7:34 am

Goldtiger997 wrote:
April 15th, 2020, 6:12 am
Here's a smaller and faster 2c/3 signal-to-glider converter (repeat time 1109) using an alternate end to the 2c/3 wire.
Nice find! A three-glider recipe that restores the bait all in one step is a big improvement on the old two-stage four-glider kludge -- especially because a concentrated effort to collect direct Herschel-to-junk converters could very well turn up a single-signal factory for that beehive pair. One of these decades...

I might try and see if I can get the repeat time of that circuit down below 1000, though I suppose there's no particular market for marginally faster 2c/3 signal receivers these days. Toilet paper is in much higher demand at the moment.

JP21
Posts: 1046
Joined: October 26th, 2019, 5:39 am
Location: PH

Re: Stable signal converters

Post by JP21 » April 15th, 2020, 7:46 am

Why does it really have to have the worst output glider ever???
Oh yeah, by the way here is the non-LifeHistory rle:

Code: Select all

x = 158, y = 201, rule = B3/S23
130b2o$130b2o2$128b4o$127bo4bo$127b4obo$124bo7b2o$124b4o2bobo$128bobob
o$122b4o2bobob2o$121bo4bobobo$121b3o2bobobo$118bo5bobob2o$118b4o2bobo$
122bobobo$116b4o2bobob2o$115bo4bobobo$115b3o2bobobo$112bo5bobob2o$112b
4o2bobo$116bobobo$110b4o2bobob2o$109bo4bobobo$109b3o2bobobo$106bo5bobo
b2o$106b4o2bobo$110bobobo$104b4o2bobob2o$103bo4bobobo$103b3o2bobobo$
100bo5bobob2o$100b4o2bobo$104bobobo$98b4o2bobob2o$97bo4bobobo$97b3o2bo
bobo$94bo5bobob2o$94b4o2bobo$98bobobo$92b4o2bobob2o$91bo4bobobo$91b3o
2bobobo$88bo5bobob2o$88b4o2bobo$92bobobo$86b4o2bobob2o$85bo4bobobo$85b
3o2bobobo$82bo5bobob2o$82b4o2bobo$86bobobo$80b4o2bobob2o$79bo4bobobobo
$79b3o2bobobobobo$76bo5bobobobo2b2o$76b4o2bobobobo$73bo6bobobo2bo$73b
5o2bobobo5b2o26b2o$78bobobob2o3bobo25bobo$68bo2b5o2bobobobo4bo21b2o4bo
$17b2o47b3o2bo4bobobobobo2b2ob4o15bo2bo2b2ob4o$10b2o5b2o46bo6b2o2bobo
2b2obobobobo2bo15b2obobobobo2bo$10b2o53b7o2bobobo5bobobobo21bobobobo$
46b2o24bobobob2o4bobob2o22bobob2o$46bo20b6o2bo9bo27bo$12b2o33bo13b2o3b
o6b2o$12b2o32b2o13bo4bo2b4o2b3o20b2o26b2o$6b2o47b2o5b3obobo4b2o2bo11b
2o7bo18b2o7bo21bo$6b2o46bobo7bobobo2b2o3bo12b2o5bobo18b2o5bobo20bobo$
55bo9bo2bobobob2o20b2o26b2o21bob3o$68bobobobo54b2o15b2o4bo$66bobob2o4b
o52b2o18b3o$43b2o21b2obo5b2o21bo47b3o$43b2o14bo3bo5bo28b3o45bo2bo$58bo
bobobo4bob2o28bo46b2o$58bobobobo3b2ob2o27b2o$59bo3bo22b2o26b2o$87bo27b
o$84b3o25b3o$84bo27bo$4bo$4b3o$7bo102b2o$6b2o95b2o5bobo11b2o$103b2o7bo
12bo$112b2o8b3o$122bo$30bo68bo44b2o$28b3o67bobob2o40bo$27bo70bobobobo
40b3o$27b2o66b2obobobobo2bo39bo$95bo2bo2b2ob4o$11b2o84b2o4bo$9bo2bo22b
2o66bobo$8bob2o24bo67b2o$8bo27bob2o$5b2obo4bo2bo11b2o4b3o2bo113b2o$5b
2ob2o3b4o11b2o3bo3b2o114bo$33b4o97b2o15bobo$13b2o4b2o15bo97b2o15b2o$
13b2o3bobo12b3o$18bo13bo$17b2o14b5o$9bo27bo$9b3o23bo$12bo22b2o$11b2o2$
103bo$3b2o21b2o75b3o47b2o$3bo23bo78bo41b2o2bo2bo$2obo21bo79b2o26b2o13b
obo2b2o$o2b3o4b2o13b5o14b2o86bobo16b2o$b2o3bo3b2o18bo13bo87bo19bo$3b4o
20b3o12bobo86b2o16bo2bob2o$3bo15b2o5bo15b2o104bobob2obo$4b3o12bobo4b4o
119bobo$7bo13bo2b2o3bo3b2o115bo2b2o$2b5o14bobo2b3o4b2o80b2o34b2ob3o$2b
o17b2ob2obo81b2o5bobo39bo$4bo21bo81b2o7bo33b2ob3o$3b2o21b2o89b2o32b2ob
o2$104bo38b2o$34b2o67bobob2o25b2o7b2o$35bo67bobobobo25bo$32b3o65b2obob
obobo2bo22bobo$32bo67bo2bo2b2ob4o23b2o$102b2o4bo$108bobo$109b2o$156b2o
$156b2o5$141bo$140bobo$140bobo$141bo$138b3o$138bo6$114bo$112b3o$111bo$
111b2o7$101b2o$100bobo5b2o$100bo7b2o$99b2o2$113bo$109b2obobo$108bobobo
bo$105bo2bobobobob2o$105b4ob2o2bo2bo$109bo4b2o$107bobo$107b2o3$104bo$
86b2o14b5o$84bo2bo13bo5bo$84b2obobo12b3o2bo$86bob2o15bob2o$86bo15b4o2b
o$84b3o10b2o3bo3b2o$83bo13b2o4b3o$83b2o20bo$105bob2o$104b2ob2o3$96b2o$
96bo$73b2o22b3o$72bobo5b2o17bo$72bo7b2o$71b2o2$85bo$81b2obobo$80bobobo
bo$77bo2bobobobob2o$77b4ob2o2bo2bo$81bo4b2o$79bobo$79b2o!
Edit: It doesn't even work with double input!

Hunting
Posts: 3182
Joined: September 11th, 2017, 2:54 am

Re: Stable signal converters

Post by Hunting » April 15th, 2020, 9:28 am

JP21 wrote:
April 15th, 2020, 7:46 am
Edit: It doesn't even work with double input!
In most cases, you can't except a circuit that works with single 2c/3 signal input to be compatible with double input. A doubled 2c/3 signal is super tight and sometimes considered a different signal. And most, if not all, circuits using the 2c/3 signal uses the bait mechanism, so it's not the circuit's fault.
Any sufficiently advanced technology is indistinguishable from magic.
Moosey wrote:
February 5th, 2019, 7:51 pm
“New knightship tagalong!”
“Quick, hide it!”
My TODO list

LeapLife - DirtyLife - LispLife

User avatar
dvgrn
Moderator
Posts: 6842
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Stable signal converters

Post by dvgrn » April 15th, 2020, 9:43 am

Hunting wrote:
April 15th, 2020, 9:28 am
In most cases, you can't except a circuit that works with single 2c/3 signal input to be compatible with double input. A doubled 2c/3 signal is super tight and sometimes considered a different signal. And most, if not all, circuits using the 2c/3 signal uses the bait mechanism, so it's not the circuit's fault.
By "except" I think you mean "expect"? JP21 has a very valid point: the previous four-glider bait mechanism does accept either singleton 2c/3 signals or doubled signals.

So this new mechanism can't be as easily used in places like Goldtiger997's Amazing 2 in 1 Reusable Multipurpose Minstrel Remover and Detector™, where a single-to-double signal elbow is needed to get a signal as quickly as possible to a non-diagonal location.

Hunting
Posts: 3182
Joined: September 11th, 2017, 2:54 am

Re: Stable signal converters

Post by Hunting » April 15th, 2020, 9:46 am

dvgrn wrote:
April 15th, 2020, 9:43 am
By "except" I think you mean "expect"?
Sure. I was using "except" a lot these days, damn Golly scripts.
Any sufficiently advanced technology is indistinguishable from magic.
Moosey wrote:
February 5th, 2019, 7:51 pm
“New knightship tagalong!”
“Quick, hide it!”
My TODO list

LeapLife - DirtyLife - LispLife

JP21
Posts: 1046
Joined: October 26th, 2019, 5:39 am
Location: PH

Re: Stable signal converters

Post by JP21 » April 16th, 2020, 6:32 am

If I were to make my own spider eater...

Code: Select all

x = 337, y = 175, rule = B3/S23
259bo11b2o$258bobo10b2o$246bo3bo3b2o2bobo$244b3o2bobo2bo2b2ob2o$47b2o
194bo5bobo3bobo$46bobo194b2o5bob4o2bob2o$40b2o4bo205bo3bobob2o$38bo2bo
2b2ob4o200bo3bobo$38b2obobobobo2bo199bo3bobo$41bobobobo202b2o3bo$41bob
ob2o$42bo2$55b2o206b2o$46b2o7bo207b2o$46b2o5bobo222b2o$53b2o222bo2bo$
278b2obo$231b2o48bo$24bo206b2o48b2o$24b3o239b2o$27bo239bo$26b2o236b3o$
43b2o207b2o10bo$44bo207bobo$18b2o21b3o210bo$18bo22bo212b2o$15b2obo$15b
o2b3o4b2o$16b2o3bo3b2o$18b4o$18bo15b2o3b2o$19b3o12bobobobo$22bo13bobo$
17b5o14bo2bo$17bo19bobo$19bo18bo213bo$18b2o232b3o$255bo$254bobo$254bob
o$53b2o200bo$53b2o4$33b2o235b2o$32bobo235b2o$32bo$31b2o7b2o$40b2o$250b
2o$48b2obo197bobo$48b2ob3o195bo$54bo193b2o7b2o$48b2ob3o203b2o$49bobo$
49bobo213b2obo$50bo214b2ob3o$271bo$33bo15bo215b2ob3o55b2o$32bobo14b3o
214bobo57bo$33bo18bo49b2o162bobo59bo$51b2o49bo164bo40b2o14b5o$29bo74bo
204bo13bo$27b3o6b2o16b2o28b2o14b5o145bo15bo42bobo12b3o$26bo9b2o15bobo
29bo13bo149bobo14b3o41b2o15bo$26b2o25b2o30bobo12b3o147bo18bo54b4o$86b
2o15bo164b2o49b2o3bo3b2o$23b2o75b4o142bo72b2o4b3o2bo$23bobo69b2o3bo3b
2o138b3o6b2o16b2o54bob2o$24b2o69b2o4b3o2bo136bo9b2o15bobo54bo$103bob2o
136b2o25b2o54b2o$103bo$102b2o136b2o$240bobo75b2o$241b2o75bo$94b2o223b
3o$94bo226bo$95b3o$97bo$92b2o$92bo$90bobo$90b2o$86bo17b2o$85bobo16bo
204b2o$85bobo14bobo204bo$86bo15b2o203bobo$307b2o$303bo17b2o$78b2o222bo
bo16bo$79bo222bobo14bobo$79bobo221bo15b2o$3b2o30bo7bo30bo5b2o$4bo24b2o
bobob2o3b2obobob2o22b3o$2bo23b3obob3o9b3obob3o18bo223b2o$2b5o14b2o3bo
3bobo5bobo5bobo3bo18b2o223bo$7bo13bo8b2o6bobo6b2o7b2o238bobo$4b3o12bob
o5b2o9bobo9b2o5bo45b2o115b2o30bo7bo30bo5b2o$3bo15b2o6b2ob2o15b2ob2o5bo
b2o42b2o116bo24b2obobob2o3b2obobob2o22b3o$3b4o24bo15bo10bo2bo157bo23b
3obob3o9b3obob3o18bo$b2o3bo3b2o47b2o158b5o14b2o3bo3bobo5bobo5bobo3bo
18b2o$o2b3o4b2o62b2o148bo13bo8b2o6bobo6b2o7b2o$2obo70b2o145b3o12bobo5b
2o9bobo9b2o5bo45b2o$3bo216bo15b2o6b2ob2o15b2ob2o5bob2o42b2o$3b2o98bo
116b4o24bo15bo10bo2bo$102bobo5bo107b2o3bo3b2o47b2o$103bo4b3o106bo2b3o
4b2o62b2o$11b2o69bo3b2o19bo109b2obo70b2o$12bo68bobo3bo19b2o111bo$9b3o
65b2obobo3bo133b2o98bo$9bo67b2obo4bo7b2o224bobo5bo$81b5obo4bobo20b2o
203bo4b3o$73b2obob2obo4bobo3bo23bo111b2o69bo3b2o19bo$73bob2obo2bob2o2b
o3b2o23bob2o109bo68bobo3bo19b2o$66b2o12b2obob2o21b2o4b3o2bo106b3o65b2o
bobo3bo$66b2o40b2o3bo3b2o107bo67b2obo4bo7b2o$113b4o181b5obo4bobo20b2o$
99b2o15bo173b2obob2obo4bobo3bo23bo$98bobo12b3o174bob2obo2bob2o2bo3b2o
23bob2o$98bo13bo170b2o12b2obob2o21b2o4b3o2bo$97b2o14b5o165b2o40b2o3bo
3b2o$117bo212b4o$115bo200b2o15bo$115b2o198bobo12b3o$315bo13bo$314b2o
14b5o$334bo$332bo$332b2o17$68bo$68b3o$71bo$70b2o2$285bo$285b3o$288bo$
287b2o2$80b2o$73b2o5bobo$73b2o7bo$82b2o2$69bo227b2o$68bobob2o216b2o5bo
bo$68bobobobo215b2o7bo$65b2obobobobo2bo221b2o$65bo2bo2b2ob4o$67b2o4bo
212bo$73bobo209bobob2o$74b2o209bobobobo$282b2obobobobo2bo$282bo2bo2b2o
b4o$284b2o4bo$290bobo$291b2o!
It's still bigger though...

User avatar
LaundryPizza03
Posts: 828
Joined: December 15th, 2017, 12:05 am
Location: Unidentified location "https://en.wikipedia.org/wiki/Texas"

Re: Stable signal converters

Post by LaundryPizza03 » May 19th, 2020, 11:21 pm

User Entity Valkyrie 2 posted a simple E-to-H converter in an OCA thread (original post). His rule was probably intended to be Pedestrian Life (B38/S23), but it works in standard Life as well.

Code: Select all

x = 12, y = 31, rule = B3/S23
10b2o$10bo$8bobo$8b2o7$o$obo$3o$bo4$3b2o$3b2o10$b3o$3bo$3b2o!

Code: Select all

x = 4, y = 3, rule = B3-q4z5y/S234k5j
2b2o$b2o$2o!
LaundryPizza03 at Wikipedia

The latest edition of new-gliders.db.txt and oscillators.db.txt have 31117 spaceships and 1150 oscillators from outer-totalistic rules. You are invited to help!

User avatar
A for awesome
Posts: 2063
Joined: September 13th, 2014, 5:36 pm
Location: 0x-1
Contact:

Re: Stable signal converters

Post by A for awesome » May 20th, 2020, 12:11 am

LaundryPizza03 wrote:
May 19th, 2020, 11:21 pm
User Entity Valkyrie 2 posted a simple E-to-H converter in an OCA thread (original post). His rule was probably intended to be Pedestrian Life (B38/S23), but it works in standard Life as well.

Code: Select all

x = 12, y = 31, rule = B3/S23
10b2o$10bo$8bobo$8b2o7$o$obo$3o$bo4$3b2o$3b2o10$b3o$3bo$3b2o!
This same pattern, or something very similar, is floating around somewhere in the middle pages of the Hunting of the New Herschel Conduits thread, if I remember right — out in the wilderness where neither Google or the forum search utility can find it with only the single letter E as a clue to its whereabouts. Regardless, there's not currently an X-to-E that works with it (there's one H-to-E I know of, which generates the E from the wrong direction for this, but nothing else as far as I'm aware), so it's moot for now.

EDIT: Surprisingly, I'm not finding it there at the moment, or in the Elementary Conduits thread. I distinctly remember having seen it somewhere on the forums at least twice, though.
x₁=ηx
V ⃰_η=c²√(Λη)
K=(Λu²)/2
Pₐ=1−1/(∫^∞_t₀(p(t)ˡ⁽ᵗ⁾)dt)

$$x_1=\eta x$$
$$V^*_\eta=c^2\sqrt{\Lambda\eta}$$
$$K=\frac{\Lambda u^2}2$$
$$P_a=1-\frac1{\int^\infty_{t_0}p(t)^{l(t)}dt}$$

http://conwaylife.com/wiki/A_for_all

Aidan F. Pierce

User avatar
A for awesome
Posts: 2063
Joined: September 13th, 2014, 5:36 pm
Location: 0x-1
Contact:

Re: Stable signal converters

Post by A for awesome » June 5th, 2020, 12:25 am

In response to this amazing stable glider shifter by EE and EV2, here's a direct G-to-LOM via a different eater placement:

Code: Select all

x = 38, y = 34, rule = B3/S23
6$33bo$32bobo$32bobo$31b2ob3o$19b2o16bo$19b2o10b2ob3o$31b2obo2$7b2o$8b
o$8bobo$9b2o2$34b2o$20bo4bo8b2o$21b2obobo$20b2o2bo2bo$25b2o3$32b2o$32b
2o3$13b3o$13b4o$14b3o6b2o$23b2o!
Unfortunately, I don't know if there's a way to get an output signal from it — LOMs are quite difficult to work with, being symmetrical and all.
x₁=ηx
V ⃰_η=c²√(Λη)
K=(Λu²)/2
Pₐ=1−1/(∫^∞_t₀(p(t)ˡ⁽ᵗ⁾)dt)

$$x_1=\eta x$$
$$V^*_\eta=c^2\sqrt{\Lambda\eta}$$
$$K=\frac{\Lambda u^2}2$$
$$P_a=1-\frac1{\int^\infty_{t_0}p(t)^{l(t)}dt}$$

http://conwaylife.com/wiki/A_for_all

Aidan F. Pierce

User avatar
Scorbie
Posts: 1448
Joined: December 7th, 2013, 1:05 am

Re: Stable signal converters

Post by Scorbie » June 5th, 2020, 3:31 am

Congrats, EE and EV2!
Nice work by A for Awesome too!
I couldn't resist the hype that something would come out! (Nothing useful right now)

Code: Select all

x = 83, y = 58, rule = LifeHistory
8.A$8.3A$11.A$10.2A3$24.2D$24.D.D$24.D.D10.2A.2A$25.2D11.A.A.A$38.A3.
A$33.2A.2A.3A3.A$4.2A28.2A.A.A2.4A$4.2A8.A.A15.A6.A.A6.A$15.2A15.8A.A
2.5A$15.A25.A.A5.2A$26.2A2.5A.4A.A2.A.2A.A.A$15.2A9.2A2.A3.A.A2.A.2A.
A.A.A2.A$14.A2.A15.A3.A2.A3.A.A4.A.2A$15.A.A16.3A4.4A.2A2.2A2.A$16.A
22.A.A6.A3.A$34.6A.A.5A.3A3.A$33.A6.A.A4.A.A2.4A$33.A.A2.A3.A2.A3.A.A
6.A$3.A.2A27.2A2.2A2.A.A.4A.A2.5A$.3A.2A13.2A19.2A.A6.A.A5.2A$A19.2A
22.A.4A.A2.A.2A.A.A$.3A.2A6.2A29.A.A2.A.2A.A.A.A2.A$3.A.A7.2A28.2A2.A
2.A3.A.A4.A.2A$3.A.A39.2A4.4A.2A2.2A2.A$4.A40.A3.A.A6.A3.A$46.4A.A.5A
.3A3.A$50.A.A4.A.A2.4A$48.A3.A2.A3.A.A6.A$48.2A2.A.A.4A.A2.5A$51.2A.A
6.A.A5.2A$54.A.4A.A2.A.2A.A.A$54.A.A2.A.2A.A.A.A2.A$53.2A2.A2.A3.A.A
4.A.2A$55.2A4.4A.2A2.2A2.A$55.A3.A.A6.A3.A$56.4A.A.5A.3A3.A$60.A.A4.A
.A2.4A$58.A3.A2.A3.A.A6.A$58.2A2.A.A.4A.A2.5A$61.2A.A6.A.A5.2A$64.A.
4A.A2.A.2A.A2.A$64.A.A2.A.2A.A.A.A2.2A$63.2A2.A2.A3.A.A$65.2A4.4A.2A$
65.A3.A.A6.A$66.4A.A.5A.A$70.A.A4.A.A$68.A3.A2.A3.2A$68.2A2.A.A.3A2.A
$71.2A.A5.A$75.A.3A$76.2A!
Best wishes to you, Scorbie

User avatar
dvgrn
Moderator
Posts: 6842
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Stable signal converters

Post by dvgrn » June 5th, 2020, 6:29 am

Scorbie wrote:
June 5th, 2020, 3:31 am
Congrats, EE and EV2!
Nice work by A for Awesome too!
I couldn't resist the hype that something would come out! (Nothing useful right now)...
It's definitely worth some serious exploration.

An attachment to this that could get a Herschel out, or even just two gliders, would spark a minor revolution in self-constructing circuitry. Single-channel circuitry recipes would all have to be re-invented with a minimum repeat time of 70 instead of 90. Even as it stands, the Bandersnatch improves a whole lot of situations where extra glider streams are available but are inconveniently on the wrong color.

Post Reply