Re: 31c/240 caterpillar working notes
Posted: January 14th, 2014, 10:11 am
the "edgier" the better. And the active step should be as fast as possible...
Forums for Conway's Game of Life
https://conwaylife.com/forums/
Sure. Let's see, 58:102:58 works just as well as 5858 (on either side of the rephaser).codeholic wrote:EDIT: Could you please take a look, if there are other tracks, that are all lined up?
You're totally right.dvgrn wrote:57:158+118N:X and 57:102+118N:X also work. But it seems as if odd intervals would be a bad idea for Heisenburp boat-bits, so I won't investigate those further unless I hear otherwise.
I thought that it is perhaps feasible to create slow-salvo target on demand by heisenburping gliders in the spaceship stream, so probably it is not even needed to create any targets by the front pattern.dvgrn wrote:I don't see yet how it's possible with six trails to keep the rephaser function AND the rake function AND have a way to turn on a slow-salvo target generator, but there are still some other possible adjustments that could be made.
Since the original crawler travels on a single trail of gliders and is a double-rake ... you just *might* be able to get away with laying down just this one trail "from scratch" and build the other 5 (or 11 or 1,000,000) by using theese.dvgrn wrote: Now I'm wondering if it might be possible to cut the initial front-end construction down to the four outermost trails in a set of twelve. It would be a matter of getting the timing and spacing right, so that the first eight output gliders from each Herschel pair collide with each other to produce the inner eight block trails. No idea if this is possible, but it seems vaguely plausible at least, given all the degrees of freedom available.
If you kicked them back, you would have to turn them *twice* I fear. But you could collide them with additional gliders from the supporting structure.dvgrn wrote: That would leave eight extra backward gliders escaping on the outside, but those could easily be caught with forerakes running on the twelve tracks, either to make absorbing junk for other gliders, or maybe even to be kicked back to build the four initial trails.
If you try to avoid LWSSes, you would have to reflect the gliders on something like your pushed-along-block example.dvgrn wrote: Another part of Calcyman's suggestion was to avoid using LWSSes altogether. But I think that that still requires an unknown "glider helix" that pushes a block up 31 cells while releasing a 90-degree forward glider, all in 240 ticks or less. I'm pretty sure such things can be found, but I'm not so sure that I'd enjoy figuring out how to build such a salvo, either with a slow-salvo seed or with a series of kickbacks or whatever.
Sounds promising. But are there any non-vanish Heisenburp reactions that leave all their ash a safe distance from the spaceship lane?codeholic wrote:I thought that it is perhaps feasible to create slow-salvo target on demand by heisenburping gliders in the spaceship stream, so probably it is not even needed to create any targets by the front pattern.
Code: Select all
x = 19, y = 110, rule = B3/S23
5bo$3bobo$4b2o2$2bo$obo$b2o10$15b3o$15bo2bo$15bo$15bo$16bobo85$15b3o$
15bo2bo$15bo$15bo$16bobo!
Finding helices is not such a big thing. You could use my database for glider + up to thre *WSS -> glider [+ something] and combine those reactions. There are clean moves and reflections, and there are those leaving behind extra blocks or other simple still lifes. If you were **really* lucky you might even find a smaller an faster helix which just leaves some unwanted junk and thus was discarded by the original crew. You could then make good use of that "junk".dvgrn wrote:While I'm thinking about it: wouldn't a variant of this slow-salvo method work very nicely for the original Caterpillar's little brother?
The original Caterpillar is a strange beast, moving faster than a glider but slower than a *WSS. But I think the helix construction could work basically the same way as in the 31c/240: starting from the front of the ship, backward rakes would slow-construct the innermost *WSS first, then push some leftover junk out to the next lane and construct the next stream, and so on.
Moreover: you could use sloooooow salvos I think. As long as you keep the "construction sites" out of the way from one another you should be able to delay them as you see fit. That won't help on cutting the length of the ship, alasdvgrn wrote: [...]
It wouldn't take many more gliders to build each *WSS in a 6x helix than the Caterpillar uses, though no doubt pushing the junk to the next insertion point would at least double the cost. But the construction gliders would all be from backrakes, which could be packed fairly tightly -- no need for those big oblique triangles to give backrake and forerake streams enough space to meet. Wouldn't that cut the Caterpillar length down by something like an order of magnitude?
*If* you could really use abitrary slow salvos you might be able to just use backrakes, rephasers and two filter streams (one per side) . Since the 2, 11, 17 and 45 are all relative primes to eachother (the original pi-crawler rephases the stream by 11) it should be possible to rephase the the back rake without needing a catch-and-throw logic. It might be possible to get away with just *one* 32-track. The funny part is: you then would probably need a few *more* "upships" because you have to create the filter streams somehow. (The carterpillar creates just one track with gliders from the helix-and-fan-out-part and then uses that for the rest of the ship).dvgrn wrote: I don't understand enough detail about thowers and catchers and filter streams to guess whether the Caterpillar's little brother could get away with using fewer blinker trails.
It should. More space and more time for construction. On the downside: the carterpillar helix salvo seems to be very packed ...dvgrn wrote: At least, anything that works at 31c/240 (like the above insertion) should also work at 6*(17c/45) = 102c/270, right?
Why not? If I am not missing something, at least some of codeholic's LWSS seeds should work at any slow speed if you construct from the outside top inward and down.dvgrn wrote: Along the sides of the ship, if we're only working with slow salvos from backrakes, I don't see yet how to get the loaf or boat or traffic light out of the way of the next *WSS quickly enough...?
There are fan out reactions in the original caterpillar which use intermediate blocks. Those can be timed as needed. So you should be able to build any slow one-glider salvo you need. (Provided the fan out salvos themselves are buildable).dvgrn wrote: Up at the front, though, something along those lines certainly seems possible -- once there's a glider stream to work with, I'm guessing that fanout devices could produce a couple of gliders that could do a Heisenburp-then-move-the-ash-away trick with no trouble.
Unfortunately LWSS can't, but HWSS can do it. (EDIT: The best MWSS can do is a block and glider, and the block is on the other side, so that's not exactly what we need.)dvgrn wrote:Sounds promising. But are there any non-vanish Heisenburp reactions that leave all their ash a safe distance from the spaceship lane?
Code: Select all
x = 14, y = 110, rule = B3/S23
o$b2o$2o12$11b3o$10bo2bo$13bo$9bo3bo$9bo3bo$13bo$10bobo83$11b3o$10bo2b
o$13bo$9bo3bo$9bo3bo$13bo$10bobo!
We were talking about creating targets for slow salvo construction on demand by colliding a glider sent from the spine into the spaceship stream, so that it doesn't harm it, but leaves some junk lying around, but not on the lane, because there is no chance to send another glider to move it from the spaceship lane before the next spaceship hits it, if we use one-rake approach.oblique wrote:Why not? If I am not missing something, at least some of codeholic's LWSS seeds should work at any slow speed if you construct from the outside top inward and down.
Ah, now it makes sense -- seems like that should work just fine to generate slow-salvo targets.codeholic wrote:Unfortunately LWSS can't, but HWSS can do it.dvgrn wrote:Sounds promising. But are there any non-vanish Heisenburp reactions that leave all their ash a safe distance from the spaceship lane?
...
Maybe it makes sense then to select recipes with at least one HWSS in them...
Code: Select all
x = 69, y = 214, rule = B3/S23
obo$b2o$bo89$60bobo$61b2o$61bo27$65b3o$65bo2bo$65bo$65bo$66bobo85$65b
3o$65bo2bo$65bo$65bo$66bobo!
Code: Select all
x = 70, y = 201, rule = B3/S23
obo$b2o$bo89$60bobo$61b2o$61bo12$65b3o$65bo2bo$65bo$65bo3bo$65bo3bo$
65bo$66bobo83$65b3o$65bo2bo$65bo$65bo3bo$65bo3bo$65bo$66bobo!
Code: Select all
x = 73, y = 102, rule = B3/S23
60b3o$62bo$61bo4$70b3o$69bo2bo$72bo$68bo3bo$68bo3bo$72bo$69bobo17$3o$
2bo$bo64$70b3o$69bo2bo$72bo$68bo3bo$68bo3bo$72bo$69bobo!
Did you mean to use up one spaceship stream just for generating targets? In my opinion, it's a waste of spaceships. One can generate targets for free, it just requires more searching.dvgrn wrote:In fact, since you really only need to produce the junk once
Yes, that was what I meant. I guess I just like to have plenty of backup plans.codeholic wrote:Did you mean to use up one spaceship stream just for generating targets? In my opinion, it's a waste of spaceships. One can generate targets for free, it just requires more searching.dvgrn wrote:In fact, since you really only need to produce the junk once
Code: Select all
import golly as g
g.setrule("Life")
g.setalgo("HashLife")
deltalist=[i for i in range(0,241+65)]
rephaser=[g.parse("""23$327b3o$328bo$326b3o6$9b3o42b3o313b3o$10b2o41bo2bo312bo2bo$8bo3b2o39b2o
bo312b2obo$2b2o4bobob2o50b2o252b2o60b2o$2b2o3b2o3b2o50b2o252b2o8b2o50b
2o$8b2o318b2o3$64bo315bo$62bobo313bobo$63b2o252bo61b2o$316bobo$315bo3b
o$13b2o300bo3bo$2o64b2o251bo62b2o$2o64b2o248b3o63b2o$366b2o$365bobo$
367bo3$21b2o$4b2o14b2o40b2o256b2o56b2o$4b2o16bo39b2o256b2o56b2o8$164b
3o$161b2o2b4o50bobo$161b5obobo48bo2bob2o$160bo6b2o49bo2bob2o$12b2o40b
2o104b3o2b6o51b2obo102b2o40b2o$12b2o40b2o104bob2obobob2o45bo5b4o102b2o
40b2o$167bo2bo43b2o$162b2o2b4o44bo6b2o$214b3obob2o3bo$178b2o40b5o$178b
o2bo39bo$153b2o23b3o$149bob2o2b2o15b2o$148bo2bo5b2o$148bo4b2o69b2o80b
2o$149b3obo4bo4bo60b2o79bobo$151bob2o4bo147bo$111bo41b2o2bo2bo2bo$112b
2o43bo$81b2o28b2o44bobo$80b2o76bo$82bo57bo$4b2o56b2o75bo22b2o56b2o44bo
53b2o56b2o$4b2o56b2o75b3o20b2o56b2o44bobo51b2o56b2o$266b2o2$247bo$248b
2o$247b2o7$170b2o40b2o$170b2o40b2o10$191bo$192b2o$191b2o3$186bo$186bob
o$162b2o22b2o32b2o$162b2o56b2o12$170b2o40b2o$170b2o40b2o!""",-4,-0)]
trail=g.parse("2o56b2o256b2o56b2o$2o56b2o256b2o56b2o30$158b2o56b2o$158b2o56b2o!")
trails=[]
for i in range(120):
trails+=g.transform(trail,0,-31*i)
block=[0,0,0,1,1,0,1,1]
g.new("Test")
g.putcells(trails)
g.putcells(rephaser[0])
for i in range(1,241):
rephaser+=[g.evolve(rephaser[i-1],1)]
if i==101: rephaser[i] = g.join(rephaser[i],trail)
voffset, currphase=0,0
g.putcells(rephaser[currphase])
for delta in deltalist:
voffset+=84 # each rephaser leaves blocks (0,84+31N) from its initial trails
newphase=currphase-delta+65 # minimum distance -- delta=0 -- is 53 vertical cells plus 65-tick offset
g.putcells(trail, 0, voffset)
while newphase<0:
newphase, voffset = newphase+240, voffset+31
g.putcells(trail, 0, voffset)
while newphase>239:
newphase, voffset = newphase-240, voffset-31
# (0,0) block1 at T>141, (58,0) block2 at T>122, (158,31) block3 at T>229
# (216,31) block4 at T>210, (316,0) block5 at T>103, (374,0) block6 at T>122
g.putcells(block,316,voffset+31,1,0,0,1,"not") # trail 5
g.putcells(block,58,voffset+31,1,0,0,1,"not") # trail 2
g.putcells(block,374,voffset+31,1,0,0,1,"not") # trail 6
g.putcells(block,0,voffset+31,1,0,0,1,"not") # trail 1
g.putcells(block,216,voffset+62,1,0,0,1,"not") # trail 4
g.putcells(block,158,voffset+62,1,0,0,1,"not") # trail 3
if newphase>103: g.putcells(block,316,voffset,1,0,0,1,"not") # trail 5
if newphase>122: g.putcells(block,58,voffset,1,0,0,1,"not") # trail 2
if newphase>122: g.putcells(block,374,voffset,1,0,0,1,"not") # trail 6
if newphase>141: g.putcells(block,0,voffset,1,0,0,1,"not") # trail 1
if newphase>210: g.putcells(block,216,voffset+31,1,0,0,1,"not") # trail 4
if newphase>229: g.putcells(block,158,voffset+31,1,0,0,1,"not") # trail 3
g.putcells(rephaser[newphase],0,voffset)
currphase=newphase
g.fit()
g.update()
I've got a sneaking suspicion, that it might not work, because it seems to me, that it couples the target creation reaction with slow salvo contruction by period 240. Or am I now just paranoid?dvgrn wrote:But I definitely agree that other methods are looking much more efficient. The HWSS Heisenburp trick looks like it will work very nicely to start off the first junk column, and all it requires is that the innermost spaceship stream on both sides should be a HWSS.
I think I know what you mean, it reminds me of a Shepard tone, or "hypnotic" spirals.dvgrn wrote:Having a long series of different rephaser offsets in a single column causes a very strange visual effect at some zoom levels -- kind of a bidirectional wave interference pattern. I've seen something like it before, but I don't remember where.
Code: Select all
x = 803, y = 102, rule = B3/S23
2o$2o795b5o$797bo4bo$797bo$798bo3bo$800bo2$54b2o56b2o98b2o56b2o98b2o
56b2o$54b2o56b2o98b2o56b2o98b2o56b2o23$2o$2o675b5o$677bo4bo$677bo$678b
o3bo$680bo2$54b2o56b2o98b2o56b2o98b2o56b2o$54b2o56b2o98b2o56b2o98b2o
56b2o23$2o$2o555b5o$557bo4bo$557bo$558bo3bo$560bo2$54b2o56b2o98b2o56b
2o98b2o56b2o$54b2o56b2o98b2o56b2o98b2o56b2o23$2o$2o435b5o$437bo4bo$
437bo$438bo3bo$440bo2$54b2o56b2o98b2o56b2o98b2o56b2o$54b2o56b2o98b2o
56b2o98b2o56b2o!
I don't think that will be a problem, because the timing of the final trigger glider is independent of the timing of the first Heisenburp glider. If that first glider is arriving N ticks too slow or too fast, adjust the timing of the rake that's producing that glider by N ticks. You'll still end up with the same block trail after the adjusted rake -- nothing else changes -- but now the glider arrives N ticks slower or faster.codeholic wrote:I've got a sneaking suspicion, that it might not work, because it seems to me, that it couples the target creation reaction with slow salvo contruction by period 240. Or am I now just paranoid?
Yes, there's only one glider-shooting reaction -- the Herschel's second natural glider. But glider color is definitely not a problem, because 31 and 9 are relatively prime... In any string of 31 rephasers, you have the option of converting each wing to a rake. First you can optionally shoot a glider (in your choice of phase, by adjusting the entire rephaser by 1 tick) on lane 0, then on lane 9, and so on. The full series is:codeholic wrote:Another question that came into my mind is whether it's possible to shoot gliders of different colors from the same track and with the same glider-shooting reaction (is there just one?), no matter how many rephasers you use.
Well, there is a chance! If I find a fanout device, that sends two gliders in the same direction close enough to each other, preferably 2 forward gliders and one backward, like this:codeholic wrote:We were talking about creating targets for slow salvo construction on demand by colliding a glider sent from the spine into the spaceship stream, so that it doesn't harm it, but leaves some junk lying around, but not on the lane, because there is no chance to send another glider to move it from the spaceship lane before the next spaceship hits it, if we use one-rake approach.
Code: Select all
out in
\\ /
\\ /
\\ /
/|
/ |
/ |
/ |
out in
Code: Select all
x = 16, y = 129, rule = B3/S23
13bo$13bobo$13b2o13$2b3o$bo2bo$4bo$o3bo$o3bo$4bo$bobo14$7bo$6b3o$6bob
2o$7b3o$7b2o65$2b3o$bo2bo$4bo$o3bo$o3bo$4bo$bobo14$7bo$6b3o$6bob2o$7b
3o$7b2o!
Yes, but what's wrong with starting with a HWSS stream, anyway? I'm sure some use can be found for it at the front of the ship -- and if it can't, I'm perfectly happy to use one of the backward-rake reactions I posted to blow it up.codeholic wrote:Well, there is a chance! If I find a fanout device, that sends two gliders in the same direction close enough to each other, preferably 2 forward gliders and one backward...
Code: Select all
x = 104, y = 65, rule = B3/S23
64bo$65b2o$64b2o10$obo$b2o$bo5$7bobo$8b2o$8bo$65bo$18bo47bo6bobo$16bob
o45b3o7b2o$17b2o55bo2$67bobo$68b2o15bo$68bo3bobo11bo$16bo56b2o9b3o$17b
2o54bo$16b2o3$92bo$17bo75bo$18bo72b3o$16b3o9$102bo$103bo$101b3o3$101b
2o$101b2o3$47bo$47bo$47bo2$43b3o3b3o2$47bo$47bo$47bo!
Code: Select all
#C two ways of getting to an HWSS stream
x = 208, y = 129, rule = B3/S23
2bo132bo$obo110bo19bobo$b2o108bobo20b2o$112b2o10$23bo$21bobo$22b2o56$
203bo$202bobo$202bobo$203bo3$203b3o2$201bo5bo$93b3o105bo5bo$201bo5bo$
91bo5bo$91bo5bo105b3o$91bo5bo$88bo$87bobo3b3o$87bobo$88bo3$62bo132bo$
60bobo110bo19bobo$61b2o108bobo20b2o$172b2o$97bo109bo$97bo109bo$97bo
109bo5$203bo$202bobo$83bo118bobo$81bobo119bo$82b2o2$203b3o2$201bo5bo$
93b3o105bo5bo$201bo5bo$91bo5bo$91bo5bo105b3o$91bo5bo$88bo$87bobo3b3o$
87bobo$88bo7$97bo109bo$97bo109bo$97bo109bo!
Code: Select all
x = 68, y = 99, rule = LifeHistory
2.A$A.A$.2A49$62.C$62.3C$65.C$64.2C11$67.C$67.C$67.C15$62.C$62.3C$65.
C$64.2C6$62.A$60.A.A$61.2A3$67.C$67.C$67.C!
Sorry, I've mixed up topics a little bit. I was thinking about creating trails with Heisenburps by an LWSS. Boats can be created only by backward gliders, but I would like to use forward gliders there, because it would give one more degree of freedom, if one used backward gliders instead of still lifes as a trigger for the next fanout reaction.dvgrn wrote:Yes, but what's wrong with starting with a HWSS stream, anyway?
Code: Select all
x = 159, y = 93, rule = B3/S23
o2bo$4bo$o3bo$b4o51$155b3o18$156b3o$155bo2bo$158bo$158bo$155bobo12$
156b3o$155bo2bo$158bo$158bo$155bobo!
Code: Select all
x = 62, y = 28, rule = B3/S23
59bo$57bo3bo$56bo$56bo4bo$56b5o21$3o$bo$b3o!
What! A spark from the Herschel a few ticks before the block-trail collision... just happens to make an MWSS drop a block right where it's needed. What were the odds on that?codeholic wrote:An amazing find that can make me completely rethink the whole design of the front pattern...
I would almost bet money, that there was a glider + 3 ss collision in my survey (somewhere) that yeilded 2 parallel gliders ... has been a while, thocodeholic wrote:Well, there is a chance! If I find a fanout device, that sends two gliders in the same direction close enough to each other, preferably 2 forward gliders and one backward, like this:codeholic wrote:We were talking about creating targets for slow salvo construction on demand by colliding a glider sent from the spine into the spaceship stream, so that it doesn't harm it, but leaves some junk lying around, but not on the lane, because there is no chance to send another glider to move it from the spaceship lane before the next spaceship hits it, if we use one-rake approach.EDIT: Almost what I want:Code: Select all
out in \\ / \\ / \\ / /| / | / | / | out in
Code: Select all
x = 16, y = 129, rule = B3/S23 13bo$13bobo$13b2o13$2b3o$bo2bo$4bo$o3bo$o3bo$4bo$bobo14$7bo$6b3o$6bob 2o$7b3o$7b2o65$2b3o$bo2bo$4bo$o3bo$o3bo$4bo$bobo14$7bo$6b3o$6bob2o$7b 3o$7b2o!