## New Circuit Rule

For discussion of other cellular automata.
edwardfanboy
Posts: 80
Joined: September 16th, 2011, 10:29 pm

### New Circuit Rule

I have just come up with a 17-state Von-Neumann neighborhood rule which can be used to make digital logic circuits.
Ruletable here (Save as CircuitRule.table):

Code: Select all

``````# Circuit Rule
#
# States correspond to:
#
#                  Direction
#                 N  E  S  W
# Empty           0  0  0  0
# Datacell 1      1  1  1  1
# Datacell 2      2  2  2  2
# Buffer          3  4  5  6
# Buffer 1        7  8  9  10
# Buffer 2        11 12 13 14
# Combigate       x  15 x  x
# Combigate 1     x  16 x  x
# Buffer rules:
# Buffer           Combigate
# 0->0 1->1 2->2   0->1 1->1 2->0
# Combine rule: Add neighbors, then modulo 2

n_states:17
neighborhood:vonNeumann
symmetries:none
var omni1 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
var omni2 = {omni1}
var omni3 = {omni1}
var omni4 = {omni1}
# Datacell
var D = {0,1,2}
# Datacell Top
var Dt0 = {D,3,4,5,6,7,8,10,11,12,14,15,16}
var Dt1 = {9}
var Dt2 = {13}
# Datacell Right
var Dr0 = {D,3,4,5,6,7,8,9,11,12,13,15,16}
var Dr1 = {10}
var Dr2 = {14}
# Datacell Bottom
var Db0 = {D,3,4,5,6,8,9,10,12,13,14,15,16}
var Db1 = {7}
var Db2 = {11}
# Datacell Left
var Dl0 = {D,3,4,5,6,7,9,10,11,13,14,15}
var Dl1 = {8,16}
var Dl2 = {12}

# Buffer
var Bt = {3,7,11}
var Br = {4,8,12}
var Bb = {5,9,13}
var Bl = {6,10,14}
var Bx = {3,4,5,6,7,8,9,10,11,12,13,14,15,16}
var CG = {15, 16}
# Combination Rules: Copy-Paste FTW!
D,Dt0,Dr0,Db0,Dl0,0
D,Dt0,Dr0,Db0,Dl1,1
D,Dt0,Dr0,Db0,Dl2,2
D,Dt0,Dr0,Db1,Dl0,1
D,Dt0,Dr0,Db1,Dl1,2
D,Dt0,Dr0,Db1,Dl2,0
D,Dt0,Dr0,Db2,Dl0,2
D,Dt0,Dr0,Db2,Dl1,0
D,Dt0,Dr0,Db2,Dl2,1
D,Dt0,Dr1,Db0,Dl0,1
D,Dt0,Dr1,Db0,Dl1,2
D,Dt0,Dr1,Db0,Dl2,0
D,Dt0,Dr1,Db1,Dl0,2
D,Dt0,Dr1,Db1,Dl1,0
D,Dt0,Dr1,Db1,Dl2,1
D,Dt0,Dr1,Db2,Dl0,0
D,Dt0,Dr1,Db2,Dl1,1
D,Dt0,Dr1,Db2,Dl2,2
D,Dt0,Dr2,Db0,Dl0,2
D,Dt0,Dr2,Db0,Dl1,0
D,Dt0,Dr2,Db0,Dl2,1
D,Dt0,Dr2,Db1,Dl0,0
D,Dt0,Dr2,Db1,Dl1,1
D,Dt0,Dr2,Db1,Dl2,2
D,Dt0,Dr2,Db2,Dl0,1
D,Dt0,Dr2,Db2,Dl1,2
D,Dt0,Dr2,Db2,Dl2,0
D,Dt1,Dr0,Db0,Dl0,1
D,Dt1,Dr0,Db0,Dl1,2
D,Dt1,Dr0,Db0,Dl2,0
D,Dt1,Dr0,Db1,Dl0,2
D,Dt1,Dr0,Db1,Dl1,0
D,Dt1,Dr0,Db1,Dl2,1
D,Dt1,Dr0,Db2,Dl0,0
D,Dt1,Dr0,Db2,Dl1,1
D,Dt1,Dr0,Db2,Dl2,2
D,Dt1,Dr1,Db0,Dl0,2
D,Dt1,Dr1,Db0,Dl1,0
D,Dt1,Dr1,Db0,Dl2,1
D,Dt1,Dr1,Db1,Dl0,0
D,Dt1,Dr1,Db1,Dl1,1
D,Dt1,Dr1,Db1,Dl2,2
D,Dt1,Dr1,Db2,Dl0,1
D,Dt1,Dr1,Db2,Dl1,2
D,Dt1,Dr1,Db2,Dl2,0
D,Dt1,Dr2,Db0,Dl0,0
D,Dt1,Dr2,Db0,Dl1,1
D,Dt1,Dr2,Db0,Dl2,2
D,Dt1,Dr2,Db1,Dl0,1
D,Dt1,Dr2,Db1,Dl1,2
D,Dt1,Dr2,Db1,Dl2,0
D,Dt1,Dr2,Db2,Dl0,2
D,Dt1,Dr2,Db2,Dl1,0
D,Dt1,Dr2,Db2,Dl2,1
D,Dt2,Dr0,Db0,Dl0,2
D,Dt2,Dr0,Db0,Dl1,0
D,Dt2,Dr0,Db0,Dl2,1
D,Dt2,Dr0,Db1,Dl0,0
D,Dt2,Dr0,Db1,Dl1,1
D,Dt2,Dr0,Db1,Dl2,2
D,Dt2,Dr0,Db2,Dl0,1
D,Dt2,Dr0,Db2,Dl1,2
D,Dt2,Dr0,Db2,Dl2,0
D,Dt2,Dr1,Db0,Dl0,0
D,Dt2,Dr1,Db0,Dl1,1
D,Dt2,Dr1,Db0,Dl2,2
D,Dt2,Dr1,Db1,Dl0,1
D,Dt2,Dr1,Db1,Dl1,2
D,Dt2,Dr1,Db1,Dl2,0
D,Dt2,Dr1,Db2,Dl0,2
D,Dt2,Dr1,Db2,Dl1,0
D,Dt2,Dr1,Db2,Dl2,1
D,Dt2,Dr2,Db0,Dl0,1
D,Dt2,Dr2,Db0,Dl1,2
D,Dt2,Dr2,Db0,Dl2,0
D,Dt2,Dr2,Db1,Dl0,2
D,Dt2,Dr2,Db1,Dl1,0
D,Dt2,Dr2,Db1,Dl2,1
D,Dt2,Dr2,Db2,Dl0,0
D,Dt2,Dr2,Db2,Dl1,1
D,Dt2,Dr2,Db2,Dl2,2
# Phew!

# Buffer rules
Bt,omni1,omni2,0,omni3,3
Bt,omni1,omni2,1,omni3,7
Bt,omni1,omni2,2,omni3,11
Br,omni1,omni2,omni3,0,4
Br,omni1,omni2,omni3,1,8
Br,omni1,omni2,omni3,2,12
Bb,0,omni1,omni2,omni3,5
Bb,1,omni1,omni2,omni3,9
Bb,2,omni1,omni2,omni3,13
Bl,omni1,0,omni2,omni3,6
Bl,omni1,1,omni2,omni3,10
Bl,omni1,2,omni2,omni3,14
CG,omni1,omni2,omni3,0,16
CG,omni1,omni2,omni3,1,16
CG,omni1,omni2,omni3,2,15

Bt,omni1,omni2,omni3,omni4,3
Br,omni1,omni2,omni3,omni4,4
Bb,omni1,omni2,omni3,omni4,5
Bl,omni1,omni2,omni3,omni4,6
CG,omni1,omni2,omni3,omni4,16``````
Icons file:
CircuitRuleIcons.zip
1-input and 2-input gates:

Code: Select all

``````x = 32, y = 26, rule = CircuitRule
22.D.D\$21.C3.E\$D.D.D.D.D.D.D5.D.D3.PAPAHAHA4\$D.D.D.PA10.D.D.D\$5.E.I
15.E\$6.PBO.D.D11.PAHAHAHA\$5.C17.C\$D.D.D13.D.D.D4\$D.D.DAPA10.D.DAPAPA\$
5.G.I13.G.I.I\$4.PA.BO.D.D7.PA.BOAPAHAHA\$5.I.G13.I.G\$D.D.DAPA10.D.DAPA
3\$D.D.DAPA10.D.D.DAPAPA\$3.E.G.I13.E.G.I.I\$4.PA.BO.D.D9.PA.BOAPAHA\$3.C
.I.G13.C.I.G\$D.D.DAPA10.D.D.DAPA!
``````
From left to right, top to bottom: Wire, NOT, AND, NAND, OR, NOR, XOR, XNOR.

EDIT: XOR and XNOR gates improved!

Code: Select all

``````x = 32, y = 5, rule = CircuitRule
D.D.D.PA10.D.D.D.D\$5.E.I17.E\$4.PAPBO.D.D11.PAPAHAHA\$5.C19.C\$D.D.D13.D
.D.D.D!
``````

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

### Re: New Circuit Rule

Edited it up so you don't have to save any files. Just copy it and paste into Golly. Secondly, the icons don't work for me- I'll try to fix it.

Code: Select all

``````@RULE CircuitRule
@TABLE
# Circuit Rule
#
# States correspond to:
#
#                  Direction
#                 N  E  S  W
# Empty           0  0  0  0
# Datacell 1      1  1  1  1
# Datacell 2      2  2  2  2
# Buffer          3  4  5  6
# Buffer 1        7  8  9  10
# Buffer 2        11 12 13 14
# Combigate       x  15 x  x
# Combigate 1     x  16 x  x
# Buffer rules:
# Buffer           Combigate
# 0->0 1->1 2->2   0->1 1->1 2->0
# Combine rule: Add neighbors, then modulo 2

n_states:17
neighborhood:vonNeumann
symmetries:none
var omni1 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
var omni2 = {omni1}
var omni3 = {omni1}
var omni4 = {omni1}
# Datacell
var D = {0,1,2}
# Datacell Top
var Dt0 = {D,3,4,5,6,7,8,10,11,12,14,15,16}
var Dt1 = {9}
var Dt2 = {13}
# Datacell Right
var Dr0 = {D,3,4,5,6,7,8,9,11,12,13,15,16}
var Dr1 = {10}
var Dr2 = {14}
# Datacell Bottom
var Db0 = {D,3,4,5,6,8,9,10,12,13,14,15,16}
var Db1 = {7}
var Db2 = {11}
# Datacell Left
var Dl0 = {D,3,4,5,6,7,9,10,11,13,14,15}
var Dl1 = {8,16}
var Dl2 = {12}

# Buffer
var Bt = {3,7,11}
var Br = {4,8,12}
var Bb = {5,9,13}
var Bl = {6,10,14}
var Bx = {3,4,5,6,7,8,9,10,11,12,13,14,15,16}
var CG = {15, 16}
# Combination Rules: Copy-Paste FTW!
D,Dt0,Dr0,Db0,Dl0,0
D,Dt0,Dr0,Db0,Dl1,1
D,Dt0,Dr0,Db0,Dl2,2
D,Dt0,Dr0,Db1,Dl0,1
D,Dt0,Dr0,Db1,Dl1,2
D,Dt0,Dr0,Db1,Dl2,0
D,Dt0,Dr0,Db2,Dl0,2
D,Dt0,Dr0,Db2,Dl1,0
D,Dt0,Dr0,Db2,Dl2,1
D,Dt0,Dr1,Db0,Dl0,1
D,Dt0,Dr1,Db0,Dl1,2
D,Dt0,Dr1,Db0,Dl2,0
D,Dt0,Dr1,Db1,Dl0,2
D,Dt0,Dr1,Db1,Dl1,0
D,Dt0,Dr1,Db1,Dl2,1
D,Dt0,Dr1,Db2,Dl0,0
D,Dt0,Dr1,Db2,Dl1,1
D,Dt0,Dr1,Db2,Dl2,2
D,Dt0,Dr2,Db0,Dl0,2
D,Dt0,Dr2,Db0,Dl1,0
D,Dt0,Dr2,Db0,Dl2,1
D,Dt0,Dr2,Db1,Dl0,0
D,Dt0,Dr2,Db1,Dl1,1
D,Dt0,Dr2,Db1,Dl2,2
D,Dt0,Dr2,Db2,Dl0,1
D,Dt0,Dr2,Db2,Dl1,2
D,Dt0,Dr2,Db2,Dl2,0
D,Dt1,Dr0,Db0,Dl0,1
D,Dt1,Dr0,Db0,Dl1,2
D,Dt1,Dr0,Db0,Dl2,0
D,Dt1,Dr0,Db1,Dl0,2
D,Dt1,Dr0,Db1,Dl1,0
D,Dt1,Dr0,Db1,Dl2,1
D,Dt1,Dr0,Db2,Dl0,0
D,Dt1,Dr0,Db2,Dl1,1
D,Dt1,Dr0,Db2,Dl2,2
D,Dt1,Dr1,Db0,Dl0,2
D,Dt1,Dr1,Db0,Dl1,0
D,Dt1,Dr1,Db0,Dl2,1
D,Dt1,Dr1,Db1,Dl0,0
D,Dt1,Dr1,Db1,Dl1,1
D,Dt1,Dr1,Db1,Dl2,2
D,Dt1,Dr1,Db2,Dl0,1
D,Dt1,Dr1,Db2,Dl1,2
D,Dt1,Dr1,Db2,Dl2,0
D,Dt1,Dr2,Db0,Dl0,0
D,Dt1,Dr2,Db0,Dl1,1
D,Dt1,Dr2,Db0,Dl2,2
D,Dt1,Dr2,Db1,Dl0,1
D,Dt1,Dr2,Db1,Dl1,2
D,Dt1,Dr2,Db1,Dl2,0
D,Dt1,Dr2,Db2,Dl0,2
D,Dt1,Dr2,Db2,Dl1,0
D,Dt1,Dr2,Db2,Dl2,1
D,Dt2,Dr0,Db0,Dl0,2
D,Dt2,Dr0,Db0,Dl1,0
D,Dt2,Dr0,Db0,Dl2,1
D,Dt2,Dr0,Db1,Dl0,0
D,Dt2,Dr0,Db1,Dl1,1
D,Dt2,Dr0,Db1,Dl2,2
D,Dt2,Dr0,Db2,Dl0,1
D,Dt2,Dr0,Db2,Dl1,2
D,Dt2,Dr0,Db2,Dl2,0
D,Dt2,Dr1,Db0,Dl0,0
D,Dt2,Dr1,Db0,Dl1,1
D,Dt2,Dr1,Db0,Dl2,2
D,Dt2,Dr1,Db1,Dl0,1
D,Dt2,Dr1,Db1,Dl1,2
D,Dt2,Dr1,Db1,Dl2,0
D,Dt2,Dr1,Db2,Dl0,2
D,Dt2,Dr1,Db2,Dl1,0
D,Dt2,Dr1,Db2,Dl2,1
D,Dt2,Dr2,Db0,Dl0,1
D,Dt2,Dr2,Db0,Dl1,2
D,Dt2,Dr2,Db0,Dl2,0
D,Dt2,Dr2,Db1,Dl0,2
D,Dt2,Dr2,Db1,Dl1,0
D,Dt2,Dr2,Db1,Dl2,1
D,Dt2,Dr2,Db2,Dl0,0
D,Dt2,Dr2,Db2,Dl1,1
D,Dt2,Dr2,Db2,Dl2,2
# Phew!

# Buffer rules
Bt,omni1,omni2,0,omni3,3
Bt,omni1,omni2,1,omni3,7
Bt,omni1,omni2,2,omni3,11
Br,omni1,omni2,omni3,0,4
Br,omni1,omni2,omni3,1,8
Br,omni1,omni2,omni3,2,12
Bb,0,omni1,omni2,omni3,5
Bb,1,omni1,omni2,omni3,9
Bb,2,omni1,omni2,omni3,13
Bl,omni1,0,omni2,omni3,6
Bl,omni1,1,omni2,omni3,10
Bl,omni1,2,omni2,omni3,14
CG,omni1,omni2,omni3,0,16
CG,omni1,omni2,omni3,1,16
CG,omni1,omni2,omni3,2,15

Bt,omni1,omni2,omni3,omni4,3
Br,omni1,omni2,omni3,omni4,4
Bb,omni1,omni2,omni3,omni4,5
Bl,omni1,omni2,omni3,omni4,6
CG,omni1,omni2,omni3,omni4,16``````

PHPBB12345
Posts: 750
Joined: August 5th, 2015, 11:55 pm
Contact:

### Re: New Circuit Rule

twinb7 wrote:Edited it up so you don't have to save any files. Just copy it and paste into Golly. Secondly, the icons don't work for me- I'll try to fix it.

Code: Select all

``````@RULE CircuitRule
@TABLE
# Circuit Rule
#
# States correspond to:
#
#                  Direction
#                 N  E  S  W
# Empty           0  0  0  0
# Datacell 1      1  1  1  1
# Datacell 2      2  2  2  2
# Buffer          3  4  5  6
# Buffer 1        7  8  9  10
# Buffer 2        11 12 13 14
# Combigate       x  15 x  x
# Combigate 1     x  16 x  x
# Buffer rules:
# Buffer           Combigate
# 0->0 1->1 2->2   0->1 1->1 2->0
# Combine rule: Add neighbors, then modulo 2

n_states:17
neighborhood:vonNeumann
symmetries:none
var omni1 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
var omni2 = {omni1}
var omni3 = {omni1}
var omni4 = {omni1}
# Datacell
var D = {0,1,2}
# Datacell Top
var Dt0 = {D,3,4,5,6,7,8,10,11,12,14,15,16}
var Dt1 = {9}
var Dt2 = {13}
# Datacell Right
var Dr0 = {D,3,4,5,6,7,8,9,11,12,13,15,16}
var Dr1 = {10}
var Dr2 = {14}
# Datacell Bottom
var Db0 = {D,3,4,5,6,8,9,10,12,13,14,15,16}
var Db1 = {7}
var Db2 = {11}
# Datacell Left
var Dl0 = {D,3,4,5,6,7,9,10,11,13,14,15}
var Dl1 = {8,16}
var Dl2 = {12}

# Buffer
var Bt = {3,7,11}
var Br = {4,8,12}
var Bb = {5,9,13}
var Bl = {6,10,14}
var Bx = {3,4,5,6,7,8,9,10,11,12,13,14,15,16}
var CG = {15, 16}
# Combination Rules: Copy-Paste FTW!
D,Dt0,Dr0,Db0,Dl0,0
D,Dt0,Dr0,Db0,Dl1,1
D,Dt0,Dr0,Db0,Dl2,2
D,Dt0,Dr0,Db1,Dl0,1
D,Dt0,Dr0,Db1,Dl1,2
D,Dt0,Dr0,Db1,Dl2,0
D,Dt0,Dr0,Db2,Dl0,2
D,Dt0,Dr0,Db2,Dl1,0
D,Dt0,Dr0,Db2,Dl2,1
D,Dt0,Dr1,Db0,Dl0,1
D,Dt0,Dr1,Db0,Dl1,2
D,Dt0,Dr1,Db0,Dl2,0
D,Dt0,Dr1,Db1,Dl0,2
D,Dt0,Dr1,Db1,Dl1,0
D,Dt0,Dr1,Db1,Dl2,1
D,Dt0,Dr1,Db2,Dl0,0
D,Dt0,Dr1,Db2,Dl1,1
D,Dt0,Dr1,Db2,Dl2,2
D,Dt0,Dr2,Db0,Dl0,2
D,Dt0,Dr2,Db0,Dl1,0
D,Dt0,Dr2,Db0,Dl2,1
D,Dt0,Dr2,Db1,Dl0,0
D,Dt0,Dr2,Db1,Dl1,1
D,Dt0,Dr2,Db1,Dl2,2
D,Dt0,Dr2,Db2,Dl0,1
D,Dt0,Dr2,Db2,Dl1,2
D,Dt0,Dr2,Db2,Dl2,0
D,Dt1,Dr0,Db0,Dl0,1
D,Dt1,Dr0,Db0,Dl1,2
D,Dt1,Dr0,Db0,Dl2,0
D,Dt1,Dr0,Db1,Dl0,2
D,Dt1,Dr0,Db1,Dl1,0
D,Dt1,Dr0,Db1,Dl2,1
D,Dt1,Dr0,Db2,Dl0,0
D,Dt1,Dr0,Db2,Dl1,1
D,Dt1,Dr0,Db2,Dl2,2
D,Dt1,Dr1,Db0,Dl0,2
D,Dt1,Dr1,Db0,Dl1,0
D,Dt1,Dr1,Db0,Dl2,1
D,Dt1,Dr1,Db1,Dl0,0
D,Dt1,Dr1,Db1,Dl1,1
D,Dt1,Dr1,Db1,Dl2,2
D,Dt1,Dr1,Db2,Dl0,1
D,Dt1,Dr1,Db2,Dl1,2
D,Dt1,Dr1,Db2,Dl2,0
D,Dt1,Dr2,Db0,Dl0,0
D,Dt1,Dr2,Db0,Dl1,1
D,Dt1,Dr2,Db0,Dl2,2
D,Dt1,Dr2,Db1,Dl0,1
D,Dt1,Dr2,Db1,Dl1,2
D,Dt1,Dr2,Db1,Dl2,0
D,Dt1,Dr2,Db2,Dl0,2
D,Dt1,Dr2,Db2,Dl1,0
D,Dt1,Dr2,Db2,Dl2,1
D,Dt2,Dr0,Db0,Dl0,2
D,Dt2,Dr0,Db0,Dl1,0
D,Dt2,Dr0,Db0,Dl2,1
D,Dt2,Dr0,Db1,Dl0,0
D,Dt2,Dr0,Db1,Dl1,1
D,Dt2,Dr0,Db1,Dl2,2
D,Dt2,Dr0,Db2,Dl0,1
D,Dt2,Dr0,Db2,Dl1,2
D,Dt2,Dr0,Db2,Dl2,0
D,Dt2,Dr1,Db0,Dl0,0
D,Dt2,Dr1,Db0,Dl1,1
D,Dt2,Dr1,Db0,Dl2,2
D,Dt2,Dr1,Db1,Dl0,1
D,Dt2,Dr1,Db1,Dl1,2
D,Dt2,Dr1,Db1,Dl2,0
D,Dt2,Dr1,Db2,Dl0,2
D,Dt2,Dr1,Db2,Dl1,0
D,Dt2,Dr1,Db2,Dl2,1
D,Dt2,Dr2,Db0,Dl0,1
D,Dt2,Dr2,Db0,Dl1,2
D,Dt2,Dr2,Db0,Dl2,0
D,Dt2,Dr2,Db1,Dl0,2
D,Dt2,Dr2,Db1,Dl1,0
D,Dt2,Dr2,Db1,Dl2,1
D,Dt2,Dr2,Db2,Dl0,0
D,Dt2,Dr2,Db2,Dl1,1
D,Dt2,Dr2,Db2,Dl2,2
# Phew!

# Buffer rules
Bt,omni1,omni2,0,omni3,3
Bt,omni1,omni2,1,omni3,7
Bt,omni1,omni2,2,omni3,11
Br,omni1,omni2,omni3,0,4
Br,omni1,omni2,omni3,1,8
Br,omni1,omni2,omni3,2,12
Bb,0,omni1,omni2,omni3,5
Bb,1,omni1,omni2,omni3,9
Bb,2,omni1,omni2,omni3,13
Bl,omni1,0,omni2,omni3,6
Bl,omni1,1,omni2,omni3,10
Bl,omni1,2,omni2,omni3,14
CG,omni1,omni2,omni3,0,16
CG,omni1,omni2,omni3,1,16
CG,omni1,omni2,omni3,2,15

Bt,omni1,omni2,omni3,omni4,3
Br,omni1,omni2,omni3,omni4,4
Bb,omni1,omni2,omni3,omni4,5
Bl,omni1,omni2,omni3,omni4,6
CG,omni1,omni2,omni3,omni4,16``````

Code: Select all

``````x = 24, y = 9, rule = CircuitRule
``````

Code: Select all

``````x = 21, y = 9, rule = CircuitRule
``````x = 23, y = 17, rule = CircuitRule