I cannot seem to get a clean pattern, here or in wiki.dvgrn wrote: ↑March 4th, 2020, 11:31 amUsually 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.

## Stable signal converters

### Re: Stable signal converters

"C'est la vie, c'est la guerre."

.....**

...****

.******

*( ͡° ͜ʖ ͡°)*

**Life is War**.....**

...****

.******

*( ͡° ͜ʖ ͡°)*

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!
```

### Re: Stable signal converters

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!
```

### Re: Stable signal converters

Here is what I know:

The conduit can be replaced (disappointingly useless):
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.

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!
```

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.

### Re: Stable signal converters

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.JP21 wrote: ↑March 5th, 2020, 4:30 amHere is what I know:

The conduit can be replaced (disappointingly useless):Code: Select all

`[syringe catalyst replacement]`

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.

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 ]]
```

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.

- Goldtiger997
**Posts:**642**Joined:**June 21st, 2016, 8:00 am

### Re: Stable signal converters

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!
```

### Re: Stable signal converters

So, you guys are telling me that these are the smallest G-to-XWSS??? (Minimum bounding box)
I also want the smallest for each in terms of population size.

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!
```

### Re: Stable signal converters

That looks right. At least I don’t remember anything smaller offhand.

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.I also want the smallest for each in terms of population size.

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).

- Goldtiger997
**Posts:**642**Joined:**June 21st, 2016, 8:00 am

### Re: Stable signal converters

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:

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.

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.

### Re: Stable signal converters

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.Goldtiger997 wrote: ↑March 12th, 2020, 10:02 amHere'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).

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.

Looking forward to it!Goldtiger997 wrote: ↑March 12th, 2020, 10:02 amTo place the edgeshooters I used an edgeshooter placing script that I made which I will post soon once I make it more user-friendly.

- Entity Valkyrie 2
**Posts:**1039**Joined:**February 26th, 2019, 7:13 pm**Location:**Hijuatl, Zumaland-
**Contact:**

### Re: Stable signal converters

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.

My recent rules:

StateInvestigator 3.0

B3-kq4ej5i6ckn7e/S2-i34q6a7

B3-kq4ej5y6c/S2-i34q5e

Move the Box

### Re: Stable signal converters

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.Entity Valkyrie 2 wrote: ↑March 13th, 2020, 5:20 amCan I ask, does my spider gun and GoldTiger's spider gun deserve pages? Dart guns did, Cordership guns did...

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.

- Entity Valkyrie 2
**Posts:**1039**Joined:**February 26th, 2019, 7:13 pm**Location:**Hijuatl, Zumaland-
**Contact:**

### Re: Stable signal converters

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.dvgrn wrote: ↑March 13th, 2020, 10:03 amPersonally 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.

**Bx222 IS MY WORST ENEMY.**

Please click here for my own pages.

My recent rules:

StateInvestigator 3.0

B3-kq4ej5i6ckn7e/S2-i34q6a7

B3-kq4ej5y6c/S2-i34q5e

Move the Box

- Goldtiger997
**Posts:**642**Joined:**June 21st, 2016, 8:00 am

### Re: Stable signal converters

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

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!")
```

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!
```

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!
```

- 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

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()
```

- Goldtiger997
**Posts:**642**Joined:**June 21st, 2016, 8:00 am

### Re: Stable signal converters

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

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 = 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!
```

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!
```

### Re: Stable signal converters

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...Goldtiger997 wrote: ↑April 15th, 2020, 6:12 amHere's a smaller and faster 2c/3 signal-to-glider converter (repeat time 1109) using an alternate end to the 2c/3 wire.

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.

### Re: Stable signal converters

Why does it really have to have the worst output glider ever???

Oh yeah, by the way here is the non-LifeHistory rle:Edit: It doesn't even work with double input!

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!
```

### Re: Stable signal converters

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.

Farewell.

LeapLife/url] - [url=https://conwaylife.com/forums/viewtopic.php?f=11&t=4367]DirtyLife - LispLife

AlephAlpha, privately wrote:What is textcensus? What is attribute?

Code: Select all

```
x = 4, y = 5, rule = B2n3/S23-q
2bo$2bo$bobo2$3o!
```

### Re: Stable signal converters

By "except" I think you mean "expect"? JP21 has a very valid point: the previous four-glider bait mechanismHunting wrote: ↑April 15th, 2020, 9:28 amIn 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.

**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.

### Re: Stable signal converters

Sure. I was using "except" a lot these days, damn Golly scripts.

Farewell.

LeapLife/url] - [url=https://conwaylife.com/forums/viewtopic.php?f=11&t=4367]DirtyLife - LispLife

AlephAlpha, privately wrote:What is textcensus? What is attribute?

Code: Select all

```
x = 4, y = 5, rule = B2n3/S23-q
2bo$2bo$bobo2$3o!
```

### Re: Stable signal converters

If I were to make my own spider eater... It's still bigger though...

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!
```

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

### Re: Stable signal converters

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!
```

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

- A for awesome
**Posts:**2354**Joined:**September 13th, 2014, 5:36 pm**Location:**Pembina University, Home of the Gliders-
**Contact:**

### Re: Stable signal converters

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.LaundryPizza03 wrote: ↑May 19th, 2020, 11:21 pmUser 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!`

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.

praosylen#5847 (Discord)

The only decision I made was made

of flowers, to jump universes to one of springtime in

a land of former winter, where no invisible walls stood,

or could stand for more than a few hours at most...

The only decision I made was made

of flowers, to jump universes to one of springtime in

a land of former winter, where no invisible walls stood,

or could stand for more than a few hours at most...

- A for awesome
**Posts:**2354**Joined:**September 13th, 2014, 5:36 pm**Location:**Pembina University, Home of the Gliders-
**Contact:**

### Re: Stable signal converters

In response to this amazing stable glider shifter by EE and EV2, here's a direct G-to-LOM via a different eater placement:
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.

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!
```

praosylen#5847 (Discord)

The only decision I made was made

of flowers, to jump universes to one of springtime in

a land of former winter, where no invisible walls stood,

or could stand for more than a few hours at most...

The only decision I made was made

of flowers, to jump universes to one of springtime in

a land of former winter, where no invisible walls stood,

or could stand for more than a few hours at most...

### Re: Stable signal converters

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)

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

### Re: Stable signal converters

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.