Routing glider streams

For general discussion about Conway's Game of Life.
Post Reply
theo_t
Posts: 3
Joined: January 29th, 2022, 9:11 am

Routing glider streams

Post by theo_t » January 29th, 2022, 9:20 am

Hi everyone,

I am beginner of game of life, and I am currently working on a project. Do you any structure that could act as a switch in IP datagrams routing : that is a structure that can either rotate or let pass a glider stream provided the "value" of previous gliders received before (an equivalent to headers in an IP datagram) ?

Thank you!

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

Re: Routing glider streams

Post by dvgrn » January 29th, 2022, 9:30 am

theo_t wrote:
January 29th, 2022, 9:20 am
Hi everyone,

I am beginner of game of life, and I am currently working on a project. Do you any structure that could act as a switch in IP datagrams routing : that is a structure that can either rotate or let pass a glider stream provided the "value" of previous gliders received before (an equivalent to headers in an IP datagram) ?

Thank you!
The specific answer depends on some technicalities, like whether the glider stream is periodic or not, and what the period is. You can probably find what you want in Chapter 6 (periodic circuitry) or Chapter 7 (stable circuitry) of the Conway's Life textbook.

For non-periodic mechanisms, there was a recent discussion of permanent switches in this thread. The linked post shows a variant of Paul Callahan's old "bistable switch", which usually turns out to be not _quite_ what is needed -- but you never know, your case might be the exception!

theo_t
Posts: 3
Joined: January 29th, 2022, 9:11 am

Re: Routing glider streams

Post by theo_t » January 29th, 2022, 10:25 am

thank you very much, I'll look into it!

theo_t
Posts: 3
Joined: January 29th, 2022, 9:11 am

Re: Routing glider streams

Post by theo_t » January 30th, 2022, 7:25 pm

I'm a bit lost, there is far too much information everywhere.
My project is about network programming, and I wanted to use the game of life as a funny support to make data routing visible, but I am not sure what I want is feasible : when the server receives a message, it encodes it into spaceships in the GOL, and have them go through structures that cannot be modified manually and I want that the server, knowing where the spaceship stream encoding the data should go, send the stream towards a specific location of the grid.
To do so I was thinking it might be possible to have structures that can either let through the stream or reflect it, for example using other spaceships with different period or shape before the data stream to make the structure either let through or reflect the whole stream coming after. Turns out to be really difficult to if it is even possible. Hence in order to know if I should abandon the idea before spending hours working on something impossible, I ask for your help :roll: I have absolutely no requirements on how the data is encoded (that is the period and the kind of spaceships).

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

Re: Routing glider streams

Post by dvgrn » January 30th, 2022, 9:40 pm

theo_t wrote:
January 30th, 2022, 7:25 pm
I'm a bit lost, there is far too much information everywhere.
Good, well, too much information seems like a better problem to have than not enough. Just need to pick out some specific mechanisms and try them out.
theo_t wrote:
January 30th, 2022, 7:25 pm
My project is about network programming, and I wanted to use the game of life as a funny support to make data routing visible, but I am not sure what I want is feasible : when the server receives a message, it encodes it into spaceships in the GOL, and have them go through structures that cannot be modified manually and I want that the server, knowing where the spaceship stream encoding the data should go, send the stream towards a specific location of the grid.
Sure, something like that can be done. Need a few more details about what form the message will take, that you're wanting to encode.
theo_t wrote:
January 30th, 2022, 7:25 pm
To do so I was thinking it might be possible to have structures that can either let through the stream or reflect it...
It's a bit easier to either let a stream pass or block it off. Then a couple of those mechanisms together can act as a switch -- toggle one off and the other on at the same time, and send a copy of the message to both mechanisms.

Here's a sample stable toggleable switch, using MWSSes (middleweight spaceships) and an eater factory to either block off the MWSS lane or let signals through. Only one of the two signals coming in at the top left gets through, thanks to the "TOGGLE ON" then "TOGGLE OFF" glider signals coming in from the bottom.

Code: Select all

x = 282, y = 232, rule = LifeHistory
85.B$84.CB$83.C2B$82.B3C$81.4B$80.4B$79.4B$78.4B$77.4B$76.4B$75.4B$
74.4B$73.4B$72.4B$71.4B$70.4B$69.4B$68.4B$67.4B$66.4B$65.4B$64.4B$63.
4B$62.4B$61.4B$60.4B$59.4B$58.4B$57.4B$56.4B$55.4B$54.4B$53.4B$52.4B$
51.4B$50.4B$49.4B$48.4B$47.4B$46.4B$45.4B$44.4B$43.4B$42.4B$41.4B$40.
4B$39.4B$38.4B$37.4B$36.4B$35.4B$34.4B$33.4B$32.4B$31.4B$30.4B$29.4B$
28.4B$19.A7.4B$17.3A6.4B$16.A8.4B$15.A.A6.C3B$14.BA.A5.C3B$13.3BA5.B
3C$11.4B6.4B$9.6B5.4B$8.7B4.4B$.B.4B.8B2.4B$2AB.17B$2A18B$.2B.16B$4.
16B$5.15B$6.12B.B2A$6.11B2.BA.A258.B$2.2A3.10B5.A257.2B$3.A3.6B2A2B5.
2A255.3B$2.A4.6B2A3B260.4B$2.2A3.10B260.4B$5.2AB.8B259.4B$2.2AB2AB3.
7B257.4B$3.A.B6.6B256.4B$.A3.2A4.6B148.A107.4B$.4A2.A.8B146.3A106.4B$
4.A.A.A9B144.A3B105.4B$.2A.A.BA2B.7B143.B2AB105.4B$2.A.A2.2B3.6B7.2A
133.4B78.A.2A4.A18.4B$.A2.2A.B4.7B6.A133.4B79.2A.A3.A.A16.4B$.A.A2.A.
A3.7B3.BA.A132.4B87.A.A15.4B$2.A.A2.2A3.8B2.B2A15.B116.4B79.5A3.2A.3A
12.4B$3.A8.11B16.4B113.4B79.A2.A2.A3.B4.A10.4B$12.11B15.6B111.4B80.2A
2.B2A2.2AB3A10.4B$12.11B8.3B3.4B2A2B109.4B86.3B.2A.A11.4B$13.11B6.6B.
3BA2BA2B106.B2C2B86.7B5.A6.4B$13.2B.7B6.2BA9B2A4B104.2BC2B87.5B5.3A5.
4B$12.11B7.ABA15BD.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.
B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.BCBC3B.B.B.B.B.B.B.
B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B
.B.B.6B2.A7.4B$12.10B8.2A14BD3BD100B2C97B2.2A5.4B$10.12B9.20BD182B5D
15B4.4B$8.13B12.13BD4BD181BD4BD13B5.4B$7.17B8.15B5D186BD15B2.4B$7.18B
7.201BD3BD21B$5.2AB.13B2A2B5.17B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.
B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.5B.B.B.B.
5B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.
B.B.B.D.B.B.B.6B2A7B$4.A.AB3.4B.6B2AB5.16B98.4B10.4B81.5BA2BA5B$4.A8.
B4.8B3.17B97.4B12.4B80.6B2A5B$3.2A15.6B2.4B3.11B96.4B14.4B77.2AB.9B$
19.7B.4B3.13B94.4B16.4B75.A.AB4.6B$19.6B.4B3.15B92.4B18.4B74.A8.3B$
13.A6.9B4.16B90.4B20.4B72.2A8.5B$13.3A4.8B5.17B88.4B22.4B84.2A$16.A2.
8B6.16B88.4B24.4B83.A$15.2A2.7B9.13B88.4B26.4B83.3A$15.10B14.2B2A5B
87.4B28.4B84.A$17.3B3D2B14.2B2A3B88.4B30.4B$17.5BD2B13.8B87.4B12.A11.
A7.4B$14.2B.4B3DB14.8B85.4B13.3A7.3A8.4B$12.13B14.8B84.4B17.A5.A12.4B
$12.13B15.7B83.4B17.2A5.2A12.4B$11.14B15.7B82.4B18.9B13.4B$12.14B14.
6B82.4B21.5B16.4B$11.10B2.4B13.6B81.4B21.7B16.4B$9.B.11B2.4B12.5B81.
4B21.9B16.4B$8.2A14B.4B10.6B80.4B22.10B16.4B$8.2A26B4.6B78.4B20.19B
11.4B$9.28B2.7B77.4B18.2B.19B12.4B$9.28B2.6B77.4B18.2A20B2A12.4B$13.
24B.7B76.4B19.2AB.18B2A13.4B$13.2A31B74.4B21.B.20B15.4B$10.B.B2A6B2.
2B2.19B61.2A10.4B25.16B19.4B$9.2A8B11.17B61.A9.4B27.14B21.4B$9.2AB.4B
15.15B3.B55.A10.4B27.4B2.9B22.4B$10.B3.2B17.15B.B2A54.5A5.4B5.2A20.4B
3.8B24.4B$15.2B15.18B2A59.A4.4B5.A20.4B3.11B23.4B$14.B2AB14.12B2A3B.B
57.3AB2.7B.BA.A19.D3B4.12B23.4B$15.2A16.11B2A2B59.A.2B3.7B.B2A19.4B5.
12B24.4B$33.10B2.2B60.4A12B20.2B2D7.11B25.4B$35.B.6B3.2B57.2A2.BA3B2A
7B19.4B6.4B.8B26.4B10.2A$39.4B2.B2AB55.A2.3AB.2B2A7B18.4B7.2A4.7B27.
4B9.A$38.B2A2B3.2A56.2A.A.B3.10B6.A10.4B9.A4.7B28.4B10.A$39.2A66.A8.
8B5.3A7.4B7.3A6.6B22.2A5.4B5.5A$107.2A7.9B7.A5.4B8.A8.7B22.A5.4B4.A$
117.3B2.4B5.2A4.4B18.8B21.A.AB.7B2.B3A$115.5B3.4B4.9B5.2A13.8B21.2AB.
7B3.2B.A$115.2A7.4B5.6B6.A14.9B22.12B4A$116.A8.4B2.8B7.A12.6B.4B21.7B
2A3BAB2.2A$113.3A10.15B4.2A12.7B.4B20.7B2A2B.B3A2.A$113.A13.14B3.A15.
6B2.4B19.10B3.B.A.2A$128.13B3.A8.B4.8B3.4B10.A6.8B8.A$129.10B.B2A.A.A
B3.4B.6B2AB5.4B7.3A5.9B7.2A$131.3B2AB3.BA.A.2AB.13B2A2B5.4B5.A7.4B2.
3B$131.3B2AB6.A3.18B7.4B4.2A5.4B3.5B$133.4B6.A3.17B9.9B4.4B7.2A$133.
3B5.2A5.13B13.6B5.4B8.A$130.AB.2B6.A8.12B12.8B2.4B10.3A$129.A.AB2AB6.
A9.10B10.15B13.A$129.A.ABABAB4.2A9.11B9.14B$126.2A.A.A.A.A2.A14.2B.7B
9.13B$126.A2.A2.2A.4A14.11B6.2AB.10B$128.2A4.A17.11B6.A.AB3.B2A3B$
134.A.A15.11B6.A6.B2A3B$135.2A6.A8.11B5.2A6.4B$142.A.A2.2A3.8B2.B2A
12.3B$141.A.A2.A.A3.7B3.BA.A12.2B.BA$141.A2.2A.B4.7B6.A11.B2ABA.A$
142.A.A2.2B3.6B7.2A9.BABABA.A$141.2A.A.BA2B.7B16.A2.A.A.A.A.2A$144.A.
A.A9B16.4A.2A2.A2.A$141.4A2.A.8B21.A4.2A$141.A3.2A4.6B19.A.A$143.A.B
6.6B18.2A$142.2AB2AB3.7B$145.2AB.8B$142.2A3.10B$142.A4.6B2A3B$143.A3.
6B2A2B5.2A$142.2A3.10B5.A$146.11B2.BA.A$146.12B.B2A$145.15B$144.16B$
141.2B.16B$140.2A18B$140.2AB.17B$141.B.4B.8B2.4B$148.7B4.4B$149.6B5.
4B$151.4B6.4B$153.3BA5.4B$154.BA.A5.4B$155.A.A6.4B$156.A8.B3C$157.3A
6.C3B$159.A7.C3B$168.4B$169.4B$170.4B$171.4B$172.4B$173.4B$174.4B$
175.4B$176.4B$177.4B$178.4B$179.4B$180.4B$181.4B$182.4B$183.4B$184.4B
$185.4B$186.4B$187.4B$188.4B$189.4B$190.4B$191.4B$192.4B$193.4B$194.
4B$195.4B$196.4B$197.4B$198.4B$199.4B$200.4B$201.4B$202.4B$203.4B$
204.4B$205.B3C$206.C2B$207.CB!
In case the extra cell states in the above LifeHistory pattern are confusing, here's the same pattern in two-state RLE:

Code: Select all

x = 282, y = 232, rule = B3/S23
$84bo$83bo$83b3o55$19bo$17b3o$16bo$15bobo6bo$15bobo5bo$16bo6b3o5$2o$2o
4$20b2o$20bobo$2b2o18bo$3bo9b2o7b2o$2bo10b2o$2b2o$5b2o$2b2ob2o$3bo$bo
3b2o158bo$b4o2bo155b3o$4bobobo153bo$b2obo2bo154b2o$2bobo20b2o215bob2o
4bo$bo2b2o19bo216b2obo3bobo$bobo2bobo14bobo223bobo$2bobo2b2o14b2o215b
5o3b2ob3o$3bo235bo2bo2bo8bo$239b2o3b2o2b2ob3o$41b2o205b2obo$40bo2bo
109b2o100bo$31bo9b2o110bo99b3o$30bobo118bobo98bo$30b2o119b2o99b2o5$5b
2o15b2o225b2o$4bobo15b2o224bo2bo$4bo244b2o$3b2o236b2o$240bobo$240bo$
13bo225b2o$13b3o236b2o$16bo235bo$15b2o236b3o$41b2o212bo$41b2o$149bo11b
o$149b3o7b3o$152bo5bo$151b2o5b2o5$8b2o$8b2o2$144b2o20b2o$144b2o20b2o$
13b2o$13b2o92b2o$9b2o97bo$9b2o95bo$50b2o54b5o14b2o$50b2o59bo13bo$15b2o
27b2o62b3o12bobo$15b2o27b2o61bo15b2o$107b4o$105b2o3bo3b2o89b2o$46b2o
56bo2b3o4b2o36b2o51bo$39b2o5b2o56b2obo21bo23bo53bo$39b2o66bo21b3o18b3o
34b2o14b5o$107b2o23bo17bo37bo13bo$131b2o55bobo12b3o$145b2o42b2o15bo$
115b2o28bo57b4o$116bo29bo51b2o3bo3b2o$113b3o29b2o51b2o4b3o2bo$113bo30b
o61bob2o$144bo38bo22bo$141b2obobo15b2o17b3o21b2o$134b2o5bobob2o15b2o
16bo$134b2o7bo36b2o$143bo53b2o$141b2o54bo$130bo10bo56b3o$129bobob2o7bo
57bo$129bobobobo5b2o$126b2obobobobo2bo$126bo2bo2b2ob4o31b2o$128b2o4bo
34bobo5b2o$134bobo32bo7b2o$135b2o6bo24b2o$142bobo2b2o14b2o$141bobo2bob
o14bobo16bo$141bo2b2o19bo12b2obobo$142bobo20b2o10bobobobo$141b2obo2bo
26bo2bobobobob2o$144bobobo25b4ob2o2bo2bo$141b4o2bo30bo4b2o$141bo3b2o
29bobo$143bo32b2o$142b2ob2o$145b2o$142b2o$142bo10b2o$143bo9b2o7b2o$
142b2o18bo$160bobo$160b2o4$140b2o$140b2o5$156bo$155bobo$155bobo$156bo
9b3o$157b3o6bo$159bo7bo38$206b3o$206bo$207bo!
In the LifeHistory version, blue shows the paths that signals take, and red=OFF and white=ON for marked locations so that you can always see where the signals came from and where the eater is created that blocks off the MWSS lane.

AlbertArmStain
Posts: 1228
Joined: January 28th, 2022, 7:18 pm
Location: Planet Z

Re: Routing glider streams

Post by AlbertArmStain » January 31st, 2022, 6:19 pm

Can someone make a more accessible G-to-eater. I need it because I'm making a glider eater latch.

There's a faster and smaller G-to-mwss.

Code: Select all

x = 84, y = 77, rule = LifeHistory
58.A$57.A.A$58.2A15$47.2A$47.2A6$79.2A$79.A$81.A$61.2A14.5A$62.A13.A$
62.A.A12.3A$63.2A15.A$77.4A$72.2A3.A3.2A$72.2A4.3A2.A$80.A.2A$80.A$79.
2A2$45.2A$45.2A24.2A$71.A$36.2A.A32.3A$36.A.2A34.A6$37.A$37.3A$28.A11.
A$28.3A8.2A14.A$31.A22.A.A$18.A11.2A23.A$16.3A$15.A$15.2A$2A50.2A$.A50.
A.A$.A.2A49.A$2.A2.A23.D24.2A$3.2A10.C13.D.D18.2A$13.C.C2.2A9.3D18.A$
14.2C2.2A11.D11.2A6.3A$43.A9.A$44.3A$46.A$27.A3.2A$26.A.A3.A$25.A.A3.
A$21.2A.A.A3.A$21.2A.A2.4A.A$25.A.A3.A.A$21.2A.2A2.A2.A.A$22.A.A2.2A3.
A$10.2A10.A.A$10.2A11.A!

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

Re: Routing glider streams

Post by dvgrn » January 31st, 2022, 7:47 pm

AlbertArmStain wrote:
January 31st, 2022, 6:19 pm
Can someone make a more accessible G-to-eater. I need it because I'm making a glider eater latch.
What does "more accessible" mean? The one I posted has as many *WSS lanes of clearance as you want, just by adjusting the Snarks.

There isn't any known direct Herschel-to-eater or glider-to-eater conduit, unfortunately, so it's not terribly likely that anything much smaller than the above eater factory will show up any time soon.

GUYTU6J
Posts: 2200
Joined: August 5th, 2016, 10:27 am
Location: 拆哪!I repeat, CHINA! (a.k.a. 种花家)
Contact:

Re: Routing glider streams

Post by GUYTU6J » February 1st, 2022, 10:07 am

AlbertArmStain wrote:
January 31st, 2022, 6:19 pm
Can someone make a more accessible G-to-eater. I need it because I'm making a glider eater latch.
Do you mean a device like this?

AlbertArmStain
Posts: 1228
Joined: January 28th, 2022, 7:18 pm
Location: Planet Z

Re: Routing glider streams

Post by AlbertArmStain » February 1st, 2022, 4:04 pm

GUYTU6J wrote:
February 1st, 2022, 10:07 am
AlbertArmStain wrote:
January 31st, 2022, 6:19 pm
Can someone make a more accessible G-to-eater. I need it because I'm making a glider eater latch.
Do you mean a device like this?
Yes, like that but more minimal. The smaller the better.

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

Re: Routing glider streams

Post by dvgrn » February 1st, 2022, 4:54 pm

AlbertArmStain wrote:
February 1st, 2022, 4:04 pm
Yes, like that but more minimal. The smaller the better.
I hope someone posts one -- I'd like a smaller solution, too. Hippo.69's solution can no doubt be reduced somehow, but I don't think there are any known mechanisms that are a whole lot smaller than that.

AlbertArmStain
Posts: 1228
Joined: January 28th, 2022, 7:18 pm
Location: Planet Z

Re: Routing glider streams

Post by AlbertArmStain » February 1st, 2022, 5:03 pm

dvgrn wrote:
February 1st, 2022, 4:54 pm
AlbertArmStain wrote:
February 1st, 2022, 4:04 pm
Yes, like that but more minimal. The smaller the better.
I hope someone posts one -- I'd like a smaller solution, too. Hippo.69's solution can no doubt be reduced somehow, but I don't think there are any known mechanisms that are a whole lot smaller than that.
You posted something similar here.
I don't know if it's smaller.

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

Re: Routing glider streams

Post by dvgrn » February 1st, 2022, 5:27 pm

AlbertArmStain wrote:
February 1st, 2022, 5:03 pm
You posted something similar here.
I don't know if it's smaller.
That's only superficially similar, actually. It creates an eater.

However, that eater is never used for the purpose of blocking a glider lane -- it just waits for a glider to come in on the B channel, and then the "A and B" output gets sent out... or it gets reset by the RESET glider (shown shooting down the eater in the example pattern).

The example I posted above is really not so bad compared to Hippo.69's mechanism. The simple eater toggle works fine as long as you don't mind converting your signals into MWSSes. A version could be made for gliders -- just replace the last Snark on both sides with a G->H->G edge shooter -- but that would increase the amount of time where there's potential interference between the blocking mechanism and stream being blocked.

Hippo.69's device, on the other hand, is really impressive because it works all the way down to period-30 glider streams, and it's also a toggle.

If you need something smaller, and you don't mind converting your signals to Herschels... did you look at permanent switch?

AlbertArmStain
Posts: 1228
Joined: January 28th, 2022, 7:18 pm
Location: Planet Z

Re: Routing glider streams

Post by AlbertArmStain » February 1st, 2022, 5:44 pm

dvgrn wrote:
February 1st, 2022, 5:27 pm
AlbertArmStain wrote:
February 1st, 2022, 5:03 pm
You posted something similar here.
I don't know if it's smaller.
That's only superficially similar, actually. It creates an eater.

However, that eater is never used for the purpose of blocking a glider lane -- it just waits for a glider to come in on the B channel, and then the "A and B" output gets sent out... or it gets reset by the RESET glider (shown shooting down the eater in the example pattern).

The example I posted above is really not so bad compared to Hippo.69's mechanism. The simple eater toggle works fine as long as you don't mind converting your signals into MWSSes. A version could be made for gliders -- just replace the last Snark on both sides with a G->H->G edge shooter -- but that would increase the amount of time where there's potential interference between the blocking mechanism and stream being blocked.

Hippo.69's device, on the other hand, is really impressive because it works all the way down to period-30 glider streams, and it's also a toggle.

If you need something smaller, and you don't mind converting your signals to Herschels... did you look at permanent switch?
When I said latch, I meant a jk-flipflop. Kind of like the democrapic memory cell, but with the ability to filter out incoming gliders.

Post Reply