Glider splitter?

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
Post Reply
Nathonion
Posts: 6
Joined: April 15th, 2017, 12:45 pm

Glider splitter?

Post by Nathonion » April 15th, 2017, 12:51 pm

Hello there! I was wondering if there were such a pattern, a still life maybe, that can split a line of gliders into two. While I'm at it I may as well ask, is there is any way to cross two lines of gliders? Thanks! :D

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Glider splitter?

Post by gameoflifemaniac » April 15th, 2017, 1:11 pm

Have you read the forum rules? First introduce yourself to the Game of Life and then ask questions.

This is the first example of a glider duplicator:

Code: Select all

x = 332, y = 319, rule = B3/S23
2bo$obo$b2o5$9bo$10bo$8b3o6$17bo$15bobo$16b2o5$24bo$25bo$23b3o6$32bo$
30bobo$31b2o5$39bo$40bo$38b3o6$47bo$45bobo$46b2o5$54bo$55bo$53b3o6$62b
o$60bobo$61b2o5$69bo$70bo$68b3o6$77bo$75bobo$76b2o5$84bo$85bo$83b3o6$
92bo$90bobo$91b2o5$99bo$100bo$98b3o6$107bo$105bobo$106b2o5$114bo$115bo
$113b3o6$122bo$120bobo$121b2o5$129bo$130bo$128b3o6$137bo$135bobo$136b
2o5$144bo$145bo$143b3o6$152bo$150bobo$151b2o5$159bo$160bo$158b3o6$167b
o$165bobo$166b2o5$174bo$175bo$173b3o6$182bo$180bobo$181b2o5$189bo$190b
o$188b3o6$197bo$195bobo$196b2o5$204bo$205bo$203b3o6$212bo$210bobo$211b
2o5$219bo$220bo$218b3o6$227bo$225bobo$226b2o5$234bo$235bo$233b3o6$242b
o$240bobo$241b2o5$249bo$250bo$248b3o6$257bo$255bobo$256b2o5$264bo$265b
o$263b3o6$272bo$270bobo$271b2o53b2o$326b2o4$279bo$280bo$278b3o3$323b2o
bob2o2$323bo5bo$287bo$285bobo36b2ob2o$286b2o38bo3$320b2o6bo$319bobo5bo
bo$294bo26bo4bo3bo$295bo30b5o$293b3o29b2o3b2o$326b5o$327b3o$328bo$306b
2o4b3o$306b2o6bo$313bo5$305b2o$304bobo21b2o$306bo21b2o$295bo$294b4o$
293b2obobo6bobo$282b2o8b3obo2bo3bo3bo$282b2o9b2obobo4bo$294b4o4bo4bo$
295bo7bo$303bo3bo6b2o$305bobo6bobo$316bo$316b2o!
In this example it splits 40 gliders into two 40-long glider streams.
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
BlinkerSpawn
Posts: 1992
Joined: November 8th, 2014, 8:48 pm
Location: Getting a snacker from R-Bee's

Re: Glider splitter?

Post by BlinkerSpawn » April 15th, 2017, 7:27 pm

Nathonion wrote:While I'm at it I may as well ask, is there is any way to cross two lines of gliders? Thanks! :D
If we know that the gliders will arrive with a certain temporal offset, then I remember there is a 2G-to-H reaction used in lower-period guns that should qualify as a merge.
If we're dealing with asynchronous streams, then we're basically asking for an AND gate - which I'm sure already exists somewhere - but one can be created simply like so:
  • Make a G-to-G that relies upon a sacrificial SL that can be reasonably inserted. (Likely the hardest part)
  • Connect a G-to-that SL conduit
  • Attach inputs
Unless that's not what you're asking for, of course. :)
LifeWiki: Like Wikipedia but with more spaceships. [citation needed]

Image

Nathonion
Posts: 6
Joined: April 15th, 2017, 12:45 pm

Re: Glider splitter?

Post by Nathonion » April 15th, 2017, 7:40 pm

gameoflifemaniac wrote:Have you read the forum rules? First introduce yourself to the Game of Life and then ask questions.

This is the first example of a glider duplicator:

Code: Select all

x = 332, y = 319, rule = B3/S23
2bo$obo$b2o5$9bo$10bo$8b3o6$17bo$15bobo$16b2o5$24bo$25bo$23b3o6$32bo$
30bobo$31b2o5$39bo$40bo$38b3o6$47bo$45bobo$46b2o5$54bo$55bo$53b3o6$62b
o$60bobo$61b2o5$69bo$70bo$68b3o6$77bo$75bobo$76b2o5$84bo$85bo$83b3o6$
92bo$90bobo$91b2o5$99bo$100bo$98b3o6$107bo$105bobo$106b2o5$114bo$115bo
$113b3o6$122bo$120bobo$121b2o5$129bo$130bo$128b3o6$137bo$135bobo$136b
2o5$144bo$145bo$143b3o6$152bo$150bobo$151b2o5$159bo$160bo$158b3o6$167b
o$165bobo$166b2o5$174bo$175bo$173b3o6$182bo$180bobo$181b2o5$189bo$190b
o$188b3o6$197bo$195bobo$196b2o5$204bo$205bo$203b3o6$212bo$210bobo$211b
2o5$219bo$220bo$218b3o6$227bo$225bobo$226b2o5$234bo$235bo$233b3o6$242b
o$240bobo$241b2o5$249bo$250bo$248b3o6$257bo$255bobo$256b2o5$264bo$265b
o$263b3o6$272bo$270bobo$271b2o53b2o$326b2o4$279bo$280bo$278b3o3$323b2o
bob2o2$323bo5bo$287bo$285bobo36b2ob2o$286b2o38bo3$320b2o6bo$319bobo5bo
bo$294bo26bo4bo3bo$295bo30b5o$293b3o29b2o3b2o$326b5o$327b3o$328bo$306b
2o4b3o$306b2o6bo$313bo5$305b2o$304bobo21b2o$306bo21b2o$295bo$294b4o$
293b2obobo6bobo$282b2o8b3obo2bo3bo3bo$282b2o9b2obobo4bo$294b4o4bo4bo$
295bo7bo$303bo3bo6b2o$305bobo6bobo$316bo$316b2o!
In this example it splits 40 gliders into two 40-long glider streams.
Thanks! This really helps! (Also, thanks for calling me out on not reading the rules. I should probably do that soon... :oops: )
:Edit: It just occurred to me what you actually meant. (whoops...) I had actually been trying to find this for a while before I asked the question, but couldn't find it.
BlinkerSpawn wrote:
Nathonion wrote:While I'm at it I may as well ask, is there is any way to cross two lines of gliders? Thanks! :D
If we know that the gliders will arrive with a certain temporal offset, then I remember there is a 2G-to-H reaction used in lower-period guns that should qualify as a merge.
If we're dealing with asynchronous streams, then we're basically asking for an AND gate - which I'm sure already exists somewhere - but one can be created simply like so:
  • Make a G-to-G that relies upon a sacrificial SL that can be reasonably inserted. (Likely the hardest part)
  • Connect a G-to-that SL conduit
  • Attach inputs
Unless that's not what you're asking for, of course. :)
That isn't really what I meant. I meant crossing two lines of gliders, so they don't interact with each other, or something of the same effect. Sorry if I was too vague.

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

Re: Glider splitter?

Post by dvgrn » April 15th, 2017, 8:57 pm

Nathonion wrote:That isn't really what I meant. I meant crossing two lines of gliders, so they don't interact with each other, or something of the same effect. Sorry if I was too vague.
If they're regular glider streams, or periodic streams with some gliders optionally missing, then there's a minimum period that allows trivial crossings. Gliders spaced 37 ticks apart can't be arranged to cross each other, but glider streams 38 or more ticks apart are "permeable":

Code: Select all

x = 158, y = 89, rule = B3/S23
28$141bobo$141b2o$142bo2$30bo$31bo$29b3o3$133bo$131b2o$132b2o3$40bo$
38bobo$39b2o3$122bobo$122b2o$123bo2$49bo$50bo$48b3o3$114bo$112b2o$113b
2o3$59bo$57bobo$58b2o3$103bobo$103b2o$104bo2$68bo$69bo$67b3o3$95bo$93b
2o$94b2o!
An old circuitry problem was to find a way to cross glider streams that are closer spaced than p38 -- in particular, the p30 streams which were often used before the invention of Herschel circuitry (and they're still used quite a lot).

Here's Dean Hickerson's solution to that problem from 1996 -- see "Dean Hickerson's Life page" in the link for many other DRH constructions:

Code: Select all

#C p30 glider crossing demo
#C This demonstrates a device which allows 2 p30 data streams to cross
#C each other.  It uses 3 copies of a remarkably simple p30 signal
#C duplicator found by Dieter Leithner.
#C
#C The crossing works as follows:  Let the input signals be A and B,
#C with A on the left.  Both inputs are copied and inverted; we now
#C have  -A, -A, -B, -B.  The middle signals cross in a vanish reaction
#C (and one output is discarded), giving  -A, A&-B, -B.  The left two
#C signals can now cross each other since they're never both 1.  Next,
#C -A is copied and inverted, giving  A&-B, A, A, -B.  Another vanish
#C reaction gives  -A&-B  on the right, which can safely cross A,
#C yielding  A&-B, -A&-B, A.  The signal on the left is inverted and
#C crosses the middle signal in a vanish reaction, producing
#C -(A&-B) & -(-A&-B) = B.
#C
#C In this demo, the inputs come from a p150 (2-on, 3-off) gun aimed
#C southeast p180 (3-on,3-off) gun aimed southwest.
#C Dean Hickerson, 9/4/96
x = 188, y = 205
158bo$157bobo$156bo3b2o6b2o$145b2o9bo3bob2o4bobo$31b2o112b2o9bo3bob3o
4b3o$31bo2bo122bobob2o2bo4b3o6b2o$17bobo15bo122bo4b2o4b3o7b2o$15bo3bo
2b3o10bo6b2o124bobo$15bo19bo6b2o124b2o$8b2o4bo4bo7b2o2bo2bo$8b2o5bo7bo
bo2bo2b2o122bo$15bo3bo5b3o127bobo8bo$17bobo135b2o7b3o$163bo$163b2o$34b
o$22b2o11bo$23bo9b3o112bo$23bobo121bo$24b2o121b3o8b2o$157b2o$31bo127bo
$31b2o$30bobo9bo$40bobo$41b2o97bo$140bobo23bo$140b2o23b2o10b2o$165bobo
9b2o$23b2o135b2o12b2o6bo3b2o$24b2o23bo108bo3bo10b3o5bo3bobo$23bo6b2o
18bo101b2o3bo5bo10b2o6b5o$12b2o16bo17b3o82bo18b2o2b2obo3bo13b2o4b3o$
11bo3bo15b3o98bo24bo5bo13b2o$2o8bo5bo7bo8bo98b3o23bo3bo$2o8bo3bob2o4bo
bo135b2o$10bo5bo3b2o$11bo3bo4b2o$12b2o6b2o$22bobo7b2o$24bo7bobo$34bo$
34b2o$129b2o$129b2o6$128b3o$105bo21b2ob2o$105b3o19b2ob2o$108bo18b5o$
107b2o17b2o3b2o3$129b2o$127b5o$131bo$79bo47b3o$80bo46bo$73b2o3b3o29bo
17b2o$73b2o34b3o16b2o$108b5o8bo$107b2o3b2o6bobo$74bo33b5o7bobo5b2o3b2o
$73bobo32bo3bo3b2o10bobobobo$72bo3bo10bo21bobo4b2o2b2o7b5o$72b5o8bobo
22bo10b2o7b3o$71b2o3b2o8b2o10bo23bo8bo$72b5o19b3o$73b3o19bo14b2o$74bo
20b2o13b2o2$128bo4b2o$126bobo4bo$73bo53b2o5b3o$61b2o12b2o16bo42bo$61b
2o11b3o15b3o$74b2o16b3o$75bo79b2o$74bobo13b2o3b2o38bo19b2o$60b3o12b2o
13b2o3b2o39bo$60b3o71b3o$59bo3bo91b3o$58bo5bo4b2obob2o10b2o5bo61b3o$
59bo3bo22b2o4bobo$60b3o6bo5bo6bo11b2o$83b2o9b2o$70b2ob2o7b2o9b3o4bo52b
2o3b2o$72bo19bobo3b2o54b5o$92b2o5b2o54b3o$59bobo94bo$59bo2bo6b2o$61b2o
bo5bo19b2o$67b3o$61bo5bo22bo2bo$61bob2o$62bo29b2o$155bo$95b2o56b2o$56b
2o3b2o32bobo56b2o$57b5o35bo$57b2ob2o35b2o$57b2ob2o23bo$58b3o22b2o$84b
2o69b2o3b2o$146bobo8b3o$146b2o8bo3bo$147bo9bobo$158bo$59b2o$59b2o2$
157b2o$157b2o3$77b2o6bo$77bobo3bobo$78b3o3b2o$79b2o$79b2o$77bobo$78bo$
92bo$93bo8bo$75b2o3b2o9b3o6b3o$39b2o34b2o3b2o17bo$39b2o58b2o$77b3o$77b
3o$78bo18bo$96bobo$65b2o24bo3bo3bo$64bo2bo21b2o5b3o$64bo25b2o2b2o3b2o$
64bo51bobo$38b3o23bobo13bo35b2o$37bo3bo22bobo14b2o34bo$36bo5bo22bo14b
2o$36bo5bo$39bo6bobo26b3o12b2o$37bo3bo4b2o14b2o3b2o5bo3bo11b2o$38b3o6b
o14bo5bo4bo5bo30bo$39bo33bo5bo28b2o$63bo3bo8bo10bobo19b2o$64b3o7bo3bo
9b2o6b2o$36b3o38bo10bo7b2o$36b3o34bo2bo$35bo3bo33bo$74bo$34b2o3b2o30b
3o27bobo$71bo23bo5b2o$68bo27b2o4bo$66bobo26b2o$67b2o2$51bo11bo$52b2o8b
3o$51b2o8b5o$60b2o3b2o36b2o$37b2o22b5o37bobo$37b2o22bo3bo39bo$62bobo
40b2o$63b3o$58bobo4b2o$59b2o4bo$59bo6b3o$68bo4$66bo$67b2o$66b2o6$84bo$
82b3o$81bo$81b2o3$79bo$78b3o$77bo3bo$76bob3obo$77b5o11$78b2o$78b2o!

Nathonion
Posts: 6
Joined: April 15th, 2017, 12:45 pm

Re: Glider splitter?

Post by Nathonion » April 15th, 2017, 11:51 pm

This is really helpful, but for what I'm doing, I can't have gaps. Is there a way to do this without gaps, or maybe fill them in? Or is it impossible?

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

Re: Glider splitter?

Post by dvgrn » April 16th, 2017, 6:32 am

Nathonion wrote:This is really helpful, but for what I'm doing, I can't have gaps. Is there a way to do this without gaps, or maybe fill them in? Or is it impossible?
Dean Hickerson's p30 stream crosser works for any pattern of gliders at p30 -- the gaps are just put in to show that the mechanism works. You can just as well leave them out:

Code: Select all

x = 173, y = 205, rule = B3/S23
150bo$149bobo$148bo3b2o6b2o$137b2o9bo3bob2o4bobo$23b2o112b2o9bo3bob3o
4b3o$23bo2bo122bobob2o2bo4b3o6b2o$9bobo15bo122bo4b2o4b3o7b2o$7bo3bo2b
3o10bo6b2o124bobo$7bo19bo6b2o124b2o$2o4bo4bo7b2o2bo2bo$2o5bo7bobo2bo2b
2o122bo$7bo3bo5b3o127bobo8bo$9bobo135b2o7b3o$155bo$155b2o$26bo$14b2o
11bo$15bo9b3o112bo$15bobo121bo$16b2o121b3o4$34bo$32bobo$33b2o97bo$132b
obo$132b2o3$41bo$42bo$40b3o82bo$124bo$124b3o9$121b2o$121b2o6$120b3o$
97bo21b2ob2o$97b3o19b2ob2o$100bo18b5o$99b2o17b2o3b2o3$121b2o$119b5o$
123bo$71bo47b3o$72bo46bo$65b2o3b3o29bo17b2o$65b2o34b3o16b2o$100b5o8bo$
99b2o3b2o6bobo$66bo33b5o7bobo5b2o3b2o$65bobo32bo3bo3b2o10bobobobo$64bo
3bo10bo21bobo4b2o2b2o7b5o$64b5o8bobo22bo10b2o7b3o$63b2o3b2o8b2o10bo23b
o8bo$64b5o19b3o$65b3o19bo14b2o$66bo20b2o13b2o2$120bo4b2o$118bobo4bo$
65bo53b2o5b3o$53b2o12b2o16bo42bo$53b2o11b3o15b3o$66b2o16b3o$67bo79b2o$
66bobo13b2o3b2o38bo19b2o$52b3o12b2o13b2o3b2o39bo$52b3o71b3o$51bo3bo91b
3o$50bo5bo4b2obob2o10b2o5bo61b3o$51bo3bo22b2o4bobo$52b3o6bo5bo6bo11b2o
$75b2o9b2o$62b2ob2o7b2o9b3o4bo52b2o3b2o$64bo19bobo3b2o54b5o$84b2o5b2o
54b3o$51bobo94bo$51bo2bo6b2o$53b2obo5bo19b2o$59b3o$53bo5bo22bo2bo$53bo
b2o$54bo29b2o$147bo$87b2o56b2o$48b2o3b2o32bobo56b2o$49b5o35bo$49b2ob2o
35b2o$49b2ob2o23bo$50b3o22b2o$76b2o69b2o3b2o$138bobo8b3o$138b2o8bo3bo$
139bo9bobo$150bo$51b2o$51b2o2$149b2o$149b2o3$69b2o6bo$69bobo3bobo$70b
3o3b2o$71b2o$71b2o$69bobo$70bo$84bo$85bo8bo$67b2o3b2o9b3o6b3o$31b2o34b
2o3b2o17bo$31b2o58b2o$69b3o$69b3o$70bo18bo$88bobo$57b2o24bo3bo3bo$56bo
2bo21b2o5b3o$56bo25b2o2b2o3b2o$56bo51bobo$30b3o23bobo13bo35b2o$29bo3bo
22bobo14b2o34bo$28bo5bo22bo14b2o$28bo5bo$31bo6bobo26b3o12b2o$29bo3bo4b
2o14b2o3b2o5bo3bo11b2o$30b3o6bo14bo5bo4bo5bo30bo$31bo33bo5bo28b2o$55bo
3bo8bo10bobo19b2o$56b3o7bo3bo9b2o6b2o$28b3o38bo10bo7b2o$28b3o34bo2bo$
27bo3bo33bo$66bo$26b2o3b2o30b3o27bobo$63bo23bo5b2o$60bo27b2o4bo$58bobo
26b2o$59b2o2$43bo11bo$44b2o8b3o$43b2o8b5o$52b2o3b2o36b2o$29b2o22b5o37b
obo$29b2o22bo3bo39bo$54bobo40b2o$55b3o$50bobo4b2o$51b2o4bo$51bo6b3o$
60bo4$58bo$59b2o$58b2o6$76bo$74b3o$73bo$73b2o3$71bo$70b3o$69bo3bo$68bo
b3obo$69b5o11$70b2o$70b2o!
However, two streams of gliders with no gaps in either stream don't actually carry any information, so there's not much reason to cross them. You could just put p30 guns wherever you want the two streams to come out, or reflect one or both of them -- it's a lot simpler than all that -(A&-B) & -(-A&-B) logic in the stream crosser.

In fact, that's exactly what the stream crosser turns into, after you run it for a while with all-ON inputs. The original guns are suppressed, and different p30 guns lower down produce the output.

Nathonion
Posts: 6
Joined: April 15th, 2017, 12:45 pm

Re: Glider splitter?

Post by Nathonion » April 16th, 2017, 10:10 am

Thanks so much! This really helps!
dvgrn wrote:However, two streams of gliders with no gaps in either stream don't actually carry any information, so there's not much reason to cross them. You could just put p30 guns wherever you want the two streams to come out, or reflect one or both of them -- it's a lot simpler than all that -(A&-B) & -(-A&-B) logic in the stream crosser.

In fact, that's exactly what the stream crosser turns into, after you run it for a while with all-ON inputs. The original guns are suppressed, and different p30 guns lower down produce the output.
I do have a reason to have this. Think about it: if I want the left stream and the right stream to go to the right, but I also want the right stream to go the the left, I need to cross them somehow. (What I'm doing is really complex.) But thanks for showing me this! This is really helpful, and I'm sure to use it. :D

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

Re: Glider splitter?

Post by dvgrn » April 16th, 2017, 10:53 am

Nathonion wrote:Think about it: if I want the left stream and the right stream to go to the right, but I also want the right stream to go the the left, I need to cross them somehow. (What I'm doing is really complex.)
I did think about it, but still don't see how there's any difference between a glider stream with no gaps in it that has crossed another glider stream, and one that's made by a separate glider gun on the other side of the stream.

If you look at the no-gaps version of Dean Hickerson's stream crosser after it runs for a while, you can see that that's all that it's really doing. There isn't a good way to get the original glider streams to cross each other, unless you increase the period to 38 ticks or more.

Nathonion
Posts: 6
Joined: April 15th, 2017, 12:45 pm

Re: Glider splitter?

Post by Nathonion » April 16th, 2017, 9:56 pm

dvgrn wrote:I did think about it, but still don't see how there's any difference between a glider stream with no gaps in it that has crossed another glider stream, and one that's made by a separate glider gun on the other side of the stream.
What I'm doing uses the streams earlier on, so I can't just start them then and there.

User avatar
gameoflifeboy
Posts: 474
Joined: January 15th, 2015, 2:08 am

Re: Glider splitter?

Post by gameoflifeboy » April 16th, 2017, 10:57 pm

Nathonion wrote:What I'm doing uses the streams earlier on, so I can't just start them then and there.
If this usage of the streams doesn't affect them (keeps them period 30), then there is no reason for the streams to cross at all; new p30 streams can be constructed at a different point, where the original streams would have crossed, and will work just as well. However, if the usage changes the stream (such as by adding gaps) then the stream carries information, and there might be some benefit to using the stream early on and then crossing, rather than just having the usage (and gun) take place after the cross. Of course, both streams need to have the potential to be affected for this argument to work, because if either of them remains undisturbed before the cross it can just be created after the cross.

The above is assuming that the pattern will be created for a practical purpose, of course. If it's meant to be artistic, then there might very well be a good reason to want uninterrupted streams to cross.

Nathonion
Posts: 6
Joined: April 15th, 2017, 12:45 pm

Re: Glider splitter?

Post by Nathonion » April 17th, 2017, 12:22 pm

gameoflifeboy wrote: However, if the usage changes the stream (such as by adding gaps) then the stream carries information, and there might be some benefit to using the stream early on and then crossing, rather than just having the usage (and gun) take place after the cross.
YES! That is why! I guess I just figured it would naturally carry information. (I don't know why...) With what I'm doing, the "state" of the streams changes before the cross occurs, which is why I need to cross them.

I don't know why, though, this topic has changed so drastically. In the end, thank you dvgrn for showing me this pattern. It really helps! :D

Post Reply