Photon-wire rule

For discussion of other cellular automata.
Post Reply
User avatar
Hektor
Posts: 89
Joined: November 3rd, 2011, 2:37 pm

Photon-wire rule

Post by Hektor »

This is just an early version of the automation I have in mind.
I'm trying to create a rule that combines wires (like in wireworld, Langton loops and JvN) and photons moving in the void (like in Blocks and Walls).
So far, these are the states:
0 : void
1 : void-photon's head
2 : void-photon's tail
3 : wire
4 : wire-photon's head
5 : wire-photon's tail
6 : void/wire extender

Code: Select all

n_states:8
neighborhood:Moore
symmetries:rotate4

var a1 = {0,1,2,3,4,5,6,7}
var a2 = a1
var a3 = a1
var a4 = a1
var a5 = a1
var a6 = a1
var a7 = a1
var a8 = a1

var btw1 = {0,1,4}
var btw2 = btw1


var head = {1,4}
var tail = {2,5}
var pass = {0,3}

# 8 1 2
# 7 C 3
# 6 5 4




#> Void-Photon Fusion
0,0,2,1,1,2,0,0,0,2
0,0,0,0,0,0,1,1,2,1
0,0,0,0,0,0,2,1,1,1

#> Photon Collisions
1,2,a2,a3,a4,2,a6,a7,a8,2

#> Photon Logic Transitions
#>> Void/Wire Extender
0,0,0,0,0,0,6,4,a8,3 #Extend Wire
0,0,0,0,0,0,a8,4,6,3 #Extend Wire (reflect) 
0,tail,head,6,a4,a5,a6,a7,a8,0 #BUGFIXER !
0,a1,a2,6,head,tail,a6,a7,a8,0 #BUGFIXER !
0,a1,a2,a3,a4,a5,a6,6,head,6 #Advance Extender 
6,head,a2,a3,a4,a5,a6,a7,tail,0 #Clear Extender
0,a1,head,6,a4,a5,a6,a7,a8,6 #Advance Extender (reflect) 
6,a1,a2,a3,a4,head,tail,a7,a8,0 #Clear Extender (reflect)


#> Void Reflection Wall

2,0,0,0,0,0,6,6,6,1
6,6,0,2,0,6,0,0,0,2 

0,0,0,6,2,0,0,0,0,6 #Make the new wall
0,0,6,2,6,0,0,0,0,6 # ^ ^ ^ ^
0,0,2,6,0,0,0,0,0,6 # ^ ^ ^ ^
6,0,0,0,1,2,0,0,0,0 #Destroy old wall
6,2,1,0,0,0,0,0,0,0 # ^ ^ ^ ^


#> General Photon transition
1,a1,a2,a3,a4,a5,a6,a7,a8,2 #Head to Tail
4,a1,a2,a3,a4,a5,a6,a7,a8,5 #^^
2,a1,a2,a3,a4,a5,a6,a7,a8,0 #Tail to Void
5,a1,a2,a3,a4,a5,a6,a7,a8,3 #Tail to Wire
0,a1,a2,a3,btw1,head,btw2,a7,a8,1 #Void to Head
3,a1,a2,a3,btw1,head,btw2,a7,a8,4 #Wire to Head
0,a1,a2,a3,3,1,btw1,a7,a8,1 #BUGFIXER !
0,a1,a2,a3,btw1,1,3,a7,a8,1 #BUGFIXER !
0,a1,a2,a3,3,1,3,a7,a8,1 #Can pass wire gates

#> Wire Corners
3,a1,a2,a3,a4,4,a6,a7,a8,4
  

Code: Select all

color=1    128 128 128
color=2    230 230 230
color=3    216 100 000
color=4    013 120 075
color=5    205 230 230 
color=6    255 166 077 
User avatar
Hektor
Posts: 89
Joined: November 3rd, 2011, 2:37 pm

Re: Photon-wire rule

Post by Hektor »

Here is an example of how a photon can travel inside and outside the wire, showing several splitter and a simple eaters.

Code: Select all

x = 47, y = 28, rule = photon-wire
24.C$23.C6$26.3C$7.C2.C13.C.C.C$BA2.C13.5C.3C.12C5.2C$10.C9.C3.C2.2C
3.7C6.C$27.C4.8C5.C$27.C4.7C6.C$27.C4.8C5.C$27.C4.7C6.C$27.C4.8C5.C$
27.C4.C.C.C.C6.C$27.C$17.C.C3.C3.C$16.C3.C3.C.2C$31.C$32.C$33.C$34.C$
35.C$36.C$37.C6.C$38.C6.C!


The void photons can also be stacked, so it's easy to build an AND gate

Code: Select all

x = 46, y = 50, rule = photon-wire
$45.B$45.A11$34.B$34.A11$23.B$23.A11$12.B$12.A11$.BA!

Code: Select all

x = 15, y = 27, rule = photon-wire
3.B$3.A8.C$13.C$12.C.C$BA10.C$13.C$12.C5$12.C$13.C$12.C.C$BA10.C$13.C
$12.C5$12.C$13.C$BA10.C.C$12.C$13.C$12.C!
It's also very simple to "populate" looping wires without annoying splitting problems

Code: Select all

x = 63, y = 21, rule = photon-wire
21.4C21.17C$23.C38.C$21.C$21.3C2$29.7C8.2C$29.C$29.C$29.7C$35.C$23.C
11.C$21.10C$21.C8.C$21.C8.C$21.C8.2C30.C$21.C8.C31.C$21.C8.C$21.C8.C$
21.C8.C$30.C15.C$BA.BA.BA.BA10.10C15.17C!
User avatar
Hektor
Posts: 89
Joined: November 3rd, 2011, 2:37 pm

Re: Photon-wire rule

Post by Hektor »

The sixth block can slow down continuous lines of photons, in the void:

Code: Select all

x = 14, y = 8, rule = photon-wire
13.F$4.2C$4.C$4.C$4.C$D5C$E.C10.F$3C!
Can extend wire:

Code: Select all

x = 6, y = 8, rule = photon-wire
5.F$4.2C$4.C$4.C$4.C$D4C$E.C$3C!
And can create a reflector wall that bounces back the photons:

Code: Select all

x = 20, y = 10, rule = photon-wire
19.F$7.BA10.F$19.F5$ED3C14.F$C.C$3C!


With this last property, it's possible to make an increasing period gun in several ways:

Code: Select all

x = 24, y = 36, rule = photon-wire
9.5C$9.C3.C$9.C3.C$.C7.C9.F$C5.BA2C3.2C4.F$19.F21$18.C$17.C6$13.F4.C
4.F$13.FAB.3C3.F$13.F9.F!
I plan to code some other states like a moving block and some other wire-extenders...
User avatar
Wojowu
Posts: 210
Joined: October 1st, 2011, 1:24 pm

Re: Photon-wire rule

Post by Wojowu »

OR gate

Code: Select all

x = 24, y = 4, rule = photon-wire
13.C2$BA4.BA3.C.C.C3.AB.AB$13.C!
True AND gate

Code: Select all

x = 10, y = 13, rule = photon-wire
6.B$6.A5$6.B$6.A3$BA.BA4.C$7.2C$6.C!
NOT gate

Code: Select all

x = 11, y = 21, rule = photon-wire
10.B$10.A5$10.B$10.A2$10.B$10.A7$DCEDC$B2.C$C2.B$DECD!
XOR gate

Code: Select all

x = 17, y = 16, rule = photon-wire
10.B$10.A5$10.B$10.A3$BA.BA7.C$12.C$10.2C3.C$15.C2$12.2C.2C!
AND NOT gate

Code: Select all

x = 13, y = 12, rule = photon-wire
10.B$10.A5$10.B$10.A3$BA.BA7.C$11.C!
All capable for p3 signals
What is state 7 used for?
First question ever. Often referred to as The Question. When this question is asked in right place in right time, no one can lie. No one can abstain. But when The Question is asked, silence will fall. Silence must fall. The Question is: Doctor Who?
twinb7
Posts: 192
Joined: February 11th, 2014, 8:08 pm
Location: Ames, Iowa

Re: Photon-wire rule

Post by twinb7 »

Updated this interesting rule's .rule file to work.

WireVoid.rule:

Code: Select all

@RULE WireVoid
@TABLE
n_states:8
neighborhood:Moore
symmetries:rotate4
var a1 = {0,1,2,3,4,5,6,7}
var a2 = a1
var a3 = a1
var a4 = a1
var a5 = a1
var a6 = a1
var a7 = a1
var a8 = a1
var btw1 = {0,1,4}
var btw2 = btw1
var head = {1,4}
var tail = {2,5}
var pass = {0,3}
0,0,2,1,1,2,0,0,0,2
0,0,0,0,0,0,1,1,2,1
0,0,0,0,0,0,2,1,1,1
1,2,a2,a3,a4,2,a6,a7,a8,2
0,0,0,0,0,0,6,4,a8,3
0,0,0,0,0,0,a8,4,6,3
0,tail,head,6,a4,a5,a6,a7,a8,0
0,a1,a2,6,head,tail,a6,a7,a8,0
0,a1,a2,a3,a4,a5,a6,6,head,6
6,head,a2,a3,a4,a5,a6,a7,tail,0
0,a1,head,6,a4,a5,a6,a7,a8,6
6,a1,a2,a3,a4,head,tail,a7,a8,0
2,0,0,0,0,0,6,6,6,1
6,6,0,2,0,6,0,0,0,2 
0,0,0,6,2,0,0,0,0,6
0,0,6,2,6,0,0,0,0,6
0,0,2,6,0,0,0,0,0,6
6,0,0,0,1,2,0,0,0,0
6,2,1,0,0,0,0,0,0,0
1,a1,a2,a3,a4,a5,a6,a7,a8,2
4,a1,a2,a3,a4,a5,a6,a7,a8,5
2,a1,a2,a3,a4,a5,a6,a7,a8,0
5,a1,a2,a3,a4,a5,a6,a7,a8,3
0,a1,a2,a3,btw1,head,btw2,a7,a8,1
3,a1,a2,a3,btw1,head,btw2,a7,a8,4
0,a1,a2,a3,3,1,btw1,a7,a8,1
0,a1,a2,a3,btw1,1,3,a7,a8,1
0,a1,a2,a3,3,1,3,a7,a8,1
3,a1,a2,a3,a4,4,a6,a7,a8,4
@COLORS
1 128 128 128
2 230 230 230
3 216 100 000
4 013 120 075
5 205 230 230 
6 255 166 077 
 
I have the same question- what is state 7 used for? Apparently, nothing, looking at the table.
Post Reply