## Where to start?

### Where to start?

I really want to make some computers in Life, but where should I start in learning? I find it so hard to get glider timing right, etc... What kind of stuff am I supposed to know, besides making the simple logic gates and knowing reflectors and stuff? What should I make first?

### Re: Where to start?

Depends on what you find the most interesting, I guess. Nowadays logic circuitry could be built with good old p30 elements (David Bell's unit cell), p46 (Brice Due's metapixels), or pure stable Herschel-based components (Adam Goucher's pi calculator and many other recent efforts). Do any of those appeal to you particularly?twinb7 wrote:I really want to make some computers in Life, but where should I start in learning? I find it so hard to get glider timing right, etc... What kind of stuff am I supposed to know, besides making the simple logic gates and knowing reflectors and stuff? What should I make first?

If you'd like a more specific suggestion, how about period 8? That's a corner of Life-logic-circuitry-space that I've always thought should get more attention; hardly any p8 circuitry has ever been built, and none since the Snark came along. See, the Snark is a color-preserving glider reflector, and the standard p8 reflector is a color-changing glider reflector -- it's a lot easier to have both types of reflector available when you're trying to get a glider to a particular spacetime location.

Period 8 is maximally Hashlife-compatible. There are lots of p2 and p4 and p8 oscillators that can be used in phase adjusters and suchlike. The p8 glider-to-Herschel converter is a reasonable size, which means you can split signals very easily... easier than with a full-sized Silver reflector, anyway:

{fixed mis-placement of input glider}

Code: Select all

```
x = 54, y = 36, rule = LifeHistory
29.2A$4.A9.A15.A$4.3A5.3A15.A.A$.A5.A3.A19.2A$2.A3.2A3.2A$3A2$52.2A$
52.2A4$20.2A$20.2A$8.2A$7.A2.A$2.2A4.2A$.A.A$.A$2A$10.2A$10.A29.2A$
11.3A27.A$13.A11.2A11.3A$21.2A2.2A11.A$20.A.A$17.2A2.A2$16.A3.A2.2A$
15.A4.A2.A$14.A.A.A5.3A$13.A.A.A8.A$11.A4.A$11.A3.A2$13.2A!
```

Code: Select all

```
#C p8N regulator: minimum driving period is 712 generations.
#C Minimum safe spacing between input gliders is 1414 generations.
#C The regulator is to the left, a p712 drive gun is below it,
#C and a relatively prime p1419 test-signal gun is on the right.
#C Dave Greene, 2 May 2003
x = 373, y = 254, rule = B3/S23
157booboo37bo$157booboo35b3o$196bo$157b5o24boo8boo$157bo4bo24bo$160bo
bbo23bobo$132bo27boobo24boo$132b3o10boo10bo5boboobo5bo27boo$135bo9boo
9bobo4boboboo5b3o25boo$124boo8bo21bobbobboobo11bo$125bo8bo22boo6bo10b
oo$125bobo9b3o25b3o$126boo6bo5bo27bo33boo$133bo3bo6boo21boo33boo$122b
oo9bo5boobbobbo$122bo10boobobo4bobboo$124boboo7boo5bobboo$123booboo14b
4o$178boo$123booboo50boo$124bobo30boo45boo$124bobo30boo45bo$125bo76bob
o$202boo$135boo$135boo$$154boo$154bo$155bo$154boo3$149boo$149bobo32boo
bo$151bo32boboo$151boo$$200boobo$200boboo$$193boo$193boo$141boo$141boo
$$132boobo$132boboo88boo$224boo$183boo$74bo77boo30bo$152bo31bobo35boo$
72bob3o73bobo32boo35boo$74boobo8bo63boo57boo$74boboo6b3o123bo$75b3obo
3bo126bobo$83boo51boo73boo46bo$77bo57bobo65boobboo50b3o$81bo15bo37bo
67bo3boo53bo$80bobo13bobo35boo65bobo57boo$81boobboo8bo3bo101boo122bo$
85boo7bo3bo186bo37b3o$93bo3bo185b3o13bo22bo$67boo5boo16bo3bo185bo16b3o
20boo$68bo5boo17bobo186boo18bo$68bobo23bo125boo79boo39boo$69boo19bo48b
oo79boo29boo89boo5boo$73boo14bobo48bo110boo96boo$48bo23bobo14boo46b3o$
47b3o23bo19boo42bo$46b3obo17b3o22bobo69boo73bo87boo17boo$47bo3bo8bo10b
o16boo5bo69bo73bobo87bo17boo$48bo3bo5b3o6bo3bo16boo5boo66bobo17boo15b
oo37boo50boo36bobo21boo$49bob3o3bo8bobobbo91boo17bobo15boo46boo41boo
37boo21boo$50b3o4boo5bobbobo112bo65bo19boo$51bo12bo3bo112boo66bo17bobo
$55bo8bo73bo109boo17bo$54bobo8b3o70b3o72boo51boo10boo$55boobboo80bo48b
oo21boo64bo$59boo43bo35boo49bo84b3o9boo32boo$102b3o57boo27bobo82bo11bo
20boo11boo$101bo60bobo27boo95bo20bo$101boo61bo123boo17b3o$86boo76boboo
139bo$81boo4bo51boo18booboboboo$81bo5bobo48bobo18booboo162boo$79bobo6b
oo10bo37bo188bo28boo$79boo18bobo35boo20booboo160b3o29bo$75bo23bobo58bo
bo161bo29bobo$74bobo23bo4boo53bobo191boo$74bobo11boo15bobo49booboo$75b
o8boobobo17bo9bo39bobo65bo$84boobo19boo7b3o40bo26boo35b3o$87bo27bob3o
39boo25boo34bo$87boboo23bo3bo103boo$85boboboo22bo3bo$85boo25b3obo143b
oo$25boo5boo79b3o75boo67boo$26bo5boo80bo76boo$26bobo35boo31boo11bo76b
oo$27boo36bo31boo10bobo75boo$31boo32bobo41boo225boo15boo$30bobo33boo
45boo116boo102bobo15boo$31bo81bobo77boo36boo102bo$84boo22boo5bo77boo
13boo124boo$27boo50boobobbo22boo5boo90bobo$25boboo50booboo123bo$24bo
181boo10boo$27bo51booboo135bo$23boobo53bobobboo129b3o9boo$23boo55bobo
3bo58boo69bo11bo3bo$81bo4bobo56boo7boo73b4o$87boo65bo209boo$152bobo33b
o9bo15boo11b4o133bo$77boo73boo4boo28b3o5b3o15bo12bo3bo130bobo$77bobo4b
o51boo20bo17boo13bo3bo16bobo15boo130boo$79bo3bobo51bo18bobo17bo13boo3b
oo15boo139boo$79boobbobo51bobo16boo19bo175boo$32b3o47booboo51boo36boo$
32b3o262bo$32b3o10bo36booboo189boo19b3o$35b3o5b3o34bobboboo189boo7bo
14bo22bo$35b3o4bo37boo201b3o13boo20b3o13boo$35b3o4boo177boo59bo37bo17b
o$98boo73boo46boo59boo36boo15bo31bo$40bo57bobo72boo69boo91boo28b3o$39b
obo25boo31bo143bobo43boo74bo$40boobboo21boo31boo144bo28b3o12bo75boo$
44boo188boo10boo27bobbo9bobo$144boo88bo40bobbo9boo$79boo59boobboo78boo
9b3o35boobobbo$75boobobo58bobo62boo19bo11bo34bobobobbo50boo$75boobo60b
o23boo19bo6boo11bobo17bo50boobo51boo$78bo59boo23bo18b3o6boo13bo17boo
27boo23bo$57boo19boboo82b3o14bo24boo44bobo18bo3bo91boo$58bo17boboboo8b
o75bo14boo69bo22bo93bobo$58bobo15boo11bobo159boo118bo$59boo4bo23bobo
279boo$64bobo23bo208boo32boo$51boo11bobo18boo212boo11boo20bo$47boobboo
12bo10boo6bobo225bo20bo15boo8boo3boo$46bobo27bobo5bo191boo35b3o17boo
14bo9boo3boo$43boobbo30bo4boo187boobboo37bo34b3o$78b3o190bobo78bo$42bo
3bobboo12boo16bo177boo10bo23boo$41bo4bobbo14bo15boo178bo9boo23bo$40bob
obo5b3o8b3o193b3o36b3o$39bobobo8bo8bo195bo40bo$37bo4bo$37bo3bo$$39boo
14bo$4boo5boo42b3o39bo$5bo5boo45bo36b3o$5bobo49boo35bo$6boo86boo$10boo
10bo7bo46boo$9bobo10boo4b3o47bo$6boobbo11boo3bo50bobo$23bo3boo50boo$5b
o3bo$4bo4bo$3bobobo$bbobobo92boo$o4bo93bobo13bo$o3bo96bo13boo$101boo
11boobo$bboo32boo75bobb3o$36boo74bobobo$24boo85bobobo$23bobbo82b3obbo$
18boo4boo65boo17boboo$17bobo71boobboo14boo$17bo77bobo10bo3bo$16boo54b
oo23bo9bobo$26boo38boo5bo23boo8boo$26bo39bobob3o38boo$27b3o29boo7bobo
40bobo$29bo11boo16boo7boo36boo5bo$37boobboo63boo5boo$36bobo$37bo$33bo$
32b3o4boo$31bob3o3bo$30bo3bo5b3o$29bo3bo8bo$28b3obo$29b3o$30bo$$112boo
$92boo18boo$90bobbo$$90bobbo20boo$91bobbo19boo$92bobo32boo$93bo33bo$
125bobo$24bo27bo9bo29boo31boo$22b3o27b3o5b3o29boo35boo$21bo18boo13bo3b
o69boo$21boo17bo13boo3boo$41bo$40boo$$6boboo$6boobo78bo$87boo27boo$86b
obbo26boo$37boo48boo34boo$37boo83bobbo$8booboo110boo$8bo3bo84bo$9b3o
84bobo$11bobo83boo$12boo74boo$68boo19bo$42bobbobbo6boo11bobo17bo$42b7o
6boo13bo17boo$49boo19boo46boo3boo$44boobbobbo65bobbobboo$44boo3boo46b
oo19boo$79boo17bo13boo6b7o$80bo17bobo11boo6bobbobbo$79bo19boo$79boo55b
o18boo$70boo57boo3bo3bo16bobo$70bobo55b3o3bo22b3o$71bo57bo3bo5boo15bo
3bo$132boo6bo15booboo$140bo$46boo34boo46bo5boboo$46boo34boo46boobbo$
45bo86boo$46boo111boboo$46boo111boobo$$127boo$127bo$92boo14boo3boo13bo
17boo$38boo53bo15bo3bo13boo18bo$38boo50b3o13b3o5b3o27b3o$42boo46bo15bo
9bo27bo$41bobo$41bo$40boo$53boo$53boo3$55boo$55boo!
```

If p8 doesn't look good to you -- or even if it does, actually -- it might be a good idea to start with plain old stable circuitry, and get familiar with that. Maybe build some new smaller versions of various converters by making good use of Snarks, or look for imperfect Herschel circuits that can now be perfected by bouncing a spare glider back with a Snark to clean up some junk... But ideally that would mean getting familiar with Hersrch, which unfortunately seems to scare most people off.

It might finally be time to write a Golly Python-script GUI for Hersrch, to reduce the learning curve a bit. Would you care to sign on as a usability consultant? Myself, I can't quite figure out what GUI design will make sense to people, because I'm corrupted by already understanding how to run Hersrch searches...!

### Re: Where to start?

I would love to, a Python way of coding Herschels would be super cool!

I'll look into it, if p8 circuitry is a new horizon that's definitely where I'd love to poke into. I'll be making simple stuff for now- some basic logic gates would be a bit too trivial, but I'll see what I can do. Thanks for the basic patterns, I'm surprised the regulator exists!

Also, I'm not sure the first pattern is doing what it's intended to. At all. Multiple eaters are destroyed, along with the figure 8.

I'll look into it, if p8 circuitry is a new horizon that's definitely where I'd love to poke into. I'll be making simple stuff for now- some basic logic gates would be a bit too trivial, but I'll see what I can do. Thanks for the basic patterns, I'm surprised the regulator exists!

Also, I'm not sure the first pattern is doing what it's intended to. At all. Multiple eaters are destroyed, along with the figure 8.

### Re: Where to start?

Okay, let's see: what we're looking for is the most intuitive way of running helper scripts (?) maybe based on a user's selections in the Golly GUI (?) to set up searches equivalent to this walkthrough (just for one example among many). Python is perfectly capable of making the actual calls to Hersrch, once all the information has been collected, and also displaying Hersrch's output.twinb7 wrote:I would love to, a Python way of coding Herschels would be super cool!

Maybe a first round of automatic testing of candidate results, too... but probably better to save that for v2.0, just so that v1.0 actually gets done. [I've started working on this problem any number of times in the last few years.]

So -- I don't know -- what part of that walkthrough makes the least amount of sense to you? Maybe that will be the right place to start...!

Oops. Fixed now.twinb7 wrote:Also, I'm not sure the first pattern is doing what it's intended to. At all. Multiple eaters are destroyed, along with the figure 8.

### Re: Where to start?

I'll get to looking at that walkthrough for you as soon as I'm free enough

### Re: Where to start?

What's most difficult, in my opinion, in practice is getting the conduits to 'match up' in terms of spacing. (However, the Herschel-looking spark in that thread could be useful in that respect.) What also seems to be difficult is that if I'm gonna be using Herschels to be making stable circuitry, I want... Circuitry. Lots of people are going to want to be making guns or long period oscillators, of course, but I'm wanting to make computers, which isn't really addressed. I'm not sure if I'm just too ignorant about it or it really should be addressed somewhere.

### Re: Where to start?

No, you're quite right -- mostly I think people just build what they need for particular purposes, using Herschels to make gliders to perform various circuitry tasks. But there isn't a good central repository for all the pieces of circuitry that have been designed over the years -- permanent switches, exact-timing merges, XOR gates and so forth.twinb7 wrote:What also seems to be difficult is that if I'm gonna be using Herschels to be making stable circuitry, I want... Circuitry. Lots of people are going to want to be making guns or long period oscillators, of course, but I'm wanting to make computers, which isn't really addressed. I'm not sure if I'm just too ignorant about it or it really should be addressed somewhere.

I'll work on a base collection, maybe in a new thread on the forums. We have one already for period-multiplying Herschel circuits, and there's a reasonably up-to-date version of all the known elementary conduits, but I think that's about it.

### Re: Where to start?

Not really understanding much about Herschels, I put this together.

At some point I'll work to make a stable AND gate or something...

Code: Select all

```
x = 125, y = 73, rule = B3/S23
21b2o$21b2o3$19b2o$19b2o$6b2o$7bo46bo22b2o7b2o$7bobo44b3o20b2o7bobo$8b
2o47bo26bobob3o$4b2o50b2o26b2o5bo$4b2o84b2o2$114bo$112b3o$111bo$111b2o
7b2o$120bo$17b2o99bobo$17b2o29b2o68b2o$10b2o36b2o$5b2o2bo2bo$4bobo3b2o
$6bo30bo$36bobo$36b2o$45b2o51b2o23bo$45bo53bo22bobo$46bo49b3o8b2o14bo$
45b2o49bo11bo$bo8b2o93b3o$b2o7b2o63b2o28bo$obo73bo$73b3o44b2o$73bo46bo
bo$122bo$122b2o$104bob2o$104b2obo2$113b2o$113b2o13$102b2o$103bo$103bob
o$104b2o8$118b2o$115b2o2bo$115bob2o$117bo$109b2o4bobo$109bo5b2o$110bo$
109b2o!
```

### Re: Where to start?

Looks good. The circuit also works fine with the F116 conduit taken out:twinb7 wrote:Not really understanding much about Herschels, I put this together.

Code: Select all

```
x = 93, y = 74, rule = B3/S23
21b2o$21b2o3$19b2o$19b2o$6b2o$7bo46bo$7bobo44b3o$8b2o47bo$4b2o50b2o$4b
2o3$82bo$80b3o$79bo$79b2o7b2o$17b2o69bo$17b2o29b2o36bobo$10b2o36b2o36b
2o$5b2o2bo2bo$4bobo3b2o$6bo30bo$36bobo$36b2o$45b2o$45bo20b2o23bo$46b3o
18bo22bobo$48bo15b3o8b2o14bo$bo8b2o52bo11bo$b2o7b2o61b3o$obo70bo2$88b
2o$88bobo$90bo$90b2o$74b2o$73bobo$73bo$72b2o7b2o$81b2o13$70b2o$71bo$
71bobo$72b2o9$83b2o3b2o$83bobobobo$85bobo$77b2o4bobobobo$77bo5b2o3b2o$
75bobo$75b2o!
```

If you get a good handle on these Herschel receivers and transmitters, you'll know more about stable circuitry than most Life enthusiasts do. The unfortunate thing about this particular transmitter is that it's not ambidextrous, so you can't chain two of them together directly -- the second copy has to be a mirror image of the first. Other transmitters are ambidextrous but significantly larger.

The problem with Herschel circuitry is that there are too many options, and until you're solving a specific problem you never really know what will be useful. For an AND gate, unless you have specific spatial constraints, you'd mostly just have to know whether you're dealing with exact timing or not. Do you want an output only if there's [Herschel at X1,Y1,T1] AND [Herschel at X2,Y2,T2]? Or is it more like [Herschel at X1,Y1,T1] AND [Herschel at X2,Y2,T1+N] with N not known in advance? The second is probably more generally useful, but it needs a completely different approach.twinb7 wrote:At some point I'll work to make a stable AND gate or something...

### Re: Where to start?

Don't worry, I wasn't really going for anything useful with that small circuit.

Oooooh, I was thinking the first one- but the second would be VERY uesful. However, there would also need to be some sort of 'reset'- like, "Hey, we're absolutely positive the other input was zero, or, we're absolutely positive all the signals we want to get to you, have gotten to you. Let's make sure you're ready to take two brand new inputs."

If I'm going to be engineering a conduit, what I'm gonna want to do is make something that allows a single glider to be turned into a pair of gliders that could be used in a Herschel receiver (this would make logic gates easier, only involving single-glider reactions). [EDIT: I'm doing that now, I realize I think it should be possible to set up with already-existing circuitry: A glider comes in and makes the R-pentomino, and then two herschels, and one herschel goes up and around and acts like another input to the G->R reaction, preparing it for the next one. Adding a 90º reflector to the mix would allow the glider to smoothly come in from someplace else. EDIT2: It only needs to make one Herschel, I found a conduit that moves a Herschel along and also emits a glider, so I'll use that.]

When I see the notation, I see stuff like G6>G. What does the '6' mean? I'm guessing that it means the gliders are 6 spaces distinct?

I entirely agree. I have no idea where to start. Gah! I don't know what I could accomplish! What kind of exercises should I do with this stuff?The problem with Herschel circuitry is that there are too many options, and until you're solving a specific problem you never really know what will be useful.

Code: Select all

` Do you want an output only if there's [Herschel at X1,Y1,T1] AND [Herschel at X2,Y2,T2]? Or is it more like [Herschel at X1,Y1,T1] AND [Herschel at X2,Y2,T1+N] with N not known in advance? `

If I'm going to be engineering a conduit, what I'm gonna want to do is make something that allows a single glider to be turned into a pair of gliders that could be used in a Herschel receiver (this would make logic gates easier, only involving single-glider reactions). [EDIT: I'm doing that now, I realize I think it should be possible to set up with already-existing circuitry: A glider comes in and makes the R-pentomino, and then two herschels, and one herschel goes up and around and acts like another input to the G->R reaction, preparing it for the next one. Adding a 90º reflector to the mix would allow the glider to smoothly come in from someplace else. EDIT2: It only needs to make one Herschel, I found a conduit that moves a Herschel along and also emits a glider, so I'll use that.]

When I see the notation, I see stuff like G6>G. What does the '6' mean? I'm guessing that it means the gliders are 6 spaces distinct?

### Re: Where to start?

Strike that. There's a one-glider to Herschel converter on that linked discussion.

### Re: Where to start?

It takes a more complicated circuit, but it seems as if the reset should be part of the AND gate. Probably both inputs should be split and routed to the reset circuit, but they shouldn't get there until after the maximum time N has passed... and you also have to make sure there's no possibility of two reset signals interfering with each other.twinb7 wrote:Oooooh, I was thinking the first one- but the second would be VERY uesful. However, there would also need to be some sort of 'reset'- like, "Hey, we're absolutely positive the other input was zero, or, we're absolutely positive all the signals we want to get to you, have gotten to you. Let's make sure you're ready to take two brand new inputs."dvgrn wrote: Do you want an output only if there's [Herschel at X1,Y1,T1] AND [Herschel at X2,Y2,T2]? Or is it more like [Herschel at X1,Y1,T1] AND [Herschel at X2,Y2,T1+N] with N not known in advance?

Things can get complicated fast when you start worrying about safety issues. Here's an old "latch" pattern -- a safe way to turn a circuit on and off. I suspect there are smaller and simpler ways to do this these days, now that we have Snarks and semi-Snarks available -- but offhand I can't think of anything really good. Probably there are some useful tricks at period 8; are you still keeping that in mind, or have you decided to look mostly at pure stable circuits?

Code: Select all

```
#C Completed stable Herschel Latch pattern
#C Dave Greene 25 Jan 2002
#C Herschel pulse entering at [1] {nondestructive READ} will pass
#C through to [3] {OUTPUT} if no block is present {Latch is SET}.
#C Herschel pulse entering at [2] {CLEAR} will create the block.
#C Glider entering at [4] {SET} will destroy the block if present;
#C if not, glider passes through and is eatered by a tub-with-tail.
x = 135, y = 153, rule = LifeHistory
32.2D3.2D$32.2D3.2D$32.2D3.2D$32.2D3.2D$32.2D3.2D$32.7D$32.7D$37.2D$
37.2D$37.2D$37.2D$37.2D$13.2D22.2D$13.2D22.2D$13.2D24.2A$13.2D25.A$
13.2D21.A3.A.A$13.2D22.A3.A.A42.4D$13.2D20.3A4.A3.2A38.4D$13.2D31.2A
42.2D$2A11.2D75.2D$.A11.2D35.A9.A29.2D4.2A$.A.A9.2D17.A17.3A5.3A29.2D
4.2A$2.2A9.2D17.3A18.A3.A28.4D$13.2D20.A16.2A3.2A27.4D$13.2D19.A.A53.
2D$35.A28.2A7.2A15.2D3.3D$29.A34.2A7.A.A14.2D4.D$27.3A41.A.A.3A12.2D
4.3D$26.A9.2A33.2A5.A7.4D$14.C11.2A8.2A39.2A7.4D$12.3C$12.C.C$12.C4$
58.2A$35.2A21.2A$35.2A$12.2A106.4D$11.A.A106.4D$11.A92.2A18.2D$10.2A
10.2A57.2A21.2A18.2D$23.A58.A15.2A24.2D$20.3A9.2A45.3A16.2A24.2D$20.A
11.A46.A40.4D$33.A86.4D$32.2A66.2A16.2D13.2A$93.2A5.2A16.2D13.A$62.2A
29.2A23.2D11.A.A$40.2A21.A40.2A12.2D11.2A$41.A18.3A42.A14.4D$38.3A19.
A44.A.A12.4D$38.A26.2A39.2A2.2A$65.2A3.A39.2A$52.2A15.A.A$52.2A16.A.A
48.C$72.A48.3C$59.A.2A9.2A47.C.C$59.2A.A60.C6$104.2A$57.A45.A.A16.2A$
56.A.A44.A18.A.A$57.2A43.2A20.A$118.2A4.2A$118.A.A$120.A$111.2A7.2A$
111.2A6$124.2A$124.A$122.A.A$33.2A87.2A$33.2A$37.2A48.A$37.2A48.3A$
51.2A37.A$51.2A36.2A6$63.2A$63.2A$41.2A$42.A41.2A$39.3A42.2A$39.A83.
2A$43.2A29.A48.2A$43.2A29.3A$77.A$76.2A$118.2A$118.2A$122.2A$122.2A3$
116.2A$101.2A13.2A$101.A.A$103.A$103.2A2$97.2A$97.2A4$97.2A$97.2A8$
124.A$123.A.A$123.A.A$104.2A16.2A.2A$104.2A$122.2A.2A$86.2A34.2A.A$
85.A.A39.A$85.A40.2A$84.2A2$118.2A$118.2A4.2A$95.2A27.A.A$94.A.A29.A$
94.A31.2A$93.2A23.2A$118.2A3$113.A$112.A.A$113.A!
```

That's exactly right -- I think Guam started using that notation a few years ago. The above latch pattern has a H>G2 transmitter and G2>H receiver at the bottom.twinb7 wrote:When I see the notation, I see stuff like G6>G. What does the '6' mean? I'm guessing that it means the gliders are 6 spaces distinct?

Another very simple permanent switch is the F166 conduit, which just needs a glider to turn it off and another one from the opposite direction to turn it on -- (2,1) block moves in both cases. The "Demonoid", a diagonal self-constructing Geminoid spaceship that I haven't bothered to finish building yet, turns one of its own F166 conduits off with the last glider from its construction arm. It never needs to turn that circuit back on again, but a glider from the opposite direction would do the trick.

### Re: Where to start?

Still interested in period 8, don't you worry. ^^Probably there are some useful tricks at period 8; are you still keeping that in mind, or have you decided to look mostly at pure stable circuits?

Also, I hope I'm not scaring you off with my slow learning here. I'll look at some old circuits and try to clean them up, but it still

*feels*like I wouldn't be able to do it with my current knowledge, like, at all.

### Re: Where to start?

I need an idea for some sort of actual project...

### Re: Where to start?

I might be a bit biased here, but there are some interesting problems showing up in the high-period glider gun thread.twinb7 wrote:I need an idea for some sort of actual project...

It looks like it will be fairly straightforward to put together an O(log N)-sized glider gun for any integer N. But there will be some interesting layout and timing problems to be solved when it comes to bending the binary multiplier (and base loop and timing-adjustment circuit) around arbitrary numbers of corners, to achieve a spiral layout and an O(sqrt log N)-sized gun. Any interest in contributing ideas, or specific corner designs?

In the same thread there's a kind of tutorial for beginning glider-gun engineers, which includes sample patterns with some modern-ish p8 technology. It'd be great to have someone post answers to those questions, for discussion purposes, and/or to tell me if I'm making any sense at all... If you work out the details of p8 and stable technology enough to be able to answer those questions, it might give you some ideas about what you might want to do next.

The main purpose of the "tutorial" was to explain how Jason Summers' gun collection can be improved with recently-discovered technology like the Snark and semi-Snark. Probably at least a quarter, and possibly the majority, of the non-prime period guns in the collection could now be packed into a smaller bounding box, with one new trick or another -- so the odds aren't too bad even if you pick periods to tackle at random! Care to build and contribute a few smaller glider guns, just for practice?

### Re: Where to start?

Here are a couple more ideas for Life objects that haven't been built yet, but the technology is available:twinb7 wrote:I need an idea for some sort of actual project...

1) A non-synchronous "line crosser":

A glider enters a circuit on one side of an infinite diagonal line. Some number of ticks later, there's a glider on the other side of the diagonal line, and the line-crosser circuit is back in its original state, ready to accept another signal.

Code: Select all

```
#C Line Crosser spec
x = 424, y = 144, rule = LifeHistory
49.2A232.2A$49.A233.A$50.A233.A$51.A233.A$52.A233.A$53.A233.A$54.A
233.A$55.A233.A$56.A233.A$57.A233.A$58.A233.A$59.A233.A$60.A233.A$61.
A233.A$62.A233.A$63.A233.A$64.A233.A$65.A233.A$66.A233.A$67.A233.A$
68.A233.A$69.A233.A$70.A233.A$71.A233.A$72.A233.A$73.A233.A$74.A233.A
$75.A233.A$76.A233.A$77.A233.A$78.A233.A$79.A233.A$80.A233.A$81.A233.
A$82.A233.A$83.A233.A$84.A233.A$85.A233.A$86.A233.A$87.A233.A$88.A
233.A$89.A233.A$90.A233.A$91.A233.A$92.A233.A$93.A233.A$94.A233.A$95.
A233.A$96.A233.A$97.A233.A$98.A233.A$99.A233.A36.3A$100.A233.A37.A$
101.A233.A35.A$102.A233.A$103.A233.A$104.A233.A$26.D2.D2.D2.D2.D2.D2.
D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D6.A154.D2.D2.D
2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D6.A
$106.A233.A$24.D75.D6.A90.A59.D75.D6.A$108.A89.2A142.A$22.D79.D6.A88.
3A55.D79.D6.A$110.A87.4A142.A$20.D83.D6.A86.5A51.D83.D6.A$112.A70.21A
142.A$18.D87.D6.A69.22A2.F44.D87.D6.A$52.5D57.A68.21A82.5D57.A$16.D
11.11D13.5D51.D6.A82.5A47.D11.11D13.5D51.D6.A$27.13D12.5D59.A81.4A59.
13D12.5D59.A$14.D13.11D71.D6.A80.3A47.D13.11D71.D6.A$31.5D82.A79.2A
65.5D82.A$12.D18.5D76.D6.A78.A47.D18.5D76.D6.A$31.5D13.9D7.14D10.8D
23.A144.5D13.9D7.14D10.8D23.A$10.D20.5D12.10D7.15D7.12D15.D6.A122.D
20.5D12.10D7.15D7.12D15.D6.A$31.5D13.9D7.16D5.14D22.A142.5D13.9D7.16D
5.14D22.A$8.D22.5D17.5D9.6D4.5D3.7D3.6D15.D6.A118.D22.5D17.5D9.6D4.5D
3.7D3.6D15.D6.A$31.5D17.5D9.5D5.5D3.5D6.6D22.A140.5D17.5D9.5D5.5D3.5D
6.6D22.A$6.D24.5D17.5D9.5D5.5D2.6D7.5D16.D6.A114.D24.5D17.5D9.5D5.5D
2.6D7.5D16.D6.A$31.5D6.4D7.5D9.5D5.5D2.18D24.A138.5D6.4D7.5D9.5D5.5D
2.18D24.A$4.D26.5D5.5D7.5D9.5D5.5D2.18D18.D6.A110.D26.5D5.5D7.5D9.5D
5.5D2.18D18.D6.A$31.5D5.5D7.5D9.5D5.5D2.5D39.A136.5D5.5D7.5D9.5D5.5D
2.5D39.A$2.D28.5D5.5D7.5D9.5D5.5D3.5D32.D6.A106.D28.5D5.5D7.5D9.5D5.
5D3.5D32.D6.A$31.5D5.5D7.5D9.5D5.5D3.7D5.5D28.A134.5D5.5D7.5D9.5D5.5D
3.7D5.5D28.A$D27.18D.16D2.9D.9D2.16D22.D6.A102.D27.18D.16D2.9D.9D2.
16D22.D6.A$27.19D.17D.9D.9D3.15D30.A128.19D.17D.9D.9D3.15D30.A$28.18D
.16D2.9D.9D5.10D27.D6.A128.18D.16D2.9D.9D5.10D27.D6.A$D133.A99.D133.A
$128.D6.A226.D6.A$136.A233.A$D129.D6.A96.D129.D6.A$138.A233.A$132.D6.
A226.D6.A$D139.A93.D139.A$134.D6.A226.D6.A$142.A233.A$D135.D6.A90.D
135.D6.A$144.A233.A$138.D6.A226.D6.A$D145.A87.D145.A$140.D6.A226.D6.A
$148.A233.A$D141.D6.A84.D141.D6.A$150.A233.A$14.12D118.D6.A96.12D118.
D6.A$D11.14D126.A81.D11.14D126.A$11.15D120.D6.A91.15D120.D6.A$10.6D4.
6D128.A89.6D4.6D128.A$D8.6D6.5D122.D6.A78.D8.6D6.5D122.D6.A$9.5D8.4D
3.7D2.6D8.7D11.11D8.11D8.8D8.7D2.6D17.A86.5D8.4D3.7D2.6D8.7D11.11D8.
11D8.8D8.7D2.6D17.A$9.4D9.4D3.7D.8D5.11D8.13D6.13D5.12D6.7D.8D10.D6.A
85.4D9.4D3.7D.8D5.11D8.13D6.13D5.12D6.7D.8D10.D6.A$D8.4D16.17D3.13D6.
14D5.14D4.14D5.17D17.A75.D8.4D16.17D3.13D6.14D5.14D4.14D5.17D17.A$8.
5D19.8D.4D3.6D3.6D4.5D4.6D4.5D4.6D3.7D3.6D7.8D.4D19.A82.5D19.8D.4D3.
6D3.6D4.5D4.6D4.5D4.6D3.7D3.6D7.8D.4D19.A$8.5D19.7D8.5D7.5D3.5D6.3D5.
5D6.3D4.5D6.6D6.7D16.D9.A81.5D19.7D8.5D7.5D3.5D6.3D5.5D6.3D4.5D6.6D6.
7D16.D9.A$D7.5D19.5D10.5D7.5D3.10D9.10D7.6D7.5D6.5D29.A72.D7.5D19.5D
10.5D7.5D3.10D9.10D7.6D7.5D6.5D29.A$8.5D19.4D11.4D9.4D4.12D7.12D4.18D
6.4D31.A79.5D19.4D11.4D9.4D4.12D7.12D4.18D6.4D31.A$9.4D19.4D11.4D9.4D
6.12D7.12D2.18D6.4D19.D12.A79.4D19.4D11.4D9.4D6.12D7.12D2.18D6.4D19.D
12.A$D8.5D8.4D6.4D11.4D9.4D12.6D13.6D2.5D19.4D33.A69.D8.5D8.4D6.4D11.
4D9.4D12.6D13.6D2.5D19.4D33.A$9.6D7.4D6.4D11.5D7.5D3.4D7.5D3.4D7.5D2.
5D18.4D34.A77.6D7.4D6.4D11.5D7.5D3.4D7.5D3.4D7.5D2.5D18.4D34.A$10.6D
4.6D6.4D12.6D3.6D4.5D5.5D4.5D5.5D3.7D5.5D6.4D19.D15.A77.6D4.6D6.4D12.
6D3.6D4.5D5.5D4.5D5.5D3.7D5.5D6.4D19.D15.A$D10.15D2.15D5.15D4.15D4.
15D4.16D2.15D29.A66.D10.15D2.15D5.15D4.15D4.15D4.16D2.15D29.A$12.13D
3.15D7.11D6.14D5.14D6.15D2.15D30.A77.13D3.15D7.11D6.14D5.14D6.15D2.
15D30.A$14.8D6.15D9.7D8.12D7.12D10.10D5.15D12.D18.A78.8D6.15D9.7D8.
12D7.12D10.10D5.15D12.D18.A$D169.A63.D169.A$171.A233.A$2.D145.D23.A
63.D145.D23.A$173.A233.A$4.D141.D27.A63.D141.D27.A$175.A233.A$6.D2.D
2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D
2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D31.
A63.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D
2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D2.D
2.D2.D31.A$177.A233.A$178.A233.A$179.A233.A$180.A233.A$181.A233.A$
182.A233.A$183.A233.A$184.A233.A$185.A233.A$186.A233.A$187.A.A231.A.A
$188.2A232.2A$46.3A$48.A$47.A!
```

Then only one or two pulses would be needed for each signal. The wire reset could be done incrementally, and much more quickly -- would only have to add a few beehives to repair the ends after a signal goes through, instead of dozens at a time.

---------------

I do admit that both of these are fairly ambitious projects -- but they're also projects where new research can be done incrementally. For the telegraph circuit, for example, is there an easier way to reconstruct beehives at the lightspeed wire's ends? Is there a better way to get a signal out without losing so many beehives?

For the line crosser, some constructor-arm technology will be needed. Does this mean adapting Geminoid technology into a pure-stable form, or would it make more sense to compromise and use a regulator? Will it work better to make permanent Herschel circuits to generate the line-cutting and repair salvos on the near side of the line, or should that all be done with the same kind of one-time turners that will have to be built on the far side? What separation of Geminoid glider lanes is best for pushing a construction-arm elbow through, and then creating a new "hand" target on the other side?

Probably nobody has much of any idea about the "best" answers to any of these questions... which basically means that if you come up with something that looks reasonably good, then that's probably what would end up getting used in an actual construction.

### Re: Where to start?

Select or construct a shuttle oscillator and modify it so as to push one reflector a certain distance and pull the other reflector the same distance. Thereby increasing the number of ship speeds supported.twinb7 wrote:I need an idea for some sort of actual project...

Brian Prentice

### Re: Where to start?

This is another non-trivial project (to say the least). People have been talking about the likely existence of objects like this for decades now; the "fluff relay" thread is one of the more recent mentions, I think.bprentice wrote:Select or construct a shuttle oscillator and modify it so as to push one reflector a certain distance and pull the other reflector the same distance. Thereby increasing the number of ship speeds supported.

It was always possible to fall back on the universal-constructor argument: "we know that Conway's Life supports universal constructors. Program one universal constructor to accept a startup glider from (say) the southeast, and move itself by (X,Y) and send a glider back to the southeast. A glider from the northwest should trigger the other universal constructor, which should also be programmed to move itself by (X,Y) and return a glider to the northwest."

Oddly enough, existing technology is now good enough to pull something like this off for any (X,Y). Even a true (2,1) knightship is perfectly possible -- it will just be a very, very slow one, with a period about the same order of magnitude as the current Geminoid replicator, maybe two to four times bigger.

Each of two replicator units would consist of a small 180-degree reflector and an attached construction arm. The signal bouncing back and forth between them would be a long stream of gliders, not just a single glider.

Each replicator unit would build one or more freeze-dried glider salvos capable of destroying the entire unit and then rebuilding it in the new location. It's now relatively easy to put something like this together, though there are some annoying details to work out if you want to avoid building temporary objects in a construction arm's "danger zone". The freeze-dried salvo seed would be triggered by the very last glider coming through the replicator unit, so all destruction and reconstruction work would happen very quickly, at a time when the circuitry was quiescent.

Obviously this is quite similar to the design of a Gemini spaceship. The key differences are the method and speed of destruction and reconstruction, and the fact that the new replicator units' locations almost completely overlap their parents' location. Also the two ends would probably need completely different construction recipes, which would be interleaved on the glider stream -- one R.U.'s coding gliders would be the other R.U.'s reset gliders, and vice versa.

Reducing the signal to just one glider would be considerably more complicated, since each R.U. would have to maintain its own destruction/construction recipe. That's also perfectly doable, though -- it would just mean building and moving a few more reflectors, to maintain two separate loops. That's still orders of magnitude better than storing construction information in static data tapes.

It's technically possible to design this system with only one replicator unit, along the same lines as the linear replicator, and do the frozen-salvo seed construction for the second reflector (which would have no construction arm attached) from very far away. That might allow for a significantly smaller knightship.

### Re: Where to start?

That sounds difficult, but it's what I'll try.bprentice wrote:Select or construct a shuttle oscillator and modify it so as to push one reflector a certain distance and pull the other reflector the same distance. Thereby increasing the number of ship speeds supported.twinb7 wrote:I need an idea for some sort of actual project...

Brian Prentice

### Re: Where to start?

Great! I've been hoping someone would tackle that problem; it's beentwinb7 wrote:That sounds difficult, but it's what I'll try.bprentice wrote:Select or construct a shuttle oscillator and modify it so as to push one reflector a certain distance and pull the other reflector the same distance. Thereby increasing the number of ship speeds supported.

*almost*on my to-do list for a while now, but I'd like to finish a spiral-growth pattern first (again using self-construction technology.)

Let me know if I can be of any help in the design phase. My only suggestion would be that you consider choosing (2,1) as your offset, to get a true knightship. If the replicator units are built as much as possible out of blocks, you could "re-use" some of the blocks, by moving them with (2,1) block-pulls instead of destroying them and rebuilding them later. Unfortunately the block-pull trick won't work very often -- usually other still lifes in the same circuit will get in the way.

### Re: Where to start?

Expert programmers construct their programs in layers. Each layer consists of objects and a language designed to manipulate those objects. The objects are built using the languages of the lower layers. I would suggest that you consider this approach in addition to studying the designs of previous large complex patterns.twinb7 wrote:That sounds difficult, but it's what I'll try.

Brian Prentice

### Re: Where to start?

A new discovery by codeholic has made a (-3,-6) knightship possible. There's a fair amount of original research that needs to be done before the Half-Baked Knightship will actually fly, but nothing too painful. There are slow salvos involved, but they just have to clean up and reconstruct a twenty-glider seed -- the main body of the spaceship will take care of itself, with no need for destruction or construction.bprentice wrote:Expert programmers construct their programs in layers. Each layer consists of objects and a language designed to manipulate those objects. The objects are built using the languages of the lower layers. I would suggest that you consider this approach in addition to studying the designs of previous large complex patterns.twinb7 wrote:That sounds difficult, but it's what I'll try.

So -- anyone interested in contributing to a fairly difficult Life engineering project, starting at the ground floor, should maybe take a look at the HBK. I'm hoping to finish up the 31c/240 Caterpillar before getting too distracted by knightship engineering, but we'll see how that works out...!