A conduit is a collection of catalysts that creates an output active object in a certain position in response to an input object and can do so repeatedly. One example is Fx158, which outputs a Herschel in one position in response to an input Herschel in a different position and with a different orientation. (The Herschel is then eaten by a block in this example in order to prevent the next Herschel from crashing into its ash.)
Conduits can also output a different object from the input object, but this is not required. Conduits are useful for transmitting signals for circuitry and computation. This tutorial will focus on stable conduits, i.e. conduits where the exact timing of the input does not matter.
- 1 Prerequisites
- 2 Introduction
- 3 Other tips
- 4 Using search programs
- 5 Notes
- 6 References
If you haven't already (and you aren't familiar with basic catalyses), read Tutorials/Catalyses first.
Here are some important definitions:
- A transparent object is an object that is consumed then restored by a reaction.
- A sacrificial object is an object that is consumed by a reaction and not restored. It must be restored using an additional mechanism in order for the conduit to be able to be used again.
- A conduit's step time is the number of generations that elapse between when the input object reaches its canonical form and when the output object reaches its canonical form.
- A conduit's repeat time is the minimum number of generations for which entering the active object twice separated by fewer generations in between would cause the conduit to not function properly.
- An active object's canonical form is a particular predecessor of that evolutionary sequence that is used as a reference for determining step time, displacement, and relative orientation.
- An elementary conduit cannot be split into separate pieces so that each piece is a complete conduit by itself. A composite conduit can be split into two or more separate conduits.
There are several basic rules for making and using conduits. The most important are the following:
- Don't rely on transparent or sacrificial objects.
- Up-conversion is more difficult than down-conversion.
- Always try to move the active region to somewhere new.
- Clearance matters.
Here is a pi-to-LWSS conduit that demonstrates all four of these rules. The basic reaction is the following:
A Herschel is perturbed by some catalysts then collides with a block, resulting in a LWSS. Because the reaction does not restore the block, the block is sacrificial. (If the reaction consumed the block then later restored it, the block would be transparent.) In order for the conduit to be able to be used repeatedly, the block must be restored by the same reaction that produces the Herschel. Thus, the rule of not relying on transparent or sacrificial objects has been violated. In addition, because the LWSS exits in the same direction that the Herschel comes from, the rule of moving the active region to somewhere new has been violated. Because of this, getting the Herschel into the proper position will be difficult. Here is the complete conduit.
The requirement that no catalysts may be placed in the LWSS's path restricts the possibilities for what conduits may be used to insert the Herschel. This means that the only conduits available may be suboptimal, and indeed, the pi-to-century conduit has a high step time, which contributes to the high repeat time of the overall pi-to-LWSS conduit. One of the reasons that the pi-to-century conduit has a high step time is because it breaks the rule of always moving the active region to a new position; instead, the activity goes forward, stops, goes back, hits the snake, then resumes forward movement.
The sacrificial object also complicates matters. Conduits that can make the century more quickly do exist, but most of them do not emit a glider in addition. The requirement that one of the conduits used to restore the Herschel emit a glider in order to be used to restore the block also complicates matters.
So why use that reaction for creating LWSSes instead of a better one? The answer is: There are currently no known better reactions. LWSSes are relatively rare compared to R-pentominoes and other common active objects, so not many reactions are known that create LWSSes from active objects commonly used in conduits. Of the few such reactions known, none result in a better conduit in terms of repeat time. For example, this Herschel-to-LWSS conduit is even worse in terms of moving the active object to a new location and therefore has an even higher repeat time. Because LWSSes (and the other XWSSes as well) are so rare, they are more difficult to create, so converters that create them from easier-to-create objects are known as upconverters.
However, while XWSSes are harder to make, they (as well as gliders) are also harder to extract signals from. The reason for this is because gliders and XWSSes are small and only move forwards, not outwards. For this reason, any method of perturbing gliders causes all of their cells to die,[note 1] so all glider-accepting conduits have the glider crash into an object to produce chaos. This object must be restored in order for the conduit to be able to be used again, and any arrangement of catalysts is extremely unlikely to put the same object in that exact location with the same orientation, especially with no other junk. For example, in his effort to find what turned out to be a record smallest and fastest glider-to-glider conduit, Dave Greene spent multiple weeks trying thousands of arrangements of catalysts to restore a single transparent block (The conduit uses two transparent blocks, but one of the transparent reactions was already known.) before finding one that worked, and this was in fact lucky, as most of the time, no arrangement of catalysts will work. Because restoring transparent objects is so difficult/unlikely, it is a bad idea to attempt to restore a transparent object—unless the result would be amazing, very useful, novel, and thus worth it (and even then, one must be prepared for disappointment). XWSSes are little better. When perturbed, the LWSS might coalesce into a block or blinker instead of completely vanishing, so any conduit accepting it requires a transparent object. The MWSS might turn into an object requiring slightly more cells, such as a loaf or a glider, but turning the glider into another signal still requires a transparent reaction. The HWSS is the only XWSS with any hope of not stabilizing within ten generations of being perturbed, but because it does not have a sideways movement/expansion mechanism, it must be perturbed from the front, so with its forwards movement mechanism destroyed, and no sideways movement mechanism, the resulting junk cannot move to a new location but instead tends to stay in the same place, possibly destroying one or more of the catalysts used to perturb it. Not wanting the chaos to destroy catalysts that one has already used is another reason why one should try to make sure that the chaos is always moving to a new location. In terms of how easy it is to convert the signal into something else, here is a ranking of potential outputs from most difficult to easiest. The farther down any output is, the better.
- a still-life or blinker
- a glider or XWSS
- a relatively short-lived active region (e.g. bun)
- any long-lived chaos
- long-lived chaos especially well-suited for conduits (e.g. Herschel because it does not drop any hard-to-delete still-lifes early on, splits into two regions traveling in opposite directions, consistently travels in the general same direction before then, and releases a glider early on that can be used)
Besides the XWSSes, more useful outputs (in terms of how easy it is to find a reaction for appending another conduit to the end) tend to be rarer/more difficult to create. (However, gliders and XWSSes have another advantages, such as not being picky about the exact position and being useful for adjusting timing.)
As for the importance of clearance, the following B-to-Herschel conduit can let the LWSS through and emits an extra glider.
However, it cannot be used to make the Herschel because one of the eater 2s in that conduit and one of the fishhooks in the next section would get in the way of each other, so the two conduits couldn't be used together. Another way to say this is that they don't have the necessary clearance to be able to be used with each other. Clearance is always a matter of both conduits. For example, this composite century-to-B has fair input clearance.
However, due to a lack of century-making conduits with good output clearance, the only possible proceeding conduit is this:
It has good output clearance but horrible input clearance. In fact, the only (known) way to insert the pi requires a sacrificial object, which leads to bulky conduits with high repeat times.
In addition, sometimes two conduits have more than enough clearance on one side but not enough clearance on the other side. An example of this is the B-to-Herschel conduit and the Herschel-to-LWSS partial from earlier.
Finding new conduits
If you have a partial or complete conduit, it is recommended to check the Elementary Conduits Collection, which can be downloaded here (in two forms), in order to make sure that what you have found is new before posting it or potentially wasting time completing it.
Another strategy that you may want to use in order for the conduits that you find to have an increased chance of being new is to focus on investigating active regions that have not been investigated as much, such as the two-glider octomino, instead of regions for which many conduits have already been found, such as the Herschel. Lists of the most common active objects can be found here and here, and even if a region's conduits are omitted from the Elementary Conduits Collection, they may still be available to those who ask; looking at the conduits that create that region can be useful in order to get a sense of which direction(s) the active object can come from in order to be able to ensure that the conduits that one makes accepting that object have realistic input clearance.
A recommended process
Here is a summary of my typical conduit-finding process:
- Place a catalyst where it might work.
- Run the pattern and see whether the catalyst is successful or gets destroyed.
- If the catalyst gets destroyed, observe exactly how it fails and try a replacement catalyst.
- If no catalysts are destroyed, the activity moves to a new region, and no annoying still-lifes or blinkers are left behind, then I keep that catalyst and repeat the process (waiting until the active region has good enough clearance before placing any more catalysts) until all of the activity is well-defined, accessible active regions (including gliders and XWSSes). Otherwise, I remove that catalyst and try another catalyst placement.
Sometimes, especially before I place any catalysts, I will run the pattern without stopping to get a sense of when I should start trying catalysts for maximum clearance and whether or not there are any well-defined regions that I could try extracting. Also, if I want the active region to turn in a particular direction, I will often try only catalyzing it from the side that I want it to turn away from.
Also, when placing catalysts, always make sure that your conduit has feasible input clearance.
Asking for help
If you have what you think is a good partial but are unable to complete it, don't be afraid to ask for help. Many conduits get completed this way. For example, the bandersnatch, which solved a lot of glider color (fine positioning) problems, was originally found as a mostly-complete partial glider-to-glider conduit by Extrementhusiast and was completed by Entity Valkyrie 2. Here is some advice for that situation.
Complete what you can
An 90%-complete partial looks more promising and is harder to resist completing than a 20%-complete partial. Each part of a partial that you have not completed is something that you have not demonstrated is completable and therefore makes your partial look less promising. Even if a catalyst is destroyed, if the conduit works except for that catalyst being destroyed, that catalyst should be included because it simplifies the problem from finding an interaction that works—even though one might not exist—to reinforcing the catalyst or finding a replacement catalyst.
Make clear your partial
A conduit that creates some random piece of junk that doesn't occur often enough for anyone to have bothered looking for conduits accepting it isn't useful, so make sure that your conduit doesn't look like one. Sure, the region may have settled into a recognized bottleneck at one point, but that could easily be missed at a high frame rate, most people can't accurately identify a methuselah based on how it looks fifteen generations later, and it may not be apparent exactly when to look. Also, common sequences that have been researched for conduits may pop up in the intermediate activity, including some unextractable ones, and the output object may have been created from an evolutionary sequence that did not go through the output object's canonical form; each of these would further confuse the people whose help you are requesting. A good way to clarify your partial conduit is to mark the output(s) in red cells using the rule LifeHistory, as has been done in the examples. (Marking the input in white is also encouraged but not as important.)
In addition, one can also state one's partial in the message. One can write out the operation in long form, but in order to make things more convenient, the objects commonly used in conduits each have a single-letter symbol that can be used to convey information more concisely, e.g. H→C instead of Herschel-to-century conduit. One can also use the message text to state any special property that your conduit partial has that might make others willing to expend more effort trying to complete it.
Be prepared to take no for an answer
If the more experienced conduit-makers think that your partial does not look promising enough, accept it. If you want, you may work some more on your partial then take it back to them once you've made more progress, but it's much better to do that before asking for help the first time. It is also a good idea to know how practical your partial is before asking. If your partial conduit requires a sacrificial object that can't be replaced with a permanent catalyst, the input region would not realistically be able to get into the conduit, or your partial is otherwise not promising, don't bother posting it.
Here are examples of how to and how not to ask for help completing a partial.
A bad way of asking for help
- By asking whether the block can be restored, the poster implies that this conduit relies either on a transparent reaction, which is extremely unlikely to exist, or an independent restoration of the block, which will lead to a bulky conduit with an impractically long repeat time. Neither is promising.
- While any reader could probably figure that the output object is a century based on its ash, the input region for this conduit is not obvious. There are three blocks with the characteristic spacing of a century, but this does not indicate whether the input region is a century or a century simply happened to form in the ash. If the latter is true, then for all the reader knows, the only input that this conduit can accept is an arrangement of three blocks that would be extremely unlikely to form from a reaction because the first two blocks would start reacting with each other before the third block could be placed. Either way, the reaction leaves four blocks that would interfere with any attempt to use the conduit again, and there is no indication that they can be cleaned up.
- As mentioned in the previous bullet point, there is no indication that the partial conduit (if it can even be called that) accepts a well-defined region for which conduits creating it are already known. The poster has provided no indication that the reaction would be useful as a conduit in any way; thus, any reader would be likely to classify it as a novelty reaction—and not one worth completing.
A good way of asking for help
If that one thing can be fixed, then this will yield a C→C with better output clearnace than anything that we currently have. (The unix is only necessary for cleaning up a block and works at any timing, and the century's first cousin 3bo$3bo$o2bo$b2o can get in and is made by multiple conduits, such as CBx37C and PF*39C.)
Also, as a bonus, a permanent catalyst that works would almost certainly yield an I→R+W signal splitter.
- The poster asks whether a fishhook can be replaced with a fishhook-type catalyst that would not be destroyed. As there is a wide variety of replacement fishhook-type catalysts, it is likely that some replacement exists and therefore likely that the conduits can be completed.
- The outputs are each clearly marked using red cells in LifeHistory. This is important because none of the three outputs form from their canonical forms; instead, each forms from a sibling of its canonical form. The fact that the outputs are marked helps to clarify what the intended outputs are and that they are in fact well-defined regions. The input regions are likewise clearly marked using their canonical forms.
- The poster has taken steps to clean up all excess junk from the partial conduits. This demonstrates that such cleanup is possible and, by making the partial conduits closer to completed, makes them harder to resist completing.
- The poster addresses potential concerns about the usage of a sparker or the input clearance for the first conduit, reassuring that the first partial conduit can indeed be used with other stable conduits if it is completed.
- The poster explains that finding one replacement catalyst would likely yield two conduits. Better yet, each has a special feature that would make experienced conduit-makers willing to spend more effort trying to complete it than otherwise: The first conduit outputs a century with amazing, unprecedented, and certainly useful clearance, and the second conduit is a signal splitter, enabling one to get two output signals from only one input signal. Each conduit's special feature would make it useful, and the poster clearly communicates each special feature. In addition, the poster states that both of these very useful conduits would come from work that would normally only complete one conduit, making experienced conduit-makers even more willing to spend time and effort looking for a replacement catalyst.
Using search programs
There are many search programs that one can use when searching for conduits. Two of the most commonly-used programs are CatForce and Bellman. CatForce will take any active region, run all possible combinations of a pre-defined list of catalysts on it, and return any interesting results. One possible usage is to run all combinations of a particular active object with common still-life, such as a block, and return all cases where the still-life is restored in its original position and orientation (even temporarily), i.e. find all possible transparent reactions without any permanent catalysts. (This is okay because it doesn't involve wasting weeks trying to make one particular reaction work, but instead, the computer can try each case then move on if it doesn't work in a fraction of a second.) A more in-depth description of how to use CatForce can be found here. Bellman operates on a desired active region and uses a backtracking search to construct a nearby still life which will survive its interaction with the expanding active region.
- This only applies to stable conduits. Using sparkers makes perturbing gliders and XWSSes much easier, but because these do not work at all timings, they are not preferred.