ConwayLife.com - A community for Conway's Game of Life and related cellular automata
Home  •  LifeWiki  •  Forums  •  Download Golly

Soup search results

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.

Re: Soup search results

Postby Goldtiger997 » November 10th, 2018, 9:45 am

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:

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 45 times

For example, here's the output for one of the blinker-boat constellations in Extrementhusiast's above post. It runs almost instantaneously:

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:

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))
Things to work on:
  • Work on the snowflakes orthogonoid
User avatar
Goldtiger997
 
Posts: 460
Joined: June 21st, 2016, 8:00 am
Location: 11.329903°N 142.199305°E

Re: Soup search results

Postby dvgrn » November 10th, 2018, 2:21 pm

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.
User avatar
dvgrn
Moderator
 
Posts: 4974
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI

Re: Soup search results

Postby calcyman » November 10th, 2018, 11:08 pm

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:

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.
What do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
calcyman
 
Posts: 1766
Joined: June 1st, 2009, 4:32 pm

Re: Soup search results

Postby Goldtiger997 » November 11th, 2018, 4:14 am

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 42 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:

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.
Things to work on:
  • Work on the snowflakes orthogonoid
User avatar
Goldtiger997
 
Posts: 460
Joined: June 21st, 2016, 8:00 am
Location: 11.329903°N 142.199305°E

Re: Soup search results

Postby rliston » November 11th, 2018, 12:47 pm

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:

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)
rliston
 
Posts: 6
Joined: July 20th, 2018, 9:30 pm

Re: Soup search results

Postby 77topaz » November 12th, 2018, 2:36 am

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.
User avatar
77topaz
 
Posts: 859
Joined: January 12th, 2018, 9:19 pm

Re: Soup search results

Postby rliston » November 12th, 2018, 12:26 pm

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
rliston
 
Posts: 6
Joined: July 20th, 2018, 9:30 pm

Re: Soup search results

Postby A for awesome » November 12th, 2018, 8:05 pm

New double p46 shuttle variant in D4_+1:
x = 57, y = 19, rule = B3/S23
20b2o13b2o$20b2o13b2o3$17b2o19b2o$2o15bobo17bobo15b2o$2o17bo17bo17b2o$17b3o
17b3o4$17b3o17b3o$2o17bo17bo17b2o$2o15bobo17bobo15b2o$17b2o19b2o3$20b2o13b2o$
20b2o13b2o!
x₁=ηx
V ⃰_η=c²√(Λη)
K=(Λu²)/2
Pₐ=1−1/(∫^∞_t₀(p(t)ˡ⁽ᵗ⁾)dt)

$$x_1=\eta x$$
$$V^*_\eta=c^2\sqrt{\Lambda\eta}$$
$$K=\frac{\Lambda u^2}2$$
$$P_a=1-\frac1{\int^\infty_{t_0}p(t)^{l(t)}dt}$$

http://conwaylife.com/wiki/A_for_all

Aidan F. Pierce
User avatar
A for awesome
 
Posts: 1660
Joined: September 13th, 2014, 5:36 pm
Location: 0x-1

Re: Soup search results

Postby danny » November 12th, 2018, 8:12 pm


Was it ever possible to get a phi spark out of a twin bee? Well, it is now:
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:
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!
I prefer Dani now, but Danny is fine seeing as it's my username and I've already made 4 too many accounts.
User avatar
danny
 
Posts: 765
Joined: October 27th, 2017, 3:43 pm
Location: i love to eat bees

Re: Soup search results

Postby Ian07 » November 14th, 2018, 5:16 pm

Rob Liston has found another nonstandard infinite growth, except it actually got marked as zz_LINEAR rather than yl1152:
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:
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
Ian07
 
Posts: 65
Joined: September 22nd, 2018, 8:48 am

Re: Soup search results

Postby calcyman » November 14th, 2018, 9:49 pm

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:
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).
What do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
calcyman
 
Posts: 1766
Joined: June 1st, 2009, 4:32 pm

Re: Soup search results

Postby calcyman » November 18th, 2018, 7:07 pm

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:

x = 16, y = 16, rule = B3/S23
ob3ob2ob3obo$o3b6o2bo2bo$5ob3ob3obo$ob2o10bo$5ob6o2bo$b2o3b2o2b2o3bo$
2bobob4obobobo$2bobob3obo2bobo$2o3b8ob2o$3b3o3bo3b3o$3b3obob2ob3o$o3bo
3bo4bobo$obobo2bob2o2bobo$o3bob2o2bobo$bobobo3b2o2b2o$2bobo3bo2bobobo!
What do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
calcyman
 
Posts: 1766
Joined: June 1st, 2009, 4:32 pm

Re: Soup search results

Postby Extrementhusiast » November 21st, 2018, 5:30 pm

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.)
I Like My Heisenburps! (and others)
User avatar
Extrementhusiast
 
Posts: 1723
Joined: June 16th, 2009, 11:24 pm
Location: USA

Re: Soup search results

Postby wildmyron » November 22nd, 2018, 12:16 am

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: viewtopic.php?p=65539#p65539
line 6: MAX_POP = 20
wildmyron
 
Posts: 874
Joined: August 9th, 2013, 12:45 am

Re: Soup search results

Postby Entity Valkyrie » November 23rd, 2018, 4:19 pm

27x27 soup, density = 1/3. A 28-bit still life pops up.
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.

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!
Last edited by Entity Valkyrie on November 23rd, 2018, 5:05 pm, edited 1 time in total.
User avatar
Entity Valkyrie
 
Posts: 189
Joined: November 30th, 2017, 3:30 am

Re: Soup search results

Postby gmc_nxtman » November 23rd, 2018, 4:40 pm

Did you use apgsearch to find this?
User avatar
gmc_nxtman
 
Posts: 1130
Joined: May 26th, 2015, 7:20 pm

Re: Soup search results

Postby Entity Valkyrie » November 23rd, 2018, 5:06 pm

gmc_nxtman wrote:Did you use apgsearch to find this?


No.
User avatar
Entity Valkyrie
 
Posts: 189
Joined: November 30th, 2017, 3:30 am

Re: Soup search results

Postby mniemiec » November 23rd, 2018, 5:41 pm

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.
mniemiec
 
Posts: 946
Joined: June 1st, 2013, 12:00 am

Re: Soup search results

Postby 2718281828 » November 23rd, 2018, 6:03 pm

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
User avatar
2718281828
 
Posts: 367
Joined: August 8th, 2017, 5:38 pm

Re: Soup search results

Postby dvgrn » November 23rd, 2018, 6:22 pm

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.
User avatar
dvgrn
Moderator
 
Posts: 4974
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI

Re: Soup search results

Postby Saka » November 24th, 2018, 7:26 am

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?
Proud owner and founder of Sakagolue
x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!

(Check gen 2)
User avatar
Saka
 
Posts: 2576
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X

Re: Soup search results

Postby calcyman » November 24th, 2018, 10:30 am

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 do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
calcyman
 
Posts: 1766
Joined: June 1st, 2009, 4:32 pm

Re: Soup search results

Postby wwei23 » November 24th, 2018, 10:44 am

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)
User avatar
wwei23
 
Posts: 921
Joined: May 22nd, 2017, 6:14 pm
Location: The (Life?) Universe

Re: Soup search results

Postby Ian07 » November 24th, 2018, 3:26 pm

p54 shuttle variant in D8_1:
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.
Ian07
 
Posts: 65
Joined: September 22nd, 2018, 8:48 am

Re: Soup search results

Postby Apple Bottom » November 24th, 2018, 3:35 pm

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.
If you speak, your speech must be better than your silence would have been. — Arabian proverb

Catagolue: Apple Bottom • Life Wiki: Apple Bottom • Twitter: @_AppleBottom_

Proud member of the Pattern Raiders!
User avatar
Apple Bottom
 
Posts: 986
Joined: July 27th, 2015, 2:06 pm

PreviousNext

Return to Patterns

Who is online

Users browsing this forum: No registered users and 3 guests