apgsearch v1.0

For general discussion about Conway's Game of Life.
Post Reply
User avatar
calcyman
Moderator
Posts: 2964
Joined: June 1st, 2009, 4:32 pm

apgsearch v1.0

Post by calcyman » February 20th, 2015, 6:03 pm

The latest version of apgsearch can be downloaded from here:

http://catagolue.appspot.com/apgsearch

The new features (since the last official release of apgsearch) are:
  • Inherent support for all sixteen symmetry types (thanks to Richard Schank).
  • Ability to upload results to the online database at catagolue.appspot.com.
I haven't really done much testing of the online server (there are plenty of features that haven't yet been implemented, such as bespoke support for glider syntheses), but you can currently browse objects such as the pentadecathlon:

http://catagolue.appspot.com/object/xp15_4r4z4r4/b3s23

I really don't have much else to say, other than to wish you plenty of fun in your soup searches!
What do you do with ill crystallographers? Take them to the mono-clinic!

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

Re: apgsearch v1.0

Post by flipper77 » February 20th, 2015, 6:41 pm

Congratulations on your work Adam, I'm going to enjoy going through the objects page, as well as the census page, which is where I plan on wandering around a bit when I feel like it. I can't wait to see what kind of objects appear in the different censuses as time progresses. I'm just really glad there's an online database for apgsearch now!!! :D .

User avatar
velcrorex
Posts: 339
Joined: November 1st, 2009, 1:33 pm

Re: apgsearch v1.0

Post by velcrorex » February 20th, 2015, 9:59 pm

Ran 1M soups and they seemed to load on the page just fine. Amazing work putting all this together.
One question though, how do I change my contributor name from 'null'?
-Josh Ball.

David
Posts: 212
Joined: November 3rd, 2009, 2:47 am
Location: Daejeon, South Korea

Re: apgsearch v1.0

Post by David » February 20th, 2015, 10:25 pm

The source code specifies that it can detect still lifes, oscillators, spaceships, puffers and guns.
But what about wickstretchers, breeders, spacefillers, waveguides, sawteeth, replicators and so on?
(Well, it would be a... well, ridiculously lucky anyway.)
Call me "Dannyu NDos" in Forum. Call me "Park Shinhwan"(박신환) in Wiki.

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

Re: apgsearch v1.0

Post by flipper77 » February 20th, 2015, 10:48 pm

velcrorex wrote:One question though, how do I change my contributor name from 'null'?
I'm experiencing the same problem when creating a payosha256 key: the contributor name is null, even after recreating the key.
David wrote:The source code specifies that it can detect still lifes, oscillators, spaceships, puffers and guns.
But what about wickstretchers, breeders, spacefillers, waveguides, sawteeth, replicators and so on?
(Well, it would be a... well, ridiculously lucky anyway.)
Wickstretchers grow at a linear rate, much like puffers and guns, so linearlyse() will treat these 3 types of objects the same. As far as I can see, a waveguide won't appear from finite random soups.

As for the rest, there's a function called powerlyse() that analyses population growth of a pattern, and returns the type of growth. I've placed powerlyse() in a separate script, and tested it out on those object types, and it works very reliably on replicators, breeders, and spacefillers(they're breeders as well), but (non-replicator) sawteeth are objects that aren't identified reliably by this function, as it could be labeled as 'unidentified' or 'zz_LINEAR', or something else due to their nature. Sawteeth with exponential spacing exhibits linear growth on average, while parabolic spacing exhibits square root growth on average, but they always return to their minimum population sooner or later, and powerlyse() may take a pop count near on of these spots, which could things throw off.

EDIT: Another thing I've noticed is that generating D4_x1 and D4_x4 soups has its 2nd diagonal filled with empty cells, D4_x4 has that and 2 bordering diagonals that are off as well, excluding the collision from the 1st diagonal. I would like to know if this is intentional, because the soup that made a known p156 gun pop up allowed for both diagonals to contain live cells, and I'd hate to think that we may miss something like this in the future over such a detail, even though once the diagonal rows die out completely, they can't be live again.

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

Re: apgsearch v1.0

Post by calcyman » February 21st, 2015, 4:47 am

Okay, I've amended the payosha256 key bug (or at least I think I have). The existing keys should now work properly, and any new keys should give whatever 'displayed name' you enter in the (now enabled) box.
Another thing I've noticed is that generating D4_x1 and D4_x4 soups has its 2nd diagonal filled with empty cells, D4_x4 has that and 2 bordering diagonals that are off as well, excluding the collision from the 1st diagonal. I would like to know if this is intentional
No, it's not intentional at all -- do I need to change the offsets to make them overlap better?
What do you do with ill crystallographers? Take them to the mono-clinic!

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

Re: apgsearch v1.0

Post by flipper77 » February 21st, 2015, 5:39 am

calcyman wrote:No, it's not intentional at all -- do I need to change the offsets to make them overlap better
Yes, for D4_x4 soups, both halves of the soup shouldn't overlap, but that leaves only the 2nd diagonal, for which this bit of code fixes the problem, just two more conditionals in the appropriate spot:

Code: Select all

            if (t & (1 << (7 - k))):

                if ((d == 0) | (x >= y)):

                    thesoup.append(x)
                    thesoup.append(y)

                elif (sym == 'D4_x1'):

                    thesoup.append(y)
                    thesoup.append(-x)

                elif (sym == 'D4_x4'):

                    thesoup.append(y)
                    thesoup.append(-x-1)

                if ((sym == 'D4_x1') & (x == y)):

                    thesoup.append(y)
                    thesoup.append(-x)

                if ((sym == 'D4_x4') & (x == y)):

                    thesoup.append(y)
                    thesoup.append(-x-1)

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

Re: apgsearch v1.0

Post by flipper77 » February 21st, 2015, 5:39 am

calcyman wrote:No, it's not intentional at all -- do I need to change the offsets to make them overlap better
Yes, for D4_x4 soups, both halves of the soup shouldn't overlap, but that leaves only the 2nd diagonal left, for which this bit of code fixes the problem, just two more conditionals in the appropriate spot:

Code: Select all

            if (t & (1 << (7 - k))):

                if ((d == 0) | (x >= y)):

                    thesoup.append(x)
                    thesoup.append(y)

                elif (sym == 'D4_x1'):

                    thesoup.append(y)
                    thesoup.append(-x)

                elif (sym == 'D4_x4'):

                    thesoup.append(y)
                    thesoup.append(-x-1)

                if ((sym == 'D4_x1') & (x == y)):

                    thesoup.append(y)
                    thesoup.append(-x)

                if ((sym == 'D4_x4') & (x == y)):

                    thesoup.append(y)
                    thesoup.append(-x-1)

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

Re: apgsearch v1.0

Post by calcyman » February 21st, 2015, 6:35 am

Thanks, I've now implemented it. Importantly, if you intend to use D4_x1 or D4_x4, you now need to change to version 1.01 of apgsearch:

http://catagolue.appspot.com/apgsearch

You can check the soups generated by running symmetry_test() in Python against the results of calling:

http://catagolue.appspot.com/hashsoup/D4_x1/sym_test

(They should match exactly.)
What do you do with ill crystallographers? Take them to the mono-clinic!

David
Posts: 212
Joined: November 3rd, 2009, 2:47 am
Location: Daejeon, South Korea

Re: apgsearch v1.0

Post by David » February 21st, 2015, 7:00 am

Well, this doesn't even parse a chaotically growing junk, such as random growth in rules like B2, as an acceptable pattern. Not very interesting fact, though.
Last edited by David on February 21st, 2015, 10:01 am, edited 1 time in total.
Call me "Dannyu NDos" in Forum. Call me "Park Shinhwan"(박신환) in Wiki.

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

Re: apgsearch v1.0

Post by calcyman » February 21st, 2015, 7:56 am

Thanks for the 2x2 census. I was amused to see how the census picked up numerous trivial variants of the same p14 oscillator (in addition to a genuinely different, but much more common, p14):

http://catagolue.appspot.com/census/b36s125/C1/xp14

I've also noticed that someone is using Internet Explorer (thereby causing annoying 4xx error messages in the log files due to the absence of a browserconfig.xml log file). Google Chrome is preferable in that the SVG images of oscillators and spaceships appear animated rather than static.
What do you do with ill crystallographers? Take them to the mono-clinic!

David
Posts: 212
Joined: November 3rd, 2009, 2:47 am
Location: Daejeon, South Korea

Re: apgsearch v1.0

Post by David » February 21st, 2015, 10:13 am

There is an error:
Object xq7_4852zy1731 is two xq7_137, not a single object.
Call me "Dannyu NDos" in Forum. Call me "Park Shinhwan"(박신환) in Wiki.

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

Re: apgsearch v1.0

Post by Scorbie » February 21st, 2015, 10:26 am

I'm excited that this came out. Was looking forward to this for so long!!
calcyman wrote:I've also noticed that someone is using Internet Explorer (thereby causing annoying 4xx error messages in the log files due to the absence of a browserconfig.xml log file). Google Chrome is preferable in that the SVG images of oscillators and spaceships appear animated rather than static.
I hope that doesn't mean I have to change the default browser to chrome.

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

Re: apgsearch v1.0

Post by calcyman » February 21st, 2015, 12:38 pm

I'm excited that this came out. Was looking forward to this for so long!!
Thanks! Sorry it's taken me so long; I was in a rush to finish it by today since I thought that I was going to Tehran tomorrow (but unfortunately this was cancelled) and didn't know how long I would be there (hopefully just three days, but there's always the possibility of being detained).
dvgrn wrote:Catagolue currently (21 February) lists exactly one source soup for a caterer, which allows for a trivial 8-glider synthesis:
Yay, Catagolue is already proving useful! :D
Object xq7_4852zy1731 is two xq7_137, not a single object.
Yeah, occasionally that happens. It's sufficiently rare that I'm willing to live with it, although if necessary you can manually add that to the decompositions dict in apgsearch. Oscillators with touching or overlapping rotors also cause problems such as the one at the bottom of this page. EDIT: Actually, that p24 is a genuine p24 -- the figure-eights do actually interact with the pulsars!
I hope that doesn't mean I have to change the default browser to chrome.
Only if you want the pattern images to be animated. (I guess Firefox could also do this -- can anyone with this browser confirm whether or not the SVG images are animated?) People have also been trying to access apple-touch-icon.png; does anyone know what this is supposed to do? Is it some proprietary Apple analogue of favicon.ico?

Anyway, I've been running a D4_+1 search in HighLife. Some interesting occurrences include oversized replicator-based oscillators such as the p336 in this soup:

Code: Select all

x = 31, y = 31, rule = B36/S23
2obo2b5obobobobob5o2bob2o$o2b6o4bobobo4b6o2bo$ob2obo2b3o3b3o3b3o2bob2o
bo$o3bobo2b3obo3bob3o2bobo3bo$3b2o3b4o3bo3b4o3b2o$b2o3bo2b6ob6o2bo3b2o
$obo3bobobobo2bo2bobobobo3bobo$bo5bobob4ob4obobo5bo$o3b3obob2o2bobo2b
2obob3o3bo$4ob3obo2b7o2bob3ob4o$ob2o3b2o5b3o5b2o3b2obo$5ob2o2b2obobobo
b2o2b2ob5o$2o8b3obobob3o8b2o$3b3ob7obob7ob3o$2ob4ob5o2bo2b5ob4ob2o$bo
8bobo2bo2bobo8bo$2ob4ob5o2bo2b5ob4ob2o$3b3ob7obob7ob3o$2o8b3obobob3o8b
2o$5ob2o2b2obobobob2o2b2ob5o$ob2o3b2o5b3o5b2o3b2obo$4ob3obo2b7o2bob3ob
4o$o3b3obob2o2bobo2b2obob3o3bo$bo5bobob4ob4obobo5bo$obo3bobobobo2bo2bo
bobobo3bobo$b2o3bo2b6ob6o2bo3b2o$3b2o3b4o3bo3b4o3b2o$o3bobo2b3obo3bob
3o2bobo3bo$ob2obo2b3o3b3o3b3o2bob2obo$o2b6o4bobobo4b6o2bo$2obo2b5obobo
bobob5o2bob2o!
There are a few other oversized objects here:

http://catagolue.appspot.com/census/b36s23/D4_+1/ov

A smaller example is this p48:

http://catagolue.appspot.com/census/b36s23/D4_+1/xp48

Then for some reason, there's a massive disparity in SVG scales on this page (scroll down to the bottom):

http://catagolue.appspot.com/census/b36s23/D4_+1/xp2

It looks like David has been searching in B357/S238 and found a lovely p36:

http://catagolue.appspot.com/census/b357s238/C1/xp36

This must be the only place in B3/S23 where MWSS-on-MWSS is more common than a HWSS:

http://catagolue.appspot.com/census/b3s23/D8_1/xq4

And ... just ... oh dear :/

http://catagolue.appspot.com/census/b3s23/D8_1/xp24

EDIT: Actually, that p24 is a genuine p24 -- the figure-eights do actually interact with the pulsars!
What do you do with ill crystallographers? Take them to the mono-clinic!

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

Re: apgsearch v1.0

Post by Scorbie » February 21st, 2015, 12:54 pm

calcyman wrote:
I hope that doesn't mean I have to change the default browser to chrome.
Only if you want the pattern images to be animated.
I was concerned about browserconfig.xml issues. So that doesn't affect soup uploads but only svg animations?
(I guess Firefox could also do this -- can anyone with this browser confirm whether or not the SVG images are animated?)
It works well for firefox.

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

Re: apgsearch v1.0

Post by calcyman » February 21st, 2015, 1:15 pm

I was concerned about browserconfig.xml issues. So that doesn't affect soup uploads but only svg animations?
I don't think that the lack of browserconfig.xml actually affects anything, other than being a minor annoyance when I look at the log files produced by Catagolue. Anyway, soup uploads don't use a browser; apgsearch connects by itself using Python's built-in urllib2 library.
It works well for firefox.
Good. I guess it's just Internet Explorer that can't understand animated SVGs.

I'm waiting for apgsearch to find the c/98 HighLife spaceship in the D4_+1 run. Unfortunately HighLife is about twice as slow as ordinary Life in terms of soups processed per second.

As for the main census (B3/S23 with C1 symmetry), we're roughly 0.5% of the way to catching up with TOLLCASS after just 18 hours of Catagolue being a thing. I'm hoping for a target of 10^12 objects censused by the end of this year (and would absolutely love for a loafer or other exotic spaceship to appear -- and we're still waiting for pufferfish to start making an appearance on Catagolue).
What do you do with ill crystallographers? Take them to the mono-clinic!

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

Re: apgsearch v1.0

Post by Extrementhusiast » February 21st, 2015, 1:20 pm

calcyman wrote:
I was concerned about browserconfig.xml issues. So that doesn't affect soup uploads but only svg animations?
I don't think that the lack of browserconfig.xml actually affects anything, other than being a minor annoyance when I look at the log files produced by Catagolue. Anyway, soup uploads don't use a browser; apgsearch connects by itself using Python's built-in urllib2 library.
It works well for firefox.
Good. I guess it's just Internet Explorer that can't understand animated SVGs.
No, Safari also doesn't understand those. However, I know which oscillator is being referred to.
I Like My Heisenburps! (and others)

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

Re: apgsearch v1.0

Post by flipper77 » February 21st, 2015, 2:24 pm

I'm certain that D4 by itself isn't a symmetry option, but on the census page, there's a search under this D4 option, yet the census seems to be C1 considering there's no abundance of symmetrical objects in its results.

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

Re: apgsearch v1.0

Post by calcyman » February 21st, 2015, 2:30 pm

I'm certain that D4 by itself isn't a symmetry option, but on the census page, there's a search under this D4 option, yet the census seems to be C1 considering there's no abundance of symmetrical objects in its results.
Erm, yes, invalid symmetry types default to C1. I'll modify apgsearch so that it actually calls them 'C1' instead of retaining the invalid name.
What do you do with ill crystallographers? Take them to the mono-clinic!

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

Re: apgsearch v1.0

Post by dvgrn » February 21st, 2015, 6:56 pm

Just did some experiments with the comments on individual Catagolue object pages, based on an email Adam sent me back on January 1. Turns out that the comments support

- bulleted lists
- **bold** text
- and _italics_

Also images:

![alt text](http://???)

and RLE, which I did all wrong in the first comment

```rle
#C griddle synthesis by apgsearch, flipper77, and Extrementhusiast
x = 28, y = 53, rule = LifeHistory
23.A.A$23.2A$24.A12$15.A$2.A12.A.A$A.A12.2A$.2A23.A$25.A$25.3A$7.A$5.
A.A$6.2A3$3.A$.A.A$2.2A2$4.3A$6.A$5.A2$23.2A$10.2A11.A.A$9.A2.A10.A$
10.A.A$11.A3$12.3A$12.A$13.A8$.A$.2A$A.A!
```

In other words: replace "alt text" above with your image description, "http://???" with a URL for an image. Surround RLE with triple backticks -- ( `) not ( ' ) -- and prefix with "rle" as shown. The three closing backticks should be at the beginning of a new line; #C comments before and unmarked comments after the RLE are supported. Bulleted lists are prefixed with hyphens ( - ), bold text is surrounded with double asterisks, and italics are marked by underlines.

These format marks don't work here on the forums, as you can see, but they seem to work fine in Catagolue comments.

EDIT:So far I've only gotten LifeHistory RLE to render correctly -- but that certainly works nicely! Don't know yet what I did wrong with my rule=B3/S23 samples, but no doubt all will become clear eventually. EDIT2: Ah, the only problem was that my closing triple backticks were at the end of a line instead of the beginning. (Works with quote marks in Python, but not here apparently.)

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

Re: apgsearch v1.0

Post by Scorbie » February 21st, 2015, 7:08 pm

There seems to be a bug. Catalogue doesn't report any uncommitted hauls if there are existing committed hauls in the rule:symmetry. Please verify.
(And I "think" I searched 17M soups on b3s23/D2_x last night but on the catalogue there only shows 11.7M)

David
Posts: 212
Joined: November 3rd, 2009, 2:47 am
Location: Daejeon, South Korea

Re: apgsearch v1.0

Post by David » February 21st, 2015, 8:11 pm

The symmetry symbols are quite unfamiliar to me, so how about making alias like this? (or at least specifying what are they in the code):

C1 == []+
C2_1 == [2]+_center
C2_2 == [2]+_edge
C2_4 == [2]+_corner
D2_+1 == []_orth_odd
D2_+2 == []_orth_even
D2_x == []_diag
C4_1 == [4]+_center
C4_4 == [4]+_corner
D4_+1 == [2]_orth_center
D4_+2 == [2]_orth_edge
D4_+4 == [2]_orth_corner
D4_x1 == [2]_diag_center
D4_x4 == [2]_diag_corner
D8_1 == [4]_center
D8_4 == [4]_corner

Another suggestion: oscillators and spaceships that have trivial period should be explicitly specified that they are trivial. (Such patterns are not yet in the current catalogue though)
Call me "Dannyu NDos" in Forum. Call me "Park Shinhwan"(박신환) in Wiki.

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

Re: apgsearch v1.0

Post by calcyman » February 21st, 2015, 11:34 pm

There seems to be a bug. Catalogue doesn't report any uncommitted hauls if there are existing committed hauls in the rule:symmetry. Please verify.
I'm not sure I understand. This screenshot shows a census with five committed hauls and one uncommitted haul:
committed.png
committed.png (35.13 KiB) Viewed 48775 times
(And I "think" I searched 17M soups on b3s23/D2_x last night but on the catalogue there only shows 11.7M)
Are you sure? 17M soups would be rather a lot for such a short space of time (i.e. either one of my CPUs would be unable to search that many in the current timespan of Catagolue, which stands at about 28 hours).
What do you do with ill crystallographers? Take them to the mono-clinic!

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

Re: apgsearch v1.0

Post by Scorbie » February 22nd, 2015, 1:46 am

calcyman wrote:'m not sure I understand. This screenshot shows a census with five committed hauls and one uncommitted haul:
As a test, I sent about 100 soups but it wasn't shown even as a uncommitted haul. Maybe I did something wrong or the small number would have been a problem...
calcyman wrote:Are you sure? 17M soups would be rather a lot for such a short space of time (i.e. either one of my CPUs would be unable to search that many in the current timespan of Catagolue, which stands at about 28 hours).
Maybe I saw it wrong, but I'd like to point out that the speed differs drastically between symmetries. D2_x is 2~3 times faster than D2_1, according to my last night run of apgsearch. (Which may mean that some symmetries can be optimized in speed.)

Anyways, sorry for the hasty report. I'll post again only if some problem occurs again, next time with screenshots, hopefully.


EDIT: A different story... Maybe support of bullet/bold/italic/code tags would be nice in comments of Catalogue...

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

Re: apgsearch v1.0

Post by dvgrn » February 22nd, 2015, 2:22 am

Scorbie wrote:EDIT: A different story... Maybe support of bullet/bold/italic/code tags would be nice in comments of Catalogue...
It appears that Adam is managing to implement new Catagolue feature requests not just instantly, but significantly faster than that. We should keep a sharp eye out for further evidence of time-travel.

Post Reply