WireWorld has 1 type of wire, WireWorldRgb adds two more types of wire, for a total of three types: red, green and blue.
Similar to WireWorld:
In WireWorldRgb, wires, heads and tails always remain within their color (green head becomes green tail, etc...).
The rules to become head are:
With these rules, red behaves like original WireWorld, and since the numerical values of those cell types match, regular WireWorld maps can be loaded into WireWorldRgb. Each color ignores one other color, so in WireWorldRgb, signals can stay within their color or flow through different colors in the cycle red->green->blue->red->... but not in the opposite direction, like diodes.
New thanks to these rules is the ability to create more compact logic gates, and have everything (logic gates, wire crossings, RS latches, half adders, full adders, ...) work with 3-cycle logic, the shortest possible since a signal takes at least 3 cells (head, tail, wire). In addition, each of those introduces zero delay compared to signal going through straight wire.
To make compact fast logic gates, OR can be made with 2 blues to red, AND can be made with 2 blues to blue, ANDNOT can be made with a blue and green to blue, XOR can be made either with 2 reds to green, or with 2 greens to blue, NOT can be made with a 3-cycle "rgb" clock on 1 input of a XOR.
The small wire crossing can be made like this:
"X->" rrrr brrrr "->Y"
"Y->" rrrr brrrr "->X"
The small half adder can be made like this (c = carry, s = sum):
"a->" rrrrr brrrr "->c"
"b->" rrrrr rrrrr "->s"
A 3-cycle serial (infinitely streaming) full adder, RS latch based, can be made like this (the capital S is a red tail, the capital G a green head, those are part of a NOT gate clock):
r b brrrrrr
rrrrrr rrr SG g
gb r b g
rrrrrr br rrg bg
rg r r
To run in Golly, which is a great cellular automaton simulation program that includes WireWorld as well, download the files below, place WireWorldRgb.rule in the Rules directory, and the mc file in the Patterns directory.
The full specification can be found in the comments in WireWorldRgb.rule. The map wireworldrgb.mc shows how to make logic gates, streaming adders, wire crossings and flip flops.
The WireWorldRgb above is not very symmetrical, red, green and blue act in very different ways, only red acts like original wireworld.
WireWorldRYGB has one more color, 4 in total, but is more symmetrical. Within the same pure wire color, each wire color works like standard wireworld. Between different colors, red to yellow acts like or, yellow to green acts like xor, green to blue acts like or, blue to red acts like xor. In the other direction, yellow to red acts like and, red to blue only suppresses, blue to green acts like and, green to yellow only suppresses. Mixed color heads suppress, except pure red and pure green ignore each other, and pure yellow and pure blue ignore each other. Here acting like or means 1 or 2 heads, acting like xor means 1 head only, acting like and means 2 heads only. The exact rules are:
A whole circuit could have all red and green swapped, and all blue and yellow swapped, and it'd behave the same as before.
Just like WireWorldRgb, it allows to create 3-cycle logic. 3-cycle serial adder has the same size and shape as the one from WireWorldRgb. It allows very similar circuits with very similar size, plus in addition there's a convenient way to cross many wires thanks to green/red ignoring each other, or yellow/blue ignoring each other (so long as no other colors are mixed at least). See the attached Golly pattern or its screenshot for that.
Here's another WireWorld variant (non-RGB): standard wireworld, but with von Neumann neighborhood instead of Moore neighborhood (4 instead of 8 neighbors). This one works very similar to standard WireWorld, but everything is larger:
Copyright (c) 2017-2020 by Lode Vandevenne. All rights reserved.