Over the last few months I’ve started working intermittently again on building a replicator in Conway’s Game of Life, based on ideas from Andrew Wade’s self-constructing Gemini spaceship. Actually I'm planning to start by building a simpler Gemini-like spaceship -- a "Geminoid" -- and then see if I can eventually make use of the same technology to put together a working replicator pattern.

After a couple of years away from Life projects, I’ve thought of a couple of minor new tricks. My latest Geminoid replicator units are now almost two orders of magnitude smaller than the ones in the original Gemini:

This particular piece of circuitry can't be programmed to be a true replicator. I think it will be a useful step along the way, but the inputs and outputs don't line up right for replication and there's no mechanism yet for copying the data stream non-destructively to multiple targets.

I'll explain the above pattern just briefly for now, with more detail to come in future postings -- but any and all questions are welcome!

1) This Geminoid has only one construction arm, where the original Gemini spaceship had three. One arm is enough to construct any pattern made of well-separated small still lifes. And this Geminoid's constructor arm is symmetrical, so it can perfectly well be turned in the other direction for re-use as a destructor arm, once its construction work is done.

I'll save for a separate posting my accumulated evidence that a one-armed Geminoid can build anything that a two-armed Gemini can -- not very efficiently, true, but it's not as bad as one might think.

2) This Geminoid uses just a single coded data channel -- i.e., one stream of gliders to specify its construction recipe. This makes it much easier to program than the original Gemini's precisely-synchronized twelve-channel design. In a one-arm Geminoid, there are actually no signal crossings needed, either for the northwest replicator unit or for the southeast one. So construction data can be sent as quickly as the circuitry can accept it. In the long run, this should also make it much easier to copy construction data from a parent pattern to a child.

3) A sample 6-glider input stream is shown coming in from the southeast, and being reflected back to the southeast. State-5 (yellow) still lifes are single-use startup circuitry. Their purpose is to open an appropriate output channel depending on where the input gliders come in from. There are probably more efficient ways to arrange these single-use circuits, so this is just a proof of concept.

4) The state-4 (red) input glider at the left side the above pattern shows where the reflected gliders will enter a second copy of this pattern. If you paste another R.U. (replicator unit -- the entire pattern except for the "live" green gliders) to the right of the first one, lining up the red gliders, you'll see that the recipe has exactly the same effect on the constructor arm in each R.U. in succession -- it doesn't matter which direction the gliders came from.

For now you can just imagine that the second R.U. is very far to the southeast of the first one, in order to leave room for a huge self-construction recipe... just like in the original Gemini spaceship.

5) The 6-glider recipe doesn't do anything very exciting; it simply shows how pairs of gliders following each other on a single input lane can be copied, delayed and sent out in precisely synchronized pairs to manipulate a "construction elbow" (the block at the upper left). In this case, they simply delete the elbow.

However, if one of the gliders in the original 6-glider stream is delayed or advanced by a generation -- or any number of generations within certain limits -- then one of the output gliders heading for the construction elbow will end up being delayed or advanced by the same number of ticks, and something different will happen at the elbow.

There’s an interesting series of optimization puzzles that will need to be solved, related to the construction of a new Geminoid spaceship... and at least one of them will be very entertaining. At least I will find it entertaining! -- but how many Life enthusiasts haven’t enjoyed shooting a glider at some big delicately balanced structure, and watching the whole thing dissolve into chaos?

The original Gemini spaceship relies on a separate destructor gun to painstakingly take old replicator units apart piece by piece. Collisions that caused huge explosions were carefully avoided. The new Geminoid, in the best silly sci-fi tradition, will need to have a self-destruct button instead! It will be set up so that the entire replicator unit can be completely destroyed by a single glider or LWSS produced by the Geminoid’s regular construction arm (or arms, if that turns out to be better).

Here's a sample pattern that shows how a 9hd constructor arm can be bent in either direction, by producing a new "hand" on either side of the elbow and then manipulating it with slow unidirectional salvos from Paul Chapman's block-move table. The first part of the recipe creates the hand block and removes an extraneous blinker. The rather long second part of the recipe pushes the hand block exactly one diagonal cell farther away from the elbow -- just to prove that it can be done.

It will be interesting to figure out the shortest glider-pair recipe that keeps an elbow block on the correct diagonal, and also creates random junk far enough from the elbow that it's safely usable for slow-salvo constructions.

#C Creation of a construction-arm target "hand" block,#C using glider-pair collisions with an elbow block,#C followed by a sample +1 slow-salvo block push.#C This recipe is distinctly sub-optimal! Probably there#C are recipes with no more than half a dozen glider pairs#C that produce a usable target off to the side of the elbow.x = 3146, y = 3146, rule = LifeHistory23.2D$23.2D3$2E$2E8$14.2A$14.A.A$14.A2$10.A$9.2A$9.A.A32$43.2A7.2A$43.A.A5.2A$43.A9.A26$79.3A$73.A5.A$72.2A6.A$72.A.A20$103.2A$102.2A$104.A2$98.2A$97.2A$99.A23$132.2A$132.A.A$124.3A5.A$124.A$125.A23$158.3A$158.A$153.A5.A$152.2A$152.A.A30$193.2A$193.A.A$193.A2$189.A$188.2A$188.A.A32$231.2A$230.2A$232.A5$229.2A$228.2A$230.A22$252.3A$252.A$253.A11$274.3A$274.A$275.A25$302.2A$302.A.A$302.A5$300.2A$299.2A$301.A23$334.2A$333.2A$335.A3$329.3A$329.A$330.A31$372.2A$372.A.A$372.A7$372.2A$372.A.A$372.A26$408.3A$408.A$409.A6$409.A$408.2A$408.A.A23$432.3A$432.A$433.A8$451.3A$451.A$452.A27$481.2A$481.A.A$481.A9$483.2A$483.A.A$483.A31$525.2A$525.A.A$525.A18$537.A$536.2A$536.A.A22$568.3A$568.A$569.A15$577.2A$577.A.A$577.A30$610.A$609.2A$609.A.A5$625.2A$624.2A$626.A36$663.2A$662.2A$664.A9$664.3A$664.A$665.A31$707.2A$707.A.A$707.A$701.2A$700.2A$702.A29$741.2A$740.2A$742.A3$738.A$737.2A$737.A.A25$774.A$773.2A$773.A.A3$769.2A$768.2A$770.A39$820.A$819.2A$812.2A5.A.A$812.A.A$812.A46$861.A$860.2A$860.A.A8$879.2A$878.2A$880.A31$902.3A$902.A$903.A8$921.3A$921.A$922.A30$944.3A$944.A$945.A12$968.2A$967.2A$969.A30$1000.2A$999.2A$1001.A2$995.2A$995.A.A$995.A32$1029.2A7.2A$1028.2A7.2A$1030.A8.A30$1069.3A$1069.A$1070.A$1064.2A$1064.A.A$1064.A25$1100.2A$1100.A.A$1100.A6$1098.3A$1098.A$1099.A33$1134.2A$1133.2A$1135.A8.3A$1144.A$1145.A40$1187.2A$1187.A.A$1187.A4$1185.A$1184.2A$1184.A.A32$1227.2A$1227.A.A$1227.A2$1221.3A$1221.A$1222.A30$1254.2A$1254.A.A$1254.A6$1272.A$1271.2A$1271.A.A45$1318.2A$1317.2A$1319.A2$1313.2A$1313.A.A$1313.A32$1356.2A$1355.2A$1357.A17$1366.2A$1366.A.A$1366.A21$1390.A$1389.2A$1389.A.A7$1407.2A$1406.2A$1408.A26$1434.3A$1434.A$1435.A13$1441.2A$1441.A.A$1441.A57$1509.2A$1509.A.A$1509.A9$1511.2A$1511.A.A$1511.A31$1553.2A$1553.A.A$1553.A18$1565.A$1564.2A$1564.A.A22$1596.3A$1596.A$1597.A15$1605.2A$1605.A.A$1605.A30$1638.A$1637.2A$1637.A.A5$1653.2A$1652.2A$1654.A34$1688.3A$1688.A$1689.A2$1685.A$1684.2A$1684.A.A32$1727.2A$1726.2A$1728.A7$1727.2A$1726.2A$1728.A25$1764.A$1763.2A$1763.A.A7$1763.2A$1763.A.A$1763.A22$1788.A$1787.2A$1787.A.A8$1807.A$1806.2A$1806.A.A34$1841.3A$1835.A5.A$1834.2A6.A$1834.A.A47$1882.3A$1882.A$1883.A7$1901.2A$1901.A.A$1901.A31$1925.2A$1924.2A$1926.A8$1944.2A$1943.2A$1945.A30$1967.2A$1966.2A$1968.A12$1990.2A$1990.A.A$1990.A29$2021.2A$2020.2A$2022.A2$2016.2A$2016.A.A$2016.A32$2050.2A7.2A$2049.2A7.2A$2051.A8.A30$2090.3A$2090.A$2091.A$2085.2A$2085.A.A$2085.A25$2121.2A$2121.A.A$2121.A6$2119.3A$2119.A$2120.A42$2173.2A$2173.A.A$2173.A9$2175.2A$2175.A.A$2175.A31$2217.2A$2217.A.A$2217.A18$2229.A$2228.2A$2228.A.A22$2260.3A$2260.A$2261.A15$2269.2A$2269.A.A$2269.A30$2302.A$2301.2A$2301.A.A5$2317.2A$2316.2A$2318.A34$2344.2A$2343.2A$2345.A8.3A$2354.A$2355.A40$2397.2A$2397.A.A$2397.A4$2395.A$2394.2A$2394.A.A32$2437.2A$2437.A.A$2437.A2$2431.3A$2431.A$2432.A30$2464.2A$2464.A.A$2464.A6$2482.A$2481.2A$2481.A.A39$2522.2A$2522.A.A$2522.A9$2524.2A$2524.A.A$2524.A31$2566.2A$2566.A.A$2566.A18$2578.A$2577.2A$2577.A.A22$2609.3A$2609.A$2610.A15$2618.2A$2618.A.A$2618.A30$2651.A$2650.2A$2650.A.A5$2666.2A$2665.2A$2667.A31$2699.2A$2698.2A$2700.A2$2694.2A$2694.A.A$2694.A32$2728.2A7.2A$2727.2A7.2A$2729.A8.A30$2768.3A$2768.A$2769.A$2763.2A$2763.A.A$2763.A25$2799.2A$2799.A.A$2799.A6$2797.3A$2797.A$2798.A36$2835.3A$2835.A11.A$2836.A9.2A$2846.A.A41$2889.2A$2888.2A$2890.A4$2886.2A$2886.A.A$2886.A32$2929.2A$2928.2A$2930.A$2924.A$2923.2A$2923.A.A31$2956.2A$2955.2A$2957.A6$2973.2A$2973.A.A$2973.A25$3000.2A$3000.A.A$3000.A9$3002.2A$3002.A.A$3002.A31$3044.2A$3044.A.A$3044.A18$3056.A$3055.2A$3055.A.A22$3087.3A$3087.A$3088.A15$3096.2A$3096.A.A$3096.A30$3129.A$3128.2A$3128.A.A5$3144.2A$3143.2A$3145.A!

The elbow glider pairs are on symmetrical lanes on either side of the block, so mirror-image recipes will produce the exact same output on either side of the elbow.

...Okay, so pretty soon I can start having fun designing a clean self-destruct mechanism by scattering small still-life bombs all through the unused area of the new Geminoid replicator unit. Paul Chapman and I used to call these sacrificial still-lifes "SODs", short for "Seeds Of Destruction".

-- I'm kind of hoping that an online competition will develop, actually, somewhat along the lines of the glider-gun optimizations that produced Jason Summers' gun collection. When we get to that stage, anyone will be welcome to post improved versions, until there doesn't seem to be any way to make a self-destruct-ready RU with fewer total ON cells.

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

However, there’s at least one major optimization job to complete first. Wouldn't want to get halfway through the self-destruct wiring, and then have somebody come up with a constructor arm half the size of the one we're working with, and have to start all over again. So... do I really have a minimal one-armed Geminoid replicator unit now -- or is there a significantly more efficient way to do what this circuitry does?

I still have two parallel investigations open, actually, and I'm not sure which idea will turn out to be better.

The first alternative is to produce a smaller version of the "traditional" Gemini; this will have two construction arms, so building new copies of the RUs will be much more efficient. But the circuitry has to accept four gliders per cycle instead of two, and there are some significant synchronization problems to be solved.

The other option is an experimental new one-armed Geminoid along the lines of the one I posted yesterday. Here some work still needs to be done to find more efficient ways to construct things with unidirectional slow salvos.

The one-armed RU in the previous post contains some startup circuitry -- single-use glider reflectors (a.k.a. "one-time turners") that are triggered only once, the first time a Herschel comes through a circuit. These adjust the output glider location on the fly, based on where the input gliders came in -- the output should always be 180 degrees from the input, but the replicator unit has two possible input locations on opposite sides. The single-use circuitry lets us take out an entire 90-degree Silver reflector or two, at the cost of adding a few scattered still lifes.

The following sample pattern is my best effort so far at a “simple Geminoid”, where the two replicator units at either end of the spaceship remain perfectly identical. I’m thinking that when it comes time to wire up the self-destruct mechanism, I’ll regret having come up with this clever idea where the two replicator units modify themselves to be slightly different from each other. The problem is that each RU still has to be cleaned up completely by the exact same set of self-destruct reactions, because there's no simple way to use a different cleanup recipe for the two ends of the spaceship. It’s not really difficult to design something like this, but it may well require adding more extra still lifes than were saved in the first place!

I tried looking at Spartan++ Herschel conduits -- stable catalysts less than 8 cells, *plus* tub-with-tail eaters and dead spark coils. The idea is to make it possible to use compact Herschel transceivers, along with quite a few other almost-Spartan conduits that just need a tub-with-tail eater. But so far I haven't been able to come up with a Spartan++ replicator unit that's significantly smaller than what can be done with standard Spartan circuitry.

#C experimental Spartan++ construction arm#C In this configuration, there's too much delay in the right-hand circuit,#C so signals can't be moved forward on the right branch without#C interfering with the cleanup glider sent by the left-branch signal.#C It's better to have 100+ ticks of adjustability for both gliders in the pair.#C#C The blue area is not part of the construction arm --#C it just allows test tandem-glider signals to be fed in easily.x = 517, y = 674, rule = LifeHistory429.2A$429.2A30$442.2A$443.A$443.A.A$444.2A7$439.2A$439.2A2$427.2A$428.A$428.A.A$429.2A$466.2A$466.A.A$468.A$468.2A3$458.2A40.2A$458.2A40.2A3$453.2A$453.A$435.2A17.3A$435.2A19.A3$434.A53.2A12.2A$433.A.A53.A12.2A9.2A$434.A54.A.A21.A.A$431.3A56.2A23.A$431.A83.2A2$503.2A$503.A.A$505.A$505.2A4$473.2A$473.A$471.A.A5.2A10.2A8.2A$470.A.A6.2A11.A8.A.A$440.A25.2A3.A20.3A8.A$439.A.A24.2A35.2A$438.A2.A20.2A$439.2A22.A$463.A.A$464.2A3$461.2A$461.2A34.2A$457.2A32.2A4.2A$430.A26.2A32.2A$430.3A10.2A$433.A9.2A$432.2A$492.2A$492.2A2.2A$496.A.A$441.A42.2A12.A$431.2A7.A.A25.2A14.A.A11.2A$431.2A7.A.A26.A16.A$441.A11.2A11.3A17.2A$453.A12.A$454.3A$456.A$451.2A$451.2A11$469.2A$468.A.A$442.2A24.A29.2A$442.2A23.2A29.A.A$500.A$500.2A$402.2A40.2A33.2A$395.2A5.2A40.2A34.A$395.2A60.2A18.3A$457.A19.A$455.A.A27.2A$397.2A56.2A27.A.A$397.2A60.2A23.A$391.2A66.2A22.2A$391.2A4$501.2A$501.A.A$446.2A28.2A25.A$446.2A29.A25.2A$477.A.A15.2A$435.2A41.2A15.2A$434.A2.A$387.2A21.2A23.A.A$388.A21.2A3.A20.A$388.A.A23.A.A$389.2A7.3A14.A.A$400.A16.A$400.2A15.2A$447.2A$446.A.A4.2A$446.A6.2A$445.2A$496.2A$496.A.A$400.2A3.2A91.A$400.A.A.A.A91.2A$402.A.A$394.2A4.A.A.A.A$394.A5.2A3.2A42.A$395.A53.3A12.B.3B.4B$394.2A56.A10.18B$435.2A14.2A3.B5.2B2A11B.4B$434.B2AB13.8B3.2B2A9B3.4B$435.2B16.8B.13B.B.4B$430.B3.2B17.22B.6B$429.2AB.4B15.15B.2B2.10B$429.2A8B11.17B8.7B$430.B.B2A6B2.2B2.19B11.5B$433.2A31B12.4B13.2A$433.24B.7B30.2A$429.37B5.2A16.2A$429.38B5.A16.2A$428.2A26B2.8B3.3A$428.2A14B.4B11.6B3.A$429.B.11B2.4B12.5B26.2A$431.10B2.4B14.4B19.2A5.2A$432.14B15.3B20.2A$431.14B17.4B$432.13B19.2A$432.13B19.A$434.2B.8B20.3A$437.8B22.A$436.9B$436.9B$434.2AB2.7B$433.A.AB2.8B$433.A6.8B$432.2A6.8B$439.6B2.B2A$439.7B.BA.A$440.6B4.A$440.6B4.2A$440.6B$439.8B$438.8B$438.9B$438.9B$437.10B$437.3B2A5B$436.4B2A5B$436.11B$431.2A.A12B$431.A.2A2.8B$438.7B$439.6B$439.6B$438.7B$439.8B$439.8B$436.AB.9B$435.A.A10B$435.2A.7B.3B$440.10B$440.10B$439.12B$440.11B$441.10B11.2A$444.8B10.A$444.8B8.A.A$443.10B7.2A$443.10B$442.13B$442.14B$441.15B$440.17B.2B$439.20B2A$439.20B2A$438.15B.B2A.2B$428.A8.15B2.B2A$428.3A5.5B2A10B$431.A4.5B2A10B$430.2A3.18B$434.20B$434.6B3A11B$433.9BA8B.B$430.B.9BA10B$429.2A20B$429.2A22B$430.20B.2A$430.18B3.A$431.16B5.3A$430.6B3.8B.2B4.A$429.6B5.9B2A$428.6B6.7B.B2A$427.6B6.9B.B$426.6B8.7B$425.6B9.5B$425.5B11.B.2B18$406.3A$408.A$407.A51$355.2A$356.2A$355.A30$321.2A$322.2A$321.A41$280.2A$281.2A$280.A30$246.2A$247.2A$246.A51$195.2A$194.A.A$196.A30$161.2A$160.A.A$162.A41$120.2A$119.A.A$121.A30$86.2A$85.A.A$87.A51$35.A$35.2A$34.A.A30$.A$.2A$A.A!

Finally, just for the record, here is my most recent attempt at a two-armed Geminoid design... straight out of my weblog posting from two years ago. This was an early prototype, and I haven't had time to redesign it from the ground up with Guam's new Spartan stable Herschel conduits in mind, or my various new period-doubler ideas. A two-armed design shouldn't be this much more than twice the size of a single-arm design.

Here's my current list of requirements for a Geminoid replicator unit:

1) The circuitry should contain only small still lifes separated from each other by a reasonable amount of space -- at least two cells, preferably three or more -- to make them easier to construct. One-arm Geminoids should probably not contain dead spark coils, tub-with-tail eaters, or anything else that’s awkward to construct with unidirectional slow salvos of gliders. Two-arm Geminoids can easily construct spark coils and tub-with-tails, so it’s okay to include these and any other useful mid-sized glider-constructible catalysts as part of the circuitry.

2) The RU accepts input signals on a single lane, in groups of two (for the one-arm Geminoid) or groups of four (for the two-armed Geminoid) to provide the information needed to run the construction arm(s). There are two possible input lanes on opposite sides of the pattern. The NW replicator unit uses one input and the SE replicator unit uses the other.

3) The circuitry sends copies of a pair of signals to each arm, in the form of synchronized glider pairs on lanes separated by 9 cells. This 9hd requirement is arbitrary to some extent: there are many other possible pairs of lanes that allow all the necessary elbow operations, and some of them may even allow for more efficient construction recipes. But most of them are asymmetrical with respect to the elbow block, so you can't use the same recipes if you're bending the construction arm in the other direction. Also the lanes are often closer together, so special glider inserters would be needed at the shoulder to generate certain glider pairs.

4) It has to be possible to adjust all of the construction-arm output gliders so that they leave the circuitry at the same time, as shown in the examples. The information is carried in the relative timing of the input signals, so in the current examples, individual gliders can be moved forward or backward in the input stream without destroying the circuitry. +/-40 ticks is a requirement, but +/-80 or +/-160 ticks or more would be better -- especially between the two pairs of gliders in the two-arm Geminoid; some interesting timing problems might show up there.

Large offsets occur in the -5(13), -11, and -6 recipes. Those recipes aren’t really needed to program a Geminoid successfully... but +/-160 or +/-180 ticks seems like a good target to shoot for.

In the main inter-RU signal channel, the distance between groups of signals is arbitrary and can be adjusted as necessary. In some of the RU examples I've posted, the distance is 497 ticks. 497 is the minimum distance between signals for any circuitry containing standard glider-to-Herschel converters, so any adjustments to glider timings will have to take that into account (by moving *all* later glider pairs or quadruplets back if the last glider in a group is delayed.)

Signal Speculations and Optimization Metrics:

It's worth considering other ways of transmitting information. For example, it's technically possible to build an RU that accepts signals in groups of three or five. The first signal would start a timer which would temporarily open each of the output channels in turn. Any of the following signals could then be omitted from the group. (This can't be done with the current design, where the gliders all have to be present -- only the timing can vary.)

A design like this would allow a wider range of elbow recipes. In many cases it's possible to get different glider output lanes or elbow movements if single gliders are allowed in the recipes as well as pairs. But I'm (wildly) guessing that the gains in construction efficiency couldn't possibly be more than 50%, whereas the the circuitry complexity would have to increase by well over a factor of two.

Obviously a two-channel or four-channel Geminoid could also use these extra pair-or-single-glider elbow recipes. But here again it's not clear to me that the gains in construction efficiency would make up for the signal-crossing and synchronization problems, to say nothing of the extra reflectors. So someone else would have to build one of these to prove that it's a competitive design...!

The actual signals could also change. Tandem gliders would certainly work, but that's kind of trivial (though it might allow tighter packing of signals, down to 250 ticks or so). A Geminoid using LWSS spaceships for inter-RU signalling is certainly within reach of current technology, but it seems like that would double or triple the size of the RU circuitry without solving any interesting problems (except it would be the first almost-orthogonal oblique spaceship instead of another almost-diagonal one.)

Calcyman briefly considered using Corderships as signals, since they travel at a third of glider-speed and so can be packed more closely together in the signal channel. But the extra circuitry required to accept and send Cordership signals (in either of two directions!) would overwhelm any gains in tape length, by a huge margin.

This brings up an important point. What I'm trying to do at the moment is design the smallest and simplest possible Geminoid spaceship. I haven't decided yet whether "smallest" should be measured by the number of cells between replicator units, or the total number of signals in the data channel, or maybe just the total number of ON cells in the spaceship.

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

Does anyone have suggestions on the right metric to use? I have to be careful here, because an LWSS-based design would certainly win a competition based on the traditional bounding box measurement. But it would actually be well over twice as long, because an LWSS travels at c/2 and thus needs more blank space on the tape. And more circuitry would be needed to receive and (especially) send the signals... at least until someone comes up with a nice clean direct Spartan Herschel-to-LWSS converter.

I've always wondered if a good metric to use would be the number cells that a spaceship (or glider gun, oscillator, etc) actually _uses_ for the entire period.

Yes, that would avoid arbitrarily favoring objects that just happen to have a low cell count in one phase, but take up a lot of space in other phases. If I'm understanding correctly, this would just mean reading the population in Golly after running the object for one complete cycle in LifeHistory or something similar.

One cycle for a Geminoid will take a long time to run, though, so I think I'd rather pick a quicker metric in this case! Geminoids are generally stable (because of the need to process signals at arbitrary relative distances), so the population doesn't change unless it's actively processing signals.

So maybe a good quantity for the minimization challenge would be pop(2RU+input), the population of the two replicator units plus the input signal stream. I'm thinking there's really no reason to care much about how tightly the signals are packed in the channel; for this size of pattern, nobody even notices zooming out one extra power of two more or less!

In fact, spacing the signal groups at a standard power-of-two distance (e.g., 512 ticks) might possibly allow Golly to run a Geminoid cycle significantly *faster* than it would with the inter-group distances obsessively minimized to 497 ticks or whatever.

In the unlikely event of a tie using this metric, the Geminoid with the highest speed wins; speed is Cartesian distance of travel divided by the period. If both are the same speed, _then_ the smallest bounding box wins.

-- Here's hoping I haven't grossly mis-estimated the efficiency of these 9fd glider-pair construction arms. It would be terribly embarrassing if the original Gemini beat my best efforts at one-armed or two-armed Geminoids, according to my own chosen measurement!

I've been starting to work on some helper scripts recently, to begin the process of defining named recipes for glider pairs aimed at an elbow. Various named recipes can then be strung together to build self-constructing circuitry, in either a one-armed or a two-armed Geminoid design.

Construction recipe signals go through three separate stages. The following describes the sequence for a one-armed Geminoid; a two-armed version is similar, except that gliders come in quadruples instead of pairs, and construction is much more efficient because it doesn't have to be done with slow salvos.

1) Pairs of gliders follow each other on the single Geminoid input lane, 573 ticks apart if the output gliders are lined up with each other exactly -- a shorter offset if the SW-lane glider is supposed to lead, or a longer offset if the NE-lane glider should come first. The distance between glider #2 in pair N and glider #1 in pair N+1 is arbitrary -- any distance over 496 will work. The only limitation is that in many cases the distance will have to be even, or will have to be odd -- because the intermediate targets often include period-2 objects, mostly blinkers.

2) Each glider signal is copied, and the first copy in each pair is delayed. Both copies, now in Herschel form, are routed to the construction arm, converted back to gliders, and sent toward the elbow more or less simultaneously, depending on the elbow recipe being used.

3) The glider pairs crash into the elbow. Generally a group made up of several pairs of gliders will move the elbow either forward or backward, and optionally may also send a new glider out at 90 degrees. These 90-degree gliders are sent one at a time toward a "hand" target, so a one-armed Geminoid will have to do all its construction with slow salvos -- the individual gliders will be several thousand ticks apart.

Here's a script that builds glider pairs using a reasonably compact representation of the recipes.

Then run the build-9hd-salvo-with-singletons.py script in Golly. It will find the named recipe in the clipboard and build it automatically. This "combined" recipe builds all of the currently known elbow moves and glider generators, one after the other.

There are all sorts of possibilities for generating more recipes. Paul Chapman's search utility stopped at four pairs of gliders; there are undoubtedly many more useful operations out there with five, six, or seven pairs of gliders -- longer push operations especially. At some point soon I'll probably have to write a search utility to help find other useful sequences -- elbow splitters, hand splitters, LWSS generators, and so on. I could attempt to reverse-engineer Paul Chapman's search code from 2010, but probably writing a new utility will be easier!

David wrote:I'm not going to help this project, but I have a question:

Why do you use only stationary patterns to make construction arms, etc?

A good question indeed! The short answer is that I'm limiting this Geminoid project to stable patterns because that's what I most enjoy working on... and also because it makes it significantly simpler to design and build a complete working B3/S23 replicator pattern.

Early plans for replicators -- or rather self-replicating universal computers -- used p30 glider guns, of course, because that was what was available in 1970. Stable circuitry capable of universal computation and construction didn't get discovered for another quarter of a century.

When I started looking at previous replicator-building speculations, it seemed pretty clear that building arbitrary glider salvos to construct p30 cirucitry would need 30 times as many glider-making recipes, if the construction machinery was itself p30. Certainly it was technically possible to do this, but it didn't seem elegant enough somehow. A completed self-constructing pattern would have been huge and ridiculously slow, and putting it together would have been a synchronization nightmare (for me, anyway). Once Herschel tracks came along, it just plain seemed much easier to build construction arms out of stable pieces -- all the really difficult synchronization problems disappeared completely!

My instinct on this seems to have been borne out by fch's amazing experiments with p30 self-construction in 2009-2011. The entire Gemini spaceship is only 4+ million cells on a side, whereas fch's sample pattern for constructing just a couple of glider guns using p30 streams is about 28 million cells diagonally.

Anyway, in 2004 when Paul Chapman finished the first prototype stable construction arm, it still looked as if all we'd ever be able to do is test the pieces separately (in Life32) and then write some kind of special-purpose simulator to show what the pieces would do over very long time scales if we put them together just right.

In 2005 when Golly came along, it suddenly started to seem possible to build a replicator small enough that one could actually watch it run through a complete construction cycle. In a sense Golly is exactly that kind of simulator -- the general-purpose hashlife algorithm turned out to be powerful enough that no custom shortcuts were needed to make the Gemini spaceship fly.

My hope is to eventually be able to build a Geminoid that's small enough to run much more quickly than a Gemini -- possibly all the pattern's hash tiles might even fit in a PC's memory with no loss from garbage collection, so after a few complete construction cycles the simulation speed would "run away" arbitrarily fast... we'll see how Moore's Law does with making more memory available, in the next few years!

Stable circuitry still seems like far and away the best bet for this kind of thing -- fewer hash tiles for the basic replicator units, by a factor of 30 at least, probably more since most designs would include very high-period guns.

I'm getting to the stage where I want to build a sample self-destruct mechanism for one of my small Geminoid replicator units. Would anyone care to contribute some good one-time glider splitters? Last week I came up with a pure Blockic modification of my old pinwheel design:

This doesn't even scratch the surface of what's possible, of course. Clearly with enough output gliders, we can approach a 1:1 ratio, e.g., with the (13,1)c/31 caterpillar reaction (see the bottom of the linked page):

The 11:6 block-to-glider ratio means the above is the most prolific clean Blockic glider splitter I know of offhand, for a dozen gliders or less. Can anybody find a better reaction -- 21 blocks or less, and a single glider collision results in a clean output of 12 gliders, nothing left over? EDIT: knightlife has collected a large number of much more efficient Blockic splitters.

Extra points for a smaller bounding box or easy adjustability, since I'd like to use these things to build self-destruct circuitry in cramped odd-shaped spaces between Herschel circuits. For the same reason, I'm also interested in small "0-degree turners" -- constellations that move a glider into an adjacent lane.

The sacrificial still lifes are all blocks in these examples, because

1) blocks are really easy to construct with slow salvos, even just a couple of cells away from each other;2) blocks are maximally symmetrical.

Also, the search space seems plenty big enough with just blocks, so why complicate things? Bi-blocks, by the way, should be avoided, and for the same reasons. They're definitely slow-salvo constructible, but significantly more expensive.

I have to admit, though, that I'm very curious about adding blinkers to the mix. Blinkers are equally easy to construct and move around with slow salvos. For Geminoid purposes, blinkers are just as symmetrical as blocks -- and because they're P2, the size of the search space effectively doubles every time you add another blinker.

So if anyone can get better efficiency with a blocks-and-blinkers pattern, I'd certainly love to hear about it! There's even an obvious name for this variation on constructible one-time circuitry: if all-blocks is Blockic, then blocks-and-blinkers must be Blonkic, and blocks-and-blinkers with maybe a few beehives or boats would be merely "Blonkish".

#C Four copies of a two-channels-in-series Geminoid replicator unit,#C including the switching system for converting one input channel#C into two, and a sample self-destruct trigger glider. This one glider#C will set off a chain reaction that destroys the replicator unit when#C its construction work is complete.#C Recipe optimization will allow at least one more still life to be removed,#C but dozens more will have to be added to complete a self-destruct#C mechanism.#C The white reflector is not part of the Geminoid pattern -- it just allows#C the sample construction-arm recipe to be fed into the channel.x = 1604, y = 1628, rule = LifeHistory1077.2C$1077.2C36$1131.A$1129.3A$1128.A$1128.2A2$1156.A$1156.3A$1159.A11.A$1158.2A9.3A$1075.A92.A$1075.3A90.2A10.2A$1078.A101.A$1077.2A99.A.A$1178.2A$1155.2A$1155.2A41.A$1188.2A6.3A$1102.2A84.2A5.A$1051.2A21.2A26.2A91.2A$1051.2A21.2A2$1194.2A$1145.2A42.2A3.2A$1145.A18.2A23.2A$1119.2A25.3A16.A$1118.A.A27.A13.3A45.2A$1056.2A6.2A52.A7.2A34.A47.A$1056.A7.A52.2A7.2A72.A7.A.A$1057.3A5.3A11.2A117.3A7.2A10.A$1059.A7.A11.2A116.A22.3A$1111.2E84.2A24.A14.A$1111.2E109.2A12.3A$1093.2A140.A$1048.2A43.A22.2E117.2A$1048.2A3.2A39.3A19.2E4.2E$1053.2A41.A10.2E13.2E$1083.2A22.2E125.2A$1084.A130.2A17.2A$1040.2A12.2A25.3A131.2A$1041.A5.2A5.A26.A27.2E7.2A$1038.3A6.2A6.3A51.2E7.A.A$1038.A18.A62.A$1120.2A2$1218.2A$1219.A$1216.3A$1216.A$1221.2A$1222.A$1219.3A$1024.A194.A$1024.3A48.A$1027.A38.2A5.3A$1026.2A38.2A4.A$1072.2A3$1071.2A$1051.2A13.2A3.2A158.2A$1023.2A26.2A13.2A163.2A$1023.2A3$1085.A14.2A$1083.3A14.A24.2A$1082.A18.3A6.2A13.A$1053.2A27.2A19.A6.2A11.A.A$1005.2A6.2A38.A.A67.2A$1005.A7.A41.A$1006.3A5.3A11.2A25.2A86.A$1008.A7.A11.2A103.2A6.3A$1133.2A5.A91.2A$967.2C100.2E69.2A90.A.A$967.2C73.2A25.2E21.2A140.A$997.2A43.A49.2A140.2A$997.2A3.2A39.3A93.2A$1002.2A41.A9.2A77.2A3.2A$1032.2A21.2A77.2A$1033.A$989.2A12.2A25.3A122.2A$990.A5.2A5.A26.A64.2A58.A$987.3A6.2A6.3A68.2A19.A48.A7.A.A$987.A18.A55.2A11.A.A15.3A13.2A3.2A27.3A7.2A10.A$1062.2A13.A15.A16.A3.A27.A22.3A54.2A$1077.2A28.3A5.3A24.2A24.A14.A38.2A$1107.A9.A49.2A12.3A26.2A$1180.A28.A.A$1180.2A27.A$1208.2A2$1179.2A52.2A$1160.2A17.2A31.2A19.A$1160.2A51.A17.A.A$1213.A.A15.2A$1214.2A4.A$1219.A.A$1219.A.A$1220.A10.2A$1163.2A66.A.A$1164.A68.A$1161.3A69.2A$1161.A56.2A$1166.2A51.A$1167.A48.3A$1164.3A49.A$1164.A4$1021.A$1019.3A$1018.A$1018.2A$1176.2A$1046.A129.2A$1046.3A$1049.A11.A$1048.2A9.3A$965.A92.A$965.3A90.2A10.2A$968.A101.A$967.2A99.A.A$1068.2A$1045.2A$1045.2A41.A$1078.2A6.3A$992.2A84.2A5.A91.2A$941.2A21.2A26.2A91.2A90.A.A$941.2A21.2A213.A$1179.2A$1084.2A$1035.2A42.2A3.2A$1035.A18.2A23.2A$1009.2A25.3A16.A$1008.A.A27.A13.3A45.2A$946.2A6.2A52.A7.2A34.A47.A$946.A7.A52.2A7.2A72.A7.A.A$947.3A5.3A11.2A117.3A7.2A10.A$949.A7.A11.2A116.A22.3A54.2A$1001.2E84.2A24.A14.A38.2A$1001.2E109.2A12.3A26.2A$983.2A140.A28.A.A$938.2A43.A22.2E117.2A27.A$938.2A3.2A39.3A19.2E4.2E139.2A$943.2A41.A10.2E13.2E$973.2A22.2E125.2A52.2A$974.A130.2A17.2A31.2A19.A$930.2A12.2A25.3A131.2A51.A17.A.A$931.A5.2A5.A26.A27.2E7.2A148.A.A15.2A$928.3A6.2A6.3A51.2E7.A.A148.2A4.A$928.A18.A62.A153.A.A$1010.2A152.A.A$1165.A10.2A$1108.2A66.A.A$1109.A68.A$1106.3A69.2A$1106.A56.2A$1111.2A51.A$1112.A48.3A$1109.3A49.A$914.A194.A$914.3A48.A$917.A38.2A5.3A$916.2A38.2A4.A$962.2A3$961.2A$941.2A13.2A3.2A158.2A$913.2A26.2A13.2A163.2A$913.2A3$975.A14.2A$973.3A14.A24.2A$972.A18.3A6.2A13.A$943.2A27.2A19.A6.2A11.A.A$895.2A6.2A38.A.A67.2A$895.A7.A41.A$896.3A5.3A11.2A25.2A86.A$898.A7.A11.2A103.2A6.3A$1023.2A5.A91.2A$959.2E69.2A90.A.A$932.2A25.2E21.2A140.A$887.2A43.A49.2A140.2A$887.2A3.2A39.3A93.2A$892.2A41.A9.2A77.2A3.2A$922.2A21.2A77.2A$923.A$879.2A12.2A25.3A122.2A$880.A5.2A5.A26.A64.2A58.A$877.3A6.2A6.3A68.2A19.A48.A7.A.A$877.A18.A55.2A11.A.A15.3A13.2A3.2A27.3A7.2A10.A$952.2A13.A15.A16.A3.A27.A22.3A54.2A$967.2A28.3A5.3A24.2A24.A14.A38.2A$997.A9.A49.2A12.3A26.2A$1070.A28.A.A$1070.2A27.A$1098.2A2$1069.2A52.2A$1050.2A17.2A31.2A19.A$1050.2A51.A17.A.A$1103.A.A15.2A$1104.2A4.A$1109.A.A$1109.A.A$1110.A10.2A$1053.2A66.A.A$1054.A68.A$1051.3A69.2A$1051.A56.2A$1056.2A51.A$1057.A48.3A$1054.3A49.A$1054.A8$1066.2A$1066.2A12$1067.2A$1067.A.A$1069.A$1069.2A4$899.2A$898.A.A$898.A$897.2A2$1057.2A$1057.2A$1045.2A$1044.A.A$1044.A$1043.2A2$1068.2A$1047.2A19.A$1048.A17.A.A$1048.A.A15.2A$1049.2A4.A$1054.A.A$1054.A.A$1055.A10.2A$1066.A.A$1068.A$1068.2A$1053.2A$1054.A$1051.3A$1051.A3$1535.2A$1535.A$1533.A.A$1491.A37.2A2.2A$1465.A9.A15.3A35.2A$1465.3A5.3A18.A$1468.A3.A20.2A11.2A$1467.2A3.2A32.2A8$1481.2A52.2A$1481.2A34.2A16.A.A$1469.2A45.A.A18.A$1468.A2.A44.A20.2A$1463.2A4.2A44.2A4.2A$1462.A.A55.A.A$1462.A57.A$1461.2A56.2A7.2A$1471.2A55.2A$1471.A$1472.3A$1474.A$1479.2A60.A$1480.A58.3A$1477.3A58.A$1477.A60.2A3$1473.2A$1474.A$1471.3A$1471.A2$1538.2A$1538.A$1536.A.A11.2A$1536.2A12.A$1548.A.A$1544.2A2.2A$1544.2A4$1543.2A$1543.2A4.2A$1549.2A5$1480.2A$1480.A$1478.A.A75.A$1436.A37.2A2.2A74.3A$1410.A9.A15.3A35.2A77.A$1410.3A5.3A18.A113.2A$1413.A3.A20.2A11.2A$1412.2A3.2A32.2A5$1558.2A$1558.A$1556.A.A$1426.2A52.2A74.2A$1426.2A34.2A16.A.A$1414.2A45.A.A18.A$1413.A2.A44.A20.2A58.2A$1408.2A4.2A44.2A4.2A73.A.A$1407.A.A55.A.A73.A$1407.A57.A74.2A$1406.2A56.2A7.2A$1416.2A55.2A$1416.A141.2A$1417.3A138.A.A$1419.A140.A$1424.2A60.A64.2A7.2A$1425.A58.3A64.2A$1422.3A58.A$1422.A60.2A3$1172.C18.C$1172.3C6.2C6.3C$1175.C5.2C5.C352.2A$1174.2C12.2C352.A$1542.A.A$1483.2A58.2A$1175.2C306.A$1175.2C3.2C299.A.A11.2A$1180.2C299.2A12.A$1493.A.A$1489.2A2.2A$1489.2A$1162.C$1150.C11.3C$1148.3C14.C$1132.C14.C16.2C322.2A$1132.3C12.2C339.2A4.2A$1135.C358.2A$1134.2C$1565.2A$1565.A$1135.2C426.A.A$1135.2C17.2C269.2A136.2A$1154.2C269.A113.2A$1423.A.A75.A37.2A$1381.A37.2A2.2A74.3A$1355.A9.A15.3A35.2A77.A$1355.3A5.3A18.A113.2A31.2E$1358.A3.A20.2A11.2A133.2E$1151.2C204.2A3.2A32.2A126.A$1151.C372.3A14.2A$1152.3C372.A14.A$1154.C371.2A11.3A$1148.2C330.2A50.2E5.A$1148.C332.A50.2E$1149.3C329.A.A$1151.C330.2A$1128.11D6.11D2.2D9.2D6.5D189.2A52.2A$1128.13D4.11D2.3D7.3D4.9D187.2A34.2A16.A.A107.2E$1131.2D5.4D3.2D11.4D5.4D3.4D3.4D174.2A45.A.A18.A71.2A34.2E$1131.2D7.2D3.2D11.5D3.5D3.2D7.2D173.A2.A44.A20.2A53.2A15.2A25.2E$1131.2D8.2D2.2D10.C2D.3D.3D.2D2.2D9.2D167.2A4.2A44.2A4.2A68.A.A42.2E$1131.2D8.2D2.2D8.3C2D2.5D2.2D2.2D9.2D166.A.A55.A.A68.A48.2E$1129.2C2D8.2D2.2D7.C3.2D3.3D3.2D2.2D9.2D166.A57.A69.2A48.2E$1128.C.C2D5.2C.2D2.2D7.2C2.2D4.D4.2D2.2D9.2D165.2A56.2A7.2A$1128.C2.2D5.2C.2D2.2D11.2D9.2D2.2D9.2D175.2A55.2A$1127.2C2.2D8.2D2.7D6.2D9.2D2.2D9.2D175.A$1131.2D8.2D2.7D6.2D9.2D2.2D9.2D176.3A134.2A47.2A$1131.2D8.2D2.2D11.2D9.2D2.2D9.2D178.A135.A47.2A$1131.2D8.2D2.2D11.2D9.2D2.2D9.2D183.2A60.A68.A.A$1131.2D8.2D2.2D11.2D9.2D2.2D9.2D184.A58.3A69.2A$1131.2D8.2D2.2D11.2D9.2D2.2D9.2D181.3A58.A$1131.2D8.2D2.2D11.2D9.2D2.2D9.2D181.A60.2A$1131.2D7.2D3.2D11.2D9.2D3.2D7.2D$1131.2D5.4D3.2D11.2D9.2D3.4D3.4D299.2A45.2A$1128.13D4.11D2.2D9.2D4.9D299.A.A46.A$1128.11D6.11D2.2D9.2D6.5D301.A48.A.A$1137.2C343.2A7.2A40.2A$1136.C.C352.2A$1136.C$1135.2C291.2A$1428.A$1426.A.A11.2A$1426.2A12.A$1438.A.A$1434.2A2.2A61.2A$1434.2A65.A27.2A$1499.A.A26.A.A$1499.2A27.A$1147.2C378.2A$1147.2C284.2A102.2A$1159.2C272.2A4.2A96.2A$1159.C.C277.2A40.A72.2A46.2C$1161.C319.3A70.A.A45.2C$1161.2C321.A71.A$1483.2A28.2A32.2A7.2A$1136.2C375.A33.2A$1137.C19.2C211.2A139.A.A$1137.C.C17.C212.A136.2A2.2A$1138.2C15.C.C210.A.A75.A60.2A$1150.C4.2C169.A37.2A2.2A74.3A45.2E$1149.C.C148.A9.A15.3A35.2A77.A48.2E$1149.C.C148.3A5.3A18.A113.2A$1138.2C10.C152.A3.A20.2A11.2A163.2A4.2A23.2A$1137.C.C162.2A3.2A32.2A163.2A4.2A24.A$1137.C400.A.A$1136.2C401.2A$1151.2C329.2A$1151.C330.2A$1152.3C293.2A$1154.C293.A$1446.A.A88.2A$1135.2E179.2A52.2A74.2A90.A$1136.2E178.2A34.2A16.A.A152.2A11.A.A$1135.E168.2A45.A.A18.A115.2A6.A29.A12.2A$1303.A2.A44.A20.2A58.2A54.2A6.3A27.A.A$1298.2A4.2A44.2A4.2A73.A.A65.A27.2A2.2A$1297.A.A55.A.A73.A66.2A31.2A$1297.A57.A74.2A74.2A39.2A$1296.2A56.2A7.2A141.2A39.2A$1306.2A55.2A$1306.A141.2A82.2A$1307.3A138.A.A75.2A4.2A$1309.A140.A75.2A$1314.2A60.A64.2A7.2A$1315.A58.3A64.2A46.2A$1312.3A58.A116.A$1312.A60.2A115.A.A$1491.2A$1527.2A$1526.A.A$1526.A$1431.2A92.2A$1432.A$1432.A.A$1373.2A58.2A$1373.A$1371.A.A11.2A100.2A$1371.2A12.A100.A.A$1383.A.A100.A$1379.2A2.2A100.2A$1379.2A114.2A$1495.2A$1512.2A$1512.A.A$1378.2A134.A$1378.2A4.2A119.2A7.2A$1384.2A119.2A2$1455.2A$1455.A$1453.A.A$1453.2A$1429.2A$1391.A37.2A64.2A$1389.3A104.A$1388.A107.A.A$1388.2A31.2E74.2A$1421.2E$1414.A$1414.3A14.2A$1417.A14.A$1416.2A11.3A63.2A$1370.2A50.2E5.A66.A$1371.A50.2E59.2A11.A.A$1371.A.A110.A12.2A$1372.2A110.A.A$1485.2A2.2A$1425.2E62.2A$1389.2A34.2E$1372.2A15.2A25.2E$1371.A.A42.2E$1371.A48.2E68.2A$1370.2A48.2E62.2A4.2A$1484.2A3$1389.2A47.2A$1390.A47.2A$1390.A.A$1391.2A92.2A$1484.A.A$1484.A$1483.2A$1374.2A45.2A$1373.A.A46.A$1373.A48.A.A$1372.2A7.2A40.2A$1381.2A7$1391.2A$1391.A27.2A$1389.A.A26.A.A$1389.2A27.A$1417.2A$1427.2A$1427.2A$1371.A72.2A46.2C$1371.3A70.A.A45.2C$1374.A71.A$1373.2A28.2A32.2A7.2A$1403.A33.2A$1401.A.A$1397.2A2.2A$1397.2A$1382.2E$1382.2E2$1396.2A4.2A23.2A$1396.2A4.2A24.A$1428.A.A$1429.2A$1372.2A$1372.2A3$1427.2A$1428.A$1415.2A11.A.A$1378.2A6.A29.A12.2A$1378.2A6.3A27.A.A$1389.A27.2A2.2A$1388.2A31.2A$1396.2A39.2A$1396.2A39.2A2$1422.2A$1416.2A4.2A$1416.2A2$1379.2A$1380.A$1380.A.A$1381.2A$1417.2A$1416.A.A$1416.A$1415.2A5$1377.2A$1376.A.A$1376.A$1375.2A$1385.2A$1385.2A$1402.2A$1402.A.A$1404.A$1395.2A7.2A$1395.2A7$1385.2A$1386.A$1386.A.A$1387.2A3$1321.2A$1322.A$1319.3A63.2A$1319.A66.A$1373.2A11.A.A$1374.A12.2A$1374.A.A$1375.2A2.2A$1379.2A4$1380.2A$1374.2A4.2A$1374.2A6$1375.2A$1374.A.A$1374.A$1373.2A49$905.E$905.2E$904.E.E130$773.E$773.2E$772.E.E250$521.E$521.2E$520.E.E126$393.2E$392.E.E$394.E147$244.E$244.2E$243.E.E242$3E$2.E$.E!

This is just a minimal sample pattern to show how recipe gliders will move through the reflectors. When the diagonal Geminoid spaceship is operating, there will only be a brief time when four complete R.U.s are in existence simultaneously. The NW and SE R.U.s will be separated by millions of cells diagonally, same as the original Gemini, to allow enough space in the channel for a complete construction recipe (folded in half in the middle).

The first odd feature of this design is a glider generated by a one-time turner in Circuit A (the northeast Herschel track), which switches on Circuit B (the southwest circuit) when all the Channel A gliders have gone by. Right after that, another one-time turner generates a self-destruct signal glider and sends it through Circuit B to destroy the parent R.U. (The destruction doesn't happen yet; there's just a random small explosion for now -- the self-destruct sequence is still a work in progress.)

Finally, the current sample recipe constructs just a single glider, which switches off Channel A at the very end of the construction cycle when Channel B gliders start arriving in Circuit A -- i.e., suppressing gliders entering the northeast circuit that have already been processed by the southwest circuit. This all sounds more complicated than it is -- the whole switching system is just the seven yellow blocks, plus the three glider pairs in the recipe.

This is something of a trial run for a more generalized adjustable oblique-angle Geminoid, which will have to contain about twice as much circuitry to correctly handle inputs from the NW and SE -- and/or a first-draft linear replicator, which would need some more switching and recipe-copying circuitry but might be able to get along without any self-destruct circuits (!). With a self-destruct option, a Geminoid-based pattern that replicates in one dimension could produce a standard sawtooth population, along the lines of Wolfram's Rule 60.

Seems like there ought to be a way to use shorter Herschel-track segments to produce Channel A and Channel B output gliders on lanes separated by nine half-diagonals, but even with Hersrch's help I couldn't locate anything that quite worked. Can anyone beat 100 still lifes, or 579 ON cells, for this basic design? There are definitely advantages to ending both tracks with Fx119 inserters, by the way, because that leaves plenty of room for the parent replicator's construction elbow to move past the inserters when they're being built.

There's still a good amount of work to be done to program this replicator unit's construction arm, but there seem to be no serious roadblocks on the horizon so far.

dvgrn wrote:The 11:6 block-to-glider ratio means the above is the most prolific clean Blockic glider splitter I know of offhand, for a dozen gliders or less. Can anybody find a better reaction -- 21 blocks or less, and a single glider collision results in a clean output of 12 gliders, nothing left over?

This similar method gets n-1 gliders from n blocks if n>1, approaching a 1:1 ratio for large n.So 12 gliders will need 13 blocks:

This is a preliminary test of programmable Conway's-Life circuitry construction using just one construction arm, as in the original prototype universal constructor, instead of two arms as in the Gemini spaceship. One-arm construction is much slower, but the replicator units can be very significantly smaller. It's unclear yet whether the construction inefficiency completely cancels out the size efficiency, but it seems worth doing a few more experiments, at least!

The library I'm using is Paul Chapman's P1 slow-salvo block-move table from several years ago. Paul is working on a P2 version of the table now, so it will be interesting to see how much more efficiently the construction can be done with P2 intermediate constellations.

knightlife wrote:This "Blonkic" solution achieves a 1:1 ratio by using just one blinker in the mix:

I think I am going to have to seriously consider including blinkers in my construction/destruction toolkit. Among other things: I don't have a good clean metric yet, but I'm getting the sense that a blinker would be significantly more efficient as a construction-arm "hand" than a block is.

The biggest reason is the wider variety of targets you can get by hitting a blinker with a single glider. A block can just give you another block, a pi explosion, or a honeyfarm. A blinker, very similarly, can give you another blinker, a pi, or a traffic light -- but also a pond, loaf, ship, or a couple of huge explosions that can maybe be modified into something useful by nearby junk.

Blinkers are more common in random ash than anything else (even blocks!) and are just as symmetrical as blocks, if you count both phases. The other super-symmetrical small objects (tubs and ponds) are much less common as ash objects, though if you allow slightly bigger constellations maybe honeyfarms and traffic lights could join the supersymmetry club. Pulsars could join, too, but they're relatively uncommon again.

On the destruction side, blocks seem to have a tendency to suppress active reactions, rather than to explode. You can replace the eaters in most Herschel conduits with blocks -- the conduit will still work, but the blocks get used up. That wouldn't work with blinkers in most cases; blinkers have much more of a tendency to explode, since they come pre-loaded, so to speak, with two birth sites every generation.

So I'll be interested to see what happens when I try seeding a Geminoid replicator unit with blinkers as well as blocks. I might be able to come up with a clean vanish reaction for the whole R.U., using significantly fewer additional "seed of destruction" objects... or I might just spend a lot more time searching through blinker-induced explosions, looking for clean annihilations.

I've written another script that translates the lane list into the above 1000-glider construction. In this case the task is particularly trivial, because all the intermediate constellations are stable, so I don't even have to worry about adjusting the phases of the gliders. Just have to put them on the right input lanes, with plenty of space between them.

The 1:1 ratio can be exceeded if a glider reaction with two blinkers can produce a single glider and a free Herschel. If the Herschel does not have interference then three blinkers could produce four gliders. The blockic counterpart to this reaction was used to produce a glider and a free Herschel from the initial collision with the first two blocks in my previous post.

It has a 1:1 block-to-glider ratio and will work for 7 or more gliders. You can see the incoming glider is barely getting by one of the blocks in the 7-glider case shown. The key to getting one more glider out of these patterns is the Herschel to 5G which uses only 4 blocks.

@dvgrn:Maybe you can get by with Blockic patterns only and avoid the phase issue with blinkers:I recently found this 6-Block pattern that makes a very nice splitter with a 1:1 ratio of blocks to gliders:

I am now wondering if there are Blockic splitters with 4 or 5 blocks that can maintain the 1:1 ratio. I have been searching for splitters for a couple of weeks now and realize that throwing in a blinker makes the search easier, but there may be enough Blockic solutions to do the destruction task you are proposing. Although the search is less fruitful, there really is no reason that Blockic splitters can't exceed the 1:1 ratio. I haven't seen an example of one yet, but if someone has then please post it!

EDIT:Has this been found before?4 gliders from 3 blocks Blockic splitter:

I'm pretty sure I've seen the G+2B4 -> H + G part before, but the H+B4->G is definitely new to me -- I've been admiring it in the G+5B4->7G on your Blockic Splitter thread. [This "B4" shorthand is from Paul Chapman, by the way -- conveniently, B3 is a blinker, B4 is a block, B5 is a boat, and B6 is a beehive.]

I'm trying to get back to work now on the self-destruct circuitry for the new Geminoid. Will almost certainly use this G+3B4->4G (unless something better comes along).

Time has been in short supply for me recently, and this will continue for at least into summer. So my next post on this thread will be a shameless attempt to get someone else to do the fun part for me: adding blocks-and-whatever to the base circuitry so that it can all be cleanly annihilated by a single input glider -- and the more fireworks along the way, the better!

I've written a set of Python scripts that can be used to semi-automate a search for reasonably efficient annihilation reactions -- but there will still be a lot of subjective judgment calls that I can't figure out how to include in a script.

The above is a quick and very imperfect trial run at creating self-destruct circuitry for a diagonal Geminoid spaceship, using Paul Chapman's Seeds of Destruction puzzle game. The actual self-destruct fireworks start at about 9500 ticks.

It's certainly possible to adjust this seeding to shoot down the last few still lifes, just by adding a few more glider splitters in the far southeast corner. But clearly it's possible to use significantly fewer seeds and get faster and easier-to-build self-destructing circuitry. It didn't take me very long to come up with this version; it's incomplete (and not really worth completing) because I got careless halfway through and left behind a hard-to-reach still life in the middle of the pattern.

Anyone care to contribute a better solution? It's really worth giving the Seeds of Destruction program a try, even if you don't attempt the full puzzle -- you'll never look at Life quite the same way again...!

What we really need for the Geminoid is a set of four slow-salvo constructions, one from each direction.

With "Blockic" techniques it's probably possible to construct an isolated snark reflector with a slow salvo, but this would be quite large and complex, and wouldn't really allow for other patterns in the vicinity.

137ben wrote:So, it appears we now have a working glider synthesis and a glider destruction for the snark. That should lower the size of the geminoid significantly.

Oddly enough, it's unlikely to have much effect (in my opinion, but please feel free to prove me wrong!) Some rough back-of-the-envelope calculations yesterday made me think that it's probably between two and ten times more expensive to construct a single Snark with a one-armed Geminoid, than to construct an entire Silver reflector.

So if the only criterion for "smaller" is the bounding box of the replicator unit, then yes, we can reduce that somewhat. Not as much as you might think, though, because we still need a Herschel-based glider inserter or two and various switching and signal-duplicating circuitry. In any case a 50%-smaller RU that needs a 50-times-longer recipe to build doesn't seem like a good tradeoff.

MikeP wrote:What we really need for the Geminoid is a set of four slow-salvo constructions, one from each direction.

With "Blockic" techniques it's probably possible to construct an isolated snark reflector with a slow salvo, but this would be quite large and complex, and wouldn't really allow for other patterns in the vicinity.

Exactly! The 20 Spartan catalysts in the Silver reflector are really cheap to build piece-by-piece in any orientation, and you can trivially build other Spartan things nearby at the same time; nothing gets in the way of anything else. And with Silver reflectors you also get -- for free! -- multiple output signals from one input signal.

But when you have to synchronize up to seven gliders at a time, as in the current Snark synthesis, you have to build big explosive glider seeds, detonate them to get the next incremental construction reaction, then build another seed for the next increment.

As MikeP says, it's a different problem for each of the four orientations, unless you build a really huge 50-glider Snark seed which might be 500 still lifes or so, sprawled over a huge area. And you'd have to work extra hard to build two Snarks anywhere near each other. It can be done... but really, why bother?

I haven't done the cost analysis for two-armed Geminoids, because I'm not so interested in building one of those at the moment, but offhand I would think the relative construction expense would be in a similar range.

There's a lot that could be done to make the Snark synthesis more slow-salvo-friendly. Just for example, you wouldn't build blinkers or ponds or blocks by colliding two gliders. Much better to produce them directly as pieces of junk on the edge of the construction envelope, while you're moving the "hand" around.

Unfortunately a few of the big multi-glider reactions look pretty difficult to find a cheap slow-salvo equivalent for; there's lots of research in this area that just plain hasn't been done yet (!).

codeholic wrote:If one was about to find a snark recipe for 2 slow salvos, which one of the three possible orientations of the outcome would be most useful for building a geminoid? ...The same question for a single slow salvo (with four possible options).

Could be any of them, I'm afraid. In both cases, the only way to know for sure is to build a complete working Geminoid that's significantly smaller than the one currently on the Seeds of Destruction drawing board, with the help of a Snark or two, and then see which way the Snarks are pointing compared to the orientation of the construction arm(s).

There are so many possible ways for a Snark to be helpful in Herschel circuitry that it's hard to even describe them all. They can get gliders on to the right output lanes, or make input gates or signal splitters smaller and more efficient, or help clean up not-quite-perfect Herschel conduits that happen to put an output Herschel in just the right place at the right time.

So there's some Geminoid design that uses a Snark in each orientation. At the moment I'm not very interested in any of them, because I'm reasonably sure they'll all wind up being much harder to create a slow-salvo recipe for, and when you include the recipe glider stream(s) they'll all have a significantly bigger bounding box than the non-Snark versions.

-- But that's a lousy answer. Instead I should just build a sample Geminoid-with-a-Snark, and see which direction the Snark is facing! Here's a random attempt:

In this design, the unidirectional slow salvo would come from southeast of the Snark.

But this design isn't really any good, for several reasons:

First, the southeast circuits are wired up backward, a mirror image of the northwest circuits. So this Geminoid is only good for diagonal travel -- but in its current form it's asymmetrical, designed for oblique travel. A non-functional copy of the SE circuits needs to be added in the NW, and vice versa -- and the connections need to be swapped, which really invalidates the whole SE half of the pattern, including the Snark.

Second, some minor switching circuitry would need to be added to keep reflector #1's output turned off until the first glider hits reflector #2 -- similar to what's been done in the Demonoid. The blocks I've thrown in are just a stopgap to show that the timing of the glider pair ends up the same in the NW and SE construction arms.

Third, and worst: the Snark isn't really needed! A short Herschel track added to the Silver reflector could produce an equivalent glider much more cheaply.

If anyone can figure out a specific Geminoid design where a Snark might actually be worth the investment, please post it! I'm very pro-Snark, really; some of my best friends are Snarks. I'm just skeptical about this particular application. I think Snarks might possibly come in handy in some special-case Geminoids --if you wanted to align replicator units precisely to large power-of-2 boundaries, for more efficient Hashlife simulation, for example... but there again, I'm not really convinced that the savings would be worth the trouble.

loc=20for lane in rlist: try: ilane = int(lane) except: g.show("WARNING -- Conversion failed for string:" + lane+":") continue if ilane%2==0: g.exit("Invalid recipe. Optional name should be followed by a colon at the beginning. Glider lanes should all be odd-numbered, and separated by E or O depending on parity.") g.putcells(g.parse(phaselist[parity]),loc+(int(lane)-1)/2,loc) loc+=150 parity=1 if parities[0]!=baseparity else 0 parities=parities[1:]

g.setstep(6)g.setmag(2)g.setpos("0","0")

- The initial target is a block.

- Lane numbers are symmetrical around 0, so you could get a mirror-image recipe by negating all the lane numbers.

- There are no even lanes... or rather, gliders can't travel on the even lanes, though mirror-symmetric diagonal spaceships could.

- An even-phase glider is always sent first. After that, a comma signals that the next glider should be even-phase, and a semicolon means it should be odd-phase.

There's one odd shortcut: if you copy to the clipboard a recipe that looks like this (for example) --

e8Ob:E-9 E-13 E-27 E3 O-1 O-7 E-11 O3 E-17 E-27

-- the script will automatically build a recipe in a layer named "e8Ob", without popping up a dialog box. Otherwise (i.e., if there's no ":" character in the clipboard defining a named recipe) you have to type or paste in your lane list into the input field.