Generalized Wire Automata
Generalized Wire Automata
After seeing WireWorld and a variant Bliptile I thought it would be interesting to explore a family of wire automata that all share similar properties.
All family members have 3 states: A wire, an electron head, and an electron tail.
An electron head always becomes an electron tail.
An electron tail always becomes a wire.
A wire becomes an electron head if it is surrounded by an exact number of neighbors.
The rule is formatted (neighbors)(neighborhood) (V=Von Neumann, M=Moore, H=Hexagonal, T=triangular...)
WireWorld is then 12M. Bliptile is 1V.
Edit: The convention for state numbering
State 1: Electron head
State 2: Electron tail
State 3: Wire
All family members have 3 states: A wire, an electron head, and an electron tail.
An electron head always becomes an electron tail.
An electron tail always becomes a wire.
A wire becomes an electron head if it is surrounded by an exact number of neighbors.
The rule is formatted (neighbors)(neighborhood) (V=Von Neumann, M=Moore, H=Hexagonal, T=triangular...)
WireWorld is then 12M. Bliptile is 1V.
Edit: The convention for state numbering
State 1: Electron head
State 2: Electron tail
State 3: Wire
Last edited by twinb7 on November 23rd, 2014, 5:03 pm, edited 1 time in total.
Re: Generalized Wire Automata
Here is 1H (perhaps the easiesttoengineer rule!).
Here is a near diode, with two near logic gates.
Code: Select all
@RULE 1H
@TABLE
n_states:4
neighborhood:hexagonal
symmetries:permute
var a={0,1,2,3}
var b={0,1,2,3}
var c={0,1,2,3}
var d={0,1,2,3}
var e={0,1,2,3}
var f={0,1,2,3}
var g={0,2,3}
var h={0,2,3}
var i={0,2,3}
var j={0,2,3}
var k={0,2,3}
var l={0,2,3}
1,a,b,c,d,e,f,2
2,a,b,c,d,e,f,3
3,g,h,i,j,k,1,1
Code: Select all
x = 34, y = 3, rule = 1H
6.3C$A7C.24CA$7.2C!
Code: Select all
x = 22, y = 8, rule = 1H
A14C$14.C$A18C2$A13C$14.C$A14C$15.7C!
Re: Generalized Wire Automata
More 1H patterns.
Code: Select all
x = 58, y = 38, rule = 1H
10.A3C4.4C$13.4C4.4C$13.C7.C10.C.C2.C2.2C$14.C7.C9.C.C.C.C.C.C$33.C2.
C.C.2C$32.C.C.C.C.C.C$14.A3C14.C.C2.C2.C.C$17.3CA$17.C$18.C11$3.2C19.
2C14.2C2.3C2.C2.2C2.2C$3.C.C18.C.C13.C.C2.C2.C.C.C.C.C$3.2C.3C15.C2.C
12.C.C2.C2.C.C.C.C.2C$3.C.C3.C13.2C3.C11.C.C2.C2.C.C.C.C.C$A3C.C2.2C
10.A3C.C3.C10.2C2.3C2.C2.2C2.2C$3.C.5C14.2C2.2C$3.C2.C3.C13.C2.2C.5C$
4.3C4.4C10.3C.2C3$3.2C19.2C$3.C.C18.C.C$3.2C.3C15.C2.C$3.C.C3.C13.2C
3.C$4C.C2.2C10.4C.C3.C$3.C.5C14.2C2.2C$3.C2.C3.C13.C2.2C.4CA$4.3C4.3C
A10.3C.2C!

 Posts: 480
 Joined: April 9th, 2013, 11:03 pm
Re: Generalized Wire Automata
You may want to change the name to "Wire1H" or something to prevent Golly having confusion with standard outertotalistic rules like B/S1H.
Also, I'm pretty sure this is the smallest working diode in 1H:
Alternate form for Wire1H name:
Also, I'm pretty sure this is the smallest working diode in 1H:
Code: Select all
x = 12, y = 11, rule = 1H
4.3C$4.C2.C$5C.2C$4.4C$8.3CA2$4.3C$4.C2.C$A4C.2C$4.4C$8.4C!
Code: Select all
x = 12, y = 11, rule = Wire1H
4.3C$4.C2.C$5C.2C$4.4C$8.3CA2$4.3C$4.C2.C$A4C.2C$4.4C$8.4C!
Last edited by Sphenocorona on November 23rd, 2014, 9:42 pm, edited 1 time in total.
Re: Generalized Wire Automata
In that case we'll do just that, prefacing the rules with 'Wire'.
Wire1H.rule...
And that diode is wonderful and I'm so glad it exists
Wire1H.rule...
Code: Select all
@RULE Wire1H
@TABLE
n_states:4
neighborhood:hexagonal
symmetries:permute
var a={0,1,2,3}
var b={0,1,2,3}
var c={0,1,2,3}
var d={0,1,2,3}
var e={0,1,2,3}
var f={0,1,2,3}
var g={0,2,3}
var h={0,2,3}
var i={0,2,3}
var j={0,2,3}
var k={0,2,3}
var l={0,2,3}
1,a,b,c,d,e,f,2
2,a,b,c,d,e,f,3
3,g,h,i,j,k,1,1
@COLORS
0 48 48 48
1 0 0 255
2 255 255 255
3 255 0 0
Re: Generalized Wire Automata
@twinb7: Advancing one of the signals is sufficient to make an OR gate, as shown below.
Using Sphenocorona's diode, here is a NOT gate. 1H has now been proven Turingcomplete.
Code: Select all
x = 16, y = 12, rule = 1H
ACBA3C$6.4CAB3CA$6.C$7.C$7.C$7.C$7.C$7.C$7.C$7.C$7.C$7.C!
Code: Select all
x = 31, y = 18, rule = 1H
20.3C$20.C2.C$BA19C.2C$20.4C$20.C.9C$20.C9.C$20.C9.C$20.C9.C$20.C9.C$
20.C8.2C$20.C8.2C$20.C9.A$20.C$20.C$20.C$20.C$20.C$20.C!
Re: Generalized Wire Automata
Not quite so simple, c0b0p0.
Notice the different output timings... This shouldn't be incredibly complicated to fix but is still a problem. I'll work on it.
Second, the NOT gate needs to be fixed in a few ways. Look a bit closer at it.
Here is a working one:
EDIT:
What would be really useful to me now would be an A AND NOT B gate... It would let me make basically everything else left in a compact method.
Notice the different output timings... This shouldn't be incredibly complicated to fix but is still a problem. I'll work on it.
Code: Select all
x = 26, y = 12, rule = 1H
4C5.A3C5.A3C$3.4CA4.5C4.4CA$3.C8.C8.C$4.C8.C8.C$4.C8.C8.C$4.C8.C8.C$
4.C8.C8.C$4.C8.C8.C$4.C8.C8.C$4.C8.C8.C$4.C8.C8.C$4.C8.C8.C!
Code: Select all
x = 26, y = 12, rule = Wire1H
4C5.A3C5.A3C$3.4CA4.5C4.4CA$3.C8.C8.C$4.C8.C8.C$4.C8.C8.C$4.C8.C8.C$
4.C8.C8.C$4.C8.C8.C$4.C8.C8.C$4.C8.C8.C$4.C8.C8.C$4.C8.C8.C!
Second, the NOT gate needs to be fixed in a few ways. Look a bit closer at it.
Here is a working one:
Code: Select all
x = 30, y = 9, rule = Wire1H
CBA$C2.C$C3.6C$.C2.C4.7CAB10CAB$2.3C4.C$9.C$9.C$9.C$9.C!
EDIT:
What would be really useful to me now would be an A AND NOT B gate... It would let me make basically everything else left in a compact method.
Re: Generalized Wire Automata
Using the same method I used to make a Bliptile OR gate, here's a Wire1H OR gate, as well as an A AND NOT B gate just because you asked for it:twinb7 wrote: EDIT:
What would be really useful to me now would be an A AND NOT B gate... It would let me make basically everything else left in a compact method.
Code: Select all
x = 41, y = 18, rule = Wire1H
B13.B13.B$.C13.A13.A$2.4C10.4C10.4C$3.C.6CAB4.C.7CB4.C.6CAB$4.3C11.3C
11.3C$7.C13.C13.C$7.C13.C13.C$7.C13.C13.C2$.B12.B13.B$2.4C9.A3C10.A3C
$3.C.5CAB4.C.6CB5.C.5CAB$3.4C9.4C10.4C$3.C3.C8.C3.C9.C3.C$3.C2.2C8.C
2.2C9.C2.2C$4.4C9.4C10.4C$8.C12.C13.C$9.C12.C13.C!
Re: Generalized Wire Automata
@flipper77
I managed to make my own A AND NOT B gate, slightly larger than your own:
The three disconnected wires demonstrate that the B input can be any of three different phases.
Using it I made an A AND B gate with A AND NOT (A AND NOT B).
This can be made smaller with your similarly smaller ANDNOT gate.
NOW H1 is turingcomplete.
EDIT: Smaller AND gate.
I managed to make my own A AND NOT B gate, slightly larger than your own:
Code: Select all
x = 17, y = 17, rule = Wire1H
2$.A3.3C$.C3.C2.C$.C.3C.2C$.C.C.4C$2.2C5.C$5.3C2.6C$5.C2.C.C.C$.CBA2C
.2C.3C$5.4C.C$.BAC5.2C2$.A2C!
Using it I made an A AND B gate with A AND NOT (A AND NOT B).
Code: Select all
x = 35, y = 17, rule = Wire1H
2C$C.C$C.C5.2C$C.C5.C.C$A.C5.C.C$3.6C.C6.3C$4.C6.C5.C2.C$3.A.C2.3C.C
2.3C.2C$4.C.C.C2.C.C.C.4C$5.C.2C.2C.C.C5.C$6.C.4C2.2C.3C2.13C$6.C5.C
4.C2.C.C.C$6.C.3C2.5C.2C.3C$6.C.C2.C.C.C.4C.C$7.2C.2C.3C5.2C$8.4C.C$
12.2C!
NOW H1 is turingcomplete.
EDIT: Smaller AND gate.
Code: Select all
x = 15, y = 8, rule = Wire1H
8.3C$8.C2.C$A6C.C.2C$7.2C.5C$2.AC2.2C2.C.C$4.C.7C$4.C.C.C$5.4C!