Soup search results

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
User avatar
Billabob
Posts: 158
Joined: April 2nd, 2015, 5:28 pm

Re: Soup search results

Post by Billabob » September 11th, 2015, 2:13 am

gameoflifeboy wrote:13-snake!

Code: Select all

!!!
Now that we have all 13-bit still lives, the twitterbot should be updated to report new 14-cell still lives.
FINALLY. Was that the last 13-bit object? If so, it's interesting that we filled those in before the 12-bits...
gameoflifeboy wrote:Also, my 200th post!
Congrats! This one happens to be my 50th. So many milestones in so little time!
▄▀
▀▀▀

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

Re: Soup search results

Post by calcyman » September 11th, 2015, 3:12 am

Billabob wrote:FINALLY. Was that the last 13-bit object?
No, we're still waiting for the heptapole.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
Billabob
Posts: 158
Joined: April 2nd, 2015, 5:28 pm

Re: Soup search results

Post by Billabob » September 11th, 2015, 3:19 am

calcyman wrote:
Billabob wrote:FINALLY. Was that the last 13-bit object?
No, we're still waiting for the heptapole.
I wonder if the phoenix will be rarer than the heptapole. I'm going to channel my schoolboy maths classes and make a graph for the frequency of each barberpole.
▄▀
▀▀▀

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

Re: Soup search results

Post by calcyman » September 11th, 2015, 3:38 am

Good luck extrapolating from the sequence (1086208, 36718, 968200, 17, 3).
Billabob wrote:
calcyman wrote:
Billabob wrote:FINALLY. Was that the last 13-bit object?
No, we're still waiting for the heptapole.
I wonder if the phoenix will be rarer than the heptapole. I'm going to channel my schoolboy maths classes and make a graph for the frequency of each barberpole.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
Kiran
Posts: 285
Joined: March 4th, 2015, 6:48 pm

Re: Soup search results

Post by Kiran » September 14th, 2015, 10:55 pm

(1086208, 36718, 968200, 17, 3,10584463)
Almost 10 times as common as the bipole!
It is strange how the 13-snake suddenly appears out of a cloud of junk.
Kiran Linsuain

User avatar
gmc_nxtman
Posts: 1150
Joined: May 26th, 2015, 7:20 pm

Re: Soup search results

Post by gmc_nxtman » September 14th, 2015, 11:11 pm

This one seemed promising, but it wasn't...

Code: Select all

x = 16, y = 16, rule = B3/S23
2b3ob3obo4bo$obo6b3ob3o$o3bo3b2o2bo2bo$obo7bo2bobo$2o3b2obo2bo$2bob4o
2b4o$3o3bob7o$bobo3bobob3obo$3b2ob5obo2bo$2o2bobo2b3o2b2o$b3obo3bobo2b
o$3obob2o2bo3b2o$2bo2b2ob4obo$5ob4o3b3o$2ob2obobobo4bo$b3o3bo4b3o!
Can the twitterbot report BTS variants?

Variant candidates: Eater4(rare) Eater3(Also not occured yet) Snark catalyst variants, BTS variants, or common catalysts.

User avatar
codeholic
Moderator
Posts: 1147
Joined: September 13th, 2011, 8:23 am
Location: Hamburg, Germany

Re: Soup search results

Post by codeholic » September 15th, 2015, 2:16 am

I could add BTS, but if you're concerned about synthesis rather than just wondering what all its natural variants are it would probably make more sense to use a different script I wrote for searching Catagolue: https://github.com/conwaylife/census-to ... matcher.py

You need to adapt it to match BTS active site by providing RLEs of those cells that must be live and those that must be dead.

Regarding eaters 3 and 4 it would be nice to know if they ever emerge, so I'll probably add them to Twitterbot, when I've got time.
Ivan Fomichev

User avatar
Extrementhusiast
Posts: 1966
Joined: June 16th, 2009, 11:24 pm
Location: USA

Re: Soup search results

Post by Extrementhusiast » September 15th, 2015, 1:56 pm

A possibly more useful technique could be using stepwise construction, e.g. finding compatible ways to get to this bookend predecessor:

Code: Select all

.......
.OOOOO.
.OOO...
.......
Another option is to start from the boat and get to a table that way. (Also, see my seed for the BTS posted on 07SEP.)
I Like My Heisenburps! (and others)

User avatar
gmc_nxtman
Posts: 1150
Joined: May 26th, 2015, 7:20 pm

Re: Soup search results

Post by gmc_nxtman » September 17th, 2015, 11:07 am


User avatar
praosylen
Posts: 2446
Joined: September 13th, 2014, 5:36 pm
Location: Pembina University, Home of the Gliders
Contact:

Re: Soup search results

Post by praosylen » September 17th, 2015, 12:11 pm

This soup has p12 stable debris:

Code: Select all

x = 16, y = 16, rule = B3/S23
boobbbbbbooboboo$
bbobbbobobobooob$
bbbooooooobbobob$
bbobobobboobbbbb$
obbbbobobbbboboo$
obobobobobobbboo$
ooboobobobobobbb$
bobobobooobbbbbo$
obbbboooobooboob$
boboboobbooboboo$
bobobboobbobbobb$
ooboooboobbobobb$
ooobbbobbboobobb$
obbbobooobobbbob$
booobooooobobbbo$
bbbooooobboobboo!

former username: A for Awesome
praosylen#5847 (Discord)

The only decision I made was made
of flowers, to jump universes to one of springtime in
a land of former winter, where no invisible walls stood,
or could stand for more than a few hours at most...

User avatar
Alexey_Nigin
Posts: 326
Joined: August 4th, 2014, 12:33 pm
Location: Ann Arbor, MI
Contact:

Re: Soup search results

Post by Alexey_Nigin » September 18th, 2015, 12:23 pm

Double lightbulb from asymmetry:

Code: Select all

x = 16, y = 16, rule = B3/S23
booobbbobbboboob$
ooboooboboboobbo$
bbooboooobooobob$
obbobboobbbbbbbb$
obboboobobboobbb$
bbbobboboooboobo$
ooobboboooooobbb$
boooobbbbbobbobo$
bbboboooboobobob$
booobboobbooobob$
bbbooooobobbobbb$
obbooobbbobobbob$
bbobobbboobobobb$
bbbboooobboboboo$
oobobbobbbobbbbo$
ooooboobbobbboob!
http://catagolue.appspot.com/object/xp2 ... 0346/b3s23
There are 10 types of people in the world: those who understand binary and those who don't.

User avatar
praosylen
Posts: 2446
Joined: September 13th, 2014, 5:36 pm
Location: Pembina University, Home of the Gliders
Contact:

Re: Soup search results

Post by praosylen » September 18th, 2015, 1:13 pm

Weird component:

Code: Select all

x = 17, y = 5, rule = B3/S23
2o13bo$obo11bobo$2bo7b2o2bobo$2b2o7b2o2bo$10bo!
Might be known.
former username: A for Awesome
praosylen#5847 (Discord)

The only decision I made was made
of flowers, to jump universes to one of springtime in
a land of former winter, where no invisible walls stood,
or could stand for more than a few hours at most...

mniemiec
Posts: 1590
Joined: June 1st, 2013, 12:00 am

Re: Soup search results

Post by mniemiec » September 18th, 2015, 5:26 pm

Alexey_Nigin wrote:Double lightbulb from asymmetry: ...
Which leads to this 13-glider synthesis:

Code: Select all

x = 128, y = 29, rule = B3/S23
111bo$111bobo$111boo$$90bo19bo$90bo19bo$90bo19bo$$56boo6bo16boo3boo13b
oo3boo13boo3boo$9bo45b3o6bobo14bobobobo13bobobobo13bobobobo$7bobo19boo
18boo4boobo5boo17bobo17bobo17bobo$8boo19boo18boo5b3o23bo3bo15bo3bo15bo
3bo$57bo24bo3bo15bo3bo15bo3bo$8bo54b3o17b3o17b3o17b3o$8boo53bo$7bobo
54bo18b3o17b3o17b3o$57bo24bo3bo15bo3bo15bo3bo$29boo18boo5b3o23bo3bo15b
o3bo15bo3bo$29boo18boo4boobo24bobo17bobo17bobo$55b3o23bobobobo13bobobo
bo13bobobobo$56boo23boo3boo13boo3boo13boo3boo$$90bo19bo$90bo19bo$bo88b
o19bo$boo$obo108boo$111bobo$111bo!

flipper77
Posts: 197
Joined: October 24th, 2010, 3:25 am
Location: Spokane, WA

Re: Soup search results

Post by flipper77 » September 19th, 2015, 11:37 am

A for awesome wrote:Weird component:

Code: Select all

RLE
Might be known.
This may explain how a particularly large and rare object showed up in Okrasinski's census, looks like it showed up as a interaction between a twinhat and the particular reaction you mentioned:

Code: Select all

x = 47, y = 8, rule = B3/S23
13b2o$12bobo$12bo$2bo3bo3b3o14bo3bo13bo$bobobobobo16bobobobo11bobo$bob
obobobob2o13bobobobo7b2o2bobo$2obobobobob2o12b2obobob2o7b2o2bo$4bo3bo
20bo10bo!

User avatar
gameoflifeboy
Posts: 474
Joined: January 15th, 2015, 2:08 am

Re: Soup search results

Post by gameoflifeboy » September 19th, 2015, 12:03 pm

Synthesis of that object in 9 gliders:

Code: Select all

x = 58, y = 50, rule = B3/S23
57bo$55b2o$56b2o7$11bo$12b2o$11b2o5$15bo$16b2o$15b2o3$15bo$16b2o$15b2o
18bo$34bo$17bo16b3o$16bo$16b3o4$37b3o$37bo$38bo10$b2o$obo$2bo2$29b2o$
29bobo$29bo!

User avatar
praosylen
Posts: 2446
Joined: September 13th, 2014, 5:36 pm
Location: Pembina University, Home of the Gliders
Contact:

Re: Soup search results

Post by praosylen » September 19th, 2015, 2:10 pm

flipper77 wrote:
A for awesome wrote:Weird component:

Code: Select all

RLE
Might be known.
This may explain how a particularly large and rare object showed up in Okrasinski's census, looks like it showed up as a interaction between a twinhat and the particular reaction you mentioned:

Code: Select all

rle
Yes, that is how I found the component.
former username: A for Awesome
praosylen#5847 (Discord)

The only decision I made was made
of flowers, to jump universes to one of springtime in
a land of former winter, where no invisible walls stood,
or could stand for more than a few hours at most...

User avatar
gmc_nxtman
Posts: 1150
Joined: May 26th, 2015, 7:20 pm

Re: Soup search results

Post by gmc_nxtman » September 20th, 2015, 10:47 am

13 trillion objects! I'm awaiting 20 trillion!

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

Re: Soup search results

Post by calcyman » September 23rd, 2015, 12:01 pm

This produces a bizarre still-life:

Code: Select all

x = 28, y = 21, rule = B3/S23
9bo$9bobo$9b2o3$12b2o$12b2o2$17bo$16bobo$15bo2bo$bo14b2o$obo$obo$bo2$
26b2o$18bo7b2o$17bobo$17bobo$17bobo!
gmc_nxtman wrote:13 trillion objects! I'm awaiting 20 trillion!
Maybe it's time to release this to a wider audience. I think the list of important feature requests for apgnano is currently a singleton, namely:
  • Allow clean interrupting (by either reading from stdin or catching a sigint) so that progress isn't lost when the search is prematurely aborted.
Does anyone know how to read from stdin without blocking the program from running?

(In the meantime, I've resolved the bug which caused stray PATHOLOGICAL objects to appear, and attenuated the problem causing the mis-identified yl384. There's also friendlier console output in v2.42.)
What do you do with ill crystallographers? Take them to the mono-clinic!

HartmutHolzwart
Posts: 841
Joined: June 27th, 2009, 10:58 am
Location: Germany

Re: Soup search results

Post by HartmutHolzwart » September 23rd, 2015, 12:14 pm

While we're at it: Wouldn't it be time that apgnano supports some symmetry options? Or does it and nobody uses them?

In terms of new oscillators / spaceships / puffers some symmetries seem to give more output.

User avatar
biggiemac
Posts: 515
Joined: September 17th, 2014, 12:21 am
Location: California, USA

Re: Soup search results

Post by biggiemac » September 23rd, 2015, 12:31 pm

Unfortunately, I asked Adam about symmetries in apgnano earlier this month and since it uses the 28x28 tiling it would take a bit of reworking to set a seed any larger than that (since all but I think C1 and D2_x are 31x31 or greater). It can work but hasn't been implemented yet.
Physics: sophistication from simplicity.

mniemiec
Posts: 1590
Joined: June 1st, 2013, 12:00 am

Re: Soup search results

Post by mniemiec » September 23rd, 2015, 12:45 pm

calcyman wrote:This produces a bizarre still-life: ...
This has been long known, at least as early as 1996. Peter Raynham originally found that two offset Pi-heptominos collide to form a sidewalk. If you hit a LOM-predecessor (which resembles a PI at each end) with two PIs, you get two sidewalks, which then link together. This can be done in three different orientations, two of which take 6 gliders to make, and the other takes 7.

User avatar
Billabob
Posts: 158
Joined: April 2nd, 2015, 5:28 pm

Re: Soup search results

Post by Billabob » September 24th, 2015, 6:31 am

14 trillion objects, only 4 days after 13 trillion.
▄▀
▀▀▀

User avatar
gmc_nxtman
Posts: 1150
Joined: May 26th, 2015, 7:20 pm

Re: Soup search results

Post by gmc_nxtman » September 24th, 2015, 11:29 am

codeholic wrote:I could add BTS, but if you're concerned about synthesis rather than just wondering what all its natural variants are it would probably make more sense to use a different script I wrote for searching Catagolue: https://github.com/conwaylife/census-to ... matcher.py

You need to adapt it to match BTS active site by providing RLEs of those cells that must be live and those that must be dead.

Regarding eaters 3 and 4 it would be nice to know if they ever emerge, so I'll probably add them to Twitterbot, when I've got time.
Here is my ( probably wrong ) version:

Code: Select all

#!/usr/bin/python
import csv
import os.path
import re
from urllib2 import urlopen

TARGETS = [
    # eater2 variants
    ('$b2obo$b2ob2o2$b2obo$2bo!', '6o$o2bobo$o2bo$6o$o2bo$2obo!'), # canonical
    ('$b2obo$b2obo$5bo$b2obo$2bo!', '5o$o2bobo$o2bobo$5o$o2bo$2obo!'), # smallest bounding box
    ('4bo$b2o2bo$b2obo$4bo$ob2o$bo!', '4o$o2b2o$o2bobo$4obo$bo2b2o$2b3o!'), # hedonismbot
    ('4bo$b2o2bo$b2obo$4bo$b2obo$bo!', '4o$o2b2o$o2bobo$4obo$o2bobo$ob2o!'), # thinker
    ('4bo$b2o2bo$b2obo$4bo$b2obo$2bo!', '4o$o2b2o$o2bobo$4obo$o2bobo$2obo!'), # bored
    ('4bo$b2o2bo$b2obo$4bo$b2obo!', '4o$o2b2o$o2bobo$4obo$o2bobo$b2o!'), # jordan
    ('4bo$b2o2bo$b2obo$4bo$b2o$3bo!', '4o$o2b2o$o2bobo$4obo$o2b2o$b2o!'), # triskelion
    ('$b2obo$b2ob2o2$ob2o$2bo!', '6o$o2bobo$o2bo$6o$bo2bo$bob2o!'), # boulders
    ('$b2obo$b2obo$5bo$ob2o$2bo!', '5o$o2bobo$o2bobo$5o$bo2bo$bob2o!'), # waiter

    # eater2 precursors
    ('$4bo$4b2o2$b2obo$2bo!', '3b3o$3bobo$3bo$6o$o2bo$2obo!'), # canonical
    ('$4bo$4bo$5bo$b2obo$2bo!', '3b2o$3bobo$3bobo$5o$o2bo$2obo!'), # smallest bounding box
    ('4bo$5bo$4bo$4bo$ob2o$bo!', '3bo$3b2o$3bobo$4obo$bo2b2o$2b3o!'), # hedonismbot
    ('4bo$5bo$4bo$4bo$b2obo$bo!', '3bo$3b2o$3bobo$4obo$o2bobo$ob2o!'), # thinker
    ('4bo$5bo$4bo$4bo$b2obo$2bo!', '3bo$3b2o$3bobo$4obo$o2bobo$2obo!'), # bored
    ('4bo$5bo$4bo$4bo$b2obo!', '3bo$3b2o$3bobo$4obo$o2bobo$b2o!'), # jordan
    ('4bo$5bo$4bo$4bo$b2o$3bo!', '3bo$3b2o$3bobo$4obo$o2b2o$b2o!'), # triskelion
    ('$4bo$4b2o2$ob2o$2bo!', '3b3o$3bobo$3bo$6o$bo2bo$bob2o!'), # boulders
    ('$4bo$4bo$5bo$ob2o$2bo!', '3b2o$3bobo$3bobo$5o$bo2bo$bob2o!'), # waiter
    # bts variants
    ('b2obo$2bob3o$obo$bo!', 'b2obo2bo$2bob4o$obo$2o2b2o$5bo$4bo$4b2o!'), # canonical
    ('b2obo$2bob3o$obo$bo!', 'b2obo2bo$2bob4o$obo$2ob3o$3bo2bo$3bobo$4bo!'), # rloaf
    ('b2obo$2bob3o$obo$bo!', 'b2obo2bo$2bob4o$obo$2o2b2o$5bo$3bo$3b2o!'), # carrier
    ('b2obo$2bob3o$obo$bo!', 'b2obo2bo$2bob4o$obo$2o2b2o$5bo$5bobo$6b2o!'), # eater
    ('b2obo$2bob3o$obo$bo!', 'b2obo2bo$2bob4o$obo$2ob3o$3bo2bo$3bo2bo$4b2o!'), # rpond
    ('b2obo$2bob3o$obo$bo!', '2b2obo2bo$3bob4o$bobo$obob3o$obo3bo$b2o!'), # smallest box
    ('b2obo$2bob3o$obo$bo!', 'b2obo$2bob3o$obo4bo$2ob4o$3bo$3bob2o$4bobo!), # warped
    ('b2obo$2bob3o$obo$bo!', 'b2obo2bo$2bob4o$obo$2o2b2o$5bo$5bobo$6bobo$7bo!), # twit
    ('b2obo$2bob3o$obo$bo!', 'b2obo2bo$2bob4o$obo$2o2b2o$5bo$4bo$4bobo$5b2o!), # shillelagh
    ('b2obo$2bob3o$obo$bo!', '2b2obo$3bob3o$bobo4bo$ob2o3b2o$o$b3o$3bo!), # looped

]

TRANSFORMATIONS = [
    [1, 0, 0, 1],
    [0, -1, 1, 0],
    [-1, 0, 0, -1],
    [0, 1, -1, 0],
    [-1, 0, 0, 1],
    [0, 1, 1, 0],
    [1, 0, 0, -1],
    [0, -1, -1, 0],
]

def decode_rle(encoded):
    x, y = 0, 0
    pos = 0
    cells = set()
    while pos < len(encoded):
        prev = pos
        while 48 <= ord(encoded[pos]) < 58:
            pos += 1

        n = int(encoded[prev:pos]) if pos > prev else 1
        ch = encoded[pos]
        if ch == '$':
            y += n
            x = 0
        elif ch == 'b':
            x += n
        elif ch == 'o':
            for i in range(0, n):
                cells.add((x, y))
                x += 1

        pos += 1

    return cells

def decode_wechsler(encoded):
    _, encoded = encoded.split('_', 1)

    cells = set()
    x, y = 0, 0
    pos = 0
    while pos < len(encoded):
        ch = encoded[pos]
        if ch == 'w':
            x += 2
        elif ch == 'x':
            x += 3
        elif ch == 'y':
            pos += 1
            x += 4 + int(encoded[pos], 36)
        elif ch == 'z':
            x = 0
            y += 5
        else:
            value = int(ch, 36)
            for n in range(0, 5):
                if value & (1 << n):
                    cells.add((x, y+n))
            x += 1

        pos += 1

    return cells

def match_pattern(pattern, wanted, unwanted):
    for pivot in wanted:
        break
    if not pivot:
        return None

    for x, y in pattern:
        failed = False

        for i, j in wanted:
            if (x+i-pivot[0], y+j-pivot[1]) not in pattern:
                failed = True
                break

        if failed:
            continue

        for i, j in unwanted:
            if (x+i-pivot[0], y+j-pivot[1]) in pattern:
                failed = True
                break

        if failed:
            continue

        return True

    return False

def transform_pattern(pattern, dx, dy, dxx = 1, dxy = 0, dyx = 0, dyy = 1):
    cells = set()
    for x, y in pattern:
        cells.add((x*dxx + y*dxy + dx, x*dyx + y*dyy + dy))
    return cells

def get_patterns():
    if not os.path.exists('census.txt'):
        remote = urlopen('http://catagolue.appspot.com/textcensus/b3s23/C1')
        census = open('census.txt', 'w')
        census.write(remote.read())
        census.close()

    census = open('census.txt', 'r')
    patterns = []
    for row in csv.reader(census):
        if row[0] == 'apgcode':
            continue
        patterns.append(row[0])
    census.close()
    return patterns

targets = []
for t in TARGETS:
    targets.append((decode_rle(t[0]), decode_rle(t[1])))

for pattern in get_patterns():
    if pattern[:2] != 'xs':
        continue

    decoded = decode_wechsler(pattern)
    for t in TRANSFORMATIONS:
        p = transform_pattern(decoded, 0, 0, *t)
        for target in targets:
            if match_pattern(p, *target):
                print(pattern)
                break
        else:
            continue
        break
Upon opening the script with python launcher,

Code: Select all

Last login: Thu Sep 24 08:25:15 on ttys001
GalensSlverBook:~ galenmcholbi$ cd '/Applications/census-tools-master/' && '/usr/bin/pythonw'  '/Applications/census-tools-master/census-matcher.py'  && echo Exit status: $? && exit 1
  File "/Applications/census-tools-master/census-matcher.py", line 36
    ('b2obo$2bob3o$obo$bo!', 'b2obo$2bob3o$obo4bo$2ob4o$3bo$3bob2o$4bobo!), # warped
                                                                                   ^
SyntaxError: EOL while scanning string literal
GalensSlverBook:census-tools-master galenmcholbi$ 

Does anyone know what's causing this?

User avatar
rowett
Moderator
Posts: 3821
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Soup search results

Post by rowett » September 24th, 2015, 11:38 am

gmc_nxtman wrote:Upon opening the script with python launcher,

Code: Select all

Last login: Thu Sep 24 08:25:15 on ttys001
GalensSlverBook:~ galenmcholbi$ cd '/Applications/census-tools-master/' && '/usr/bin/pythonw'  '/Applications/census-tools-master/census-matcher.py'  && echo Exit status: $? && exit 1
  File "/Applications/census-tools-master/census-matcher.py", line 36
    ('b2obo$2bob3o$obo$bo!', 'b2obo$2bob3o$obo4bo$2ob4o$3bo$3bob2o$4bobo!), # warped
                                                                                   ^
SyntaxError: EOL while scanning string literal
GalensSlverBook:census-tools-master galenmcholbi$ 

Does anyone know what's causing this?
Looks like there is a missing closed ' before the last ) at the end of the line. Should be:

Code: Select all

 ('b2obo$2bob3o$obo$bo!', 'b2obo$2bob3o$obo4bo$2ob4o$3bo$3bob2o$4bobo!'), # warped

User avatar
Scorbie
Posts: 1692
Joined: December 7th, 2013, 1:05 am

Re: Soup search results

Post by Scorbie » September 24th, 2015, 12:06 pm

biggiemac wrote:Unfortunately, I asked Adam about symmetries in apgnano earlier this month and since it uses the 28x28 tiling it would take a bit of reworking to set a seed any larger than that (since all but I think C1 and D2_x are 31x31 or greater). It can work but hasn't been implemented yet.
@calcyman Couldn't we make symmetric soups under 28x28 and let catalogue accept the new soups?

Post Reply