Page 75 of 104

Re: Soup search results

Posted: November 10th, 2018, 9:45 am
by Goldtiger997
A common method of reducing glider syntheses is by using 3 glider collisions to synthesize a constellation. I've made a script that should make this a lot easier for people. However it is in python, which I know several people have been unable to get to work with Golly. This method can still work if you have some method of determining an apgcode for a constellation outside of python.

Here's the script. The apgcode-determining part is borrowed from apgsearch. Select a constellation (of 20 cells or less) and run it. The script should output a pattern with all the collisions it knows, or tell you that it could not find any:

Code: Select all

import golly as g
g.setrule("B3/S23")

offset = 0
with open("consts.txt","r") as fl:
    consts = (fl.read()[1:-1]).split(", ")
with open("cols.txt","r") as fl:
    cols = (fl.read()[2:-2]).split("], [")
i = 0
for i in range(0,len(cols)):
	cols[i] = cols[i].split(", ")

def bijoscar(maxsteps):

    initpop = int(g.getpop())
    initrect = g.getrect()
    if (len(initrect) == 0):
        return 0
    inithash = g.hash(initrect)

    for i in xrange(maxsteps):

        g.run(1)

        if (int(g.getpop()) == initpop): 

            prect = g.getrect()
            phash = g.hash(prect)

            if (phash == inithash):

                period = i + 1

                if (prect == initrect):
                    return period
                else:
                    return -period 
    return -1


def canonise():
    
    p = bijoscar(4)
    
    representation = "#"
    for i in range(abs(p)):
        rect = g.getrect()
        representation = compare_representations(representation, canonise_orientation(rect[2], rect[3], rect[0], rect[1], 1, 0, 0, 1))
        representation = compare_representations(representation, canonise_orientation(rect[2], rect[3], rect[0]+rect[2]-1, rect[1], -1, 0, 0, 1))
        representation = compare_representations(representation, canonise_orientation(rect[2], rect[3], rect[0], rect[1]+rect[3]-1, 1, 0, 0, -1))
        representation = compare_representations(representation, canonise_orientation(rect[2], rect[3], rect[0]+rect[2]-1, rect[1]+rect[3]-1, -1, 0, 0, -1))
        representation = compare_representations(representation, canonise_orientation(rect[3], rect[2], rect[0], rect[1], 0, 1, 1, 0))
        representation = compare_representations(representation, canonise_orientation(rect[3], rect[2], rect[0]+rect[2]-1, rect[1], 0, -1, 1, 0))
        representation = compare_representations(representation, canonise_orientation(rect[3], rect[2], rect[0], rect[1]+rect[3]-1, 0, 1, -1, 0))
        representation = compare_representations(representation, canonise_orientation(rect[3], rect[2], rect[0]+rect[2]-1, rect[1]+rect[3]-1, 0, -1, -1, 0))
        g.run(1)
    
    if (p<0):
        prefix = "q"+str(abs(p))
    elif (p==1):
        prefix = "s"+str(g.getpop())
    else:
        prefix = "p"+str(p)

    return "x"+prefix+"_"+representation

# A subroutine used by canonise:
def canonise_orientation(length, breadth, ox, oy, a, b, c, d):

    representation = ""

    chars = "0123456789abcdefghijklmnopqrstuvwxyz"

    for v in xrange(int((breadth-1)/5)+1):
        zeroes = 0
        if (v != 0):
            representation += "z"
        for u in xrange(length):
            baudot = 0
            for w in xrange(5):
                x = ox + a*u + b*(5*v + w)
                y = oy + c*u + d*(5*v + w)
                baudot = (baudot >> 1) + 16*g.getcell(x, y)
            if (baudot == 0):
                zeroes += 1
            else:
                if (zeroes > 0):
                    if (zeroes == 1):
                        representation += "0"
                    elif (zeroes == 2):
                        representation += "w"
                    elif (zeroes == 3):
                        representation += "x"
                    else:
                        representation += "y"
                        representation += chars[zeroes - 4]
                zeroes = 0     
                representation += chars[baudot]
    return representation

# Compares strings first by length, then by lexicographical ordering.
# A hash character is worse than anything else.
def compare_representations(a, b):

    if (a == "#"):
        return b
    elif (b == "#"):
        return a
    elif (len(a) < len(b)):
        return a
    elif (len(b) < len(a)):
        return b
    elif (a < b):
        return a
    else:
        return b

pattern = canonise()
if pattern in consts:
    g.clear(1)
    g.clear(0)
    g.setgen("0")
    loc = consts.index(pattern)
    g.show(str(len(cols[loc])) + " collisions found")
    g.setname(pattern)
    for e in cols[loc]:
	    g.putcells(g.parse(e),offset,0)
	    offset += 50
else:
    g.note("No 3 glider collision found for that constellation. Better luck next time")
It relies on two text files which store all the collisions. The text files and the above program are attached here:
synthesise_constellation.zip
(256.78 KiB) Downloaded 485 times
For example, here's the output for one of the blinker-boat constellations in Extrementhusiast's above post. It runs almost instantaneously:

Code: Select all

x = 267, y = 16, rule = B3/S23
10bo49bo49bo49bo50bo53bo$10bobo47bobo46bo49bo50bo53bo$10b2o48b2o47b3o
47b3o48b3o51b3o$b2o98b2o48b2o$obo47b3o47bobo47bobo$2bo49bo49bo49bo47b
3o$51bo150bo$201bo49bo$251b2o$7b3o240bobo$9bo46b2o48b3o98b2o52b2o$8bo
46bobo50bo97bobo51bobo$57bo49bo100bo53bo$154bo$154b2o$153bobo!
As you can see, it contains a few duplicates. This is because the collisions originally come from an gencols search, so there are probably also quite a few collisions missing. However, it seems to be good enough for most purposes.

Edit: In case somebody wants to modify/improve it, here's the script that was used to generate the text files. It reads from a gencols output file:

Code: Select all

import golly as g
g.setrule("Life")

FILENAME = "C:/cygwin64/home/Dary Fitrady/gencols/3g.col"
MAX_GENS = 256
MAX_POP = 20

count=0
consts = []
cols = []

def bijoscar(maxsteps):

    initpop = int(g.getpop())
    initrect = g.getrect()
    if (len(initrect) == 0):
        return 0
    inithash = g.hash(initrect)

    for i in xrange(maxsteps):

        g.run(1)

        if (int(g.getpop()) == initpop): 

            prect = g.getrect()
            phash = g.hash(prect)

            if (phash == inithash):

                period = i + 1

                if (prect == initrect):
                    return period
                else:
                    return -period 
    return -1


def canonise():
    
    p = bijoscar(4)
    
    representation = "#"
    for i in range(abs(p)):
        rect = g.getrect()
        representation = compare_representations(representation, canonise_orientation(rect[2], rect[3], rect[0], rect[1], 1, 0, 0, 1))
        representation = compare_representations(representation, canonise_orientation(rect[2], rect[3], rect[0]+rect[2]-1, rect[1], -1, 0, 0, 1))
        representation = compare_representations(representation, canonise_orientation(rect[2], rect[3], rect[0], rect[1]+rect[3]-1, 1, 0, 0, -1))
        representation = compare_representations(representation, canonise_orientation(rect[2], rect[3], rect[0]+rect[2]-1, rect[1]+rect[3]-1, -1, 0, 0, -1))
        representation = compare_representations(representation, canonise_orientation(rect[3], rect[2], rect[0], rect[1], 0, 1, 1, 0))
        representation = compare_representations(representation, canonise_orientation(rect[3], rect[2], rect[0]+rect[2]-1, rect[1], 0, -1, 1, 0))
        representation = compare_representations(representation, canonise_orientation(rect[3], rect[2], rect[0], rect[1]+rect[3]-1, 0, 1, -1, 0))
        representation = compare_representations(representation, canonise_orientation(rect[3], rect[2], rect[0]+rect[2]-1, rect[1]+rect[3]-1, 0, -1, -1, 0))
        g.run(1)
    
    if (p<0):
        prefix = "q"+str(abs(p))
    elif (p==1):
        prefix = "s"+str(g.getpop())
    else:
        prefix = "p"+str(p)

    return "x"+prefix+"_"+representation

# A subroutine used by canonise:
def canonise_orientation(length, breadth, ox, oy, a, b, c, d):

    representation = ""

    chars = "0123456789abcdefghijklmnopqrstuvwxyz"

    for v in xrange(int((breadth-1)/5)+1):
        zeroes = 0
        if (v != 0):
            representation += "z"
        for u in xrange(length):
            baudot = 0
            for w in xrange(5):
                x = ox + a*u + b*(5*v + w)
                y = oy + c*u + d*(5*v + w)
                baudot = (baudot >> 1) + 16*g.getcell(x, y)
            if (baudot == 0):
                zeroes += 1
            else:
                if (zeroes > 0):
                    if (zeroes == 1):
                        representation += "0"
                    elif (zeroes == 2):
                        representation += "w"
                    elif (zeroes == 3):
                        representation += "x"
                    else:
                        representation += "y"
                        representation += chars[zeroes - 4]
                zeroes = 0     
                representation += chars[baudot]
    return representation

# Compares strings first by length, then by lexicographical ordering.
# A hash character is worse than anything else.
def compare_representations(a, b):

    if (a == "#"):
        return b
    elif (b == "#"):
        return a
    elif (len(a) < len(b)):
        return a
    elif (len(b) < len(a)):
        return b
    elif (a < b):
        return a
    else:
        return b

for s in open(FILENAME):
    count+=1
    #if count%100==0:
        #g.show(str(count))
    g.new("Pattern "+str(count))
    rle = s.replace('!','$').replace('.','b').replace('*','o')[:-1]+'!'
    pat=g.parse(rle)
    g.putcells(pat)
    g.run(MAX_GENS)
    oldbox = g.getrect()
    oldpop = int(g.getpop())
    if oldpop < MAX_POP and oldpop > 0:
        g.run(4)
        #rudimentary stable/low period constellation test
        if g.getrect() == oldbox and int(g.getpop()) == oldpop:
            apg = canonise()
            if apg in consts:
			    cols[consts.index(apg)].append(rle)  
            else:
                consts.append(apg)
                cols.append([rle])
    g.new('')
    
with open("consts.txt","w") as output:
    output.write(str(consts))
with open("cols.txt","w") as output:
    output.write(str(cols))

Re: Soup search results

Posted: November 10th, 2018, 2:21 pm
by dvgrn
Goldtiger997 wrote:A common method of reducing glider syntheses is by using 3 glider collisions to synthesize a constellation. I've made a script that should make this a lot easier for people.
This will be good to have. Do you happen to have the specific calls you used to create the gencols output?

Seems like it might be a good idea to adapt the search to use 2718281828's three-glider collision collection. Haven't looked yet to see if something has to be done to handle different orientations of the same constellation.

In the long run it would be nice to have a lookup system that can find every instance of a particular spark or other active reaction among the three-glider collisions, with or without additional junk off to the side -- or even, every instance of an active reaction where the history envelope doesn't touch some user-specified forbidden zone. But that's going to take quite a bit more indexing work, or it will be a much slower search. The popseq program that chris_c posted several years ago doesn't allow for dying sparks off to the side -- or at least you'd have to do several searches.

Re: Soup search results

Posted: November 10th, 2018, 11:08 pm
by calcyman
rliston wrote:My FPGA code is checked in to https://github.com/rliston/life-soup along with 288 20x20 soups with lifespan 25K+. It is currently running on a Xilinx EK-U1-VCU118-G evaluation board but with some effort the verilog code could be ported to run on AWS F1 instances e.g. https://aws.amazon.com/ec2/instance-types/f1/ although TBH I'm not sure it's any faster (~2550 soups/second) than software search.
Also, I miscounted and this pattern was found after searching 23B random patterns over 3 months.

Thanks,
Rob
Rob's now found a 37911-generation methuselah which emits a natural MWSS:

Code: Select all

x = 16, y = 16, rule = B3/S23
bobobobbbbbooobo$
boobboobobbooobb$
bboooobobboboobo$
obboobbooboboooo$
obbboooboooobobo$
oboobbobbbbboboo$
bbobbooobooobobo$
bbbbbobobbbbobbo$
obbooobooooooobb$
ooobbbboobbbbbob$
bbbboboooobbobbb$
boooooobobbbbobo$
bbooobooooboobob$
bobbobbboobooobo$
boooobobobboooob$
bobbboobooooobbb!
He submitted 176 * 10^9 objects yesterday, which equates to over 8 * 10^9 soups. We should therefore see a lot more of these impressive methuselahs in the coming weeks.

Re: Soup search results

Posted: November 11th, 2018, 4:14 am
by Goldtiger997
dvgrn wrote:This will be good to have. Do you happen to have the specific calls you used to create the gencols output?

Seems like it might be a good idea to adapt the search to use 2718281828's three-glider collision collection. Haven't looked yet to see if something has to be done to handle different orientations of the same constellation.
I ran the gencols search way back in 2016, but I suspect it was something very similar to what chris_c wrote here.

I followed your idea of using 2718281828's collection to improve the script:
synthesise_constellation-ee9.zip
(473.4 KiB) Downloaded 491 times
It took several hours to run because 2718281828's collision collection contained quite a lot more syntheses then my gencols-generated ones (460000 vs 76000). However, the script has quite a lot more collisions in its database now. For example, it used to not be able to find any collisions for the following constellation, but now it finds eight:

Code: Select all

x = 360, y = 29, rule = B3/S23
6bo43bo51bo48bo49bo49bo7bo54bo42bo$7b2o42b2o47bobo49bo49bo48b2o7bo54b
2o40bobo$6b2o3bo38b2o49b2o47b3o47b3o47bobo5b3o53b2o41b2o$11b2o306bo$
10bobo305b2o$152b2o48b2o56b2o56bobo$2o54bo96b2o48b2o56b2o$b2o54b2o93bo
49bo57bo$o55b2o293bo$61bo290bo$61b2o50bo236b3o$60bobo51bo38b2o$112b3o
39b2o$153bo197b3o$353bo$114b2o97b3o136bo$115b2o96bo$114bo99bo9$301b2o$
300bobo$302bo!
I accidentally made it only test for constellations less than 20 bits. It should be straightforward for anyone else modify the script to not have a limit on constellation population, but I won't be doing it soon.
dvgrn wrote:In the long run it would be nice to have a lookup system that can find every instance of a particular spark or other active reaction among the three-glider collisions, with or without additional junk off to the side -- or even, every instance of an active reaction where the history envelope doesn't touch some user-specified forbidden zone. But that's going to take quite a bit more indexing work, or it will be a much slower search. The popseq program that chris_c posted several years ago doesn't allow for dying sparks off to the side -- or at least you'd have to do several searches.
That certainly would be nice to have. I'm not sure how to do such a thing (nicely) though.

Re: Soup search results

Posted: November 11th, 2018, 12:47 pm
by rliston
calcyman wrote:
rliston wrote:My FPGA code is checked in to https://github.com/rliston/life-soup along with 288 20x20 soups with lifespan 25K+. It is currently running on a Xilinx EK-U1-VCU118-G evaluation board but with some effort the verilog code could be ported to run on AWS F1 instances e.g. https://aws.amazon.com/ec2/instance-types/f1/ although TBH I'm not sure it's any faster (~2550 soups/second) than software search.
Also, I miscounted and this pattern was found after searching 23B random patterns over 3 months.

Thanks,
Rob
Rob's now found a 37911-generation methuselah which emits a natural MWSS:

Code: Select all

x = 16, y = 16, rule = B3/S23
bobobobbbbbooobo$
boobboobobbooobb$
bboooobobboboobo$
obboobbooboboooo$
obbboooboooobobo$
oboobbobbbbboboo$
bbobbooobooobobo$
bbbbbobobbbbobbo$
obbooobooooooobb$
ooobbbboobbbbbob$
bbbboboooobbobbb$
boooooobobbbbobo$
bbooobooooboobob$
bobbobbboobooobo$
boooobobobboooob$
bobbboobooooobbb!
He submitted 176 * 10^9 objects yesterday, which equates to over 8 * 10^9 soups. We should therefore see a lot more of these impressive methuselahs in the coming weeks.
I'm currently running two instances of v4.64 on a server with dual Xeon 2.4 GHz E5-2699A. This processor has 22 cores / 44 threads so I'm using '-p 44'.
-Rob

[ 0.582002] smpboot: CPU0: Intel(R) Xeon(R) CPU E5-2699A v4 @ 2.40GHz (family: 0x6, model: 0x4f, stepping: 0x1)
[ 1.803232] x86: Booted up 2 nodes, 88 CPUs
[ 1.808255] smpboot: Total of 88 processors activated (421452.72 BogoMIPS)

Re: Soup search results

Posted: November 12th, 2018, 2:36 am
by 77topaz
rliston, could you please increase your haul size? You're submitting so many hauls so quickly that apgsearch processes such as /verify are getting backlogged. I recommend using 10x-30x the haul size you're currently using.

Re: Soup search results

Posted: November 12th, 2018, 12:26 pm
by rliston
77topaz wrote:rliston, could you please increase your haul size? You're submitting so many hauls so quickly that apgsearch processes such as /verify are getting backlogged. I recommend using 10x-30x the haul size you're currently using.
Sure, I increased soups_per_haul to 300M. Thanks, Rob

Re: Soup search results

Posted: November 12th, 2018, 8:05 pm
by praosylen
New double p46 shuttle variant in D4_+1:

Code: Select all

x = 57, y = 19, rule = B3/S23
20b2o13b2o$20b2o13b2o3$17b2o19b2o$2o15bobo17bobo15b2o$2o17bo17bo17b2o$17b3o
17b3o4$17b3o17b3o$2o17bo17bo17b2o$2o15bobo17bobo15b2o$17b2o19b2o3$20b2o13b2o$
20b2o13b2o!

Re: Soup search results

Posted: November 12th, 2018, 8:12 pm
by dani
Was it ever possible to get a phi spark out of a twin bee? Well, it is now:

Code: Select all

x = 33, y = 23, rule = B3/S23
20b2o$20b2o8b2o$30bo$28bobo$17bo10b2o$2o15b2o$2o16b2o$13b2o2b2o3$29b2o
$13b2o2b2o12bo$2o16b2o12bo$2o15b2o10bobo$17bo12bo5$22b2o$23bo$20b3o$
20bo!
Of course, it can be substituted for Tanner's p46 so it's useless.

EDIT: This shows off a block factory and a failed gun:

Code: Select all

x = 38, y = 54, rule = B3/S23
20b2o$20b2o8b2o$30bo$28bobo$17bo10b2o$2o15b2o$2o16b2o$13b2o2b2o13b2o$
32bo$30bobo$30b2o$13b2o2b2o$2o16b2o$2o15b2o$17bo8$36bo$34b3o$33bo$33b
2o5$17b2o$16bobo5b3o3b3o$16bo7bo2bobo2bo3b2o$15b2o6bo3bobo3bo2b2o$24bo
2bobo2bo$26bo3bo$24b2o5b2o$23b3o5b3o$23b3o5b3o14$24b2o5b2o$24b2o5b2o!

Re: Soup search results

Posted: November 14th, 2018, 5:16 pm
by Ian07
Rob Liston has found another nonstandard infinite growth, except it actually got marked as zz_LINEAR rather than yl1152:

Code: Select all

x = 16, y = 16, rule = B3/S23
ooooooboooobbbbb$
oooobbbobboooobo$
booobobbobbobbbb$
bboboooboboooboo$
bbbobobooboooboo$
ooobbboboboobbbo$
obbbbobbooboboob$
obbbbbobooboobbo$
bobooooobobboobb$
booboooooooobobo$
obobbobboobboobo$
bbooobobobobbobb$
bobbobbbbbboboob$
oboboooooooboboo$
obbbbboobboooboo$
oboooobooooboobo!
Haul: https://catagolue.appspot.com/haul/b3s2 ... 52d10f2a72

Also, we finally have a second natural Silver's p5, this time on an aircraft carrier:

Code: Select all

x = 16, y = 16, rule = B3/S23
boobooboobbooooo$
bbobbbbbbobbbbbb$
obbboooobobbobbb$
obboobbooobobbob$
booobbbbbobbbbob$
boboooboooobobbo$
ooobbbobooboobob$
bbobboooooboobbb$
bobbooobbobbbbbb$
obobboooobbbobob$
bboobooboooboobo$
ooobbobboobooooo$
obobobobbooboooo$
bbbbboboobobbboo$
ooobooobbbbobbbb$
boobbbbobboobobb!
This was actually submitted not by Rob Liston but rather someone named sittingstone1:
https://catagolue.appspot.com/haul/b3s2 ... e91721a490

Re: Soup search results

Posted: November 14th, 2018, 9:49 pm
by calcyman
Ian07 wrote:Rob Liston has found another nonstandard infinite growth, except it actually got marked as zz_LINEAR rather than yl1152:
Ouch. I've renamed it to yl1152_1_332_ce5c623ad49c2712d55df5b89c87da86 and modified apgluxe to be more careful about this sort of thing.
Also, we finally have a second natural Silver's p5, this time on an aircraft carrier:

Code: Select all

x = 16, y = 16, rule = B3/S23
boobooboobbooooo$
bbobbbbbbobbbbbb$
obbboooobobbobbb$
obboobbooobobbob$
booobbbbbobbbbob$
boboooboooobobbo$
ooobbbobooboobob$
bbobboooooboobbb$
bobbooobbobbbbbb$
obobboooobbbobob$
bboobooboooboobo$
ooobbobboobooooo$
obobobobbooboooo$
bbbbboboobobbboo$
ooobooobbbbobbbb$
boobbbbobboobobb!
This was actually submitted not by Rob Liston but rather someone named sittingstone1:
https://catagolue.appspot.com/haul/b3s2 ... e91721a490
Impressive! Especially given that the user has only submitted 7.7 billion objects (i.e. less than 1/30000 of the total Catagolue census).

Re: Soup search results

Posted: November 18th, 2018, 7:07 pm
by calcyman
Rob Liston has now found a 41372-tick methuselah producing a natural
LWSS. It still doesn't beat Dave Greene's 42100-tick methuselah, but
it comes pretty close:

Code: Select all

x = 16, y = 16, rule = B3/S23
ob3ob2ob3obo$o3b6o2bo2bo$5ob3ob3obo$ob2o10bo$5ob6o2bo$b2o3b2o2b2o3bo$
2bobob4obobobo$2bobob3obo2bobo$2o3b8ob2o$3b3o3bo3b3o$3b3obob2ob3o$o3bo
3bo4bobo$obobo2bob2o2bobo$o3bob2o2bobo$bobobo3b2o2b2o$2bobo3bo2bobobo!

Re: Soup search results

Posted: November 21st, 2018, 5:30 pm
by Extrementhusiast
Goldtiger997 wrote:I accidentally made it only test for constellations less than 20 bits. It should be straightforward for anyone else modify the script to not have a limit on constellation population, but I won't be doing it soon.
I'm not so sure. Running the script as it is on a honey farm gives no results (as expected by your comment), but I didn't see an obvious check for constellation size, and manually adding the honey farm to the list creates an IndexError on line 125. (Also, the script fails at line 121 if there is no selection when starting the script, regardless of constellation size.)

(This sequence of posts is likely a better fit in the Enumerating Three-Glider Collisions thread.)

Re: Soup search results

Posted: November 22nd, 2018, 12:16 am
by wildmyron
Extrementhusiast wrote:
Goldtiger997 wrote:I accidentally made it only test for constellations less than 20 bits. It should be straightforward for anyone else modify the script to not have a limit on constellation population, but I won't be doing it soon.
I'm not so sure. Running the script as it is on a honey farm gives no results (as expected by your comment), but I didn't see an obvious check for constellation size, and manually adding the honey farm to the list creates an IndexError on line 125. (Also, the script fails at line 121 if there is no selection when starting the script, regardless of constellation size.)
The limit on constellation size comes from the script which generates the database in the post at the top of this page: http://conwaylife.com/forums/viewtopic. ... 539#p65539
line 6: MAX_POP = 20

Re: Soup search results

Posted: November 23rd, 2018, 4:19 pm
by Entity Valkyrie
27x27 soup, density = 1/3. A 28-bit still life pops up.

Code: Select all

x = 27, y = 27, rule = B3/S23
2b4o3b2o2bo2b2o5b2obo$b2ob7o9bo5bo$bob2ob4o3bo2bo2b2o$3bo2bo5bo5bobob
2o2bo$o2b2o3bo4bobo5bo$10bo14bo$o2bo8bo3bob2o2bob2o$2bo2b2o3bo3bo7bobo
bo$o7bo3bo5bobo4b2o$2bo2bo3b2o5bo4bo$5bo2b2obobo3bo7b2o$bo2b2o2b2o2b2o
5bobo2b3o$bo2bo4b2o5b4o3b4o$4bo2bob3o4b6ob4o$bo22bo$o12bo10b3o$4b2o3b
2o3b2o2bobo$6bo4bo10b3o$2b2o4b2o6bo2bo$o2bo13bo6b3o$o2bobo2b5o7b3o$7bo
bob2o2b2o4b2ob3o$6b7o5bobobob3o$3o3bob2ob2o4b3o4b3o$o5b6o4b2o3bo2b3o$
10b2o2b6o2b5o$2bobobobob2o3b3o4b5o!
Another soup (38x38), density = 1/3.

Code: Select all

x = 38, y = 39, rule = B3/S23
7bo2bo5bo3b2o2bo2bo4b6o$4bo3bo3bo16bo2b4obo$5o6bo2b2o3bo2bobo2bobo3b5o
$ob5o12bo5bobo6b4o$5b3obo20bo3bob2o$bo4b5o4b5o4bo4b2o2bo3bo$7bob3o4b4o
2bo6bo$2bo3bo2b4o2b5obo3bo8bo$b2o4b2ob2o13bob2o3b2obobo$2o4b5o24b2o$2o
3b3obo6bo2b2o14bo$2bo3bo12bobob3o3b3o$5bo9bobo3bob4o3b3o$o2bo8bo6bo3b
5o2bo2bo2bo$2bo7bo3b2o5bo3bo4b2o5bo$7bo2bobo2bo9bo2bob2o2bob2o$8o11b2o
4b3ob6ob2o$5obo3b3obo3bo6b5o4bo$b2o3bo8b3o3bo3bob2o5bo$2b2o2b3o2bo3bo
10b3o2bo2b2o$6b2ob3o7bo3bo$2b11ob2o2bo2bobo7bo5bo$6b2o16bob2obobo2b2o$
2ob2o2b3obo3b4o2bobo3b4o3bob2o$5obobob3obobo7b2o2bob3obobo$b2obo2bo3b
2ob3o2b6ob2o5b2o2bo$o2bo2bobobob3o3bobobobob2o3bo3b2o$bob3o2bo2b2o2bob
2ob2obob3o2b2obob3o$2bo2b2obobobo3bo3b2o4b2ob3o2b3o$o2b2obobo4bob2o4bo
bob5o2bobo2$o17b2o10bo5bo$3bo4bo4b2o12bo9bo$o3bo3b2o10bobobo6b2o3bo$3b
3o3bobo4b2o12bo3bo$ob4o4bo5b3o5b2obo9bo$3bo9bo2bo8b2o3bo3bo2bo$o3bo2b
2o3b3o7b2o5bo2bobobo$6bo5b2o!

Re: Soup search results

Posted: November 23rd, 2018, 4:40 pm
by gmc_nxtman
Did you use apgsearch to find this?

Re: Soup search results

Posted: November 23rd, 2018, 5:06 pm
by Entity Valkyrie
gmc_nxtman wrote:Did you use apgsearch to find this?
No.

Re: Soup search results

Posted: November 23rd, 2018, 5:41 pm
by mniemiec
Entity Valkyrie wrote:27x27 soup, density = 1/3. A 28-bit still life pops up. ...
This is a predecessor still-life used in the Snark synthesis. This soup forms it from an eater, blinker, block, beehive, and LOM - which is exactly the way it is formed in the Snark synthesis, except the beehive can be replaced by a glider.

Re: Soup search results

Posted: November 23rd, 2018, 6:03 pm
by 2718281828
mniemiec wrote:
Entity Valkyrie wrote:27x27 soup, density = 1/3. A 28-bit still life pops up. ...
This is a predecessor still-life used in the Snark synthesis. This soup forms it from an eater, blinker, block, beehive, and LOM - which is exactly the way it is formed in the Snark synthesis, except the beehive can be replaced by a glider.
And the best synthesis requires 9G (eater+(blinker+block)+lom+glider+clean_up = 2+3+2+1+1): viewtopic.php?f=2&t=1082&start=50#p52689

Re: Soup search results

Posted: November 23rd, 2018, 6:22 pm
by dvgrn
Entity Valkyrie wrote:
gmc_nxtman wrote:Did you use apgsearch to find this?
No.
A soup is a "random initial pattern", so these two patterns are badly misadvertised. Unless Entity Valkyrie can provide the random number generator and starting seed used to create these patterns, it might have been better to post them on some other thread, and/or wait four months and a week before posting.

Re: Soup search results

Posted: November 24th, 2018, 7:26 am
by Saka
dvgrn wrote:and/or wait four months and a week before posting.
(off topicish) Why "4 months and a week"? What happens in 4 months and a week?

Re: Soup search results

Posted: November 24th, 2018, 10:30 am
by calcyman
Saka wrote:
dvgrn wrote:and/or wait four months and a week before posting.
(off topicish) Why "4 months and a week"? What happens in 4 months and a week?
Sir Robin Synthesis Day

Re: Soup search results

Posted: November 24th, 2018, 10:44 am
by wwei23
calcyman wrote:
Saka wrote:
dvgrn wrote:and/or wait four months and a week before posting.
(off topicish) Why "4 months and a week"? What happens in 4 months and a week?
Sir Robin Synthesis Day
What's Sir Robin Synthesis Day? (off-topicish as well)

Re: Soup search results

Posted: November 24th, 2018, 3:26 pm
by Ian07
p54 shuttle variant in D8_1:

Code: Select all

x = 31, y = 31, rule = B3/S23
bbbboobboboboobbboobobobboobbbb$
bboobbobbbbobbbobbbobbbbobboobb$
boobbobbbooboboboboboobbbobboob$
bobbobbbobooobbobbooobobbbobbob$
obbobobbbbbbbbbobbbbbbbbbobobbo$
obobobbbobooboboboboobobbbobobo$
bobbbbbbbbbobbbbbbbobbbbbbbbbob$
bbbbbbbobbobooobooobobbobbbbbbb$
obbobobbbbooooobooooobbbbobobbo$
bbobbbbbbbbbobbobbobbbbbbbbbobb$
obooboboobbobooooobobbooboboobo$
bobobooboboobbooobbooboboobobob$
oboobbbooobbbbbbbbbbbooobbboobo$
obbbboboobobbbbobbbboboobobbbbo$
bbobbbbooboobbbbbbbooboobbbbobb$
bobooobbbooobobbbobooobbbooobob$
bbobbbbooboobbbbbbbooboobbbbobb$
obbbboboobobbbbobbbboboobobbbbo$
oboobbbooobbbbbbbbbbbooobbboobo$
bobobooboboobbooobbooboboobobob$
obooboboobbobooooobobbooboboobo$
bbobbbbbbbbbobbobbobbbbbbbbbobb$
obbobobbbbooooobooooobbbbobobbo$
bbbbbbbobbobooobooobobbobbbbbbb$
bobbbbbbbbbobbbbbbbobbbbbbbbbob$
obobobbbobooboboboboobobbbobobo$
obbobobbbbbbbbbobbbbbbbbbobobbo$
bobbobbbobooobbobbooobobbbobbob$
boobbobbbooboboboboboobbbobboob$
bboobbobbbbobbbobbbobbbbobboobb$
bbbboobboboboobbboobobobboobbbb!
Catagolue page: http://catagolue.appspot.com/object/xp5 ... 7113/b3s23

Haul submitted by Apple Bottom, though I don't have the link since the sample soups in Catagolue Reloaded no longer show the haul.

Re: Soup search results

Posted: November 24th, 2018, 3:35 pm
by Apple Bottom
Ian07 wrote:Haul submitted by Apple Bottom, though I don't have the link since the sample soups in Catagolue Reloaded no longer show the haul.
They don't? Strange, it's still working for me --- mind, I'm running the current bleeding-edge version, whereas everyone else only gets what Opera has gotten around to approving. There's two updates pending, and the previous one was left unreviewed by the add-on moderators for five months. But I digress...

In any case the haul's here, submitted just earlier today. Thanks for noticing, I totally missed this myself.