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:

Code: Select all

```
x = 1, y = 2, rule = B2a/S
o$o!
```

Code: Select all

```
x = 3, y = 2, rule = W90
bo$obo!
```

Code: Select all

```
x = 2, y = 2, rule = B2a/S
2o$2o!
```

Code: Select all

```
x = 2, y = 1, rule = W90
2o!
```

Code: Select all

```
x = 128, y = 128, rule = bs0123456h
o$2o$obo$4o$o3bo$2o2b2o$obobobo$8o!
[[ SQUARECELLS ]]
```

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!
```

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!
```

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!
```

Code: Select all

```
x = 1, y = 2, rule = B2a3j5y6i/S1e2i3a
o$o!
```

Code: Select all

```
x = 28, y = 2, rule = B2a3j5y6i/S1e2i3a
o26bo$o26bo!
```

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!
```

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!
```

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!
```