At this point, the classification of periodic non-infinitely-growing patterns is basically standardised across square-grid CA: two numbers to symbolise displacement, and a third value for period, can be used to describe any spaceship, and for objects with zero displacement we can ignore the displacement values. However, for other classes of patterns, descriptions for their behaviour does not seem to be formally defined. If ever we plan to document replicators in a similar manner to the 5s project, it's best we find a way to classify replicators in the first place.
As the field of known patterns classified as replicators is massively diverse, to have any hope of starting work on creating a way to classify replicators, we'll try to limit the scope: a replicator must be able to function perfectly as a Rule 90 (for range-1, or Rule 6 for range-1/2) unit cell. This excludes 2D replicators as well as replicators that simulate other 1D rules, however the most commonly encountered replicators are still here, and the classification should be extensible to other rules (at least those which actually are replication rules, such as Rule 150, but excluding cases like Rule 50 and 110) somehow later.
In order to function as a unit cell, correctly-positioned copies of the replicator must be able to actually simulate Rule 90 perfectly. This excludes some replicators in which a single copy replicates indefinitely, but multiple copies (for example, removing a single copy after a given number of replication cycles) interfere to yield a non-infinitely-replicating, usually chaotic result.
Another thing worth noting is the fact that the "unit cell distance" of replicators - that is, the distance in which replicators must be separated from each other in order to function as true Rule 90 unit cells - may not be immediately obvious. Take the classic b2a replicator as an example:
One would reasonably expect the second generation of this replicator to be comparable to the second generation of rule 90:
and therefore for this:
to evolve identically to this:
However, it can be seen that this is not the case. In cases like these, it may be better to think of replicators like these as following rule 6 range 1/2 (which can be simulated in range 1 as rule 60) instead of following rule 90, as a copy in such an invalid location during this generation would correspond to a cell at a half-integer position for rule 6, which is obviously impossible, thus the undefined behaviour.
Code: Select all
x = 128, y = 128, rule = bs0123456h
o$2o$obo$4o$o3bo$2o2b2o$obobobo$8o!
[[ SQUARECELLS ]]
Beyond cases such as this, many known replicators fit into this terminology perfectly. The iconic HighLife replicator, which provably simulates rule 6/rule 90 just fine with correctly positioned copies, moves at (2,2)c/12:
Code: Select all
x = 7, y = 7, rule = B36/S23History
2.3D$2.D2.D$2AC3.D$A2.C2.D$A3.C2D$.A2.A$2.3A!
[[ STOP 12 ]]
Code: Select all
x = 17, y = 17, rule = B36/S23
12b3o$12bo2bo$12bo3bo$13bo2bo$14b3o4$4b3o$4bo2bo$4bo3bo$5bo2bo$3o3b3o$
o2bo$o3bo$bo2bo$2b3o!
and the tHighLife replicator at (4,0)c/11:
Code: Select all
x = 9, y = 3, rule = B36/S2-i34qHistory
4AC4D$4AC4D$4AC4D!
[[ STOP 11 ]]
Code: Select all
x = 29, y = 3, rule = B36/S2-i34q
5o3b5o11b5o$5o3b5o11b5o$5o3b5o11b5o!
This oblique replicator would be classed as (5,2)c/21, and like the other two, provably works as a Rule 6/Rule 90 unit cell:
Code: Select all
x = 8, y = 6, rule = B3-y4y6ci/S23-eHistory
.2A$A.A$A.A3.2D$2A3.D.D$5.D.D$5.2D!
[[ STOP 21 ]]
Code: Select all
x = 33, y = 16, rule = B3-y4y6ci/S23-e
b2o$obo$obo$2o$11b2o$10bobo$10bobo$10b2o5$31b2o$30bobo$30bobo$30b2o!
Here is a 1D replicator that replicates infinitely on its own, but correctly positioned copies results in chaotic behaviour, meaning it does not simulate Rule 6 or Rule 90 (this example actually simulates Rule 22):
Code: Select all
x = 1, y = 2, rule = B2a3j5y6i/S1e2i3a
o$o!
Code: Select all
x = 28, y = 2, rule = B2a3j5y6i/S1e2i3a
o26bo$o26bo!
While these conventional cases are easy to define, this classification is based on the assumption that the replicator will always stay within the same line. Throughout OCA exploration, there have been cases of replicators discovered that go against this, which replicate like one would expect but whose "line" also has a displacement factor. Take this example, which clearly replicates infinitely and simulates Rule 6/Rule 90 without flaw like the rest, but also has a displacement (tracing out Rule 90 in its history as a result):
Code: Select all
x = 2, y = 2, rule = B2a4w/S2e3j
o$2o!
Code: Select all
x = 14, y = 14, rule = B2a4w/S2e3j
o$2o3$4bo$4b2o7$12bo$12b2o!
There are also cases in which a replicator only replicates in one direction, but still stays in the same line, which could be considered as having a "displacement" parallel to the direction of replication:
Code: Select all
x = 2, y = 3, rule = B1e3r4i/S1e2ae3enr4i
2o$o$2o!
Code: Select all
x = 8, y = 3, rule = B1e3r4i/S1e2ae3enr4i
4o2b2o$obo3bo$4o2b2o!
Another example of parallel displacement, where two sides move, but at differing rates:
Code: Select all
x = 2, y = 3, rule = B2e3in4ceit5i6c/S1c2-kn3a
bo$o$bo!
Code: Select all
x = 17, y = 3, rule = B2e3in4ceit5i6c/S1c2-kn3a
bo4bo9bo$o4bo9bo$bo4bo9bo!
So at the moment, I'm somewhat stuck figuring how this new displacement factor would be counted for a replicator. Measuring the displacement of one of the copies of the replicator from its starting position, while functional for the non-displacing symmetric cases, somewhat falls apart here. This distance would probably still be measured, but would we subtract the whole replicating body's displacement from it, or not? Community assistance with this stage would be of much help, so we can get something set in stone for classification.