Characterising rule explosiveness

For scripts to aid with computation or simulation in cellular automata.
Post Reply
User avatar
Rhombic
Posts: 1057
Joined: June 1st, 2013, 5:41 pm

Characterising rule explosiveness

Post by Rhombic » November 7th, 2017, 9:49 am

Background
There have been surprisingly few attempts at analysing rules holistically, independent of any specific linear-growth or undefined-growth patterns. The perceived explosiveness, or growth characteristics, of a given rule has so far been qualitative. Most rules have only been analysed individually, either via apgsearch or many other search possibilities, leading to very specific results that cannot be extrapolated clearly to compare rules.
One of the major works about rulespaces as analysable entities so far has been Feng Geng's smoothiness classifications.

First test and preliminary results
A script was written to register an arbitrarily defined 2000 generation population for 50% 7x7 soups in a given rule, writing each subsequent maximum, or hit, to a text file together with the soup number. The script sometimes causes Golly to crash and this problem hasn't been solved.
CGoL (B3/S23) and tLife (B3/S2-i34q) were compared over 108 and 122 cases respectively, with the populations recorded (attached Excel file).
As expected, with more attempts, it is more likely to find higher populations. The distribution of hits follows a logarithmic curve, for which regression analysis can be performed. The coefficient and intersect for the regression of ln(AttemptNumber) and HitPopulation can be determined and are directly related to the explosiveness of the rule. This can be analysed as HitPopulation = g*ln(AttemptNumber)+n
The value at AttemptNumber = 1 (g+n) should probably represent the average soup population result, while the gradient g gives information about the distribution of potential populations and achievable explosiveness, which should, for instance, distinguish DryLife from CGoL.
This might imply a necessity to model the data based on f(x) = a*ln(x+1)+b instead.

The results for CGoL and tLife were the following:
  • CGol [updated 22/12: 2934 data points]:
    - g = 128(.7)±1.2 cells
    - n = -54±6 cells
    - g+n = 74±6 cells
  • tLife:
    - g = 6±1.8 cells
    - n = 8.5±0.3 cells
    - g+n = 13±1.8 cells
These results, albeit preliminary, show a clear difference in the explosiveness of the given rules CGoL and tLife as would be expected from the qualitative perception.

New Aims
Automating the script and solving problems so that Golly does not crash. The results were taken by hand by stopping the script after a few seconds, copying the results and restarting. While this was useful for the preliminary test, it is entirely impractical for further use.
Determining a Bayesian probabilistic way to determine the presence of yl, zz or xq in rules based on the constants obtained by a more optimised script (and building a library by analysing all apgsearched rules).
Add further functionality to find promising rules in an automated way.


Script used:

Code: Select all

import golly as g

class maxpop:
    def __init__(self):
        self.pop=0
        self.patt=[]
    def compare(self,other):
        g.select(g.getrect())
        g.clear(0)
        g.putcells(other)
        g.run(3000)
        comp=int(g.getpop())
        g.select(g.getrect())
        g.clear(0)
        g.putcells(self.patt)
        g.run(3000)
        newpop=int(g.getpop())
        if comp>newpop:
            return 1
        else: return 0

File=open("maxpop.txt","w+")
best=maxpop()
candidate=maxpop()
k=0
while 1:
    k+=1
    g.select([0,0,7,7])
    g.randfill(50)
    candidate.patt[:]=g.getcells(g.getrect())
    g.run(2000)
    if int(g.getpop())>best.pop:
        candidate.pop=int(g.getpop())
        if best.compare(candidate.patt)==1:
            best.pop=candidate.pop
            best.patt[:]=candidate.patt[:]
            File.write(str(k)+"\t"+str(best.pop)+"\n")
    g.show("New highest population is %d. Press any key to show current best." %best.pop)
    g.select(g.getrect())
    try:
        g.clear(0)
    except: pass
    event = g.getevent()
    if event.startswith("key"):
        g.new('Result')
        g.putcells(best.patt)
        File.close()
        g.exit()
CGoL raw data:

Code: Select all

AttemptNumber	HitPopulation	ln(AttemptNumber)
1	50	0
41	230	3,713572067
94	253	4,543294782
114	453	4,736198448
118	743	4,770684624
1125	788	7,025538315
2321	889	7,749753406
7446	1109	8,915432254
1	4	0
2	10	0,693147181
3	36	1,098612289
6	72	1,791759469
10	106	2,302585093
20	303	2,995732274
45	480	3,80666249
71	809	4,262679877
219	961	5,38907173
1	34	0
5	197	1,609437912
28	218	3,33220451
43	221	3,761200116
78	283	4,356708827
99	470	4,59511985
443	640	6,09356977
898	849	6,800170068
2566	869	7,850103545
6681	1112	8,807022956
14201	1462	9,561067664
1	7	0
2	10	0,693147181
3	20	1,098612289
7	39	1,945910149
13	505	2,564949357
21	578	3,044522438
270	697	5,598421959
333	905	5,80814249
1350	1050	7,207859871
1	18	0
5	107	1,609437912
14	116	2,63905733
33	451	3,496507561
220	552	5,393627546
388	668	5,96100534
1766	873	7,476472381
6180	1190	8,72907355
1	12	0
2	18	0,693147181
11	29	2,397895273
12	38	2,48490665
13	51	2,564949357
16	93	2,772588722
23	157	3,135494216
95	226	4,553876892
119	274	4,779123493
135	584	4,905274778
343	597	5,837730447
957	915	6,863803391
4598	1097	8,433376705
1	8	0
2	16	0,693147181
4	26	1,386294361
6	134	1,791759469
30	515	3,401197382
154	614	5,036952602
985	763	6,892641641
1540	1154	7,339537695
1	6	0
2	7	0,693147181
3	21	1,098612289
5	49	1,609437912
14	189	2,63905733
18	223	2,890371758
30	355	3,401197382
228	587	5,429345629
423	779	6,047372179
1	3	0
2	15	0,693147181
4	24	1,386294361
6	36	1,791759469
10	116	2,302585093
38	397	3,63758616
195	615	5,272999559
1	17	0
2	116	0,693147181
3	180	1,098612289
14	184	2,63905733
28	219	3,33220451
52	295	3,951243719
129	345	4,859812404
168	452	5,123963979
198	549	5,288267031
226	784	5,420534999
560	1140	6,327936784
1	10	0
14	199	2,63905733
32	235	3,465735903
50	249	3,912023005
106	429	4,663439094
187	580	5,231108617
241	624	5,484796933
462	923	6,135564891
1	49	0
5	220	1,609437912
7	455	1,945910149
45	461	3,80666249
129	748	4,859812404
3514	762	8,164510269
4020	1027	8,299037182
tLife raw data:

Code: Select all

AttemptNumber	HitPopulation	ln(AttemptNumber)
1	29	0
28	32	3,33220451
61	33	4,110873864
83	34	4,418840608
107	54	4,672828834
700	57	6,551080335
703	66	6,555356892
2323	70	7,750614733
2539	78	7,839525582
1	4	0
2	15	0,693147181
15	25	2,708050201
19	26	2,944438979
44	27	3,784189634
151	28	5,017279837
162	30	5,087596335
197	31	5,283203729
205	34	5,323009979
233	56	5,451038454
588	58	6,376726948
723	59	6,583409222
3291	89	8,098946749
1	17	0
2	19	0,693147181
6	26	1,791759469
8	37	2,079441542
41	39	3,713572067
128	45	4,852030264
142	47	4,955827058
291	65	5,673323267
952	75	6,858565035
1	9	0
2	35	0,693147181
255	55	5,541263545
329	60	5,796057751
3582	61	8,183676583
4087	64	8,315566484
5791	72	8,664060267
6875	73	8,835646923
8118	92	9,001839097
2	6	0,693147181
3	8	1,098612289
7	15	1,945910149
9	34	2,197224577
79	37	4,369447852
164	45	5,099866428
170	47	5,135798437
475	60	6,163314804
708	66	6,562444094
2858	71	7,957877358
5025	85	8,522180733
1	10	0
5	15	1,609437912
8	17	2,079441542
13	21	2,564949357
19	22	2,944438979
81	24	4,394449155
84	43	4,430816799
110	45	4,700480366
241	47	5,484796933
422	48	6,045005314
580	68	6,363028104
5085	88	8,534050308
1	6	0
2	10	0,693147181
3	28	1,098612289
83	33	4,418840608
110	52	4,700480366
413	55	6,023447593
436	57	6,077642243
606	62	6,406879986
983	79	6,89060912
1	12	0
2	14	0,693147181
4	17	1,386294361
12	18	2,48490665
83	22	4,418840608
94	26	4,543294782
102	33	4,624972813
124	45	4,820281566
222	49	5,402677382
508	67	6,230481448
681	69	6,523562306
1354	76	7,210818453
6344	88	8,755264763
1	8	0
2	18	0,693147181
21	21	3,044522438
39	43	3,663561646
189	47	5,241747015
331	48	5,802118375
560	62	6,327936784
880	64	6,779921907
923	93	6,827629235
1	22	0
7	25	1,945910149
13	30	2,564949357
36	44	3,583518938
140	48	4,941642423
542	79	6,295266001
1	27	0
33	34	3,496507561
118	53	4,770684624
544	63	6,298949247
1307	80	7,175489714
11328	88	9,335032816
1	6	0
2	8	0,693147181
5	10	1,609437912
6	13	1,791759469
17	14	2,833213344
33	16	3,496507561
35	17	3,555348061
37	22	3,610917913
73	50	4,290459441
183	58	5,209486153
373	65	5,92157842
2089	68	7,644440762
2452	71	7,804659297
2661	73	7,886457271
7012	76	8,855378246
8698	99	9,070848393
Last edited by Rhombic on December 22nd, 2017, 1:18 pm, edited 1 time in total.
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
Rhombic
Posts: 1057
Joined: June 1st, 2013, 5:41 pm

Re: Characterising rule explosiveness

Post by Rhombic » December 19th, 2017, 7:17 am

Could someone check why this script makes Golly crash? I would like to prepare a for loop to collect data automatically for 10000 soups before restarting without having to stop it by hand just in case Golly crashes.
Ideally, a C program *should* be trivial to make - the only issue is that I'm not sure how to run CA in C (I'd have to write the whole thing) and I haven't managed to extract it from ntzfind source code.

This could be useful because, say, after using Rulesrc, and with a large enough database using an explosiveness script (and good confidence intervals), one could do some Bayesian probability to choose the rule that allows the spaceship that is most likely to be apgsearchable at the same time as showing interesting chaotic behaviour.
It has, however, a much greater transcendence because it would allow to characterise rules themselves and it could give way to better methods to assess the overall macro-dynamics of chaotic soups depending on what rule is used.
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
calcyman
Posts: 2106
Joined: June 1st, 2009, 4:32 pm

Re: Characterising rule explosiveness

Post by calcyman » December 19th, 2017, 9:59 am

Rhombic wrote:Could someone check why this script makes Golly crash? I would like to prepare a for loop to collect data automatically for 10000 soups before restarting without having to stop it by hand just in case Golly crashes.
Ideally, a C program *should* be trivial to make - the only issue is that I'm not sure how to run CA in C (I'd have to write the whole thing) and I haven't managed to extract it from ntzfind source code.
I'd recommend lifelib, although I should probably write documentation for it. LifeWiki seems to be in search of advanced tutorials, after all...
What do you do with ill crystallographers? Take them to the mono-clinic!

wildmyron
Posts: 1307
Joined: August 9th, 2013, 12:45 am

Re: Characterising rule explosiveness

Post by wildmyron » December 20th, 2017, 3:11 am

Rhombic wrote:Could someone check why this script makes Golly crash?
Golly is crashing because it is running out of memory. Read the advice to script writers in Golly's Help, in particular point 4. This kind of script needs a g.new() call near the beginning of the script to avoid that problem.
The latest version of the 5S Project contains over 226,000 spaceships. There is also a GitHub mirror of the collection. Tabulated pages up to period 160 (out of date) are available on the LifeWiki.

User avatar
Rhombic
Posts: 1057
Joined: June 1st, 2013, 5:41 pm

Re: Characterising rule explosiveness

Post by Rhombic » December 20th, 2017, 8:21 am

wildmyron wrote:Golly is crashing because it is running out of memory. Read the advice to script writers in Golly's Help, in particular point 4. This kind of script needs a g.new() call near the beginning of the script to avoid that problem.
Thank you very much, very helpful! The iterative version of the script allows a good automated determination of cases and has given the following results for tDryLife, with 243 data points:
g = 39.8±1.3 cells
n = -24±6 cells
g+n = 16±6 cells
This proves that tDryLife grows faster than tLife for 7x7 soups, and slower than CGoL. The reason for the limitation to 2000 generations (which is not capricious) is because we shouldn't be interested in how much an exploding soup actually explodes eventually, but we're more interested in how much it explodes initially for two reasons:
  • We can safely assume that the initial rate of growth will be similar to the growth later on.
  • Easily stabilising patterns wouldn't be comparable due to a higher limit being applicable, arbitrarily, only to zz_LINEAR and not to methuselae (the main point is to observe frequency of methuselae or ease of chaotic growth).
  • Most likely, no increases would be registered with a boundary of, say 100000 generations, because the way in which it explodes will be identical to that of any other exploding soup. This breaks the linear regressin and is thus unnecessary.
  • Explosive rules would be detectable by the initial 2000 generations or so by ramping up very quickly to a high number of generations that is seldom surpassed. This implies that the rule has reached its explosive limit with a rate determined by the calculated coefficients. This is easily identifiable.
In a way, yes, the exact number "2000" (instead of 2500 or 2200) is arbitrarily chosen, but the magnitude is intended.
This is the iterating script. I'd like to automate it later so that it calculates the regressions on its own, and can get enough data points for a rule, calculate the regression and errors, move on to a separate rule, etc. That way we'd have a list of analysed rules... surely that has to be useful?

Code: Select all

import golly as g

File=open("maxpop.txt","w")
CANDPOP=0
CANDPATT=[]

while 1:
    BESTPATT=[]
    BESTPOP=0
    k=0
    for R in xrange(12000):
        g.new("")
        k+=1
        g.select([0,0,7,7])
        g.randfill(50)
        CANDPATT[:]=g.getcells(g.getrect())
        g.run(2000)
        if int(g.getpop())>BESTPOP:
            CANDPOP=int(g.getpop())
            g.select(g.getrect())
            g.clear(0)
            g.new("")
            g.putcells(CANDPATT)
            g.run(3000)
            comp=int(g.getpop())
            g.select(g.getrect())
            g.clear(0)
            g.putcells(BESTPATT)
            g.run(3000)
            newpop=int(g.getpop())
            if comp>newpop:
                BESTPOP=CANDPOP
                BESTPATT[:]=CANDPATT[:]
                File.write(str(k)+"\t"+str(BESTPOP)+"\n")
        g.show("New highest population is %d. Press any key to show current best." %BESTPOP)
        g.select(g.getrect())
        try:
            g.clear(0)
        except: pass
        event = g.getevent()
        if event.startswith("key"):
            g.new('Result')
            g.putcells(BESTPATT)
            File.close()
            g.exit()
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
Rhombic
Posts: 1057
Joined: June 1st, 2013, 5:41 pm

Peculiarities of explosive rules: DryLife as a Case Study

Post by Rhombic » December 20th, 2017, 1:56 pm

First Run for an Explosive Rule: DryLife
DryLife (B37/S23) is the most interesting example to analyse, because it shows complex behaviour and is statistically explosive (i.e. no B2a, no growing-blob dynamics; just down to probability of neighbourhood appearances).
DryLife was analysed with maxpop_iter.py (see above) yielding 937 data points. The regression analysis gave the following values:
g = 685±14 cells
n = -566±73 cells
g+n = 110±74 cells

Compared to CGoL, this already points to a very high growth and the average initial soup is also quite populated. Why the fairly terrible error then, with 937 data points? Well, this is where it gets particularly interesting! There seems to be a probability-independent resulting population (henceforth, for brevity, PIRP) of around 6700 as can be seen in the uploaded image. Apparently in both this case and the one at ~4500 cells mentioned later, it could be due to an additional explosive linear growth.
The PIRP cannot be methuselah based as the chance to find a higher population is lower than would be expected from the chance of finding the PIRP. In fact, and surprisingly, achieving a lower population is also less likely, as seen in the image! The probability of finding a PIRP soup can be calculated from the distribution of PIRP hits, but its distribution is heavily weighted compared to long-lasting patterns as seen in the CGoL, tDryLife and tLife graphs.
The only possible explanation for the existence of a PIRP is that the method by which it is produced, regardless of the precise configuration, always gives a narrow range of populations that probably follows a normal distribution. In the case of DryLife, we have all encountered this population and, for an explosive 7x7 soup, the population after 2000 generations is almost certainly around 6700, if it includes the linear growth. Regardless of the soup.
Higher populations apparently contain other kinds of linear growth on top of an explosive region.
There is also something going on around 4500 that looks like a secondary PIRP, but further analysis would be needed to determine how it was formed and its differences with the ~6700 PIRP. The ratio is about 3:2, so there might be something weird going on too!

Removing PIRPs and Studying the Regression
Removing all hit populations above 4300 cells should eliminate all linear growth-related PIRP cases (along with a few actual methuselah-behaved cases, but just a bit of collateral damage as they say). This gives 740 data points with a much much clear linear regression for the expected expression.
The explosiveness parameters for B37/S23 are the following, PIRPs removed:
g = 348±7 cells
n = 64±29 cells
g+n = 412±30 cells

The reason for the still surprising, if slightly improved, error is that there is a PIRP that would become eventually the focus of our search. With this particular one, it can be seen at about 1200 cells, which is the PIRP resulting from explosion alone. Lower matched populations could also be explosive, but the band at about 1200 cells is the main growth pattern observed. At the time of writing, some characterisation of explosive B34r/S23 is underway. This rule presents no common linear growths yet, so far, presents a similar band at 2600-2800 cells that is clearly distinguishable from the rest of the pattern and can be considered a PIRP.
It is trivial to prove that (gA / gB) = (PA - nA)/(PB - nB) for the same attempt number for rules A and B, where P is the achieved population. It gives you a predicted value for the maximum hit population in a rule at the same attempt number. Substituting the values for CGoL and DryLife, the result is the following:

PDryLife ≈ 3.10 * PCGoL + 336

for the same attempt number.

Conclusions and Future Applications
Statistically explosive rules such as DryLife show at least one populational level after a number of generations characteristic of the explosive growth. In the case of DryLife, linear growths create even more obvious levels that are separate from the bulk results. This is independent of the original configuration and the reached population does not follow an exponentially decaying likelihood of finding higher populations, so it can be said to be independent from a methuselah-like probability to reach that number of cells.
It is hypothesised that if other PIRP levels are present, these will be found at a set proportion from the other PIRPs.
It would be interesting to study the magnitude of the PIRP and compare it to the g parameter of the rule and investigate whether they are correlated or independent.

The implications are transversal and can be used in many different contexts. Firstly, optimising the generations needed for the best resolution of non-explosive attained populations and PIRPs for 16x16 soups could improve the explosion detection of apgsearch by using Bayesian probability (this could be toggled on or off). If after the appropriate number of generations, the current population of the pattern is within 95%+ probability of the PIRP band, it can be safely discarded, with only a few false positives. Apgsearch currently has a different non-heuristic system to do this, but it is extremely less efficient due to evolving further an ever-growing pattern.

Other future applications would be to determine, from a set of a few isotropic rules, which one has a growth closest in value to the one for CGoL. This *should* result in better guesses to identify rules with non-explosive complex behaviour, which is what we tend to want most of the time.
Attachments
PIRP.JPG
PIRP.JPG (75.57 KiB) Viewed 3661 times
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
LaundryPizza03
Posts: 490
Joined: December 15th, 2017, 12:05 am
Location: Unidentified location "https://en.wikipedia.org/wiki/Texas"

Re: Characterising rule explosiveness

Post by LaundryPizza03 » December 21st, 2017, 1:14 am

Here are some points to bring up:
Some rules are just barely explosive, like B368/S12578:

Code: Select all

#C A blinker
x=3, y=1, rule = B368/S12578
3o!

Code: Select all

#C 7-cell infinite growth from B368/S12578 (explodes, but very bizarrely, better viewed in Golly)
x = 8, y = 5, rule = B368/S12578
7bo$2o5bo$7bo$7bo$7bo!

Code: Select all

#C 7*7, 50% (your script)
x = 7, y = 7, rule = B368/S12578
2ob2o$2bo2b2o$2o2b3o$o2bo2bo$2bo3bo$bob3o$2bob3o!

Code: Select all

#C 16*16, 50% (apgsearch)
x = 16, y = 16, rule = B368/S12578
b3ob2obo2bo3bo$ob2o3bobo2b2obo$2bo3b3obobob2o$bobob3ob6o$5obobobob3o$b
ob2ob5o3bo$bob4o2b2obobo$4o2b3obobo$b2ob2obo4b2o$obo5bobob3o$ob4obob5o
bo$2bo5b3o2bobo$bobob4o2b2obo$bo2bo4b2o2b3o$2ob2o8b2o$obo3bob4obo!

Code: Select all

#C 128*128, 50% (explodes)
x = 128, y = 128, rule = B368/S12578
3o4bo4b2ob2o4b4o3b2o4b4o2b2o10b3o3b2o3b2o2bobobobob8ob8o3bob4obo3b2obo
2bob2o7b3o$o4b4obob3ob2ob3ob3o2b4ob8o6bo2bo3bob3ob2obob2ob3ob2o2b2o3b
3obo2bo2bobo4b3obobob2o3bo3b2ob2obob2o$o3b3o3bob2o3bob2ob3obobo2bo4bob
3ob2o3bobo2b4o2b3o4bo2b2o2bo2b3ob5obob6ob2o4b3obobobo3bobo3b3obob3o$3b
3o4bo2b3o4bob2ob2ob2ob2obobo3b2ob2obo3b4obobo2bo4bo2bo3b7o2bo3b2o3bobo
bo3bob2o3bo2bobobo3bo2b2o3bo$bobo3bobo3bo2b2ob4o4b2o2b2o3bo2bo3bo2bob
3o4b2ob2o5b2o2b2o3b2o3b4obo2bo2bo2bob2obobob3ob2o3bobo4b2o4bob2o$3b5ob
o3bo2b2obobo3bo3b2o2b3obo3bob3o4b2o3bo3bo2b2obo2bo2b2ob2o3b2o2b3o3b4ob
ob2o2b2o4b2obo2bobo3bob3o3b2o$b5ob2o2b3o3bo3b2o5bobo2b4o2b3o2b2o2bo2bo
5bob2o3b5obo2b2obo3b3obo2bob4ob3obo2b2obob3o2b2o3b3ob2o3bo$4o3b2o2b2o
2b5o2b2o6b3ob2obo4bob4o3b4obo2b4o3bo2b7ob2ob3o4b2o2bob2o5bobo2bo2bobo
4b2o3b3ob3o$2b2o2bo4b7obob2o4bobo8bo4b3obo2bo2bob2o2b2o5b2o7bo2b2o2b2o
3b2o2b3o2b2ob2ob3ob3ob2o2b2ob2o2b2ob3o$2o4bob4ob3o2bob3obo2bob4o2bo2b
5o2b2ob2ob2o6bo3b2o2b3o2b2obo2b2o3bo2bo3b4ob2o3bo2b3o3b2ob4o2b3o2b2obo
$o2b5o8b2o4bo4b3o2b9obob2ob2obob2o2bobob6ob4ob2ob2obobo3bob3ob2o2b2obo
bo2bobo2bobob3obob3obobob3o$3b2o3bo3bob2o2bob2ob2o2b5o4b2o2bo4bo2b2o3b
o2bobobo2bo4bob2o3bob4ob4ob2ob6o3bob2o3b3o2bo2bo3bob2o3bo$3ob3ob3obob
2o2bobobo3b2o2bobo4bo2b2obobob4o2bob4o2b4obobobo2b2o2bo2b3ob3o2b2o2bo
4b4o3b4o3b4o4bo2b3o$o2bo2b2o2bo5b2obo3b4ob3ob2obob2ob2obobo3bo2bo5b4o
2b2ob5obo7bo2b2obobob11obo2b2obo4b2ob3obo3bobo$bo4b3ob5ob3obo3b3ob6o3b
2o2b2o2b2obob4o5bobobo4b2o2b2o2bob4ob5obobo3b2obobob5o2bo2b2obo2b4ob2o
bo$o3bob2o2b3o2b2o2b8obo5b4o2b2ob4o3bo2bo5bob3o2bo2bo2b6obo3b2ob3o2b2o
4bo2bo2bob6o3bobob4obob2o$bo2bo2b2ob2ob2obobobo2b3obo5b2obobobo3b3o2b
3o5b2o3b2ob2o2b2ob2obob4o4bobob2ob2o2bo2bo5bobo4bob2ob2obo2b2obo$o5bob
ob3obo2bo2bo3b2obobo5b2o4bobo2bob4o2bo3b2o3b4obo2b3o4bo2bo2bob2obo2b5o
bo2bo2b4o2bo3b2obobo6bo$4bobo2b3o2b9ob2o4bo3bo4b2obo3bo3bo4b4ob4ob3ob
3obo2bo3b4o2bob4ob6o5b6ob3o2bobobo2bob3o$2bob2obobob3obo2b3ob2o4bo2bob
5o2b2obo3bo3bo2bobobob4obobo4bob5o2bo4b2o2bo2bobobo3bobo2b3ob2o4bobob
3ob3o$2bobob2obobob4ob3ob4obo4bob7ob2o3bobo4bob2obo3bo5bob4ob5o3b3o5b
2o5b9obo2bo5bobo4b3o$b2obo7bo2b2obo2b3o2bob4o6b3ob2o2bo2b4o3b3o6b2ob4o
bob6o5bo5bo2bo2b2o5bob2o2b2obo2b5ob2o2bo$b2o2bo2b2o5b3obobobobo3bobobo
b4obob2ob3o2bobob2obob2o4b3o2bobo6bobo3b3ob2obob4ob3o3bo2b4obobobob9o$
2bobo2bo2b2o4b3obob4obobo2bo2bo2bo2bob3o2bo3bob4o4bo7b2ob2ob3obo3bo3bo
2bobo2b6o2bobobob3o5bob3o2b3o$b2o2bo2b4obo4bob2o2b5obo3b3o2b2ob2o2bo6b
obob9obo4b4o2bob9o3bobobob2o3b4o2bo2b2o2b3o2b2o4bo$2bob2ob2o8bob2o2bo
2b3obobo2b4o5bo3bob2o5bobob2o2bo2bo3bo2b2o2bob4ob2obo7bob4o5bo2b2ob2o
2b2o2b3ob2o$o2bob2o3b3o5b2o5b2o3bo2b2obob2obo2bob6o2b2o2b2o6b3ob2o2bo
3bo5bo3b6o6b2obo2bob2o2b2o3bobo2b2ob3o$bob2o2bo4b7o2b3o3b2o2bo2b2ob2ob
obob3obob2o2b3o2bo5b2o4bobo2b2obob3ob3obobobob2ob3ob2o2bob2o2bo3bobobo
2b4o$2o3b5ob2obo2bob3obobobo2b5obo2b2ob2ob5obo5bo3b2ob2obo2bobobob2ob
4o3bo2bob2o5bobob2o2bo2b3obobobob2obob2o$o2bob2o3bo6b3o2b2obob4obo2bo
4bo3bo2b4o2b2o3bob2obobob2o2b3o2bo2bo3b2obo2b3o2b4ob5ob4o2b7ob5ob3o$2b
o2b8o3bo3b2o3b4o5b2o3bo3bo2bo2b3o5bo3bo2bo2bo2b2obob5o2b3o3bo3bo2bo4b
7obob2ob4o2b2o2bobo$4b2o3b2o5bo2b4o2bo2b5obobo2b5obob2o3b2o2b3o3b4o3b
2obobo3bobo7bobob2ob2obob2ob2o3bo5b2o6bo3bo$o4bo6b10o2b4ob8ob2o2bo7b2o
3bobo2bo3bob5o3b5ob2ob2ob2ob3o2bo2b4obob2o4b2ob5o2bo4bo$4o2b2obobo3b4o
2b2ob2o2bobobo2b2o2b2o2bob4o2b3o7bob4obobo2b3obo3bobob3o3bo4bob2ob4o3b
2o2bob6obo2bob2o$ob3ob5ob4obob4ob2obobo4bobo2b4ob2o3b4ob4o2bobobob2ob
2ob3o4b4o2b4ob4ob3obo2b3o2b3o2b3obo4b2ob4o$2o2b3ob3ob5o3b3obobo3bob3o
4bo3b4o2b2ob2ob5ob2o2b8o9b3obo7bo3b3obob4o2b2o2bo4b2o2bo2b2o$o2b4o3b2o
b2obo4bo4b5o2b2obo3b5o3b6o3bo5b4obob2ob3o3b2o5bo3bo2bob2ob4o2bo2b3o2bo
2bob7obobo$4o2b2o2b2ob2ob5ob3obob2ob3obo5bo3b3ob2o3b3o2b2o3b2ob2o2b2o
2bobo2bob5ob4o4b2obobob2o4bo2b2o4bob8o$3bo2bo4bo2b7o2b2ob2obo2b2ob3ob
2o2b2obo4b2o3bobo3b6o5bo4b4obo5b2ob3o2b2obo2b2ob2obobob3o2bob2obobo$b
4o3b2ob3ob4o2bo2b2o3b4obo4b3ob4ob2obob3obob2o2b4o4b2ob5o2b2obobo5bob3o
bob2ob2o2bob2o3bo2b7obo$bob2ob3o3b2o2b2obobobo2b2o2b4obob2obo4b5obob2o
b2ob2ob2obo7bo3b2ob2ob3o3b2obobo2b3o2bobo2b4o2b5ob2obob2obo$b2o2bobob
2o7bo4bo2b7obob3obo3bo3b2ob2o2b2o2bob2o2b5ob2o2bo2b2ob2o2b4o5b2o3b3ob
3ob3obo2b2ob2ob3ob3o$2bo3b6obobobo2bo2b2obob5o2b8o2bo2bo2bo2bo5bob2ob
2obobo3bo2b6o2bo2b3ob2o4bobobo4b2obob2o2b2obob4o$bobob7o8bo5bobo2bo2b
2o4b2o3bob3ob2ob7o2bob2o2bo5bo2bobo5b8o5bo4bobobob3o4b4o2b5o$4ob2obobo
4bobo7bobo3bobo2bobo3bo5b2o3b2obo2b2o3b2obo5b2ob3o6bo4b2obobob6obobobo
b2obobobo2bo2b4o$ob2o2b2o3b3o3b2obo2bobob4o3bo2b2obob6o4bo2bob2o4bobob
4o9bobo2b4o2b2obo3b2obo4bob2o2b2o2bob2o2b5o$bo2b3o2bob7o5bo2b3o2b2o2bo
b2o2bo2bo3b5o2b4o2bo2bob5ob2obobobo2b3obo2b4o2bobo3bo2bo2b3obo2b8o2bob
o$ob4o2bo2b2o2b4o2b2o2bo2bobobob3obo5bo3b9o8bob3o4b2o2b3o3bo5b3ob2ob2o
b3ob3obo6bo7bo3bo$2b10o2bo3b2obobo2b2o2b4obobo3b2o7b3o4bob2o2bo3bob2o
2bobo2bob5o2b3obobob2ob3o2b2o3b7o3bob3o4bo$bo2bob5obo2bo3b2o2bobobob2o
4b3ob2obob3o3b6ob4obo2bo3b4obob5obob2o3bob2o2b4ob3o2b3ob2o2b4o3bo2b3o$
2obob2o2bobobo2b2o2bo2b3obo2b2o3bobo2b4o2b2o2bo2b4o2b2o3b2o2b9o3bobo2b
obobo4bo2bo4b2ob2obob2ob2obobobob6o$o2b4ob2o3b4o3bob3o2bob6ob2ob5obo2b
3ob2obobo5bo2b3o2bo2b3o2b4obo4bo4b5ob2obob3obob2ob4o3bo3b2o$obo2bo2bo
5bobo2bo9bo2b2o2b2o2bo2b2o5bo8b6obobo2b2o3b4ob3o3bo3b2o3b3obobo3bo3bo
3b2o2b2o3bo2bo$3bob2o2b2o13bobobo4bobob3o2b4o2b2o3bo2bo2b5obobo2b5obo
2bo4b2ob3ob3obo2bobo2b3o2bo2b5ob2obob4o$2bo3b2o5b2obobo4b2o2b2o7b3o2bo
bob2o2b3o2bobo3b2obo4bo5b2ob5o2b4o5bobo5bo4bob2ob3o3b2ob2o5bo$2bob3obo
2b2o4b8ob3o3b2o3bob3obo3b3obob3ob5o2b2ob3ob2ob2ob5o2b2o4bo3bob8ob2o3bo
bo3bobo2b3o2b2o$bo2bo2bobobob2ob4o3b2o4bo2bob5o5b3obo6b4o2b2o6bob3ob2o
4bobob3obobo2bob3o3bob2ob3o2bobo3bob4o3bo$2obobo2bo2b4obo5b2ob2o2b6o2b
o3bob2o2bo5bob3ob3o3b2o2b2o5bo2bo2bobob2obob5o3b2o2b2obo2b6obo7bo$3b3o
bob2o7bo2bo2bobob2o6b2o3b2ob2obo4b2o4b2o4b2obob2o2b2obob2obob2ob2o2bob
ob6o10b2o2b2o5b6o$bobobob2ob2o5b3obo5b3ob3obobob2ob3ob3o2b3obo5bobo5b
3o2b4o2b2o2b2o4b2obo4b4ob3o4b2o7b3obo2bo$2b3ob2obobo2b3ob2o2b3obo2bob
4obo3bobobobo3bo3b2obobobo2bo2bo4bo3bo2bob3o2bo4b2o2b2o3bobobo2b2obobo
2b2obo3bobobo$5ob2o3bob4o3b2o5b5o10bo2b6o3b2o2b2o3b2ob2o3bob2o2b3ob3o
3bob10o3bobobob6ob2o3b2o$2b2obob2obob2o4b4obo2b2o2b3ob2obobob2ob2ob3ob
o4bob2ob4obobobo3b2o2b2obo3bo2bobobo3bobob4ob2ob2ob2o2bobo3bob3o$2o2b
3o4b3obo2bob7o6b2obo2bo3b2ob2ob2obob2o3b2obobobo4b3ob2obob4o3bo2bo2bo
2b3o3bo2b3o2b4o2bob4o3b3o$bo3bobob2obo4b2o3bob2o5b5o2bobobo3bobo2bo4b
2obobo2bob4o2bob2o2b2o4bo2b3o2b2o2b2o2b2ob4o4bobobo2bob3obob2o$3bobob
6o2bo2b2o4b2o4bo3b4ob2obobob3o3bo2b2o2b2obo4b3o2bobob8o5b2ob2o2b6o3bo
5b2o4b5ob2obo$bobobo2b2ob5o2bo2b2ob4o3b2o3bobobo2bob3ob3o3bo3bobob2o2b
obob2o2b4o3bo3bo2bo3b5obobob6ob2ob2o3b4o2b4o$o2bob3obob2o2b2obo3bo2b2o
2bobob2ob2obo2b4o2bobo3b3o3b2obo3b3ob2o3b2o3bo3b4o2b3obo2bo4bo9b4o2bo
5b2o$bo2b4o4bob2o3b3obob4ob3o2b6o2bo2bo3bobo2bo3bob2o2bob2ob2o2bobob2o
2bo2bob4o2b3obo3bo3bo4bob4o3bo2bo2bo$ob3obo3bobob3o2b2ob2o2bobo3bobo2b
ob4o4bob2ob2ob3obo3b4o4bob2ob7o4b2o3bob2obobo2bo2bobo4bobob6o2b4o$4o2b
2o5b4o4b5ob3o3b2o4bobob2obo3bo2bo2b4o3b2o5bo2b2ob3o9bo2b2o6bob4obob2ob
o2b3o2bo3bob3o$2o4bo3bo3b6obo2bo3bob3ob2o3b2o2bo2b2ob2o7bobo2bobob2ob
2o3bo3bobob2o2bob5ob5ob2o2b3o6b2o2b3obobobo$2o3b3o3bobob2o3bobo4bobob
2obobobobobob3o6bobo2bo2bobo2b3o3bo2bo3bo3b2obob2ob4o5bo2b4obob2obobob
o2bobo2b3o$o3b3obo4b5o3b2ob3ob3o3bo2b2obob2obob4o2bo5bo5bo2bo2b2o2b3o
5bob4ob2o2bo2b2obobo2bo2b2obo3bo4bo4b3o$3b3ob3obobob4ob3o2bo2b2obo3b4o
3b2o5b7o5bo2bobobob2ob2o4b2ob4obob3obo4bob2ob2ob5ob2o7b3o2b2o$o2bo2b6o
2bob7obo3b3o6bob2o3bo2bob5o2bobob3o2b3obo2bo6b2o6bo2bob3obo2bob2o2bo2b
obob5obo2b5obo$3obo3b5ob2o2bo2b2obobob2o2bo3b2o2bob2obobob5o4bobobob2o
bob2obo3bo2b2ob4o2b2o2bo3bo5bo2b2ob2ob2o2b2ob3obo3b2o$2o4bo7bobo2b5o2b
ob4o2bo2bo2b2obobo4bobob6obo2b2obobo3b2o2bob2ob2o2b2o2bo2b2o3b4o2b6o3b
3o2b8o$2o2bob2obo4bob3obo3bo2bob2ob10o2b3obo2bo6b2obob3o2b5ob2o4bob3ob
2ob2o2bo2b2o2bobobo3b2obobob2ob3obo4bo$b2o5bo3bobob2o2bobobobo2b2o2bo
2bob3o2b3o2b3ob2o2b2obo3b4obobo3b2o2b5obobo2bobo2b4o3b3obo2b2ob2o4bobo
bo4b2o$o2bo3b2ob2o3bob2o3bo3b4o2bobob2o3b3o3bo4b2ob4obo4bo3bobo2bo3b2o
bo2bo3b5o10bo4bo5bo5b6o$ob3o3b4ob2obobo3b2o2b2ob2o3b7ob2ob3obo2b2obobo
3bo3b9obobobo2b2o4b3ob2o4b5o2b2ob2ob5ob2obob3o2bo$bob3obob2obobo2bo2b
6o7b2ob3o2b4ob2o2bob3o3bo4b4o2b3o3bobobobo3b2o2bob2obo4b2o5bo4b3o3b2o
2b2o2bo$o4bo3b2ob2ob2obo4bo5bo2b4ob3o2bo2b2o2b6ob3o4b2o3bo4b2obobob2o
4b4o3b3obob3ob3o2bobob5o2bo2bo3bo$2obo2bob2obob2o3b4ob2obo5bob2o3b2o5b
o2b3o3bobob3obob3o2bo6b5o2b2ob2obob2ob3o2b3ob3o2bob2obobo3bo2bob3o$o4b
2o2bo4bo2bob2o3bob2obo3bo4bob2ob11o2b4ob4obobo2b3obobobo2bo2bo5b4o2bob
4obobob4o2b7o2bob2o$2ob3o6bo3bob4ob3o2b4o4b2o2bo3b2obob3ob2obo2b2obob
3ob2ob5o2bo3bob4obo2bobo3bo3b2obo5b2ob3ob4o2b3o$ob2o4b3o4b4o5b2o2bo3bo
bob2obo4b2o2b3o2b2o2b2o2bobobo4b3ob2o2b3ob2ob2o2b3o3b2ob2o3bob2ob3obob
o2b3obobo$2b2obo3bobo2b4obobo2bo3b3ob2ob5o4b2o3b2o2b4obo3bo2bo5b3obo4b
obo2bob2o3bob3o10b2obobob5ob5ob2o$obobo6bob3obo4b2ob2o5b2ob2o2b2o2bobo
bo2bob4obo2b6ob3obo8bobobobob2o2b6obob4o2b2obo5b2o2bo2bo2bo$2bob2ob3o
2b2o3bob2o7b2o6bob2o4bob3o3b3ob2o4bob3ob2ob2obob2ob3o3bobob2o2b2o3bobo
8b2obo2b5obobobo$10bob3ob2obobob3o4b2o4bobobobo3bo4bo2bo4bo2b2o2bobobo
4b2ob4o2bob2o6b2obo2bobo8b2o7bobo2bo$3bo2bo2bo3bob9o3bo3bob2ob2obo2b3o
4bo2b2o2b2ob2obo2b3ob6o10bobo3b5o2b2o4bob5ob2o5bob3obobo$3obo3b2o2b4o
2b2obo6b3ob3o2bo2b3o3b3obo4b5ob4obo6bob3o2bo3b2ob2ob2o4b2o3bo3bobobo3b
obo3b2o4b2o$4bo4bobo2b4o2b2ob2o4bo2bob3obobo3bo2bo3b5obob5ob3o4bo3bo3b
4obo2bob4o2b4o2b3obo2bo2b4o2b2obobo2b2o$bo2b3o3bobobob2o3b3o2bo3bobob
2o3b2obobo2b2obob5ob2obobo2bo3bo3b2o2b2o3b3o3bo3b2o2bobo3bobo3b2o2b2o
2b4o5b2o$b3o2b2obo2bobobobob3ob2o4bob2obobo6bo3b4o2bobo2bo4bob4obo4b4o
bobobo4bo7bob6o2b2ob4obob3ob2o$3ob2obo5bo2b5obobo2bobob2ob3obo3bo2b3ob
6o2b8obo2b2o3b4o2bo3bo2b2o2b3obo7bobob4ob2ob3ob3ob4o$obob2obo2bobo3b2o
6bo2b2ob2obob2ob2obobo2b3ob3ob2ob3o2bobo2b3ob5obob3obo2b4obobobo2b3o4b
o2bob3ob2ob2obo3bobo$2b3o3b4ob2obob3ob5o3b4ob2ob2o2b2obob2obobob3o3b5o
3bo5b3o3b5o2bo2b2o2bobo4b2ob2ob3ob2obo2bo3b2o$o5b3ob3o2b3o6bo10b3o2bob
5o5bob2o2b4o2bobob4o3bob2o2b3o8b2ob2o2b2o3b4ob6o4b2o4bobo$4o4bobo3bo3b
3ob2obob2o5bob3obo3bob2o2b5ob2obo2b5o6b3o3b2obob3o2b2o4b3o2bo2b4o2b4o
2bo4b3ob4o$2ob3o4b4obobo2bo4b2o4bo2b3o2b5o2bo2b3o4bo6bobobobo2b3o5b2o
2bo2bob4ob2o2b2ob2ob3o2bo4b3obob2o4bo$4b3ob5obobo3bobo3bo2b3o2b2ob2o2b
3obob4o5bobo3bobo2b3ob2o2b2ob2obo2b4o6b3o5bo3bobob4obo2b5obo2bo$2bo2b
3ob2ob2ob2obo2bob2o4bo2b2o2bob2obo4b2o2bob3o4b2o4b3o2bob3o2b4ob2o3bobo
bobob2o3b2obob2o2bo3bobobo3b2ob4o$b3ob2o4bob3obo2b2obo3b2ob4ob6ob3o2b
2obo4bobobo2bo2bo2b2obob2o2bob2o2bob2o2bo3b2o2bo2b2ob7ob3o4bob2o2b4o$
2o4b3obo8bo5b4ob2obobo2b3obobobo2bobo3b2ob3ob2ob3o2b2o3bobo5bobob7ob3o
2bo3bo2b4o2b2ob2o3bob2o2bo$b3o4b3obo2b2ob2o3b2o4b3o2b2o2b3ob2ob2obobo
6bob3obo2bobo3b2ob2o2bo2bo2b2o5bob2o2bo5b4obobob2o2bob2obob3o$b2o2bob
3obo4b3o3bobobo2b2o2b2ob2o7b2obo3bo3bo2bob2o3bob2obo4b2o3b3obo4bo3bo2b
3o3b5o2b4ob3o2b5ob2o$o2b2ob6o4bobo2b2o2b3o2bo2b5ob3o2bobob4obo2b3o2b2o
b2ob2ob2o2bob2o3b2o5bob4o13bob2obo2bobob5o3bo$2bo4bo2bob2o2bobo2bo2bo
2b2o2bo2b2obo2bo4bo2bo4bo4b2o2b2o2bob3obobobobobo3bo3bobobo3b5ob2obo3b
2ob4o2bo2b3ob3o$bobob3o3bob3obob2o7b2obo3b2ob2ob2obo3b2o3b2o2b4o5bob4o
bob2o4bo3bo4bobo2b2obob2ob5obo2b3o7b2ob2o$2b3o2b3obobob7o2bo2bobo3b6o
4b2o3bo2b2o2bobob2obobobobo4bob2o3b3ob6ob3obo2b2obo2b2o2b3o2bob2o2bobo
bob3o$bo3b2obo3bob5o2bob2obob3o2b6o5b5ob2o2bo4b3o3b2o2b3o2b2o3bobo7bob
2o2b3o7b3o2bo3bob2o2bob3o$o2bo3bobo2bobo2b3obo2bo2b3obob2o2bobobob6ob
2o2b3o2b4obob2ob2o3bob3obo2bobobo2bo3bo4b2o5b2ob2o2bo2bobob5o$o2bo4bob
2ob2ob3ob2obo5bo2bo2bo4bob6ob7ob2o4b3o3b2o2b2ob2o3bo2bob3obob3obobobo
2b4o3bo2b6o3b3o2bo$2ob3o2bob2ob3ob3obobo4b2o3b3ob2ob3ob5obo2b3ob2o3b3o
2bobob5o2b2o2b5o2b3o9bob2obobo3bo4b2o2bo2b2o$3b2o2b3o2bo2bo4bo2bo4bobo
2bo2bo3bo2b3ob2ob3ob4ob3o9b5o5b2ob2o5bo4bobobobobob3o5b3obo5b3o$o3b2ob
o2b2o9bobobo3b4ob3obobo3bo2bo3b2obo4b2o2bob2ob4o2bo7b3o2b3ob3ob3o2b3o
2bob3obobobob4o2bo2b2o$obo2bo2bo2b4ob4ob2o2b5o2b2ob3o6bo2bob2o7bo2bobo
b2o2b2ob3obo3bo3bo2bob3o2bo6bob2obobo4bobob4obo$2b2o3bob6obobo3bob2o2b
o6b2o3b3o2bo3bo3bob7o3bob2ob2obob2obobob3o2bo10b2o2bo6b2o2bob4o3b3obo$
4b3o2bob3ob3ob3obo3b4o2bo2b5obo2bobo3bo2bob2o3b3o3b7o4bob2o3b2o2bo8b3o
b4ob3ob5obo2bo4bobo$3o3b2obob3ob4obobob2ob2o2b3obo3bob3o3bo3b2obobo2bo
2bob2ob3obobo2bobob4obo2b3o2bo3b5ob2o5b3obo2b2obob2ob2o$2bo2b2obo4b3ob
2o2bo3bobob3obo2b4obo2bo6b2o2bo2bo4bo2bo4b2o2bo2b4o5b3obobob3o3bo2b2ob
o2b2obobo3bo3bo2bo$b4o3bo2b4ob2ob3o2b2o3bo2b2ob2obobobobob4ob2ob3obo2b
obo4bo3b2o2bob2o3b2obo3b2o4b2obo3b3o2bo2b3o7bobo2bo$3obo2b2obob2o2b3ob
2o3bo3b2o2bo2b3o2b3obobo3b5ob2ob2ob3obo4b2o7b2ob2o4b2o2bob2o3bo2b4o2b
3ob3o4b2obo2bo$2bo2bob2o2bobob3ob3o2b2o2bo3b2o3b2o3bo4b2o2b2ob4o2b2obo
bo3bobo2b3o2b2obobo3b2obob2o3bo2b2o2bo3b2obo2bo2bobo3bobo$b7o2bo6b3o2b
ob3obob3o2bo2bo2b2ob2o4b2o3bo2b4o2bo4bo2b2obo2bob2obobo4bo4b2obob5o4bo
4bobo2bob2ob2obo!
Even at 128*128, some soups do not explode. Most of the exploding soups fail to settle within 100k generations or so and then spawn replicators.

Then there are rules that almost explode, but eventually stabilize. This one, B3/S12-ae34ceit, sometimes takes well over 10K generations to stabilize (patterns are same as above):

Code: Select all

#C A blinker
x=3, y=1, rule = B3/S12-ae34ceit
3o!

Code: Select all

#C 7-cell infinite growth from B368/S12578 (dud)
x = 8, y = 5, rule = B3/S12-ae34ceit
7bo$2o5bo$7bo$7bo$7bo!

Code: Select all

#C 7*7, 50% (your script, dud)
x = 7, y = 7, rule = B3/S12-ae34ceit
2ob2o$2bo2b2o$2o2b3o$o2bo2bo$2bo3bo$bob3o$2bob3o!

Code: Select all

#C 16*16, 50% (apgsearch)
x = 16, y = 16, rule = B3/S12-ae34ceit
b3ob2obo2bo3bo$ob2o3bobo2b2obo$2bo3b3obobob2o$bobob3ob6o$5obobobob3o$b
ob2ob5o3bo$bob4o2b2obobo$4o2b3obobo$b2ob2obo4b2o$obo5bobob3o$ob4obob5o
bo$2bo5b3o2bobo$bobob4o2b2obo$bo2bo4b2o2b3o$2ob2o8b2o$obo3bob4obo!

Code: Select all

# 128*128, 50%
x = 128, y = 128, rule = B3/S12-ae34ceit
3o4bo4b2ob2o4b4o3b2o4b4o2b2o10b3o3b2o3b2o2bobobobob8ob8o3bob4obo3b2obo
2bob2o7b3o$o4b4obob3ob2ob3ob3o2b4ob8o6bo2bo3bob3ob2obob2ob3ob2o2b2o3b
3obo2bo2bobo4b3obobob2o3bo3b2ob2obob2o$o3b3o3bob2o3bob2ob3obobo2bo4bob
3ob2o3bobo2b4o2b3o4bo2b2o2bo2b3ob5obob6ob2o4b3obobobo3bobo3b3obob3o$3b
3o4bo2b3o4bob2ob2ob2ob2obobo3b2ob2obo3b4obobo2bo4bo2bo3b7o2bo3b2o3bobo
bo3bob2o3bo2bobobo3bo2b2o3bo$bobo3bobo3bo2b2ob4o4b2o2b2o3bo2bo3bo2bob
3o4b2ob2o5b2o2b2o3b2o3b4obo2bo2bo2bob2obobob3ob2o3bobo4b2o4bob2o$3b5ob
o3bo2b2obobo3bo3b2o2b3obo3bob3o4b2o3bo3bo2b2obo2bo2b2ob2o3b2o2b3o3b4ob
ob2o2b2o4b2obo2bobo3bob3o3b2o$b5ob2o2b3o3bo3b2o5bobo2b4o2b3o2b2o2bo2bo
5bob2o3b5obo2b2obo3b3obo2bob4ob3obo2b2obob3o2b2o3b3ob2o3bo$4o3b2o2b2o
2b5o2b2o6b3ob2obo4bob4o3b4obo2b4o3bo2b7ob2ob3o4b2o2bob2o5bobo2bo2bobo
4b2o3b3ob3o$2b2o2bo4b7obob2o4bobo8bo4b3obo2bo2bob2o2b2o5b2o7bo2b2o2b2o
3b2o2b3o2b2ob2ob3ob3ob2o2b2ob2o2b2ob3o$2o4bob4ob3o2bob3obo2bob4o2bo2b
5o2b2ob2ob2o6bo3b2o2b3o2b2obo2b2o3bo2bo3b4ob2o3bo2b3o3b2ob4o2b3o2b2obo
$o2b5o8b2o4bo4b3o2b9obob2ob2obob2o2bobob6ob4ob2ob2obobo3bob3ob2o2b2obo
bo2bobo2bobob3obob3obobob3o$3b2o3bo3bob2o2bob2ob2o2b5o4b2o2bo4bo2b2o3b
o2bobobo2bo4bob2o3bob4ob4ob2ob6o3bob2o3b3o2bo2bo3bob2o3bo$3ob3ob3obob
2o2bobobo3b2o2bobo4bo2b2obobob4o2bob4o2b4obobobo2b2o2bo2b3ob3o2b2o2bo
4b4o3b4o3b4o4bo2b3o$o2bo2b2o2bo5b2obo3b4ob3ob2obob2ob2obobo3bo2bo5b4o
2b2ob5obo7bo2b2obobob11obo2b2obo4b2ob3obo3bobo$bo4b3ob5ob3obo3b3ob6o3b
2o2b2o2b2obob4o5bobobo4b2o2b2o2bob4ob5obobo3b2obobob5o2bo2b2obo2b4ob2o
bo$o3bob2o2b3o2b2o2b8obo5b4o2b2ob4o3bo2bo5bob3o2bo2bo2b6obo3b2ob3o2b2o
4bo2bo2bob6o3bobob4obob2o$bo2bo2b2ob2ob2obobobo2b3obo5b2obobobo3b3o2b
3o5b2o3b2ob2o2b2ob2obob4o4bobob2ob2o2bo2bo5bobo4bob2ob2obo2b2obo$o5bob
ob3obo2bo2bo3b2obobo5b2o4bobo2bob4o2bo3b2o3b4obo2b3o4bo2bo2bob2obo2b5o
bo2bo2b4o2bo3b2obobo6bo$4bobo2b3o2b9ob2o4bo3bo4b2obo3bo3bo4b4ob4ob3ob
3obo2bo3b4o2bob4ob6o5b6ob3o2bobobo2bob3o$2bob2obobob3obo2b3ob2o4bo2bob
5o2b2obo3bo3bo2bobobob4obobo4bob5o2bo4b2o2bo2bobobo3bobo2b3ob2o4bobob
3ob3o$2bobob2obobob4ob3ob4obo4bob7ob2o3bobo4bob2obo3bo5bob4ob5o3b3o5b
2o5b9obo2bo5bobo4b3o$b2obo7bo2b2obo2b3o2bob4o6b3ob2o2bo2b4o3b3o6b2ob4o
bob6o5bo5bo2bo2b2o5bob2o2b2obo2b5ob2o2bo$b2o2bo2b2o5b3obobobobo3bobobo
b4obob2ob3o2bobob2obob2o4b3o2bobo6bobo3b3ob2obob4ob3o3bo2b4obobobob9o$
2bobo2bo2b2o4b3obob4obobo2bo2bo2bo2bob3o2bo3bob4o4bo7b2ob2ob3obo3bo3bo
2bobo2b6o2bobobob3o5bob3o2b3o$b2o2bo2b4obo4bob2o2b5obo3b3o2b2ob2o2bo6b
obob9obo4b4o2bob9o3bobobob2o3b4o2bo2b2o2b3o2b2o4bo$2bob2ob2o8bob2o2bo
2b3obobo2b4o5bo3bob2o5bobob2o2bo2bo3bo2b2o2bob4ob2obo7bob4o5bo2b2ob2o
2b2o2b3ob2o$o2bob2o3b3o5b2o5b2o3bo2b2obob2obo2bob6o2b2o2b2o6b3ob2o2bo
3bo5bo3b6o6b2obo2bob2o2b2o3bobo2b2ob3o$bob2o2bo4b7o2b3o3b2o2bo2b2ob2ob
obob3obob2o2b3o2bo5b2o4bobo2b2obob3ob3obobobob2ob3ob2o2bob2o2bo3bobobo
2b4o$2o3b5ob2obo2bob3obobobo2b5obo2b2ob2ob5obo5bo3b2ob2obo2bobobob2ob
4o3bo2bob2o5bobob2o2bo2b3obobobob2obob2o$o2bob2o3bo6b3o2b2obob4obo2bo
4bo3bo2b4o2b2o3bob2obobob2o2b3o2bo2bo3b2obo2b3o2b4ob5ob4o2b7ob5ob3o$2b
o2b8o3bo3b2o3b4o5b2o3bo3bo2bo2b3o5bo3bo2bo2bo2b2obob5o2b3o3bo3bo2bo4b
7obob2ob4o2b2o2bobo$4b2o3b2o5bo2b4o2bo2b5obobo2b5obob2o3b2o2b3o3b4o3b
2obobo3bobo7bobob2ob2obob2ob2o3bo5b2o6bo3bo$o4bo6b10o2b4ob8ob2o2bo7b2o
3bobo2bo3bob5o3b5ob2ob2ob2ob3o2bo2b4obob2o4b2ob5o2bo4bo$4o2b2obobo3b4o
2b2ob2o2bobobo2b2o2b2o2bob4o2b3o7bob4obobo2b3obo3bobob3o3bo4bob2ob4o3b
2o2bob6obo2bob2o$ob3ob5ob4obob4ob2obobo4bobo2b4ob2o3b4ob4o2bobobob2ob
2ob3o4b4o2b4ob4ob3obo2b3o2b3o2b3obo4b2ob4o$2o2b3ob3ob5o3b3obobo3bob3o
4bo3b4o2b2ob2ob5ob2o2b8o9b3obo7bo3b3obob4o2b2o2bo4b2o2bo2b2o$o2b4o3b2o
b2obo4bo4b5o2b2obo3b5o3b6o3bo5b4obob2ob3o3b2o5bo3bo2bob2ob4o2bo2b3o2bo
2bob7obobo$4o2b2o2b2ob2ob5ob3obob2ob3obo5bo3b3ob2o3b3o2b2o3b2ob2o2b2o
2bobo2bob5ob4o4b2obobob2o4bo2b2o4bob8o$3bo2bo4bo2b7o2b2ob2obo2b2ob3ob
2o2b2obo4b2o3bobo3b6o5bo4b4obo5b2ob3o2b2obo2b2ob2obobob3o2bob2obobo$b
4o3b2ob3ob4o2bo2b2o3b4obo4b3ob4ob2obob3obob2o2b4o4b2ob5o2b2obobo5bob3o
bob2ob2o2bob2o3bo2b7obo$bob2ob3o3b2o2b2obobobo2b2o2b4obob2obo4b5obob2o
b2ob2ob2obo7bo3b2ob2ob3o3b2obobo2b3o2bobo2b4o2b5ob2obob2obo$b2o2bobob
2o7bo4bo2b7obob3obo3bo3b2ob2o2b2o2bob2o2b5ob2o2bo2b2ob2o2b4o5b2o3b3ob
3ob3obo2b2ob2ob3ob3o$2bo3b6obobobo2bo2b2obob5o2b8o2bo2bo2bo2bo5bob2ob
2obobo3bo2b6o2bo2b3ob2o4bobobo4b2obob2o2b2obob4o$bobob7o8bo5bobo2bo2b
2o4b2o3bob3ob2ob7o2bob2o2bo5bo2bobo5b8o5bo4bobobob3o4b4o2b5o$4ob2obobo
4bobo7bobo3bobo2bobo3bo5b2o3b2obo2b2o3b2obo5b2ob3o6bo4b2obobob6obobobo
b2obobobo2bo2b4o$ob2o2b2o3b3o3b2obo2bobob4o3bo2b2obob6o4bo2bob2o4bobob
4o9bobo2b4o2b2obo3b2obo4bob2o2b2o2bob2o2b5o$bo2b3o2bob7o5bo2b3o2b2o2bo
b2o2bo2bo3b5o2b4o2bo2bob5ob2obobobo2b3obo2b4o2bobo3bo2bo2b3obo2b8o2bob
o$ob4o2bo2b2o2b4o2b2o2bo2bobobob3obo5bo3b9o8bob3o4b2o2b3o3bo5b3ob2ob2o
b3ob3obo6bo7bo3bo$2b10o2bo3b2obobo2b2o2b4obobo3b2o7b3o4bob2o2bo3bob2o
2bobo2bob5o2b3obobob2ob3o2b2o3b7o3bob3o4bo$bo2bob5obo2bo3b2o2bobobob2o
4b3ob2obob3o3b6ob4obo2bo3b4obob5obob2o3bob2o2b4ob3o2b3ob2o2b4o3bo2b3o$
2obob2o2bobobo2b2o2bo2b3obo2b2o3bobo2b4o2b2o2bo2b4o2b2o3b2o2b9o3bobo2b
obobo4bo2bo4b2ob2obob2ob2obobobob6o$o2b4ob2o3b4o3bob3o2bob6ob2ob5obo2b
3ob2obobo5bo2b3o2bo2b3o2b4obo4bo4b5ob2obob3obob2ob4o3bo3b2o$obo2bo2bo
5bobo2bo9bo2b2o2b2o2bo2b2o5bo8b6obobo2b2o3b4ob3o3bo3b2o3b3obobo3bo3bo
3b2o2b2o3bo2bo$3bob2o2b2o13bobobo4bobob3o2b4o2b2o3bo2bo2b5obobo2b5obo
2bo4b2ob3ob3obo2bobo2b3o2bo2b5ob2obob4o$2bo3b2o5b2obobo4b2o2b2o7b3o2bo
bob2o2b3o2bobo3b2obo4bo5b2ob5o2b4o5bobo5bo4bob2ob3o3b2ob2o5bo$2bob3obo
2b2o4b8ob3o3b2o3bob3obo3b3obob3ob5o2b2ob3ob2ob2ob5o2b2o4bo3bob8ob2o3bo
bo3bobo2b3o2b2o$bo2bo2bobobob2ob4o3b2o4bo2bob5o5b3obo6b4o2b2o6bob3ob2o
4bobob3obobo2bob3o3bob2ob3o2bobo3bob4o3bo$2obobo2bo2b4obo5b2ob2o2b6o2b
o3bob2o2bo5bob3ob3o3b2o2b2o5bo2bo2bobob2obob5o3b2o2b2obo2b6obo7bo$3b3o
bob2o7bo2bo2bobob2o6b2o3b2ob2obo4b2o4b2o4b2obob2o2b2obob2obob2ob2o2bob
ob6o10b2o2b2o5b6o$bobobob2ob2o5b3obo5b3ob3obobob2ob3ob3o2b3obo5bobo5b
3o2b4o2b2o2b2o4b2obo4b4ob3o4b2o7b3obo2bo$2b3ob2obobo2b3ob2o2b3obo2bob
4obo3bobobobo3bo3b2obobobo2bo2bo4bo3bo2bob3o2bo4b2o2b2o3bobobo2b2obobo
2b2obo3bobobo$5ob2o3bob4o3b2o5b5o10bo2b6o3b2o2b2o3b2ob2o3bob2o2b3ob3o
3bob10o3bobobob6ob2o3b2o$2b2obob2obob2o4b4obo2b2o2b3ob2obobob2ob2ob3ob
o4bob2ob4obobobo3b2o2b2obo3bo2bobobo3bobob4ob2ob2ob2o2bobo3bob3o$2o2b
3o4b3obo2bob7o6b2obo2bo3b2ob2ob2obob2o3b2obobobo4b3ob2obob4o3bo2bo2bo
2b3o3bo2b3o2b4o2bob4o3b3o$bo3bobob2obo4b2o3bob2o5b5o2bobobo3bobo2bo4b
2obobo2bob4o2bob2o2b2o4bo2b3o2b2o2b2o2b2ob4o4bobobo2bob3obob2o$3bobob
6o2bo2b2o4b2o4bo3b4ob2obobob3o3bo2b2o2b2obo4b3o2bobob8o5b2ob2o2b6o3bo
5b2o4b5ob2obo$bobobo2b2ob5o2bo2b2ob4o3b2o3bobobo2bob3ob3o3bo3bobob2o2b
obob2o2b4o3bo3bo2bo3b5obobob6ob2ob2o3b4o2b4o$o2bob3obob2o2b2obo3bo2b2o
2bobob2ob2obo2b4o2bobo3b3o3b2obo3b3ob2o3b2o3bo3b4o2b3obo2bo4bo9b4o2bo
5b2o$bo2b4o4bob2o3b3obob4ob3o2b6o2bo2bo3bobo2bo3bob2o2bob2ob2o2bobob2o
2bo2bob4o2b3obo3bo3bo4bob4o3bo2bo2bo$ob3obo3bobob3o2b2ob2o2bobo3bobo2b
ob4o4bob2ob2ob3obo3b4o4bob2ob7o4b2o3bob2obobo2bo2bobo4bobob6o2b4o$4o2b
2o5b4o4b5ob3o3b2o4bobob2obo3bo2bo2b4o3b2o5bo2b2ob3o9bo2b2o6bob4obob2ob
o2b3o2bo3bob3o$2o4bo3bo3b6obo2bo3bob3ob2o3b2o2bo2b2ob2o7bobo2bobob2ob
2o3bo3bobob2o2bob5ob5ob2o2b3o6b2o2b3obobobo$2o3b3o3bobob2o3bobo4bobob
2obobobobobob3o6bobo2bo2bobo2b3o3bo2bo3bo3b2obob2ob4o5bo2b4obob2obobob
o2bobo2b3o$o3b3obo4b5o3b2ob3ob3o3bo2b2obob2obob4o2bo5bo5bo2bo2b2o2b3o
5bob4ob2o2bo2b2obobo2bo2b2obo3bo4bo4b3o$3b3ob3obobob4ob3o2bo2b2obo3b4o
3b2o5b7o5bo2bobobob2ob2o4b2ob4obob3obo4bob2ob2ob5ob2o7b3o2b2o$o2bo2b6o
2bob7obo3b3o6bob2o3bo2bob5o2bobob3o2b3obo2bo6b2o6bo2bob3obo2bob2o2bo2b
obob5obo2b5obo$3obo3b5ob2o2bo2b2obobob2o2bo3b2o2bob2obobob5o4bobobob2o
bob2obo3bo2b2ob4o2b2o2bo3bo5bo2b2ob2ob2o2b2ob3obo3b2o$2o4bo7bobo2b5o2b
ob4o2bo2bo2b2obobo4bobob6obo2b2obobo3b2o2bob2ob2o2b2o2bo2b2o3b4o2b6o3b
3o2b8o$2o2bob2obo4bob3obo3bo2bob2ob10o2b3obo2bo6b2obob3o2b5ob2o4bob3ob
2ob2o2bo2b2o2bobobo3b2obobob2ob3obo4bo$b2o5bo3bobob2o2bobobobo2b2o2bo
2bob3o2b3o2b3ob2o2b2obo3b4obobo3b2o2b5obobo2bobo2b4o3b3obo2b2ob2o4bobo
bo4b2o$o2bo3b2ob2o3bob2o3bo3b4o2bobob2o3b3o3bo4b2ob4obo4bo3bobo2bo3b2o
bo2bo3b5o10bo4bo5bo5b6o$ob3o3b4ob2obobo3b2o2b2ob2o3b7ob2ob3obo2b2obobo
3bo3b9obobobo2b2o4b3ob2o4b5o2b2ob2ob5ob2obob3o2bo$bob3obob2obobo2bo2b
6o7b2ob3o2b4ob2o2bob3o3bo4b4o2b3o3bobobobo3b2o2bob2obo4b2o5bo4b3o3b2o
2b2o2bo$o4bo3b2ob2ob2obo4bo5bo2b4ob3o2bo2b2o2b6ob3o4b2o3bo4b2obobob2o
4b4o3b3obob3ob3o2bobob5o2bo2bo3bo$2obo2bob2obob2o3b4ob2obo5bob2o3b2o5b
o2b3o3bobob3obob3o2bo6b5o2b2ob2obob2ob3o2b3ob3o2bob2obobo3bo2bob3o$o4b
2o2bo4bo2bob2o3bob2obo3bo4bob2ob11o2b4ob4obobo2b3obobobo2bo2bo5b4o2bob
4obobob4o2b7o2bob2o$2ob3o6bo3bob4ob3o2b4o4b2o2bo3b2obob3ob2obo2b2obob
3ob2ob5o2bo3bob4obo2bobo3bo3b2obo5b2ob3ob4o2b3o$ob2o4b3o4b4o5b2o2bo3bo
bob2obo4b2o2b3o2b2o2b2o2bobobo4b3ob2o2b3ob2ob2o2b3o3b2ob2o3bob2ob3obob
o2b3obobo$2b2obo3bobo2b4obobo2bo3b3ob2ob5o4b2o3b2o2b4obo3bo2bo5b3obo4b
obo2bob2o3bob3o10b2obobob5ob5ob2o$obobo6bob3obo4b2ob2o5b2ob2o2b2o2bobo
bo2bob4obo2b6ob3obo8bobobobob2o2b6obob4o2b2obo5b2o2bo2bo2bo$2bob2ob3o
2b2o3bob2o7b2o6bob2o4bob3o3b3ob2o4bob3ob2ob2obob2ob3o3bobob2o2b2o3bobo
8b2obo2b5obobobo$10bob3ob2obobob3o4b2o4bobobobo3bo4bo2bo4bo2b2o2bobobo
4b2ob4o2bob2o6b2obo2bobo8b2o7bobo2bo$3bo2bo2bo3bob9o3bo3bob2ob2obo2b3o
4bo2b2o2b2ob2obo2b3ob6o10bobo3b5o2b2o4bob5ob2o5bob3obobo$3obo3b2o2b4o
2b2obo6b3ob3o2bo2b3o3b3obo4b5ob4obo6bob3o2bo3b2ob2ob2o4b2o3bo3bobobo3b
obo3b2o4b2o$4bo4bobo2b4o2b2ob2o4bo2bob3obobo3bo2bo3b5obob5ob3o4bo3bo3b
4obo2bob4o2b4o2b3obo2bo2b4o2b2obobo2b2o$bo2b3o3bobobob2o3b3o2bo3bobob
2o3b2obobo2b2obob5ob2obobo2bo3bo3b2o2b2o3b3o3bo3b2o2bobo3bobo3b2o2b2o
2b4o5b2o$b3o2b2obo2bobobobob3ob2o4bob2obobo6bo3b4o2bobo2bo4bob4obo4b4o
bobobo4bo7bob6o2b2ob4obob3ob2o$3ob2obo5bo2b5obobo2bobob2ob3obo3bo2b3ob
6o2b8obo2b2o3b4o2bo3bo2b2o2b3obo7bobob4ob2ob3ob3ob4o$obob2obo2bobo3b2o
6bo2b2ob2obob2ob2obobo2b3ob3ob2ob3o2bobo2b3ob5obob3obo2b4obobobo2b3o4b
o2bob3ob2ob2obo3bobo$2b3o3b4ob2obob3ob5o3b4ob2ob2o2b2obob2obobob3o3b5o
3bo5b3o3b5o2bo2b2o2bobo4b2ob2ob3ob2obo2bo3b2o$o5b3ob3o2b3o6bo10b3o2bob
5o5bob2o2b4o2bobob4o3bob2o2b3o8b2ob2o2b2o3b4ob6o4b2o4bobo$4o4bobo3bo3b
3ob2obob2o5bob3obo3bob2o2b5ob2obo2b5o6b3o3b2obob3o2b2o4b3o2bo2b4o2b4o
2bo4b3ob4o$2ob3o4b4obobo2bo4b2o4bo2b3o2b5o2bo2b3o4bo6bobobobo2b3o5b2o
2bo2bob4ob2o2b2ob2ob3o2bo4b3obob2o4bo$4b3ob5obobo3bobo3bo2b3o2b2ob2o2b
3obob4o5bobo3bobo2b3ob2o2b2ob2obo2b4o6b3o5bo3bobob4obo2b5obo2bo$2bo2b
3ob2ob2ob2obo2bob2o4bo2b2o2bob2obo4b2o2bob3o4b2o4b3o2bob3o2b4ob2o3bobo
bobob2o3b2obob2o2bo3bobobo3b2ob4o$b3ob2o4bob3obo2b2obo3b2ob4ob6ob3o2b
2obo4bobobo2bo2bo2b2obob2o2bob2o2bob2o2bo3b2o2bo2b2ob7ob3o4bob2o2b4o$
2o4b3obo8bo5b4ob2obobo2b3obobobo2bobo3b2ob3ob2ob3o2b2o3bobo5bobob7ob3o
2bo3bo2b4o2b2ob2o3bob2o2bo$b3o4b3obo2b2ob2o3b2o4b3o2b2o2b3ob2ob2obobo
6bob3obo2bobo3b2ob2o2bo2bo2b2o5bob2o2bo5b4obobob2o2bob2obob3o$b2o2bob
3obo4b3o3bobobo2b2o2b2ob2o7b2obo3bo3bo2bob2o3bob2obo4b2o3b3obo4bo3bo2b
3o3b5o2b4ob3o2b5ob2o$o2b2ob6o4bobo2b2o2b3o2bo2b5ob3o2bobob4obo2b3o2b2o
b2ob2ob2o2bob2o3b2o5bob4o13bob2obo2bobob5o3bo$2bo4bo2bob2o2bobo2bo2bo
2b2o2bo2b2obo2bo4bo2bo4bo4b2o2b2o2bob3obobobobobo3bo3bobobo3b5ob2obo3b
2ob4o2bo2b3ob3o$bobob3o3bob3obob2o7b2obo3b2ob2ob2obo3b2o3b2o2b4o5bob4o
bob2o4bo3bo4bobo2b2obob2ob5obo2b3o7b2ob2o$2b3o2b3obobob7o2bo2bobo3b6o
4b2o3bo2b2o2bobob2obobobobo4bob2o3b3ob6ob3obo2b2obo2b2o2b3o2bob2o2bobo
bob3o$bo3b2obo3bob5o2bob2obob3o2b6o5b5ob2o2bo4b3o3b2o2b3o2b2o3bobo7bob
2o2b3o7b3o2bo3bob2o2bob3o$o2bo3bobo2bobo2b3obo2bo2b3obob2o2bobobob6ob
2o2b3o2b4obob2ob2o3bob3obo2bobobo2bo3bo4b2o5b2ob2o2bo2bobob5o$o2bo4bob
2ob2ob3ob2obo5bo2bo2bo4bob6ob7ob2o4b3o3b2o2b2ob2o3bo2bob3obob3obobobo
2b4o3bo2b6o3b3o2bo$2ob3o2bob2ob3ob3obobo4b2o3b3ob2ob3ob5obo2b3ob2o3b3o
2bobob5o2b2o2b5o2b3o9bob2obobo3bo4b2o2bo2b2o$3b2o2b3o2bo2bo4bo2bo4bobo
2bo2bo3bo2b3ob2ob3ob4ob3o9b5o5b2ob2o5bo4bobobobobob3o5b3obo5b3o$o3b2ob
o2b2o9bobobo3b4ob3obobo3bo2bo3b2obo4b2o2bob2ob4o2bo7b3o2b3ob3ob3o2b3o
2bob3obobobob4o2bo2b2o$obo2bo2bo2b4ob4ob2o2b5o2b2ob3o6bo2bob2o7bo2bobo
b2o2b2ob3obo3bo3bo2bob3o2bo6bob2obobo4bobob4obo$2b2o3bob6obobo3bob2o2b
o6b2o3b3o2bo3bo3bob7o3bob2ob2obob2obobob3o2bo10b2o2bo6b2o2bob4o3b3obo$
4b3o2bob3ob3ob3obo3b4o2bo2b5obo2bobo3bo2bob2o3b3o3b7o4bob2o3b2o2bo8b3o
b4ob3ob5obo2bo4bobo$3o3b2obob3ob4obobob2ob2o2b3obo3bob3o3bo3b2obobo2bo
2bob2ob3obobo2bobob4obo2b3o2bo3b5ob2o5b3obo2b2obob2ob2o$2bo2b2obo4b3ob
2o2bo3bobob3obo2b4obo2bo6b2o2bo2bo4bo2bo4b2o2bo2b4o5b3obobob3o3bo2b2ob
o2b2obobo3bo3bo2bo$b4o3bo2b4ob2ob3o2b2o3bo2b2ob2obobobobob4ob2ob3obo2b
obo4bo3b2o2bob2o3b2obo3b2o4b2obo3b3o2bo2b3o7bobo2bo$3obo2b2obob2o2b3ob
2o3bo3b2o2bo2b3o2b3obobo3b5ob2ob2ob3obo4b2o7b2ob2o4b2o2bob2o3bo2b4o2b
3ob3o4b2obo2bo$2bo2bob2o2bobob3ob3o2b2o2bo3b2o3b2o3bo4b2o2b2ob4o2b2obo
bo3bobo2b3o2b2obobo3b2obob2o3bo2b2o2bo3b2obo2bo2bobo3bobo$b7o2bo6b3o2b
ob3obob3o2bo2bo2b2ob2o4b2o3bo2b4o2bo4bo2b2obo2bob2obobo4bo4b2obob5o4bo
4bobo2bob2ob2obo!
The problem is that this algorithm might falsely classify the first rule as stable, and the second as explosive. You may need better tolerance or something.

There isn't a thread dedicated to barely explosive rules, but there is one for nearly explosive rules.

Code: Select all

x = 4, y = 3, rule = B3-q4z5y/S234k5j
2b2o$b2o$2o!
LaundryPizza03 at Wikipedia

User avatar
Rhombic
Posts: 1057
Joined: June 1st, 2013, 5:41 pm

Re: Characterising rule explosiveness

Post by Rhombic » December 21st, 2017, 4:52 am

I understand your points, LaundryPizza. However, this will be used mostly to differentiate between growth rates of rules than to actually identify explosiveness. For example, determining that tDryLife grows more similarly to CGoL than tlife.
The previous post was only trying to discern potential patterns in explosive rules, but as you said, this is by no means accurate (in many rules, I can only imagine a brute-force search being applicable).

EDIT: Just to clarify, as I mentioned in the first post, by explosiveness I mean growth characteristics, expected attainable population. I don't intend to classify rules as to whether they are explosive or not, I just want to quantify the speed of growth (or methuselah-like characteristics) in order to compare rules.

A thorough analysis of B34z5cq6en7/S2-i34q5a was performed only because of its explosiveness in between that of tDryLife and CGoL. With 2007 data points, the parameters were determined. The intersect tends to have a much higher error than the slope, and it also appears to be less useful from what we are trying to do because it has varied wildly with the rules covered so far, whereas g seems to be able to describe the overall behaviour more accurately.
In any case, g = 67.5±0.9 cells.
Image1
Image1
PIRP.JPG (64.81 KiB) Viewed 3613 times
In the first one of the two images I have attached, you can see the baseline PIRP of this rule, at about 105+ cells. I don't really understand its physical significance, but it is a feature that is very well defined and appears in the second image too.
The second image is the result of a seemingly absurd script that I just wrote that attempts to prove that there are some kind of configurationally non-specific trends in growth. This is what it does:
- Fill 7x7 square, save as pattern1, run pattern1 2000 generations, save population =pat1pop
- Same with a second pattern, save population =pat2pop
- Now paste pattern1 and pattern2 next to each other, evolve 2000 generations, save population =tpop
- Write str(pat1pop+pat2pop) and str(tpop) Note: I added that if both are 0, then do not write... this is because I was expecting to divide them but it turns out that it doesn't matter. This does not affect the results though.
This is done extremely quickly, obviously and in no time you can get 5000+ results. This already is enough to note some important features. Simply by plotting the measurements against each other, you get the second image I uploaded. Forgetting about any kind of trendlines, absurd for this case, one can see a weird "square-like" formation that is hard to describe, but it is where you start seeing points again after 100 cells either of the axes. This means that after joining the two soups, there is a probability that the final population goes above 105 cells more or less, or that, if it already was, it might not any more (hence the symmetry of the graph). This means that, for any value in the axis, there is a visible bump in the probability for that population to be achieved.
It is probably fruitless to try to describe any other trends in that image, but the fact that you get that box at precisely the "baseline" PIRP of the regular script is relevant.
Image2
Image2
Captura.JPG (37.77 KiB) Viewed 3613 times
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
Majestas32
Posts: 524
Joined: November 20th, 2017, 12:22 pm
Location: 'Merica

Re: Characterising rule explosiveness

Post by Majestas32 » December 22nd, 2017, 1:55 am

Is the script Python(2 or 3) or Lua?
Please, stop spam searching Snowflakes.

User avatar
Rhombic
Posts: 1057
Joined: June 1st, 2013, 5:41 pm

Re: Characterising rule explosiveness

Post by Rhombic » December 22nd, 2017, 7:23 am

Majestas32 wrote:Is the script Python(2 or 3) or Lua?
All the scripts I'm using are Python.
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
Rhombic
Posts: 1057
Joined: June 1st, 2013, 5:41 pm

Re: Characterising rule explosiveness

Post by Rhombic » December 22nd, 2017, 2:02 pm

Attempting to see the baseline PIRP with the nx2n correlation script for CGoL, it appears to be at 116-125 cells more or less. It is remarkably weak and hard to find in a 7x7-7x14 case, even with 7000 points. The repetition under the same circumstances with 16x16-16x32 gave a more visible line in the same place but still quite weak.

One of the main conclusions sounds very odd and I want to treat it with a lot of caution just in case it's a massive blunder. The baseline, while reinforced because it's more likely to reach a population of 120 cells from a 16x32, didn't change. It's unusual because one would have expected some kind of proportional difference and find the "usual" baseline PIRP at a higher population. It seems to be, from these two cases, independent. It is not down to the generation limit for evolution because it tends to represent the final population fairly well. Further analysis should be done, because a better understanding of this would allow the main script to use any size soups and the results to be transferable.

I have done a much more in-depth analysis of CGoL to use as a reference and because it makes sense. Results updated in the original post.

EDIT: I've discovered a tiny secondary PIRP at 58 cells that could have merged partly with the normal probability but is still identifiable and significant! This is odd, why is it exactly half of the other one?
Any non-coincidental repeated patterns outside of the x=y axis would indicate a non-independent variability.
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

Post Reply