The rule has 20 states; parentheses indicate behavior that never actually occurs when running a meta-lifepattern:
OFF state
State 1, which produces spark in any direction (that isn't blocked) and becomes state 18.
States 2-9 which are first-generation sparks in 8 directions. They travel forward 1 cell (unless their path is blocked by states 1,18, or 19) and turn into second-generation sparks. (If two of them are pointing at the same cell, they both die in the next generation.)
States 10-17 which are second-generation sparks. Each of these dies in the next generation (unless their place gets taken by another spark), but if two or three of them point at a state-19 cell, it turns to state 1. If three of them point at an empty cell, it becomes state 1; this is the core of the life-simulation and the rule can be altered to emulate any B1...8/S1...8 rule.
State 18 always becomes state 19 in the next generation.
State 19 dies in the next generation, unless three second-generation sparks point at it.
Here is the .rule file:
Code: Select all
@RULE MetaLife
@TABLE
n_states:20
neighborhood:Moore
symmetries:none
var all1={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var all2={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var all3={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var all4={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var all5={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var all6={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var all7={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var all8={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var xall={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17}
var yall1={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var yall2={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var yall3={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var yall4={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var yall5={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var yall6={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var yall7={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var yall8={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var fall={2,3,4,5,6,7,8,9}
var sall={10,11,12,13,14,15,16,17}
var e={0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var f={0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var g={0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var h={0,1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
var a={0,1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,19}
var b={0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19}
var c={0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,17,18,19}
var d={0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19}
var p={0,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19}
var q={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19}
var r={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,18,19}
var s={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19}
var t={0,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19}
var u={0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19}
var v={0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19}
var w={0,1,2,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,19}
#First-generation sparkers changing into second.
xall,6,b,c,d,e,f,g,h,14
xall,a,7,c,d,e,f,g,h,15
xall,a,b,8,d,e,f,g,h,16
xall,a,b,c,9,e,f,g,h,17
xall,a,b,c,d,2,f,g,h,10
xall,a,b,c,d,e,3,g,h,11
xall,a,b,c,d,e,f,4,h,12
xall,a,b,c,d,e,f,g,5,13
fall,a,b,c,d,e,f,g,h,0
sall,a,b,c,d,e,f,g,h,0
#When two or more first-gen sparkers collide on the same cell they both get destroyed.
xall,6,7,all1,all2,all3,all4,all5,all6,0
xall,6,b,8,all1,all2,all3,all4,all5,0
xall,6,b,c,9,all1,all2,all3,all4,0
xall,6,b,c,d,2,all1,all2,all3,0
xall,6,b,c,d,e,3,all1,all2,0
xall,6,b,c,d,e,f,4,all1,0
xall,6,b,c,d,e,f,g,5,0
xall,a,7,8,all1,all2,all3,all4,all5,0
xall,a,7,c,9,all1,all2,all3,all4,0
xall,a,7,c,d,2,all1,all2,all3,0
xall,a,7,c,d,e,3,all1,all2,0
xall,a,7,c,d,e,f,4,all1,0
xall,a,7,c,d,e,f,g,4,0
xall,a,b,8,9,all1,all2,all3,all4,0
xall,a,b,8,d,2,all1,all2,all3,0
xall,a,b,8,d,e,3,all1,all2,0
xall,a,b,8,d,e,f,4,all1,0
xall,a,b,8,d,e,f,g,4,0
xall,a,b,c,9,2,all1,all2,all3,0
xall,a,b,c,9,e,3,all1,all2,0
xall,a,b,c,9,e,f,4,all1,0
xall,a,b,c,9,e,f,g,4,0
xall,a,b,c,d,2,3,all1,all2,0
xall,a,b,c,d,2,f,4,all1,0
xall,a,b,c,d,2,f,g,4,0
xall,a,b,c,d,e,3,4,all1,0
xall,a,b,c,d,e,3,g,5,0
xall,a,b,c,d,e,f,4,5,0
#This is the part where state-1 cells spark.
xall,1,yall1,yall2,yall3,yall4,yall5,yall6,yall7,6
xall,yall1,1,yall2,yall3,yall4,yall5,yall6,yall7,7
xall,yall1,yall2,1,yall3,yall4,yall5,yall6,yall7,8
xall,yall1,yall2,yall3,1,yall4,yall5,yall6,yall7,9
xall,yall1,yall2,yall3,yall4,1,yall5,yall6,yall7,2
xall,yall1,yall2,yall3,yall4,yall5,1,yall6,yall7,3
xall,yall1,yall2,yall3,yall4,yall5,yall6,1,yall7,4
xall,yall1,yall2,yall3,yall4,yall5,yall6,yall7,1,5
#This is where more than one state-one cell is on the edges, and can't produce a spark. It doesn't include the cases where there is a first-gen sparker pointing in on the edges; that was already taken care of.
xall,1,1,c,d,e,f,g,h,0
xall,1,b,1,d,e,f,g,h,0
xall,1,b,c,1,e,f,g,h,0
xall,1,b,c,d,1,f,g,h,0
xall,1,b,c,d,e,1,g,h,0
xall,1,b,c,d,e,f,1,h,0
xall,1,b,c,d,e,f,g,1,0
xall,a,1,1,d,e,f,g,h,0
xall,a,1,c,1,e,f,g,h,0
xall,a,1,c,d,1,f,g,h,0
xall,a,1,c,d,e,1,g,h,0
xall,a,1,c,d,e,f,1,h,0
xall,a,1,c,d,e,f,g,1,0
xall,a,b,1,1,e,f,g,h,0
xall,a,b,1,d,1,f,g,h,0
xall,a,b,1,d,e,1,g,h,0
xall,a,b,1,d,e,f,1,h,0
xall,a,b,1,d,e,f,g,1,0
xall,a,b,c,1,1,f,g,h,0
xall,a,b,c,1,e,1,g,h,0
xall,a,b,c,1,e,f,1,h,0
xall,a,b,c,1,e,f,g,1,0
xall,a,b,c,d,1,1,g,h,0
xall,a,b,c,d,1,f,1,h,0
xall,a,b,c,d,1,f,g,1,0
xall,a,b,c,d,e,1,1,h,0
xall,a,b,c,d,e,1,g,1,0
xall,a,b,c,d,e,f,1,1,0
0,14,15,16,s,t,u,v,w,1
0,14,15,r,17,t,u,v,w,1
0,14,15,r,s,10,u,v,w,1
0,14,15,r,s,t,11,v,w,1
0,14,15,r,s,t,u,12,w,1
0,14,15,r,s,t,u,v,13,1
0,14,q,16,17,t,u,v,w,1
0,14,q,16,s,10,u,v,w,1
0,14,q,16,s,t,11,v,w,1
0,14,q,16,s,t,u,12,w,1
0,14,q,16,s,t,u,v,13,1
0,14,q,r,17,10,u,v,w,1
0,14,q,r,17,t,11,v,w,1
0,14,q,r,17,t,u,12,w,1
0,14,q,r,17,t,u,v,13,1
0,14,q,r,s,10,11,v,w,1
0,14,q,r,s,10,u,12,w,1
0,14,q,r,s,10,u,v,13,1
0,14,q,r,s,t,11,12,w,1
0,14,q,r,s,t,11,v,13,1
0,14,q,r,s,t,u,12,13,1
0,p,15,16,17,t,u,v,w,1
0,p,15,16,s,10,u,v,w,1
0,p,15,16,s,t,11,v,w,1
0,p,15,16,s,t,u,12,w,1
0,p,15,16,s,t,u,v,13,1
0,p,15,r,17,10,u,v,w,1
0,p,15,r,17,t,11,v,w,1
0,p,15,r,17,t,u,12,w,1
0,p,15,r,17,t,u,v,13,1
0,p,15,r,s,10,11,v,w,1
0,p,15,r,s,10,u,12,w,1
0,p,15,r,s,10,u,v,13,1
0,p,15,r,s,t,11,12,w,1
0,p,15,r,s,t,11,v,13,1
0,p,15,r,s,t,u,12,13,1
0,p,q,16,17,10,u,v,w,1
0,p,q,16,17,t,11,v,w,1
0,p,q,16,17,t,u,12,w,1
0,p,q,16,17,t,u,v,13,1
0,p,q,16,s,10,11,v,w,1
0,p,q,16,s,10,u,12,w,1
0,p,q,16,s,10,u,v,13,1
0,p,q,16,s,t,11,12,w,1
0,p,q,16,s,t,11,v,13,1
0,p,q,16,s,t,u,12,13,1
0,p,q,r,17,10,11,v,w,1
0,p,q,r,17,10,u,12,w,1
0,p,q,r,17,10,u,v,13,1
0,p,q,r,17,t,11,12,w,1
0,p,q,r,17,t,11,v,13,1
0,p,q,r,17,t,u,12,13,1
0,p,q,r,s,10,11,12,w,1
0,p,q,r,s,10,11,v,13,1
0,p,q,r,s,10,u,12,13,1
0,p,q,r,s,t,11,12,13,1
19,14,15,r,s,t,u,v,w,1
19,14,q,16,s,t,u,v,w,1
19,14,q,r,17,t,u,v,w,1
19,14,q,r,s,10,u,v,w,1
19,14,q,r,s,t,11,v,w,1
19,14,q,r,s,t,u,12,w,1
19,14,q,r,s,t,u,v,13,1
19,p,15,16,s,t,u,v,w,1
19,p,15,r,17,t,u,v,w,1
19,p,15,r,s,10,u,v,w,1
19,p,15,r,s,t,11,v,w,1
19,p,15,r,s,t,u,12,w,1
19,p,15,r,s,t,u,v,13,1
19,p,q,16,17,t,u,v,w,1
19,p,q,16,s,10,u,v,w,1
19,p,q,16,s,t,11,v,w,1
19,p,q,16,s,t,u,12,w,1
19,p,q,16,s,t,u,v,13,1
19,p,q,r,17,10,u,v,w,1
19,p,q,r,17,t,11,v,w,1
19,p,q,r,17,t,u,12,w,1
19,p,q,r,17,t,u,v,13,1
19,p,q,r,s,10,11,v,w,1
19,p,q,r,s,10,u,12,w,1
19,p,q,r,s,10,u,v,13,1
19,p,q,r,s,t,11,12,w,1
19,p,q,r,s,t,11,v,13,1
19,p,q,r,s,t,u,12,13,1
19,14,15,16,s,t,u,v,w,1
19,14,15,r,17,t,u,v,w,1
19,14,15,r,s,10,u,v,w,1
19,14,15,r,s,t,11,v,w,1
19,14,15,r,s,t,u,12,w,1
19,14,15,r,s,t,u,v,13,1
19,14,q,16,17,t,u,v,w,1
19,14,q,16,s,10,u,v,w,1
19,14,q,16,s,t,11,v,w,1
19,14,q,16,s,t,u,12,w,1
19,14,q,16,s,t,u,v,13,1
19,14,q,r,17,10,u,v,w,1
19,14,q,r,17,t,11,v,w,1
19,14,q,r,17,t,u,12,w,1
19,14,q,r,17,t,u,v,13,1
19,14,q,r,s,10,11,v,w,1
19,14,q,r,s,10,u,12,w,1
19,14,q,r,s,10,u,v,13,1
19,14,q,r,s,t,11,12,w,1
19,14,q,r,s,t,11,v,13,1
19,14,q,r,s,t,u,12,13,1
19,p,15,16,17,t,u,v,w,1
19,p,15,16,s,10,u,v,w,1
19,p,15,16,s,t,11,v,w,1
19,p,15,16,s,t,u,12,w,1
19,p,15,16,s,t,u,v,13,1
19,p,15,r,17,10,u,v,w,1
19,p,15,r,17,t,11,v,w,1
19,p,15,r,17,t,u,12,w,1
19,p,15,r,17,t,u,v,13,1
19,p,15,r,s,10,11,v,w,1
19,p,15,r,s,10,u,12,w,1
19,p,15,r,s,10,u,v,13,1
19,p,15,r,s,t,11,12,w,1
19,p,15,r,s,t,11,v,13,1
19,p,15,r,s,t,u,12,13,1
19,p,q,16,17,10,u,v,w,1
19,p,q,16,17,t,11,v,w,1
19,p,q,16,17,t,u,12,w,1
19,p,q,16,17,t,u,v,13,1
19,p,q,16,s,10,11,v,w,1
19,p,q,16,s,10,u,12,w,1
19,p,q,16,s,10,u,v,13,1
19,p,q,16,s,t,11,12,w,1
19,p,q,16,s,t,11,v,13,1
19,p,q,16,s,t,u,12,13,1
19,p,q,r,17,10,11,v,w,1
19,p,q,r,17,10,u,12,w,1
19,p,q,r,17,10,u,v,13,1
19,p,q,r,17,t,11,12,w,1
19,p,q,r,17,t,11,v,13,1
19,p,q,r,17,t,u,12,13,1
19,p,q,r,s,10,11,12,w,1
19,p,q,r,s,10,11,v,13,1
19,p,q,r,s,10,u,12,13,1
19,p,q,r,s,t,11,12,13,1
#else
19,all1,all2,all3,all4,all5,all6,all7,all8,0
1,all1,all2,all3,all4,all5,all6,all7,all8,18
18,all1,all2,all3,all4,all5,all6,all7,all8,19
@COLORS
1 255 0 0
2 255 96 0
3 255 96 0
4 255 96 0
5 255 96 0
6 255 96 0
7 255 96 0
8 255 96 0
9 255 96 0
10 255 192 0
11 255 192 0
12 255 192 0
13 255 192 0
14 255 192 0
15 255 192 0
16 255 192 0
17 255 192 0
18 0 255 0
19 0 0 255
@ICONS
XPM
"7 133 6 1"
". c #000000"
"A c #FF0000"
"B c #00FF00"
"C c #0000FF"
"x c #FF6000"
"y c #FFC000"
"...A..."
"..AAA.."
".AAAAA."
"AAAAAAA"
".AAAAA."
"..AAA.."
"...A..."
"...x..."
"..xxx.."
".x.x.x."
"...x..."
"..xxx.."
".x.x.x."
"...x..."
"....xxx"
".....xx"
"....x.x"
".xxx..."
"..xx..."
".x.x..."
"x......"
"......."
".x..x.."
"..x..x."
"xxxxxxx"
"..x..x."
".x..x.."
"......."
"x......"
".x.x..."
"..xx..."
".xxx..."
"....x.x"
".....xx"
"....xxx"
"...x..."
".x.x.x."
"..xxx.."
"...x..."
".x.x.x."
"..xxx.."
"...x..."
"......x"
"...x.x."
"...xx.."
"...xxx."
"x.x...."
"xx....."
"xxx...."
"......."
"..x..x."
".x..x.."
"xxxxxxx"
".x..x.."
"..x..x."
"......."
"xxx...."
"xx....."
"x.x...."
"...xxx."
"...xx.."
"...x.x."
"......x"
"...y..."
"..yyy.."
".y.y.y."
"...y..."
"...y..."
"...y..."
"...y..."
"....yyy"
".....yy"
"....y.y"
"...y..."
"..y...."
".y....."
"y......"
"......."
"....y.."
".....y."
"yyyyyyy"
".....y."
"....y.."
"......."
"y......"
".y....."
"..y...."
"...y..."
"....y.y"
".....yy"
"....yyy"
"...y..."
"...y..."
"...y..."
"...y..."
".y.y.y."
"..yyy.."
"...y..."
"......y"
".....y."
"....y.."
"...y..."
"y.y...."
"yy....."
"yyy...."
"......."
"..y...."
".y....."
"yyyyyyy"
".y....."
"..y...."
"......."
"yyy...."
"yy....."
"y.y...."
"...y..."
"....y.."
".....y."
"......y"
"...B..."
"..BBB.."
".BBBBB."
"BBBBBBB"
".BBBBB."
"..BBB.."
"...B..."
"...C..."
"..CCC.."
".CCCCC."
"CCCCCCC"
".CCCCC."
"..CCC.."
"...C..."
Code: Select all
x = 7, y = 7, rule = MetaLife
A2.A2.A3$6.A3$3.A!