Rule:Wireworld++
@RULE Wireworld++
Rule by Vladislav Gladkikh and Alexandr Nigay
Wireworld++ is like 2 WireWorld's mashed together. There are 2 separate WireWorlds inside Wireworld++ - the 'strong' world (states 1, 2, 3) and the 'weak' world (states 4, 5, 6).
Independently, any circuit built entirely out of cells from only one world behave identicaly to regular WireWorld - since it takes 1 or 2 adjacent 'weak' heads (state 4) to turn a weak wire (state 6) into a weak head, and the same goes for the strong wire (state 3) and its heads (state 1).
The power of Wireworld++ arises when one puts the two worlds together. A strong wire will turn to a strong head when exactly two of its neighbors are weak heads, while a weak wire will turn to a weak head if exactly one of its neighbors is a strong head.
With this, it is very easy to construct very small AND and XOR gates. To make an AND gate, connect two weak wires (inputs) to one strong wire (output). To make an XOR gate, connect two strong wires to a weak wire.
Fore more information, read this article:
https://wpmedia.wolfram.com/uploads/sites/13/2018/07/27-1-2.pdf
--------------------------------------------------------- The following script was used with the standard script 'make-ruletree.py' to generate the TREE section of this file:
name = "Wireworld++" n_states = 7 n_neighbors = 8 def transition_function(a): nw, ne, sw, se, n, w, e, s, c = a #unpack neigh = n, ne, e, se, s, sw, w, nw #repack BG=0;SH=1;ST=2;SW=3;WH=4;WT=5;WW=6
shc = 0
whc = 0
for n in neigh:
if n == SH: shc += 1
if n == WH: whc += 1
if c==BG: return BG
elif c==SH: return ST
elif c==ST: return SW
elif c==WH: return WT
elif c==WT: return WW
elif c==SW:
if shc==1 or shc==2 or whc==2: return SH
else: return SW
elif c==WW:
if whc==1 or whc==2 or shc==1: return WH
else: return WW
else: raise ValueError("invalid state: " + str(c))
@TREE
num_states=7 num_neighbors=8 num_nodes=81 1 0 2 3 3 5 6 6 1 0 2 3 1 5 6 4 1 0 2 3 3 5 6 4 2 0 1 0 0 2 0 0 1 0 2 3 1 5 6 6 2 1 4 1 1 1 1 1 2 2 1 2 2 1 2 2 3 3 5 3 3 6 3 3 2 4 0 4 4 1 4 4 2 1 1 1 1 1 1 1 3 5 8 5 5 9 5 5 2 1 1 1 1 0 1 1 3 6 9 6 6 11 6 6 4 7 10 7 7 12 7 7 2 0 0 0 0 2 0 0 2 1 2 1 1 1 1 1 3 8 14 8 8 15 8 8 3 9 15 9 9 9 9 9 4 10 16 10 10 17 10 10 2 0 1 0 0 0 0 0 3 11 9 11 11 19 11 11 4 12 17 12 12 20 12 12 5 13 18 13 13 21 13 13 2 2 2 2 2 1 2 2 3 14 14 14 14 23 14 14 2 1 1 1 1 4 1 1 3 15 23 15 15 25 15 15 4 16 24 16 16 26 16 16 3 9 25 9 9 5 9 9 4 17 26 17 17 28 17 17 5 18 27 18 18 29 18 18 3 19 5 19 19 19 19 19 4 20 28 20 20 31 20 20 5 21 29 21 21 32 21 21 6 22 30 22 22 33 22 22 3 23 23 23 23 11 23 23 4 24 24 24 24 35 24 24 2 4 0 4 4 4 4 4 3 25 11 25 25 37 25 25 4 26 35 26 26 38 26 26 5 27 36 27 27 39 27 27 3 5 37 5 5 5 5 5 4 28 38 28 28 41 28 28 5 29 39 29 29 42 29 29 6 30 40 30 30 43 30 30 4 31 41 31 31 31 31 31 5 32 42 32 32 45 32 32 6 33 43 33 33 46 33 33 7 34 44 34 34 47 34 34 2 0 0 0 0 0 0 0 3 11 11 11 11 49 11 11 4 35 35 35 35 50 35 35 5 36 36 36 36 51 36 36 3 37 49 37 37 37 37 37 4 38 50 38 38 53 38 38 5 39 51 39 39 54 39 39 6 40 52 40 40 55 40 40 4 41 53 41 41 41 41 41 5 42 54 42 42 57 42 42 6 43 55 43 43 58 43 43 7 44 56 44 44 59 44 44 5 45 57 45 45 45 45 45 6 46 58 46 46 61 46 46 7 47 59 47 47 62 47 47 8 48 60 48 48 63 48 48 3 49 49 49 49 49 49 49 4 50 50 50 50 65 50 50 5 51 51 51 51 66 51 51 6 52 52 52 52 67 52 52 4 53 65 53 53 53 53 53 5 54 66 54 54 69 54 54 6 55 67 55 55 70 55 55 7 56 68 56 56 71 56 56 5 57 69 57 57 57 57 57 6 58 70 58 58 73 58 58 7 59 71 59 59 74 59 59 8 60 72 60 60 75 60 60 6 61 73 61 61 61 61 61 7 62 74 62 62 77 62 62 8 63 75 63 63 78 63 63 9 64 76 64 64 79 64 64
@COLORS
0 0 0 0 1 255 255 0 2 127 127 0 3 102 32 0 4 255 255 255 5 136 136 136 6 34 34 34