## Generalized Wire Automata

For discussion of other cellular automata.
twinb7
Posts: 175
Joined: February 11th, 2014, 8:08 pm
Location: Ames, Iowa

### 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 2: Electron tail
State 3: Wire
Last edited by twinb7 on November 23rd, 2014, 5:03 pm, edited 1 time in total.

c0b0p0
Posts: 645
Joined: February 26th, 2014, 4:48 pm

### Re: Generalized Wire Automata

Here is 1H (perhaps the easiest-to-engineer rule!).

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
``````
Here is a near diode, with two near logic gates.

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

twinb7
Posts: 175
Joined: February 11th, 2014, 8:08 pm
Location: Ames, Iowa

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

Sphenocorona
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 outer-totalistic rules like B/S1H.

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!``````
Alternate form for Wire1H name:

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.

twinb7
Posts: 175
Joined: February 11th, 2014, 8:08 pm
Location: Ames, Iowa

### Re: Generalized Wire Automata

In that case we'll do just that, prefacing the rules with 'Wire'.

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``````
And that diode is wonderful and I'm so glad it exists

c0b0p0
Posts: 645
Joined: February 26th, 2014, 4:48 pm

### Re: Generalized Wire Automata

@twinb7: Advancing one of the signals is sufficient to make an OR gate, as shown below.

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!
``````
Using Sphenocorona's diode, here is a NOT gate. 1H has now been proven Turing-complete.

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

twinb7
Posts: 175
Joined: February 11th, 2014, 8:08 pm
Location: Ames, Iowa

### 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.

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.

flipper77
Posts: 197
Joined: October 24th, 2010, 3:25 am
Location: Spokane, WA

### Re: Generalized Wire Automata

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.
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:

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

twinb7
Posts: 175
Joined: February 11th, 2014, 8:08 pm
Location: Ames, Iowa

### Re: Generalized Wire Automata

@flipper77

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

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!
``````
``````x = 15, y = 8, rule = Wire1H