Shapeloop, a new loop rule
Posted: September 4th, 2014, 6:17 pm
In this rule, there are loops that can come in different shapes(It doesn't have to be symmetrical). The interesting part about this rule is that there are many successful mutations that creates a different species of loop. The rule also prevent rectangular loops from reproducing stable loops. If you see any bugs, please report it!
Here is the new and improved rule based on the foodshapeloop rule. This rule usually gets updated the same time as the foodshapeloop rule.
Edit: Fixed some mutations that causes instant death, fixed c0b0p0's bug, reduced the amount of junk left behind, fixed many minor/rare bugs. (3/30/15) version 1.08
Edit: Fixed another bug where mutations can cause instant death, fixed a bug involving boundaries, fixed a few minor/rare bugs (4/14/15) version 1.08.1
A cross shaped loop
Here is the old rule
Here's the link to the foodshapeloop rule table. (It has a much better biodiversity than shapeloop3)
http://conwaylife.com/forums/viewtopic. ... =25#p13909
Here are the variants based on the old rule.
shapeloop2a - http://conwaylife.com/forums/viewtopic. ... =25#p13686
shapeloop-b rule (bounded version of shapeloop) - http://conwaylife.com/forums/viewtopic. ... t=0#p13451
shapeloop-ltd rule (bounded version of shapeloop) - http://conwaylife.com/forums/viewtopic. ... t=0#p13463
2armshapeloop (unbounded) - http://conwaylife.com/forums/viewtopic. ... =25#p13560
2armshapeloop-a (bounded) - http://conwaylife.com/forums/viewtopic. ... =25#p13576
2armshapeloop2-a - viewtopic.php?f=11&t=1440&start=25#p13765
*Edit (3/19/15):renamed rule to shapeloop3, added links to variants of the old rule
Here is the new and improved rule based on the foodshapeloop rule. This rule usually gets updated the same time as the foodshapeloop rule.
Code: Select all
@RULE shapeloop3
version 1.08.1
1 wire
2 left signal
3 right signal
4 forward signal
5 trigger/right signal
6 idle/right signal
7 6 to 5 converter
8 signal lead
9 arm edge 1
10 arm edge 2
11 arm starter
12 arm delete
13 delete all
14 boundary
15 checker
#/ shows where edits/additions were made
#* shows where movements were made
@TABLE
n_states:16
neighborhood:Moore
symmetries:rotate4
Var a={0,1,2,3,4,5,6,7,8,9,10,11,12,13,15}
Var b={1,2,3,4,5,6,15}
var c={9,10}
var d={1,2,3,4,5,6,7,11,12,15}
var e={1,2,3,4,5,6,11,15}
var f={0,7,8,9,10,12,13}
var g={8,9,10}
var h={0,8}
var i={0,11,12}
var j={3,5,6,15}
var k={1,2,3,4,5,6,7,8,9,10,11,15}
var l={0,7,8,9,10,12,13}
var m={0}
var n={9}
var o={10}
var p={9,10}
var q={0,1,2,3,4,5,6,8,9,10,12,15}
var r={0,8,12,13}
#var s={16,17}
var t={8}
var u={8,9,10}
var v={1,2,3,4,5,6,8,9,10,15}
var w={0,12,13}
var x={1,4}
var y={2,4}
var z={0,12}
var A={0,12}
var B={0,13}
#var C={15,15}
var D={8,9,10,12}
var E={0,1,2,3,4,5,6,7,8,9,10,11,12,15}
var F={0,13}
var G={0,7,8,9,10,11,12}
var H={0,7,12}
var I={0,8}
var J={1,2,3,4,5,6,15}
var K={0,7,8,9,10,12,13}
var L={12}
#var M={15,16}
var N={0,8,9,10,11,12}
var O={0,7,8,11,12,13}
var P={0,12,13}
var Q={0,1,2,3,4,5,6,7,10,12,13,15}
var R={0,8,9,10}
var S={1,2,3,4,5,6,7,11,12,13,15}
var T={0,1,2,3,4,5,6,7,11,12,13,15}
var U={0,7,11,12,13}
var V={1,2,3,4,5,6,8,9,10,15}
var W={0,12}
var X={1,2,3,4,6,7,8,9,15}
var Y={0,1,2,3,4,5,6,12,15}
var Z={15}
var AA={8,10}
var AB={11}
var AC={12}
var AD={0,7,8,9,10,13}
var AE={12}
var AF={7,11}
var AI={0,8,9,10}
Var AAA={6,15}
var AAB={1,2,3,4,5,6,11,15}
var aa={a}
var ab={a}
var ac={a}
var ad={a}
var ae={a}
var af={a}
var ag={a}
var ba={b}
var bb={b}
var bc={b}
var bd={b}
var bd={b}
var ca={c}
var cb={c}
var cc={c}
var da={d}
var db={d}
var dc={d}
var dd={d}
var fa={f}
var fb={f}
var ga={g}
var gb={g}
var gc={g}
var ha={h}
var la={l}
var lb={l}
var lc={l}
var ld={l}
var le={l}
var lf={l}
var lg={l}
var na={n}
var ma={m}
var mb={m}
var mc={m}
var md={m}
var me={m}
var pa={p}
var pb={p}
var pc={p}
var ta={t}
var tb={t}
var ua={u}
var ub={u}
var uc={u}
var ud={u}
var ue={u}
var Aa={A}
var Ab={A}
var Ac={A}
var Ad={A}
var Ae={A}
var Ba={B}
var Da={D}
var Ea={E}
var Eb={E}
var Ec={E}
var Fa={F}
var Ga={G}
var Ha={H}
var Hb={H}
var Hc={H}
var Hd={H}
var Ia={I}
var Ja={J}
var Pa={P}
var Ta={T}
var Tb={T}
var Tc={T}
var Ua={U}
#state 11
0,b,5,0,0,0,0,0,m,11
b,ba,g,5,0,0,0,0,0,6
#
11,8,m,Z,a,aa,ab,x,t,6
#
8,0,0,0,b,11,ba,12,0,12
#/
#
AAB,D,0,b,ba,0,0,12,R,7
AAB,D,0,ba,bb,0,0,12,z,7
8,a,aa,0,b,7,0,R,ab,0
#
11,12,a,0,0,b,g,ga,A,13
11,12,a,0,9,b,g,ga,A,13
#
11,l,la,lb,lc,ld,le,lf,lg,0
#completed reproducton
8,0,a,aa,ab,ac,ad,12,b,0
#special delete immunity
p,l,la,1,e,A,a,aa,ab,p
f,12,b,ba,bb,A,a,p,bc,f
#/
#special arm destruction
9,A,Aa,u,b,ba,bb,bc,bd,0
10,A,Aa,u,b,ba,bb,bc,bd,12
#special bended arm destruction
g,a,aa,u,b,ba,bb,bc,12,12
#special state 7
12,L,D,ba,A,Aa,Ab,bb,bc,7
12,L,D,ba,A,Aa,bd,bb,bc,7
b,ba,bb,12,12,bc,bd,A,Aa,7
#special arm destruction
b,g,ga,ba,A,Aa,Ab,12,12,ba
g,a,aa,u,b,ba,bb,12,ab,12
12,12,u,ba,A,Aa,a,aa,ab,12
#special state 8/lead transiton
g,a,aa,u,b,ba,bb,S,ab,8
g,u,a,p,3,ua,b,ba,bb,8
#arm collision recovery
##starter arm
A,Aa,b,ba,11,g,4,p,Ab,A
g,A,b,11,ba,u,p,4,pa,g
u,g,11,b,ba,ua,a,p,4,u
#
g,A,b,11,ba,ga,4,p,Aa,8
u,g,11,b,ba,ua,p,4,pa,u
##broken arm exeption
b,A,p,0,pa,u,ua,ba,Aa,ba
b,A,p,0,pa,u,ua,ba,bb,ba
b,A,p,0,pa,ba,Aa,Ab,Ac,ba
##broken arm
b,8,u,ba,E,G,Ea,Ga,Eb,12
b,u,ua,ba,E,O,Ea,G,Eb,12
b,A,u,ba,Aa,ua,G,Ga,lb,12
b,A,u,ba,Aa,Ab,ua,G,Ga,12
b,u,A,Ab,ua,ba,Ac,bb,Ad,12
#
b,u,ua,ba,ub,uc,ud,bb,ue,12
b,p,u,12,ua,p,l,la,lb,12
#
b,A,u,ba,Ab,l,la,lb,lc,12
#/
##boundary
b,l,p,u,ba,bb,lb,lc,ld,12
##2 arms (both facing eachother)
B,A,p,4,pa,Aa,pb,b,pc,12
B,A,p,b,pa,Aa,pb,4,pc,12
A,a,aa,p,b,B,4,pa,ab,A
A,a,aa,p,4,B,b,pa,ab,A
#
B,P,b,p,A,Aa,pa,4,pb,12
B,A,p,b,pa,Ba,4,pa,a,0
P,A,p,b,pa,Ba,ba,pa,a,P
#special construct
l,la,3,p,4,pa,a,aa,ab,l
l,b,ba,a,aa,p,4,pa,3,l
#
c,3,b,l,p,1,pa,la,lb,13
l,la,4,p,1,pa,a,aa,ab,l
#construct left
c,l,a,t,b,2,la,lb,lc,8
c,2,b,l,la,lb,lc,ld,le,4
f,l,2,c,la,lb,a,aa,ab,10
f,b,ba,l,a,aa,la,c,2,c
f,l,p,2,ca,la,a,aa,ab,8
#construct right
c,l,la,t,b,j,P,Pa,lb,4
c,j,b,h,a,aa,ab,P,Pa,h
8,a,aa,t,b,ba,j,c,ab,c
c,l,la,t,b,ba,bb,4,lb,8
f,l,la,p,j,lb,a,aa,ab,10
f,a,aa,fa,8,4,p,fb,ab,1
#construct forward
c,r,a,t,e,4,l,la,aa,8
c,4,e,q,a,aa,ab,la,lb,0
f,l,p,4,pa,la,a,aa,ab,1
f,a,r,c,4,l,aa,ab,ac,c
f,l,4,c,a,aa,ab,ac,ad,c
#special instable signal remover
1,4,A,p,u,ua,ub,pa,uc,4
1,b,A,p,u,ua,ub,pa,uc,1
#delete immunity
p,b,P,Pa,a,aa,ab,V,e,p
b,p,a,aa,ab,pa,V,ba,A,ba
1,p,a,aa,ab,pa,V,11,A,4
4,p,a,aa,ab,pa,V,11,A,1
b,ba,bb,p,a,13,aa,pa,V,ba
#
u,b,ba,ua,13,P,Pa,ub,e,u
u,b,ba,ua,P,13,Pa,ub,e,u
u,b,ba,ua,P,Pa,13,ub,e,u
u,b,ba,ua,13,P,Pa,0,t,u
u,b,ba,ua,P,13,Pa,0,t,u
u,b,ba,ua,P,Pa,13,0,t,u
u,b,ba,ua,13,P,t,ta,bb,u
u,13,m,ma,b,11,bb,ua,mb,u
u,m,ma,mb,b,11,bb,ua,13,u
#arm destruction
b,i,u,ba,A,Aa,Ab,bb,bc,12
b,i,u,ba,A,Aa,bd,bb,bc,12
12,A,Aa,u,b,ba,bb,bc,bd,12
#
b,u,ua,ba,A,Aa,Ab,12,N,12
g,a,aa,u,b,ba,12,N,ab,12
#
g,a,aa,ab,ac,ba,bb,12,ad,12
b,12,u,ba,A,Aa,Ab,12,N,12
#bended arm destruction
#g,A,Aa,u,b,ba,bb,bc,12,12
b,12,u,ba,bb,H,Ha,12,Hb,12
#
g,H,Ha,Hb,ga,b,12,12,Hc,12
#
b,12,u,ba,H,Ha,Hb,Hc,Hd,12
g,12,H,Ha,Hb,ga,b,ba,bb,12
#8,12,H,E,Ha,8,b,ba,bb,12
#
g,12,H,Ha,u,ua,b,ba,12,12
b,12,u,ba,H,Ha,Hb,bb,12,12
#forward arm obstruction
b,A,ba,p,Aa,bb,u,bc,Ab,13
b,A,p,Aa,m,ba,u,bb,Ab,13
#special arm obstruction
8,Q,b,11,ba,t,a,p,1,13
#arm obstruction
Q,P,d,a,aa,Pa,p,1,pa,13
Q,P,a,d,aa,Pa,p,1,pa,13
Q,P,a,aa,d,Pa,p,1,pa,13
Q,P,a,aa,d,Pa,Ab,p,1,13
Q,P,d,a,aa,Pa,1,p,Ab,13
Q,P,a,d,aa,Pa,p,1,pa,13
#state 7
7,5,a,aa,ab,ac,ad,ae,af,0
#special turning arm obstruction
12,p,A,Aa,b,ba,Y,Ab,9,13
#state 12
12,a,aa,ab,ac,ad,ae,af,ag,0
#square loop destruction
#b,ba,bb,9,8,bc,0,10,bd,13
#state 8 transition
g,a,aa,u,b,ba,bb,ua,ab,8
g,a,aa,u,b,ba,ua,S,ab,8
g,a,aa,S,u,ba,bb,ua,ab,8
g,b,ba,u,a,ua,bb,bc,bd,8
#turning arm obstruction
w,o,A,Aa,Y,b,ba,Ab,Ac,13
w,p,A,Aa,b,ba,Y,Ab,t,13
b,ba,u,bb,A,p,bc,Aa,Ab,13
#delete
k,13,a,aa,ab,ac,ad,ae,af,13
k,a,13,aa,ab,ac,ad,ae,af,13
k,a,aa,13,ab,ac,ad,ae,af,13
13,a,aa,ab,ac,ad,ae,af,ag,0
#state 5/6/19
b,ba,u,AAA,m,7,a,A,ma,5
b,u,ua,AAA,A,7,Aa,ba,ub,5
#starter growth
1,A,Aa,Ab,Ac,na,8,11,Ad,1
1,n,A,Aa,Ab,na,g,11,Ac,4
1,A,a,b,aa,u,ua,11,Aa,4
4,A,a,b,aa,u,ua,11,Aa,1
#
1,A,a,b,aa,u,ua,11,aa,13
#instable signal remover
1,1,p,u,b,j,A,Aa,pa,4
1,2,ba,A,p,1,pa,u,ua,4
b,f,A,p,ba,j,Aa,pa,Ab,4
b,2,ba,p,A,f,Aa,pa,u,4
c,b,ba,A,Aa,Ab,p,Ac,bb,0
#checker
b,u,l,ua,ub,6,A,ba,uc,15
#special signal movement
b,ba,n,bb,A,Aa,Ab,bc,o,1
b,ba,o,bb,A,Aa,Ab,bc,n,1
b,p,ba,bb,t,ta,tb,bc,m,bc
b,ba,m,t,bb,bc,bd,ta,tb,ba
b,t,ta,ba,p,bb,pa,tb,a,ba
b,p,ba,bb,A,pa,l,la,lb,bb
b,A,p,ba,pa,pb,t,bb,Aa,bb
#b,A,Aa,ba,u,5,Ab,bb,g,6
#merge
b,ba,t,1,0,1,0,bb,ta,ba
b,1,t,ba,0,1,0,bb,ta,ba
b,ba,t,ba,0,1,0,bb,ta,ba
#nand gate
b,ba,t,1,0,bb,0,bc,ta,bb
b,1,t,ba,0,bb,0,bc,ta,bb
b,ba,t,bb,0,bc,0,bd,ta,1
#special junk wire remover
b,AI,l,la,lb,lc,A,ba,ua,13
#signal movement
b,U,a,T,Ta,ba,ab,ua,ac,1
b,U,a,T,Ta,ba,ua,Ua,ac,1
#
b,U,a,T,aa,ba,u,ua,ab,1
b,U,a,aa,T,ba,u,ua,ab,1
#
b,ba,T,Ta,a,aa,ab,ac,ua,ba
b,ba,T,Ta,a,aa,ab,ua,ac,ba
#
b,ba,ad,T,a,aa,ab,ac,ua,ba
b,ba,T,ad,a,aa,ab,ua,ac,ba
#starter
f,A,b,11,l,la,a,aa,ab,8
#
f,8,11,fa,l,la,a,aa,ab,9
#
f,11,A,l,a,la,lb,lc,8,1
#
f,A,a,aa,ab,l,AD,b,11,9
#junk state 8
g,l,la,lb,lc,ld,le,lf,lg,0
g,A,b,ba,bb,Aa,Ab,u,12,0
g,A,b,ba,bb,Aa,a,aa,ab,0
#unnecessary wire remover
b,a,aa,ab,ac,ad,ae,af,ag,12
@COLORS
0 0 0 0
1 255 128 0
2 255 0 0
3 0 255 0
4 0 0 255
5 0 180 0
6 0 100 0
7 255 255 255
8 80 80 80
9 95 95 95
10 128 128 128
11 0 64 0
12 255 165 0
13 255 255 0
14 180 180 90
15 0 80 40
Edit: Fixed another bug where mutations can cause instant death, fixed a bug involving boundaries, fixed a few minor/rare bugs (4/14/15) version 1.08.1
A cross shaped loop
Code: Select all
[M2] (golly 2.6)
#R shapeloop3
1 4 3 4 8
1 2 8 4 8
2 0 1 0 2
3 0 0 0 3
1 4 4 8 8
1 3 0 4 0
1 0 8 0 8
1 4 0 2 0
2 5 6 7 8
3 0 0 9 0
1 3 4 4 8
1 4 8 2 8
2 0 11 0 12
1 4 3 8 8
1 4 8 8 0
1 0 0 8 8
1 0 0 8 0
2 14 15 16 17
1 4 4 0 0
2 0 19 0 0
1 3 4 0 0
1 4 8 3 8
1 4 8 4 8
2 21 22 0 23
3 13 18 20 24
1 0 8 0 0
2 26 5 0 16
1 1 1 8 8
1 1 0 1 0
1 0 8 8 8
2 28 29 30 29
1 1 1 1 0
2 7 32 30 29
1 1 1 0 0
1 1 0 0 0
2 34 35 0 0
3 27 31 33 36
4 4 10 25 37
5 0 0 0 38
6 0 0 0 39
7 0 0 0 40
1 2 4 0 0
2 0 42 0 0
3 0 43 0 0
1 4 5 0 0
2 45 35 0 0
3 46 0 0 0
4 44 47 0 0
5 0 48 0 0
6 0 49 0 0
7 0 50 0 0
8 41 0 51 0Code: Select all
@RULE shapeloop
1 wire
2 left signal
3 right signal
4 forward signal
5 trigger right
6 idle right
7 converter
8 lead
9 edge 1
10 edge 2
11 starter
12 tempdel
11 delall
@TABLE
n_states:14
neighborhood:Moore
symmetries:rotate4
Var a={0,1,2,3,4,5,6,7,8,9,10,11,12,13}
Var b={1,2,3,4,5,6}
var c={9,10}
var d={1,2,3,4,5,6,7,10,11}
var e={1,2,3,4,5,6,11}
var f={0,8,9,10,13}
var g={8,9,10}
var h={0,8,10}
var i={0,9}
var j={3,5,6}
var k={1,2,3,4,5,6,7,8,9,10,11}
var aa={a}
var ab={a}
var ac={a}
var ad={a}
var ae={a}
var af={a}
var ag={a}
var ba={b}
var bb={b}
var bc={b}
var bd={b}
var bd={b}
var ca={c}
var da={d}
var db={d}
var dc={d}
var dd={d}
var fa={f}
var fb={f}
var ga={g}
var gb={g}
var gc={g}
#construct left
c,0,a,8,b,2,0,0,0,8
c,2,b,0,f,fa,fb,0,0,4
c,0,a,aa,8,8,b,4,0,8
0,0,2,c,f,fa,a,aa,ab,10
0,b,ba,0,a,aa,ab,c,2,c
9,b,ba,0,a,f,fa,4,bb,0
0,0,c,2,ca,0,a,aa,ab,8
0,4,f,fa,a,aa,ab,8,b,8
#construct right
c,f,fa,8,b,j,0,0,fb,4
c,j,b,h,a,aa,ab,0,0,h
8,a,aa,8,b,ba,j,c,ab,c
c,f,fa,8,b,ba,bb,4,fb,8
0,f,fa,c,j,0,a,aa,ab,10
f,a,aa,fa,8,4,c,fb,ab,1
f,a,aa,h,8,8,4,fa,ab,9
#construct forward
c,0,a,8,e,4,f,fa,fb,8
c,4,e,h,a,aa,ab,f,fa,h
c,4,e,b,a,aa,ab,f,fa,0
f,fa,c,4,ca,fb,a,aa,ab,1
f,a,h,c,4,fb,aa,ab,ac,c
f,fa,4,c,h,fb,a,aa,ab,c
#tempdel
12,a,aa,ab,ac,ad,ae,af,ag,0
#arm destruction
c,b,ba,bb,bc,0,0,g,bd,12
b,0,0,ba,bb,12,g,bc,0,12
g,b,ba,12,0,0,a,aa,ab,12
b,0,0,12,0,12,g,ba,0,12
#square loop destruction
b,ba,bb,9,8,bc,0,10,bd,13
#special lead transition
c,a,aa,ca,b,ba,bb,8,ab,8
c,a,aa,8,b,ba,bb,ca,ab,8
10,8,b,ba,bb,bc,bd,8,0,8
#delete immunity
g,a,aa,ab,ac,1,b,0,ad,g
g,1,a,aa,ab,ac,ad,8,b,g
b,g,a,aa,ab,ga,8,ba,0,ba
#delete
k,13,a,aa,ab,ac,ad,ae,af,13
k,a,13,aa,ab,ac,ad,ae,af,13
k,a,aa,13,ab,ac,ad,ae,af,13
13,a,aa,ab,ac,ad,ae,af,ag,0
#trigger right
b,5,0,0,i,0,0,ba,g,6
#converter
0,b,ba,12,12,12,10,10,10,7
b,0,0,12,0,ba,bb,10,10,7
b,ba,g,6,0,7,a,0,0,5
7,5,b,0,0,0,a,aa,0,0
b,0,a,7,0,ba,8,6,0,5
7,a,aa,0,0,0,b,5,0,0
0,0,0,b,ba,0,0,12,0,7
b,0,0,12,0,12,0,ba,bb,7
11,0,0,12,0,12,ba,bb,0,7
#starter growth
1,0,a,b,aa,8,8,11,0,4
4,0,a,b,aa,8,8,11,0,1
#special signal movement
b,ba,bb,9,8,bc,0,9,12,bc
b,ba,e,8,0,bb,8,8,bc,ba
b,ba,8,0,0,bb,8,8,8,ba
b,0,0,e,8,ba,8,bb,0,bb
b,0,0,ba,g,bb,g,bc,0,bc
b,ba,9,bb,8,8,8,bc,9,ba
b,9,0,ba,8,8,8,bb,bc,bb
#signal movement
b,ba,a,aa,ab,ac,ad,g,ae,ba
b,a,aa,ab,ac,g,ga,ba,ad,ba
b,a,aa,ab,ac,ad,g,ba,ae,ba
b,0,a,aa,ab,ac,ad,g,ae,1
b,a,aa,ab,ac,g,ga,0,ad,1
b,a,aa,ab,ac,ad,g,0,ae,1
#arm obstruction detection
0,0,d,a,aa,0,g,1,ga,13
0,0,a,d,aa,0,g,1,ga,13
0,0,a,aa,d,0,g,1,ga,13
0,0,d,a,aa,0,1,g,0,13
0,0,a,aa,d,0,0,9,1,13
#starter
0,0,0,0,0,0,i,b,5,11
0,11,0,0,0,0,0,0,6,8
0,0,0,0,0,0,0,8,11,9
0,0,0,0,0,0,8,11,0,1
1,0,0,0,0,9,8,11,0,4
0,0,0,0,0,1,11,0,0,9
11,0,0,b,8,8,0,6,ba,6
@COLORS
0 0 0 0
1 255 128 0
2 255 0 0
3 0 255 0
4 0 0 255
5 0 190 0
6 0 140 0
7 255 255 255
8 80 80 80
9 95 95 95
10 128 128 128
11 0 64 0
Here's the link to the foodshapeloop rule table. (It has a much better biodiversity than shapeloop3)
http://conwaylife.com/forums/viewtopic. ... =25#p13909
Here are the variants based on the old rule.
shapeloop2a - http://conwaylife.com/forums/viewtopic. ... =25#p13686
shapeloop-b rule (bounded version of shapeloop) - http://conwaylife.com/forums/viewtopic. ... t=0#p13451
shapeloop-ltd rule (bounded version of shapeloop) - http://conwaylife.com/forums/viewtopic. ... t=0#p13463
2armshapeloop (unbounded) - http://conwaylife.com/forums/viewtopic. ... =25#p13560
2armshapeloop-a (bounded) - http://conwaylife.com/forums/viewtopic. ... =25#p13576
2armshapeloop2-a - viewtopic.php?f=11&t=1440&start=25#p13765
*Edit (3/19/15):renamed rule to shapeloop3, added links to variants of the old rule