Randomly enumerating glider syntheses

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
Post Reply
User avatar
testitemqlstudop
Posts: 1323
Joined: July 21st, 2016, 11:45 am
Location: in catagolue
Contact:

Randomly enumerating glider syntheses

Post by testitemqlstudop » January 12th, 2020, 12:06 am

Currently, Kazyan and I are running a search in the 5Glider_stdin census on Catagolue, randomly enumerating <5g syntheses. This search was remarkably productive (I've attached the RLE generation script to anyone interested.)

The next steps are to run a 6g search and also colliding 3~4 gliders with common objects, such as R's, B's, Herschels and doves, to see what other interesting results there are.

I wanted to collect all the results in this thread, since they generally don't fit in "soup-based syntheses" or "soup search results" since this really doesn't fit the definition of "soup".

5g creator; save as "5g.cpp" and compile with "g++ -o 5g 5g.cpp -O3 -Ofast -flto -march=native"

Code: Select all

#include <cstring>
#include <cstdio>
#include <random>
using namespace std;

bool aray[50][50];

const int glide[16] = {143, 346, 107, 286, 302, 115, 167, 370, 482, 181, 428, 241, 233, 412, 458, 157};

// 0: down right
// 1: down left
// 2: up left
// 3: up right

const int gc = 5;

inline bool inr(int x) { return 0 <= x && x <= 50; }

int main() {
    mt19937 rng; random_device rd;
    rng.seed(rd());
    int x = -1;
    while(x--) {
        memset(aray, 0, sizeof aray);
        for(int i=0; i<gc; i++) {
            int dx = rng()%20, dy = rng()%20, id=rng()%16;
            switch (id/4)
            {
                case 0: dx+=16; dy+=16; break;
                case 1: dx+=16; break;
                case 2: break;
                case 3: dy+=16; break;
                default: break;
            }
            bool f = false;
            for(int i=0;i<25;i++) if(inr(dx+i/5-1) && inr(dy+i%5-1) && aray[dx+i/5-1][dy+i%5-1]) { f = true; break; }
            if(f) continue;
            for(int i=0;i<9;i++) aray[dx+i/3][dy+i%3] |= (bool)(glide[id]&(1<<i));
        }
        string rle;
        for(int i=0; i<50; i++) {
            if(i) rle += '$';
            int cnt = 0, cv = 2;
            for(int j=0; j<50; j++) {
                if(aray[i][j] != cv) {
                    if(cv != 2) {
                        if(cnt != 1) rle += to_string(cnt);
                        rle += cv?'o':'b';
                    }
                    cnt = 1; cv = aray[i][j];
                } else cnt++;
            }
            if(cv) rle += (to_string(cnt)+(cv?'o':'b'));
        }
        while(rle.back() == '$') rle.pop_back();
        string srle;
        int cnt = 0;
        for(char c:rle) {
            if(c == '$') {
                if(srle.length()) cnt++;
            } else {
                if(cnt) srle += (to_string(cnt)+'$');
                cnt = 0;
                srle += c;
            }
        } 
        srle += '!';
        puts("x = 0, y = 0, rule = B3/S23");
        puts(srle.c_str());
    }
}

User avatar
Hdjensofjfnen
Posts: 1480
Joined: March 15th, 2016, 6:41 pm
Location: r cis θ

Re: Randomly enumerating glider syntheses

Post by Hdjensofjfnen » January 12th, 2020, 2:30 am

EDIT: Moved my post over here.
Hdjensofjfnen wrote:
January 11th, 2020, 3:36 pm
We have a 5G tumbler. I repeat, we have a 5G tumbler. (Previously 6G, improvement due to 5G_stdin.)

Code: Select all

x = 0, y = 0, rule = B3/S23
12bo1$12b2o2b2o1$11bobo2bobo1$16bo2$21b3o8b2o1$21bo9b2o1$22bo10bo10$9bo1$9b2o1$8bobo!
"A man said to the universe:
'Sir, I exist!'
'However,' replied the universe,
'The fact has not created in me
A sense of obligation.'" -Stephen Crane

Code: Select all

x = 7, y = 5, rule = B3/S2-i3-y4i
4b3o$6bo$o3b3o$2o$bo!

User avatar
Kazyan
Posts: 937
Joined: February 6th, 2014, 11:02 pm

Re: Randomly enumerating glider syntheses

Post by Kazyan » January 13th, 2020, 10:45 pm

It may be worth making a script that:

1) Iterates over all objects found in this search that require at least 6G to synthesize,
2) Collects their sample soups,
3) Runs those sample soups to completion individually,
4) Checks if the final population of the soup is equal to the population of the object that the soup is sourced from (i.e. contains that object and nothing else), and
5) Outputs an RLE of all of those one-target-objects soups.

This would automatically grab all of the direct 5G syntheses from this search so far. May require a bit of finessing for oscillators.
Tanner Jacobi

User avatar
testitemqlstudop
Posts: 1323
Joined: July 21st, 2016, 11:45 am
Location: in catagolue
Contact:

Re: Randomly enumerating glider syntheses

Post by testitemqlstudop » January 13th, 2020, 10:50 pm

Here's a cursory script:

Code: Select all

import lifelib
import pickle
import sys
from os import system

try:
    from urllib import urlretrieve
except ImportError:
    from urllib.request import urlretrieve

lt = lifelib.load_rules("b3s23").lifetree()
synthcost = pickle.load(open("synthcost.pickle", "rb"))

system("curl https://gol.hatsya.co.uk/textcensus/b3s23/5Glider_stdin > 5g.txt")
apgcodes = [l.strip().split(",")[0][1:-1] for l in list(open("5g.txt"))[1:]]

interesting_prefixes = ["x"]
interesting = [l for l in apgcodes if any(l.startswith(i) for i in interesting_prefixes) and (l not in synthcost or synthcost[l] >= 5)]

for apgcode in interesting:
    ssl = lt.download_samples(apgcode, "b3s23")["5Glider_stdin"]
    soupcount = len(ssl)
    mpop = 51
    bsoup = None
    for i in range(soupcount):
        soup = ssl[i]
        evolve = soup[1000]
        if soup[1000].population <= mpop:
            mpop = soup[1000].population
            bsoup = soup
    if mpop <= 50:
        print(f"Clean soup found for {apgcode}", file=sys.stderr)
        print(apgcode)
        print(bsoup.rle_string())
I don't know how to scrape glider synth costs, though.

User avatar
Kazyan
Posts: 937
Joined: February 6th, 2014, 11:02 pm

Re: Randomly enumerating glider syntheses

Post by Kazyan » January 13th, 2020, 11:23 pm

You can scrape synthesis costs from: https://gol.hatsya.co.uk/textcensus/b3s ... esis-costs

Synthesis costs are stored the same way B3S23 symmetries are; the values attached to each apgcode are just populated differently.
Tanner Jacobi

Ian07
Posts: 487
Joined: September 22nd, 2018, 8:48 am

Re: Randomly enumerating glider syntheses

Post by Ian07 » January 18th, 2020, 8:16 pm

Currently using lifelib to look through all the sample soups and find potential improvements; will update this post with my progress.

xs11:

Code: Select all

x = 347, y = 44, rule = B3/S23
11bobo$11b2o$12bo5$31bo113bobo$4bobo24bobo111b2o$5b2o24b2o113bo$5bo
123bo200bo$130b2o199bo$8b2o119b2o198b3o$7bobo326bo$9bo327b2o$336b2o7$
148b2o4b2o189bo$147b2o4b2o181bo7b2o$149bo5bo175b3o2bobo5bobo$333bo2b2o
$332bo$144bo$143b2o$143bobo12$3o$2bo$bo!
EDIT: Accidentally included long^3 canoe.

EDIT 2: xs12:

Code: Select all

x = 700, y = 36, rule = B3/S23
326bo$170bo153bobo$91bo77bo155b2o$90bo78b3o$90b3o154bo81bo$248bo78bobo
347bo$246b3o79b2o348bo$497bo178b3o$346bo109bo41bo$11bo236bo95b2o110bob
o37b3o113bo$9b2o237bobo94b2o109b2o3bo148b2o$10b2o85b2o149b2o5b2o203bo
150b2o76bo$87b2o7b2o157bobo202b3o35bo189bo$5bobo80b2o8bo156bo241bobo
188b3o$6b2o79bo380bo29bo$6bo154bo176bo127b2o137bo$2o157b2o177bobo126b
2o134b2o$b2o152bobo2b2o83bo92b2o264b2o85b2o$o8bo74bo71b2o86bobo362b2o
79b2o$9bobo72b2o70bo87bobo361b2o82bo$9b2o72bobo159bo206bo39b2o4b2o103b
o6bo$450bobo39bo2b2o2bo103b2o$2b2o236b2o7b2o200b2o40b2ob2o104bobo92b2o
$3b2o77bo156bo2bo5bo2bo445bobo$2bo79b2o156b2o7b2o204bo241bo$81bobo74bo
295bo229b2o$158b2o85bo208b3o228b2o$157bobo84bobo352b2o83bo$174b2o68bob
o353b2o$173b2o70bo353bo$175bo152b2o$329b2o$328bo$324b2o$325b2o$324bo!
EDIT 3: xs13: (including two new 4Gs!)

Code: Select all

x = 1416, y = 42, rule = B3/S23
1154bo$1152bobo$1153b2o3$851bobo$852b2o$722bo129bo$581bo138b2o$580bo
140b2o139bo$498bobo79b3o279bobo$499b2o361b2o$499bo463bo399bo$640bo142b
2o176bobo83bobo311bobo14bo$581bobo57b2o140bobo120bo2b2o51b2o13bobo68b
2o312b2o13bo$324bo118bo137b2o57b2o141bo118b2obobo2bo66b2o69bo328b3o$
325bo116bo139bo192b3o124bob2ob2o69bo266bobo$169bobo151b3o103bo12b3o
332bo468b2o7bobo$69bo100b2o112b3o40b2o99bobo290b3o52bo76bo194b2o196bo
9b2o37b2o$67bobo44b2o54bo113bo41bobo64bo34bobo155bo73bo60bo49b2o81bo
192bobo206bo38bobo107bo$68b2o2bo40bobo160b3o6bo41bo66bo34bo155b2o71b2o
62bo47bobo79b3o45b2o147bo248bo107bo6b2o$4bo67bobo2b2o33bobo163bo2b2o
109b3o190bobo71b2o111bo127b2o397bo104b3o6bobo$5b2o65b2o3bobo31bobo163b
o3bobo117bo491b2o394b2o9bo67bo39b2o5bo$4b2o71bo33bo83bo85bo120bo29b3o
212bobo243b2o136b2o256b2o2b3o5bo65bo40b2o4bo$109bobo81b2o205b3o245b2o
62b2o188b2o77b2o47bobo27b2o240bo64b3o43bo$109b2o83b2o130b2o102bo211bo
5bo4b2o56bobo187b2o77b2o50bo26b2o239bobo60b2o47bo$bobo322bo2b2o99bo77b
o11b3o70b2o45bobo10bobo57bo70bo118bo78bo78bo230b3o5b2o61bobo46bobo$2b
2o323bobo71b2o27bo76b2o11bo72bobo45b2o10bo53b3o73b2o257b3o209bo3bo35bo
68bo49bobo$2bo323b2obobo68b2o99bo5bobo11bo71bo115bo73bobo80b2o176bo
207bobo2b2o34bo120bo$4b2o324b2o70bo32b3o63b2o205bo16b3o138bobo174bo
209b2o2bobo93bo$4bobo184bo243bo64bobo222bo140bo99b3o9bo209bo164b2o$4bo
185bo245bo76b2o71b3o137bo241bo8b2o207b2o77b2o85bobo$116bo73b3o320bobo
70bo380bo9bobo195bo5bo5b2o75b2o$3o113bo179b2o215bo73bo280b3o305bo2b2o
85bo$o115bo179bobo569bo305b3o3b2o$bo187b2o105bo572bo$118b3o59b2o7bobo$
118bo60bobo7bo985bo$79b2o38bo61bo994bo$79bobo1092b3o19bo$79bo1115b2o$
1195bobo!

User avatar
Freywa
Posts: 627
Joined: June 23rd, 2011, 3:20 am
Location: Singapore
Contact:

Re: Randomly enumerating glider syntheses

Post by Freywa » January 19th, 2020, 7:12 am

I've committed the new SL syntheses as of 19 January 2020 19:11 UTC+8 to Shinjuku.
Princess of Science, Parcly Taxel

Ian07
Posts: 487
Joined: September 22nd, 2018, 8:48 am

Re: Randomly enumerating glider syntheses

Post by Ian07 » January 19th, 2020, 12:38 pm

Preliminary results from Arie Paap's new 4G search:

Code: Select all

x = 317, y = 26, rule = B3/S23
159bo$157b2o$158b2o2$146bo156bo$147bo44b2o110bo$145b3o43bo2bo107b3o9bo
$17bo173bob2o12bo67bobo35bobo$17bobo168b2obobo13bo62b2o4b2o28bo6bo2bo$
17b2o37bo131bo2bobobo4bo6bo61bobo4bo28bobo6b3o$57bo89b2o40b2o3b2o4bo
70bo33bo2bo$55b3o89bobo50bo76b3o26b2o4b5o$59b2o7b2o77bo60b3o68bo31bo4b
o$bo57b2o6bobo138bo69bo32bobo$2bo60b2o2bo133b3o5bo102b2o$3o11b2o46bo2b
obobo131bo$13b2o48bobo2b2o132bo77bo$15bo48b2o213b2o$279bobo3$12bo$11b
2o$11bobo142b3o$156bo$157bo!

Ian07
Posts: 487
Joined: September 22nd, 2018, 8:48 am

Re: Randomly enumerating glider syntheses

Post by Ian07 » January 19th, 2020, 5:22 pm

Back to 5G census now, here's from the xs14 bin: (including one more new 4G)

Code: Select all

x = 3152, y = 61, rule = B3/S23
2662bobo$2663b2o$2663bo6$1886bobo$1887b2o412bo$1887bo352bobo16bo42bo$
2241b2o14b2o41b3o65bo121bobo63bo$1740bobo498bo16b2o44b2o63b2o13bobo
103b2o62bobo21bobo$1740b2o299b2o2bo119bo137bo2bo61b2o14b2o105bo63b2o
21b2o$1741bo297bo2b4o7bo81bo30bo137b2o79bo28bo164bo182b2o$1800bo98bo
139b2o10b2o82bobo26b3o215bo30bobo345bo2bo$1491bobo307b2o6bo89bobo77bob
o62b2o6b2o81b2o127bo115bobo31bo3bo341bobobo85bo31bo$1491b2o307b2o7bobo
87b2o79b2o9bo45bo6b2o87bo34b3o92bo117b2o32b4o288bo53bo2b2o83bo33bo$
1492bo54b2o260b2o169bo11bo44bo94b2o129b3o294bo6bo137b2o40bo16bo84b3o
29b3o$1503bo43bobo440b3o44bo94bobo31bo250b2o139bobo4b2o139b2o37bobo18b
o118b2o$1503bobo38b2obobo255bobo191b3o163bobo133b2o114bobo139b2o5b2o
178b2o17b2o118b2o194bo$1491b3o9b2o39bo2b2o89bo166b2o85bobo104bo165bobo
133bo2bo106b2o5bo330bo329b2o$1491bo54bo91bobo165bo86b2o105bo162bobobob
o83bo48b2obo105b2o335bobo89b2o238b2o$1403bo88bo52b2o91b2o253bo97b2o
135b3o32b2o3bobo82bobo48bobo107b3o67bo263bobo90b2o119bo$1225bo178bo
150bo78bo355bobo135bo6b2o32bo83b2o49bo2bo106bo69bobo262bo90bo5bobo40b
2o3b2o65bo$1055b2o167bo177b3o5bo143bo77bobo88b3o266bo136bo5bobo167bobo
107bo62bo5b2o212bo148b2o41bo2bobo65b3o105bobo77bobo$489bo565bobo157bo
8b3o68bo45bo66b2o144b3o76b2o90bo4b3o157b2o155bo73b3o11bo114b3o53bo172b
2o217bobo146bo41bo3b2o174b2o78b2o$487b2o239bobo325bobo154bobo77b2o44b
5o65b2o313bo5bo160b2o153bobo74bo128bo225b2o218b2o190b3o177bo79bo$488b
2o239b2o327bo155b2o78b2o42bo5bo205b2o78bo100bo158bo151b2o3b2o73bo128bo
595b2o7bo35bo99b2o$729bo264bo63b2o279b5o206b2o77bobo76b2o331bo2bo712bo
89bobo5b2o135bobo$595bo146bo249bobo61b2o73bobo79bo127bo67b2o218bobo2bo
bo72b2o330bo2bo651b2o59bo89bo7bobo136bo$593bobo144bobo250b2o60bobo74b
2o79bo195bobo141b2o75bo3b2o72bo90b3o175b3o62b2o343b3o306bobo58bo200bob
o33bob2obo$594b2o145b2o308bo4bo75bo80bo195bo143b2o80bo165bo177bo407bo
308bo262b2o32b2obob2o$495bo321bobo231bo238bo2bo104b3o399bo3b2o172bo
409bo92b2o204b2o70b3o192b2o3bo$483bo9b2o178bo66bo77b2o50b2o179bo78b2o
4bobo70b3o3b3o70bobo2bobo104bo403bobo675b2o202bobo70bo195b2o105b2o$
484b2o8b2o177bobo63bobo76bo50bo2bo256bo2bo3b2o151b2o2b2o46b2o56bo404bo
676bo206bo71bo186bo6bo107bobo$289bo193b2o120bo57bo9b2o64bobo128b2o2b2o
35b2o134b3o3b3o74b2o5bo75bo127b2o70b2o1140b2o390b2o113bo73b3o$206bobo
79bo307bo7b2o57bo76bo133bobo33bo2bo299bo130b3o66bobo1138bobo389bobo46b
2o139bo$206b2o80b3o197bo105b2o8bobo37b2o17bo210bo36bobo137bo161bo130bo
68bo87b3o1052bo438b2o61bo21b2o55bo$207bo76bo201b2o107b2o48bo2bo20b3o
192bo44bobob2o3b2o131bo293bo155bo217b2o150b2o594b2o494bo34b3o57b2o20bo
bo64b2o$204bo78bobo120b2o79b2o156bobobob2o12b3o153bo41bobo42bobo6bo2bo
130bo450bo217b2o150b2o594b2o492b2o34bo58bobo20bo48b3o14b2o$202bobo78bo
bo120bo2bo236b2ob2obo168b2o40b2o43b2o8b2o210b2o175bo411bo151bo595bo
233b3o258bobo34bo131bo16bo$10bo192b2o79bo115bo6b5o408bobo98b3o207b2o
173b2o1393bo428bo$11b2o359b2o27bo10bo183b2o65b2o160b3o93bo208bo175bobo
1393bo$10b2o119bo156b2o67bo14bobo24b3o7b3o184bobo64b2o6b2o152bo96bo81b
obo194b3o$78bobo7b2o40bo156bo2bo66b2o2b3o8bo30b2o4bo186bo5b3o65bo2bo
152bo177b2o6b2o189bo$79b2o6b2o41b3o73bo81b2o66bobo2bo41b2o197bo68b2o
54b3o147bo127bo6bobo43b2o142bo1938bo$12bobo64bo9bo38bo76b2o155bo240bo
125bo146b2o134bo44b2o2081b2o$12b2o69b2o38bo3bobo75bobo520bo147bobo123b
2o55bo2080bobo$13bo70b2o36bobo3b2o871b2o$8bobo72bo38bobo139b2o84b3o
650bo$8b2o113bob2o136bo2bo85bo$9bo115bobo135bobo85bo$88b3o34bo2bo132b
2obo$88bo37b2o132bobo$89bo170bobo230b2o$261bo231bobo$2o491bo$b2o194b3o
$o198bo$198bo!

User avatar
Kazyan
Posts: 937
Joined: February 6th, 2014, 11:02 pm

Re: Randomly enumerating glider syntheses

Post by Kazyan » January 19th, 2020, 6:20 pm

One of those involves an interaction that can be made into a component:

Code: Select all

x = 31, y = 27, rule = B3/S23
9bo$7bobo$8b2o$11bo$11bobo$11b2o2$16bo$2o13b2o$bo2bo10bobo$bobobo$2bob
o$3bo6$17b3o$17bo$18bo4$28b3o$28bo$29bo!
Tanner Jacobi

User avatar
Hdjensofjfnen
Posts: 1480
Joined: March 15th, 2016, 6:41 pm
Location: r cis θ

Re: Randomly enumerating glider syntheses

Post by Hdjensofjfnen » January 20th, 2020, 2:01 pm

Both the 4G search and the 5G search have turned up this:

Code: Select all

x = 0, y = 0, rule = B3/S23
16bo1$14bobo1$8bo6b2o1$9b2o1$8b2o11$30bo1$29b2o1$29bobo1$19b3o1$19bo1$20bo!
"A man said to the universe:
'Sir, I exist!'
'However,' replied the universe,
'The fact has not created in me
A sense of obligation.'" -Stephen Crane

Code: Select all

x = 7, y = 5, rule = B3/S2-i3-y4i
4b3o$6bo$o3b3o$2o$bo!

User avatar
Hdjensofjfnen
Posts: 1480
Joined: March 15th, 2016, 6:41 pm
Location: r cis θ

Re: Randomly enumerating glider syntheses

Post by Hdjensofjfnen » January 21st, 2020, 1:51 pm

(double-post)
Can anyone clean up this 5G census result in two gliders?

Code: Select all

x = 32, y = 21, rule = LifeHistory
25.A$24.A$24.3A6$.A$.2A26.3A$A.A26.A$30.A$14.A$13.2A$13.A.A4$.3A$3.A$
2.A!
"A man said to the universe:
'Sir, I exist!'
'However,' replied the universe,
'The fact has not created in me
A sense of obligation.'" -Stephen Crane

Code: Select all

x = 7, y = 5, rule = B3/S2-i3-y4i
4b3o$6bo$o3b3o$2o$bo!

Ian07
Posts: 487
Joined: September 22nd, 2018, 8:48 am

Re: Randomly enumerating glider syntheses

Post by Ian07 » February 1st, 2020, 12:55 am

Some more 4Glider_stdin results, including one new 4G synthesis:

Code: Select all

x = 761, y = 36, rule = B3/S23
4bobo465bo186bobo$4b2o204bo261bobo185b2o$5bo204bobo259b2o186bo$210b2o
209bo48bo$420bo48bobo272b2o$400bobo17b3o46bobo271bobo$401b2o67bo211bo
57bo2bo$401bo278b2o58b4o$257b2o422b2o$256bo2bo282bo197b2o$255bo2b2o
283b2o195b2o$255b2obo283b2o$258bo$obo255b2o299bo$b2o463b2o2bo2b2o82bob
o2b2o$bo412bo51bo2bobo2bo83b2ob2o193b2o$196b2o217b2o51b2ob2o90bo192b2o
$b2o193bobo47bo167b2o$2o194bo47bobo308bobo$2bo242b2o171bo137b2o200b2o$
248bo168bo138bo201bobo$247bobo167b3o330b2o6bo$189b3o55bobo500b2o$191bo
56bo221bo$190bo279bo4bo$470bo3b2o195b2o$9b2o180b2o214bo66bobo194bobo$
9bobo178b2o215b2o61bo200bo$9bo182bo213bobo61bo197bo$470bo197b2o$667bob
o3$36b2o$36bobo$36bo!
EDIT: xs15 from 4G census:

Code: Select all

x = 593, y = 35, rule = B3/S23
512bobo$513b2o$513bo3$383bo$384b2o$383b2o3bo$388bobo$388b2o$380b2o$
381b2o196bo$380bo199bo$578b3o$obo164bo414b2o$b2o163bo415b2o7bo$bo164b
3o39bo95bobo12bo270bobo$207bobo95b2o12bobo267bobo$5bo54bo145bo2bo95bo
13b2o198bo11bo57b2o$5bobo51bobo144b3o308bobo12bo$5b2o40bo10bo2bo163bo
72bo219b2o10b3o54b4o$2bo45bo8bob2o111bo35b3o13bo71bobo3b3o231bo49bo3bo
$b2o43b3o7bobo111b2o35bo2bo13b3o70b2o3bo233bobo47b2o$bobo46b2o3bo2bo
112b2o35b2o11b2o80bo227bo4b2o$50b2o3bobo162bo2bo307b2o$56bo163bobo307b
obo$5bo164b2o49bo$4b2o143bo19b2o204b2o$4bobo142b2o20bo204b2o$148bobo
224bo2$316b3o$316bo81bo$317bo79b2o$397bobo!
EDIT 2: xs16:

Code: Select all

x = 1061, y = 56, rule = B3/S23
377bobo$377b2o$378bo16$1023bo$1021b2o$1022b2o3$811bo244bo$810bo246bo$
810b3o242b3o$1059b2o$462bo229bo366b2o$460bobo230bo201bo$461b2o172bobo
53b3o9bo189b2o$464bo171b2o11bo53bo190b2o$165b2o296bobo170bo10b2o54bo$
92bo72bobob2o292bobo182b2o48bo93bo104bobo$92bobo72bobobo173bo118bo232b
obo5b3o82bobo104b2o27bo$4bobo85b2o72b2o3bo173bobo285b3o61bobo91b2o105b
o26bobo$5b2o161b3o174b2o111b2o175bo62bo226b2obob2o78bo$5bo79bo82bo289b
obo22bo150bo68b2o223bobo77b2o43b2o$2bo80bobo3bo55bo313bobo19bobo218bo
2bo222bobo78b2o41bobo$obo3b2o76b2o2b2o56bo314bo20b2o218bobo177bo44b2ob
2o120bobob2o$b2o3bobo79bobo53b3o313bob2o21bo217bo94bo84b2o119b3o44b2ob
obo$6bo454bo2bo19bobo312b2ob3o77b2o4bobo113bo49bobo$171b3o289bobo18bob
o311b2o2bo86b2o114bo48b2o$96b2o48bo177bo139b2o19bo204b2o111bo85bo31b2o
$2b2o92bobo46bobo177b2o359b2o2bo230b2o$2bobo91bo49bo177b2o360bobobo
197bo35b3o80b2o$2bo684bo2b2o195b2o35bo82bobo$690bo104b2o90bobo35bo81bo
$688bobo103b2o$688b2o106bo$325bobo674bo$326b2o674b2o$326bo674bobo2$
326b2o322b2o$325bobo322bobo$327bo322bo!
EDIT 3: xs17:

Code: Select all

x = 440, y = 38, rule = B3/S23
437bobo$437b2o$175bo262bo$176bo$174b3o260bo$178b2o256bo$178b2o256b3o4$
325bo$obo321bobo$b2o317b2obobo$bo104bo212bobobo$104bobo75b2o86bo3b2o
43bo3b2o$105b2o7bobo2b2o60bo2bo85b2o2bobo43b3o$10bo104b2ob2o62b3o6b3o
75bobo2bo47bo$11bo103bo4bo158b2o$9b3o172b3o91b2o$183bo3bo6b2o84bo$5b2o
176b2obobo4b2o140bo$4bobo3b2o175bo7bo127bo10bobo$6bo3bobo164bo144bobo
9bo2bo$10bo165bobo143bobo10b2o$176bobo106bo37bo14b3o$177bo106b2o52bo$
284bobo32b3o17bo$179b3o139bo$179bo140bo$134b2o44bo$133b2o292bo$4bo130b
o286b3obo$4b2o418bob3o$3bobo417bo2$425bo$424b2o$424bobo!
EDIT 4: xs18:

Code: Select all

x = 692, y = 36, rule = B3/S23
639bo$638bo$638b3o4$540bo$541bo$539b3o3$421bo$419b2o41b2o76b2o142bo$
186bobo53b2o176b2o40b2o71bo4bobo140bobo$76bo109b2o52bo2bo289bobo4bo
143b2o$77bo109bo48b2o2b3o96bobo115bo76b2o150b2o$75b3o158bo102b2o80b2o
32bobo215bo12bobo$237b6o97bo81b2o32b2o216bo13bo$79bo159bo2bo178bo39b2o
209b3o12bob2o$78bobo11bo241bo126b2o162bobo48b2o10bo2bo$78bobo10bo91bob
o146b2o7bo124b2o158b2o48b2o11bobo$7bo71bo11b3o84bobo3b2o147b2o4b2o125b
obo157bo63bo$7bobo78b2o89b2o3bo155b2o84bo40b2o$7b2o79b2o89bo154bo89b2o
205b2o$182bo52b2o3b2o92b2o89b2o40b4o73b3o83b2o$3bo178b2o51b2o2bo2bo84b
3o3bobo130bo3bo73bo87bo$b2o178bobo55bo2bo86bo135bobo77bo$2b2o76b2ob2o
155b2o86bo95b3o37bo2bo173b3o$80b2obobo147b2o189bo40b2o174bo$83bobo148b
2o189bo216bo$bo78b3obo99bo48bo313bo$b2o77bo2bo99b2o361b2o$obo78b2o100b
obo360bobo$18b3o$18bo$19bo!
EDIT 5: xs19:

Code: Select all

x = 845, y = 77, rule = B3/S23
673bo$671bobo$672b2o24$29bo270bo119bo$29bobo266bobo117bobo$29b2o268b2o
118b2o$183b2o119bo111b2o$182bo2bo119b2o108bobo$183b2o119b2o42b2o67bo3b
2o390bo$347bo2bo70bobo388bo$183b4o113bo42b2obob2o71bo31b2o357b3o$15bo
166bo4bo110bobo42b2obo106b2o$15bobo164b2o2bobo110b2o38bo6bob2o461bo$
15b2o170bobo150bo5bo2bo101b6o354bo$188bo149b3o6b2o102bo4bo10bo343bo$5b
o337bo108b3o11bo$6b2o103bobo228bo2bo108bobo9b3o$5b2o105b2o67b2o159bo2b
o109b2o6b2o$112bo68b2o161bo71b3o44b2o$128bo11bo35bo241bo$3o126bo6bo3bo
bo34b2o238bo420b2o$2bo124b3o4b2o4b2o34b2o131bo528b2o$bo133b2o172bobo
112b2o285bo5bo$309b2o113bobo285b2o3bobo123bo$424bo286b2o4b2o123bo$178b
2o126b3o533b3o$177bo2bo127bo$177bo2bo126bo520bo$178b2o647bobo10b2o$
827bo2bo8bo2bo$824b2ob3o10b2o$824bobo$826bob2o$826bo2bo$827b2o4$721b2o
$720b2o$722bo11$728bo$727b2o$727bobo!
EDIT 6: xs20:

Code: Select all

x = 441, y = 30, rule = B3/S23
279bo$277b2o38bo74bobo$278b2o36bobo74b2o$19bo296bo2bo73bo$19bobo295b2o
2bo$19b2o42bo255b3o72bo$64bo252b2o74bo$62b3o253bob2o71b3o$190bo127bo2b
o$66bo83bo38bo129b2o$65bobo83b2o36b3o$65bobo82b2o34b2o$66bo111b2o6b2o
210b2o36b2ob2o$55b2o90bo6bo22bobo2b2o213b2o36bobob2o$54bobo2b2o87b2o3b
o23bo5bo66bo148bo26bo7bo2bo$54bo5bo86b2o4b3o22b5o68b2o174bo6b2obob2o$
55b5o190b2o173b3o9bo2bo$180b3o82bo3b3o157b2o6bobo$57b3o119bo2bo82b2o2b
o159b2o7bo$6bo50bo2bo119b2o82bobo3bo$5b2o51b2o249bo$5bobo143bo158bo$
150b2o156b3o$150bobo$2o257b2o51bo$b2o6b2o247bobo51bo$o8bobo248bo51bo$
9bo375b2o$386b2o$385bo!
EDIT 7: Still lifes of legal drinking age in the US, and oscillators:

Code: Select all

x = 1286, y = 128, rule = B3/S23
57bo$56bo$56b3o2$72bo$71bo$71b3o22$719bo$717b2o$718b2o9$457bobo630bo$
458b2o631bo$458bo630b3o2$obo$b2o460bo$bo461bo522bo296bo$463bo118bo404b
o295bobo$581bo198b2o121bobo79b3o295b2o$459b3o3b3o113b3o196b2o122b2o$
700bo83bo119bo84bo156b2o$453b2ob2o5bo237b2o77b7o10bo191bo157bo$383bo
68bobobobo4bo236b2o78bo6bo8bo192bo157bob2o$18bo208bo153bobo68bo6bo3bo
118bo198bobobobo8b3o347b2ob2o$16b2o210bo153b2o69b6o122bo122b3o75b2ob2o
6b2o356b2o112bo$17b2o207b3o159bo192b3o122bo86b2o137bo171bo46b2o10b3o
98bo$387bo67b2o248bo224b2o170bobo63bo95b3o$12bo217b3o154b3o64bo2bo117b
o355b2o170b2o56bo5b2o$12b2o197bo243b2o117bobo6b3o399b2o119b3o52bo5bobo
96bo$11bobo198bo9b2o349bo2bo6bo124b2o274bo2bo118bo54bo103b2o$210b3o9bo
bo347bob2o8bo122b2o276b3o119bo157bobo$214b2o7b2o346bobo135bo278b2o267b
o$213bo2bo8b2o343bo2bo208bo139bo62b2obo2bo265b2o$214b2o5b3obobo151b2o
190b2o209bo138bo64bobob2o264bobo$220bo2bo2b2o150bobo401bo3b2o133b3o62b
obobo$220bo2bo156bo404b2o200bo2bo$221b2o564bo200b2o$373bo359bo186b3o$
373b2o357b2o186bo189b3o$372bobo322b2o33bobo186bo188bo$443bobo250bobo
412bo$444b2o252bo$444bo2$19b3o$19bo430b2o$20bo428bo2bo$450b2o49$53b2o$
53bobo$53bo!

User avatar
GUYTU6J
Posts: 907
Joined: August 5th, 2016, 10:27 am
Location: 中国

Re: Randomly enumerating glider syntheses

Post by GUYTU6J » February 2nd, 2020, 9:32 pm

The third 5Glider_stdin result for xs23_c8970sicz06953 (without catagolue synthesis now) suggests at most 7G:

Code: Select all

x = 46, y = 30, rule = B3/S23
23bobo$23b2o$24bo6$12bo$13b2o$12b2o$32bo$31bo$31b3o3$12b2o28b2o$11bobo
27bo2bo$13bo27b3o$39b2o$38bobo2b3o$37bo2bobo2bo$22b2o14b2o2bo$21b2o19b
2o$23bo3$bo3b3o$b2o4bo$obo3bo!
The 4Glider_stdin result is invalid

Code: Select all

x = 44, y = 9, rule = B3/S23
29bo$obo27bo$b2o25b3o$bo2$10bo2b2o22bo4bo$5bo2b2o3bobo16bo4bobob2o$6bo
2b2o2bo19b2o2b2o2bobo$4b3o25b2o!
EDIT on Feb 5: Oops, a 5G method has been recorded.
Sorry but I prefer to contribute to cellular automata anonymously, so I made up a random string for my username.
-GUYTU6J

User avatar
GUYTU6J
Posts: 907
Joined: August 5th, 2016, 10:27 am
Location: 中国

Re: Randomly enumerating glider syntheses

Post by GUYTU6J » February 4th, 2020, 10:27 pm

How does the script adapt to custom spaceships in INT rules? I guess at least this will be a problem:

Code: Select all

const int glide[16] = {143, 346, 107, 286, 302, 115, 167, 370, 482, 181, 428, 241, 233, 412, 458, 157};
Sorry but I prefer to contribute to cellular automata anonymously, so I made up a random string for my username.
-GUYTU6J

User avatar
Hdjensofjfnen
Posts: 1480
Joined: March 15th, 2016, 6:41 pm
Location: r cis θ

Re: Randomly enumerating glider syntheses

Post by Hdjensofjfnen » February 5th, 2020, 8:22 pm

A megasized_52h has appeared in the 5G census:

Code: Select all

x = 0, y = 0, rule = B3/S23
19bo1$19bobo1$19b2o5$18bo1$15bo2bobo1$13bobo2b2o1$14b2o5$17b2o1$16bobo1$18bo12$23bo1$22b2o1$22bobo!
...lasting for 25449 generations.
"A man said to the universe:
'Sir, I exist!'
'However,' replied the universe,
'The fact has not created in me
A sense of obligation.'" -Stephen Crane

Code: Select all

x = 7, y = 5, rule = B3/S2-i3-y4i
4b3o$6bo$o3b3o$2o$bo!

User avatar
testitemqlstudop
Posts: 1323
Joined: July 21st, 2016, 11:45 am
Location: in catagolue
Contact:

Re: Randomly enumerating glider syntheses

Post by testitemqlstudop » February 6th, 2020, 12:48 am

GUYTU6J wrote:
February 4th, 2020, 10:27 pm
How does the script adapt to custom spaceships in INT rules? I guess at least this will be a problem:

Code: Select all

const int glide[16] = {143, 346, 107, 286, 302, 115, 167, 370, 482, 181, 428, 241, 233, 412, 458, 157};
No, that's the glider bitmasks. It works as-is for INT rules (you don't even need to change the rule=B3/S23) as long as the INT rule supports the glider and all phases of it, identically to Life. You can change the bitmasks for custom spaceships, and that would be the only thing you need to change as long as the spaceship fits in a 3x3 box all the time. Otherwise, it would require considerably more twiddling

User avatar
GUYTU6J
Posts: 907
Joined: August 5th, 2016, 10:27 am
Location: 中国

Re: Randomly enumerating glider syntheses

Post by GUYTU6J » February 7th, 2020, 7:22 am

testitemqlstudop wrote:
February 6th, 2020, 12:48 am
No, that's the glider bitmasks. It works as-is for INT rules (you don't even need to change the rule=B3/S23) as long as the INT rule supports the glider and all phases of it, identically to Life. You can change the bitmasks for custom spaceships, and that would be the only thing you need to change as long as the spaceship fits in a 3x3 box all the time. Otherwise, it would require considerably more twiddling
What if it's

Code: Select all

x = 4, y = 3, rule = B3ai/S2a3ei6c
3bo$ob2o$3bo!
?
Sorry but I prefer to contribute to cellular automata anonymously, so I made up a random string for my username.
-GUYTU6J

User avatar
testitemqlstudop
Posts: 1323
Joined: July 21st, 2016, 11:45 am
Location: in catagolue
Contact:

Re: Randomly enumerating glider syntheses

Post by testitemqlstudop » February 8th, 2020, 6:30 am

It wouldn't work, as in one phase it is 3x4.

User avatar
Hdjensofjfnen
Posts: 1480
Joined: March 15th, 2016, 6:41 pm
Location: r cis θ

Re: Randomly enumerating glider syntheses

Post by Hdjensofjfnen » February 9th, 2020, 2:51 pm

GUYTU6J wrote:
February 7th, 2020, 7:22 am
testitemqlstudop wrote:
February 6th, 2020, 12:48 am
No, that's the glider bitmasks. It works as-is for INT rules (you don't even need to change the rule=B3/S23) as long as the INT rule supports the glider and all phases of it, identically to Life. You can change the bitmasks for custom spaceships, and that would be the only thing you need to change as long as the spaceship fits in a 3x3 box all the time. Otherwise, it would require considerably more twiddling
What if it's

Code: Select all

x = 4, y = 3, rule = B3ai/S2a3ei6c
3bo$ob2o$3bo!
?
You could make the program trick itself into thinking these two patterns are phases of the spaceship when they are not.
With sufficiently far-out syntheses, the difference would be negligible:

Code: Select all

x = 2, y = 3, rule = B3aiS2a3ei6cHistory
DDC$DCC$DDC!
and

Code: Select all

x = 2, y = 3, rule = B3aiS2a3ei6cHistory
DCD$CCD$DCD!
Calculated thusly:

Code: Select all

const int glide[12] = {23,58,89,154,178,184,191,251,308,446,464,506};
I don't know if we need to put both of the above cases into the script in order for it to work.
"A man said to the universe:
'Sir, I exist!'
'However,' replied the universe,
'The fact has not created in me
A sense of obligation.'" -Stephen Crane

Code: Select all

x = 7, y = 5, rule = B3/S2-i3-y4i
4b3o$6bo$o3b3o$2o$bo!

User avatar
dvgrn
Moderator
Posts: 6308
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Randomly enumerating glider syntheses

Post by dvgrn » February 9th, 2020, 3:48 pm

Hdjensofjfnen wrote:
February 9th, 2020, 2:51 pm
I don't know if we need to put both of the above cases into the script in order for it to work.
I think the short summary is that the script makes enough low-level assumptions about the glider-ness of gliders, that if you want it to work correctly for different-sized gliders going in a different direction, you should just go ahead and rewrite the script from the ground up. Otherwise you're just asking for weird and unpleasant surprises.

Post Reply