Arbitrary constructor rule

For discussion of other cellular automata.
Post Reply
fluffykitty
Posts: 1178
Joined: June 14th, 2014, 5:03 pm
Contact:

Arbitrary constructor rule

Post by fluffykitty »

I made a rule that should support replicators. It's possible to make any pattern of state 5 in this rule. You can also translate Bliptile patterns to this rule. Just switch state 3 with state 7 and state 2 with state 8.

Code: Select all

@RULE Stringconstruct
0 empty
1 wire-active
2 chead-1
3 chead-2
4 eater
5 wire-inactive
6 wire-new
7 ehead
8 etail
9 emitter
10 o-emmiter
11 i-emmiter
12 h-emmiter
13 activator block
14 a-head
15 a-wire-head
16 safe eater
@TABLE
n_states:17
neighborhood:Moore
symmetries:rotate4reflect
var a1={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
var a2=a1
var a3=a1
var a4=a1
var a5=a1
var a6=a1
var a7=a1
var a8=a1
var c1={0,2,3,5,6,7,9,11,12,13,14,15,16}
var c2=c1
var c3=c1
var c4=c1
var c5=c1
var c6=c1
var c7=c1
var c8=c1
var d1={0,1,2,3,5,6,8,9,10,12,14,16}
var d2=d1
var d3=d1
var d4=d1
var d5=d1
var d6=d1
var d7=d1
var d8=d1
4,1,a1,a2,a3,a4,a5,a6,a7,0
1,4,a1,a2,a3,a4,a5,a6,a7,4
9,4,a1,a2,a3,a4,a5,a6,a7,4
7,4,a1,a2,a3,a4,a5,a6,a7,4
8,4,a1,a2,a3,a4,a5,a6,a7,4
1,16,a1,a2,a3,a4,a5,a6,a7,16
16,a1,a2,a3,a4,a5,a6,a7,a8,0
2,6,a1,a2,a3,a4,a5,a6,a7,0
2,a1,a2,a3,a4,a5,a6,a7,a8,3
3,16,a1,a2,a3,a4,a5,a6,a7,6
3,11,a1,a2,a3,a4,a5,a6,a7,4
3,1,a1,a2,a3,1,a4,a5,a6,4
3,a1,a2,a3,a4,a5,a6,a7,a8,1
0,3,c1,a1,a2,a3,a4,a5,c2,2
5,3,c1,c2,c3,c4,c5,c6,c7,11
6,9,a1,a2,a3,a4,a5,a6,a7,0
6,10,a1,a2,a3,a4,a5,a6,a7,0
6,a1,a2,a3,a4,a5,a6,a7,a8,5
4,a1,a2,a3,a4,a5,a6,a7,a8,0
7,a1,a2,a3,a4,a5,a6,a7,a8,8
8,a1,a2,a3,a4,a5,a6,a7,a8,1
1,7,d1,d2,d3,d4,d5,d6,d7,7
9,7,a1,a2,a3,a4,a5,a6,a7,10
10,7,a1,a2,a3,a4,a5,a6,a7,9
9,6,a1,a2,a3,a4,a5,a6,a7,10
10,6,a1,a2,a3,a4,a5,a6,a7,9
0,10,c1,a1,a2,c2,a3,a4,c3,3
1,9,a1,a2,c1,1,c2,a3,a4,16
11,6,d1,d2,d3,d4,d5,d6,d7,5
11,2,a1,a2,a3,a4,a5,a6,a7,12
11,14,a1,a2,a3,a4,a5,a6,a7,9
12,6,a1,a2,a3,a4,a5,a6,a7,11
12,16,a1,a2,a3,a4,a5,a6,a7,13
0,13,3,a1,a2,a3,a4,a5,a6,13
13,13,d1,d2,d3,d4,d5,d6,d7,0
13,7,a1,a2,a3,a4,a5,a6,a7,0
13,14,a1,a2,a3,a4,a5,a6,a7,0
13,15,a1,a2,a3,a4,a5,a6,a7,0
13,9,a1,a2,a3,a4,a5,a6,a7,0
0,13,13,a1,a2,a3,a4,a5,13,14
0,14,a1,a2,11,11,11,a3,a4,14
0,14,11,11,a1,a2,a3,a4,a5,14
0,14,d1,d2,d3,d4,d5,d6,d7,14
14,a1,a2,a3,a4,a5,a6,a7,a8,13
5,14,a1,a2,a3,a4,a5,a6,a7,15
5,15,a1,a2,a3,a4,a5,a6,a7,15
15,a1,a2,a3,a4,a5,a6,a7,a8,8
11,15,a1,a2,a3,a4,a5,a6,a7,9
1,14,a1,a2,a3,a4,a5,a6,a7,7
@COLORS
0 0 0 0
1 0 0 255
2 255 0 0
3 0 255 0
4 255 255 255
5 0 0 128
6 0 128 128
7 255 127 0
8 127 63 0
9 255 127 127
10 127 255 127
11 127 63 63
12 191 63 63
13 127 127 255
14 0 255 255
15 0 191 191
16 127 127 127
Demo pattern:

Code: Select all

x = 65, y = 40, rule = Stringconstruct
27.P19.P4.A3.A$27.P19.P$12.A14.P19.P$11.3AI12.P11.6K2.P4.K3.K$11.A15.
P19.P4.5E$11.A15.P19.P$27.P13.N5.P$11.C15.P13.M5.P$11.A15.P19.P$11.A
15.21P$11.A15.P$11.P15.P$27.P$27.P$28P$27.P$27.P$27.P$27.P$27.P$27.P$
27.P$27.P7.G4A$27.P9.A.A$27.P9.12A$27.P11.A$3.I.I21.P11.A$2.AI.I8.7I
6.P11.A$2.AI.I21.P11.A$2.AI.I8.7I6.P11.A$2.AI.I9.5A7.P11.A$3.I.I21.P
11.A$27.P11.A$27.P11.A$4.I22.P8.AHGA$4.A.2AG.3A.3A.AGH.2A3.P8.A2.A$3.
2A.H.H.A.A.A.G.A.A.A4.P8.A2.A8.17I$4.G.G.A.A.A.H.H.A.A.A4.P8.6AI$4.H.
A.A.H.A.G.A.A.A.A4.P12.A7.17I$4.3A.2AG.3A.AGH.3A4.P20.17A!

In the right pattern, it shows how to cycle and activate. It first cycles through wire-emitter-activator. When the activator is hit, it generates a particle. If this particle hits an inactive wire (state 5), it activates the wires. If it hits active wire (state 1), it simply turns into an electron. The rule doesn't support universal construction, but at least for now I'm fine with that.
The bottom-left pattern demonstrates how to construct an arbitrary cell. The gap between signals 1-2, 3-4, 5-6, 7-8 is always 4 cells. The gap between 1-3 and 5-7 is also identical but not fixed. The gap between 1-3 determines the x-value of the new cell, and the y-value is determined by the 1-5 gap. The formulas are: x=1-3 gap-7 y=1-5 gap+1 The x-value must be less than the y-value, so the bottom of the constructable region is a diagonal line. This will probably be significant in a replicator design. The additional spigot is necessary to construct the platform above it. That is demonstrated in the top-middle pattern. The construction plate will be much longer in practice. The strategy to make it is similar to Banks's technique in his Banks-IV paper. (replicator creates long,thin construction assistant from internal constructor.)
The top-left pattern shows self-destruction. This happens when a worm strikes an active wire. It creates a different kind of eater which eats everything in its path.
And last the top-middle pattern shows how to activate the isolated row of state 9 cells in the arbitrary constructor to its left. Simply fire an activator particle at the row.
User avatar
Alexey_Nigin
Posts: 326
Joined: August 4th, 2014, 12:33 pm
Location: Ann Arbor, MI
Contact:

Re: Arbitrary constructor rule

Post by Alexey_Nigin »

In order to build a geminoid, we need an electron-to-photon converter. Here is a very clumsy one:

Code: Select all

x = 34, y = 17, rule = Stringconstruct
7.3A$2AHG4A.24AI$6.A3.2A.2A.2A.2A.2A.2A.2A.A$6.A4.A2.A2.A2.A2.A2.A2.A
$6.6A2.A2.A2.A2.A2.A2.A$6.A7.A2.A2.A2.A2.A2.A$6.9A2.A2.A2.A2.A2.A$6.A
10.A2.A2.A2.A2.A$6.12A2.A2.A2.A2.A$6.A13.A2.A2.A2.A$6.15A2.A2.A2.A$6.
A16.A2.A2.A$6.18A2.A2.A$6.A19.A2.A$6.21A2.A$6.A22.A$6.24A!
Can you make it smaller? If you build a 30-cell one, I will try making a geminoid.
There are 10 types of people in the world: those who understand binary and those who don't.
User avatar
simsim314
Posts: 1828
Joined: February 10th, 2014, 1:27 pm

Re: Arbitrary constructor rule

Post by simsim314 »

Check out my GeminoidParticles rule. It has only 9 states:

1-4 - for particle interacting with construction unit: push, pull, send particle. Another for particle tail.
5-8 - for stable: reflect, reflect with deletion, and construction unit.

I've already build Geminoid for it. But it's not that efficient.
fluffykitty
Posts: 1178
Joined: June 14th, 2014, 5:03 pm
Contact:

Re: Arbitrary constructor rule

Post by fluffykitty »

@simsim314: Yes, I have seen your rule. This rule is based on a different concept.
@Alexey: The photon is only used to trigger circuitry:

Code: Select all

#C All uses of a photon.
x = 15, y = 28, rule = Stringconstruct
$7.K$7.E$6.2E$7.E$7.E$3.8E$3.E$3.E$3.E2$7.K$7.K3.3K$3.N3.K$3.M2$6.N5.
N$6.M5.M8$3.N$3.M!
The "shrinking worm" is the thing used for construction:

Code: Select all

#C Construction.
x = 43, y = 68, rule = Stringconstruct
$3.I.I$.A.I.I6.25I$.A.I.I$.A.I.I6.25I$.A.I.I$.A.I.I7.23A$3.I.I4$4.I$
4.A$3.2A$4.A$4.G$4.H$4.A$4.A$4.A$4.A$4.A$4.A$4.G$4.H$4.A$4.A$4.A$4.A$
4.G$4.H$4.A$4.A$4.A$4.A$4.A$4.A$4.G$4.H$4.A$4.A$4.G$4.H$4.A$4.A$4.A$
4.A$4.A$4.A$4.G$4.H$4.A$4.A$4.A$4.A$4.G$4.H$4.A$4.A$4.A$4.A$4.A$4.A$
4.G$4.H$4.A!
Also, add these lines to your Stringsconstruct rule:

Code: Select all

11,6,11,a1,a2,a3,a4,a5,a6,5
11,a1,11,a2,a3,a4,a5,a6,a7,5
0,14,a1,a2,11,a3,a4,a5,a6,14
User avatar
Alexey_Nigin
Posts: 326
Joined: August 4th, 2014, 12:33 pm
Location: Ann Arbor, MI
Contact:

Re: Arbitrary constructor rule

Post by Alexey_Nigin »

fluffykitty wrote:The photon is only used to trigger circuitry
So... This rule supports a photon and you don't want to store information using it‽ Using static tape leads to a quadratic slowdown, which is not very good.
fluffykitty wrote:Also, add these lines to your Stringsconstruct rule
To the top or to the bottom?
There are 10 types of people in the world: those who understand binary and those who don't.
fluffykitty
Posts: 1178
Joined: June 14th, 2014, 5:03 pm
Contact:

Re: Arbitrary constructor rule

Post by fluffykitty »

Alexey_Nigin wrote:
fluffykitty wrote:The photon is only used to trigger circuitry
So... This rule supports a photon and you don't want to store information using it‽ Using static tape leads to a quadratic slowdown, which is not very good.
Due to the nature of the construction arm, a static tape would have to be directly wired into the replicator. Though yes, now I understand. The problem is that the rule was not designed for this, so the s-p converter cannot get much smaller.
Alexey_Nigin wrote:
fluffykitty wrote:Also, add these lines to your Stringsconstruct rule
To the top or to the bottom?
Bottom.
Post Reply