Page 1 of 1

Photon-wire rule

Posted: March 16th, 2012, 10:44 am
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 

Re: Photon-wire rule

Posted: March 16th, 2012, 11:06 am
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!

Re: Photon-wire rule

Posted: March 16th, 2012, 11:39 am
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...

Re: Photon-wire rule

Posted: March 16th, 2012, 4:05 pm
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?

Re: Photon-wire rule

Posted: March 5th, 2014, 12:51 pm
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.