No, I haven't seen this one yet. Thanks for sharing. It looks like it could be interesting, and I am now looking forward to trying it out.
BUT I have played with a lot of evolution sims--that's how I got here a few years ago in looking for new ones--and there are a few reasons why even though there are much more specific and seemingly appropriate ways to make evolution like games, I am still excited about this possibility.
I was directed to about three rulesets (by dvgrn I think--thanks dvgrn!) when I first came here asking about the automata that were most bio-life like. One of those three was Shapeloop (
) and I found that to be the most interesting evolution sim I had ever played with, even though I am not sure it was designed with that in mind. The way the shapes propagate is eerily life-like. I was able to "evolve" hundreds of wildly different shapes from a few ancestors/lineages over millions of generations. It has a really good, direct simulacra of biological genetics for one thing, that I haven't seen anywhere else. Others in the community came up with such cool stuff as I was doing it, and it was great to be able to take that right in with a copy and paste to play with it.
Golly itself is a big asset too. The way you can fill space with random states and ability to speed things up and change the scale so profoundly were great. There are many other reasons, and some suspicions I have about why even though a rule in Golly is not the most direct and efficient way to do a simulation like this, it could still produce interesting results. A year or two ago I made a post like this before there was a rule request thread. User fluffykitty messaged me about it and we started to give it a try for about two afternoons. He or she build the rule entirely and I just tried to help with how in discussions of how it should all behave.
Code: Select all
@RULE biology_0_2
0 empty
1 b
2 u
3 d
4 out
5 in
6 interaction
7 signal out
8 signal in
9 bonded b
10 bonded u
11 bonded d
12 special interaction
13 shadow
14 corner protector
4,5,7,8 unused
ins try to match
particles only interact in unambiguous situations
@TABLE
n_states:15
neighborhood:Moore
symmetries:rotate4reflect
#all
var a1={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}
var a2={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}
var a3={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}
var a4={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}
var a5={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}
var a6={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}
var a7={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}
var a8={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}
#b-states
var b1={1,9}
var b2={1,9}
var b3={1,9}
#u-states
var c1={2,10}
var c2={2,10}
var c3={2,10}
#d-states
var d1={3,11}
var d2={3,11}
var d3={3,11}
#live
var e1={1,2,3,4,5,6,7,8,9,10,11,12,13,14}
var e2={1,2,3,4,5,6,7,8,9,10,11,12,13,14}
var e3={1,2,3,4,5,6,7,8,9,10,11,12,13,14}
#particle (all except interactions)
var f1={1,2,3,4,5,7,8,9,10,11,13}
var f2={1,2,3,4,5,7,8,9,10,11,13}
var f3={1,2,3,4,5,7,8,9,10,11,13}
#dead (for creating interactions)
var g1={0,13}
#become unbonded
9,0,a1,0,a2,0,a3,0,a4,1
10,0,a1,0,a2,0,a3,0,a4,2
11,0,a1,0,a2,0,a3,0,a4,3
9,13,a1,0,a2,0,a3,0,a4,1
10,13,a1,0,a2,0,a3,0,a4,2
11,13,a1,0,a2,0,a3,0,a4,3
#bu,ud interaction gen 3
#(conserving particles, prefers linear strings)
#overriding “become bonded”
1,f1,f2,0,a1,a2,a3,0,f3,0
2,f1,f2,0,a1,a2,a3,0,f3,0
3,f1,f2,0,a1,a2,a3,0,f3,0
#become bonded
1,f1,a1,a2,a3,a4,a5,a6,a7,9
2,f1,a1,a2,a3,a4,a5,a6,a7,10
3,f1,a1,a2,a3,a4,a5,a6,a7,11
#b-u interaction (101 2)
#gen 1
0,c1,a1,b1,a2,c2,a2,a3,a4,1
1,a1,c1,0,c2,a2,a3,a4,a5,0
0,b1,a1,c1,a2,b2,a2,a3,a4,2
2,a1,b1,0,b2,a2,a3,a4,a5,0
#d-u interaction (101 2)
#gen 1
0,c1,a1,d1,a2,c2,a2,a3,a4,3
3,a1,c1,0,c2,a2,a3,a4,a5,0
0,d1,a1,c1,a2,d2,a2,a3,a4,2
2,a1,d1,0,d2,a2,a3,a4,a5,0
#special interaction
0,f1,a1,a2,0,f2,f3,a3,a4,12
#bud double reaction
0,f1,a1,a2,f2,a3,f3,a4,a5,12
#b-u interaction (101)
#gen 1
12,b1,a1,a2,c1,0,c2,a3,a4,1
12,c1,a1,a2,b1,0,b2,a3,a4,2
#gen 2
6,a1,b1,12,0,c1,a2,a3,a4,0
6,a1,c1,12,0,b1,a2,a3,a4,0
#d-u interaction (101)
#gen 1
12,d1,a1,a2,c1,0,c2,a3,a4,3
12,c1,a1,a2,d1,0,d2,a3,a4,2
#gen 2
6,a1,d1,12,0,c1,a2,a3,a4,0
6,a1,c1,12,0,d1,a2,a3,a4,0
#b-u interaction (2,1)
#gen 1
g1,b1,a1,a2,c1,a3,a4,a5,a6,6
g1,c1,a1,a2,b1,a3,a4,a5,a6,6
#gen 2
6,c1,a1,6,b1,a1,a2,a3,a4,2
6,b1,a1,6,c1,a1,a2,a3,a4,1
b1,6,6,a1,a2,a3,a4,a5,a6,13
c1,6,6,a1,a2,a3,a4,a5,a6,13
#d-u interaction (2,1)
#gen 1
g1,d1,a1,a2,c1,a3,a4,a5,a6,6
g1,c1,a1,a2,d1,a3,a4,a5,a6,6
#gen 2
6,c1,a1,6,d1,a1,a2,a3,a4,2
6,d1,a1,6,c1,a1,a2,a3,a4,3
d1,6,6,a1,a2,a3,a4,a5,a6,13
c1,6,6,a1,a2,a3,a4,a5,a6,13
#b-u interaction (1,1)
#gen 1
g1,9,a1,2,a2,a3,a4,a5,a6,6
g1,1,a1,10,a2,a3,a4,a5,a6,6
#gen 2
6,1,6,10,a1,a2,a3,a4,a5,1
6,2,6,9,a1,a2,a3,a4,a5,2
1,6,a1,6,a2,a3,a4,a5,a6,0
2,6,a1,6,a2,a3,a4,a5,a6,0
#d-u interaction (1,1)
#gen 1
g1,11,a1,2,a2,a3,a4,a5,a6,6
g1,3,a1,10,a2,a3,a4,a5,a6,6
#gen 2
6,3,6,10,a1,a2,a3,a4,a5,3
6,2,6,11,a1,a2,a3,a4,a5,2
3,6,a1,6,a2,a3,a4,a5,a6,0
2,6,a1,6,a2,a3,a4,a5,a6,0
#bug
6,9,a1,10,a2,a3,a4,a5,a6,0
#b-u interaction (0,2)
#gen 1
0,10,a1,0,a3,1,a4,0,a6,6
0,9,a1,0,a3,2,a4,0,a6,6
#gen 2
1,6,0,a1,a2,a3,a4,a5,0,0
2,6,0,a1,a2,a3,a4,a5,0,0
6,1,0,a1,a2,a3,a4,a5,0,1
6,2,0,a1,a2,a3,a4,a5,0,2
#d-u interaction (0,2)
#gen 1
0,10,a1,0,a3,3,a4,0,a6,6
0,11,a1,0,a3,2,a4,0,a6,6
#gen 2
3,6,0,a1,a2,a3,a4,a5,0,0
2,6,0,a1,a2,a3,a4,a5,0,0
6,3,0,a1,a2,a3,a4,a5,0,3
6,2,0,a1,a2,a3,a4,a5,0,2
#b-u interaction (x,2o)
#gen 2
6,0,b1,12,9,10,a1,a2,a3,0
1,12,6,a1,a2,a3,a4,a5,a6,0
12,1,a1,a2,a3,9,10,a4,a5,9
6,0,c1,12,10,9,a1,a2,a3,0
2,12,6,a1,a2,a3,a4,a5,a6,0
12,2,a1,a2,a3,10,9,a4,a5,10
#d-u interaction (x,2o)
#gen 2
6,0,d1,12,11,10,a1,a2,a3,0
3,12,6,a1,a2,a3,a4,a5,a6,0
12,3,a1,a2,a3,11,10,a4,a5,11
6,0,c1,12,10,11,a1,a2,a3,0
2,12,6,a1,a2,a3,a4,a5,a6,0
12,2,a1,a2,a3,10,11,a4,a5,10
#b-u interaction (x,2d)
#gen 2
0,0,2,12,9,10,a1,a2,a3,6
0,0,1,12,10,9,a1,a2,a3,6
#gen 3
12,2,a1,a2,a3,9,10,0,a5,12
12,1,a1,a2,a3,10,9,0,a5,12
12,2,a1,a2,a3,9,10,a4,a5,10
12,1,a1,a2,a3,10,9,a4,a5,9
6,0,c1,12,9,10,f1,a2,a3,14
6,0,b1,12,10,9,f1,a2,a3,14
6,0,c1,12,9,10,a1,a2,a3,0
6,0,b1,12,10,9,a1,a2,a3,0
#d-u interaction (x,2d)
#gen 2
0,0,2,12,11,10,a1,a2,a3,6
0,0,3,12,10,11,a1,a2,a3,6
#gen 3
12,2,a1,a2,a3,11,10,0,a5,12
12,3,a1,a2,a3,10,11,0,a5,12
12,2,a1,a2,a3,11,10,a4,a5,10
12,3,a1,a2,a3,10,11,a4,a5,11
6,0,c1,12,11,10,f1,a2,a3,14
6,0,d1,12,10,11,f1,a2,a3,14
6,0,c1,12,11,10,a1,a2,a3,0
6,0,d1,12,10,3,a1,a2,a3,0
#line protector dies
14,f1,f2,f3,a1,a2,a3,a4,a5,14
14,f1,a1,a2,f1,f2,a3,a4,a5,14
14,a1,a2,a3,a4,a5,a6,a7,a8,0
#shadows die
13,a1,a2,a3,a4,a5,a6,a7,a8,0
#protect corners
6,f1,f2,f3,a1,a2,a3,a4,a5,14
#protect gaps
12,f1,a1,0,f1,f2,a2,a3,a4,14
#kill unwanted interactions
6,a1,a2,a3,a4,a5,a6,a7,a8,0
12,a1,a2,a3,a4,a5,a6,a7,a8,0
@COLORS
0 0 0 0
1 255 0 0
2 0 255 0
3 0 0 255
4 255 255 0
5 0 255 255
6 255 128 0
7 255 255 128
8 128 255 255
9 255 63 63
10 63 255 63
11 63 63 255
12 255 0 255
13 0 0 128
14 128 0 0
Then they left or got interesting in something else. But what they came up with in that short time while not all that far toward what we imagined is enough to make me think that it could be really as interesting as I hoped.