http://catagolue.appspot.com/textcensus/b3s23/C1Now that Calcyman has added a feature to display long lists of objects on multiple pages, perhaps we can have a list of all objects of a particular rule and symmetry in order of frequency finally?
apgsearch v1.0
Re: apgsearch v1.0
What do you do with ill crystallographers? Take them to the mono-clinic!
- gameoflifeboy
- Posts: 474
- Joined: January 15th, 2015, 2:08 am
Re: apgsearch v1.0
Thanks, this was just what I was looking for!
Re: apgsearch v1.0
This is a fantastic change, it makes things so much easier when writing a script to get this information since it's all on one page. My previous post has a newly modified version of Andrew's script edited in, so go there if you still want to check for new unique objects.
Re: apgsearch v1.0
Excellent -- thanks Adam, and thanks to flipper77 for the script improvements. Now that it's so fast, it should be easy to find all new objects for a particular rule (ignoring symmetry), maybe by entering "b3s23/*" or simply just "b3s23".calcyman wrote:http://catagolue.appspot.com/textcensus/b3s23/C1
Re: apgsearch v1.0
Here's yet another modified version that does precisely that, just enter the rule by itself(i.e. b3s23) to ignore symmetry:Andrew wrote: Now that it's so fast, it should be easy to find all new objects for a particular rule (ignoring symmetry), maybe by entering "b3s23/*" or simply just "b3s23".
Code: Select all
# Scan pages at http://catagolue.appspot.com to determine the number of
# unique objects found for a specified rule and symmetry.
# NB. Doesn't detect new zz_LINEAR objects.
import golly as g
import urllib2
import re
symmetries = ["8x32",\
"C1",\
"C2_1", "C2_2", "C2_4",\
"C4_1", "C4_4",\
"D2_+1", "D2_+2", "D2_x",\
"D4_+1", "D4_+2", "D4_+4", "D4_x1", "D4_x4",\
"D8_1", "D8_4"]
census_prefix = 'http://catagolue.appspot.com/textcensus/'
object_prefix = 'http://catagolue.appspot.com/object?apgcode='
def obj_sort(obj):
alpha = 'abcdefghijklmnopqrstuvwxyz'
numeric = '0123546789'
sort_order = ['ov', 'xs', 'xp', 'xq',\
'yl', 'zz', 'PATHOLOGICAL']
cat, ch, details = obj.partition('_')
main = sort_order.index(cat.rstrip(numeric))
prenum = cat.lstrip(alpha)
try:
int(prenum)
middle = prenum.zfill(4) + ch
except:
middle = ''
return (alpha[main] + middle + details)
# prompt for rule and symmetry
inifile = g.getdir('data') + 'scan-catagolue.ini'
rule_sym = 'b3s23/C1'
try:
f = open(inifile, 'r')
rule_sym = f.readline()
f.close()
except:
# should only happen 1st time (inifile doesn't exist)
pass
rule_sym = g.getstring('Enter the desired rule and symmetry\n' +
'(eg. b3s23/C1):', rule_sym, 'Enter rule/symmetry')
if len(rule_sym) == 0:
g.exit()
if (('/' in rule_sym) & (rule_sym.partition('/')[2] not in symmetries)):
g.exit()
# remember specified rule/symmetry for next time
try:
f = open(inifile, 'w')
f.write(rule_sym)
f.close()
except:
g.warn('Unable to save rule and symmetry in file:\n' + inifile)
objfile = g.getdir('data') + 'catagolue-' + rule_sym.replace('/','-') + '.txt'
old_objects = []
# loads previous objects
try:
f = open(objfile, 'r')
contents = f.readlines()
f.close()
g.show('Reading previous file...')
for line in contents:
old_objects.append(line.partition('\n')[0])
except:
# should only happen 1st time
pass
htmlfile = g.getdir('temp') + 'obj.html'
f = open(htmlfile, 'w')
f.write('<html>\n<title>' + rule_sym + '</title>\n<body>\n')
f.write('<p>Object prefixes and counts...<br>\n')
obj_names = []
new_objects = []
# scans text census page
types = {}
if ('/' not in rule_sym):
symlist = map(lambda arg: '/' + arg, symmetries)
else:
symlist = ['']
for sym in symlist:
g.show('Scanning %s census data...' % (rule_sym + sym))
page = census_prefix + rule_sym + sym
url = urllib2.urlopen(page)
obj_data = url.readlines()
for line in obj_data:
obj_name, num = map(lambda arg: arg.strip('"'), line.split(','))
# ignores first line as well as the same object
if ((obj_name == 'apgcode') | (obj_name in obj_names)):
continue
type = obj_name.split('_')[0]
if types.has_key(type):
types[type] += 1
else:
types[type] = 1
obj_names.append(obj_name)
if obj_name not in old_objects:
new_objects.append(obj_name)
for type in sorted(types.keys(), key=obj_sort):
f.write(type + ' : ')
f.write(str(types[type]) + '<br>\n')
# save all object names in a text file
ofile = open(objfile, 'w')
g.show("Writing objects to file...")
for obj in sorted(obj_names, key=obj_sort):
ofile.write(obj + '\n')
ofile.close()
g.show("Linking new objects...")
f.write('</p><p>Total number of objects: ' + str(len(obj_names)))
if len(new_objects) > 0:
f.write('</p><p>New objects have been found since last scan:<br>')
rule = rule_sym.partition('/')[0]
for obj in sorted(new_objects, key=obj_sort):
# show link to object in Catagolue
f.write('<a href="' + object_prefix + obj + '&rule=' + rule + '">' + obj + '</a><br>\n')
elif len(old_objects) > 0:
f.write('</p><p>(No new objects found since last scan.)')
f.write('</p><p>All object names are saved in <a href="edit:' + objfile + '">' + objfile + '</a>')
f.write('</p></body>\n</html>\n')
f.close()
g.show('Done')
g.open(htmlfile)EDIT: These scripts relating to apgsearch like this script and my find-object script are really useful, I really enjoy using these helper scripts that manage objects and such, things have sped up a lot in the past month since catagolue went live. Since then, 10 billion soups in the b3s23/C1 census have been searched, with an average of 4200 soups per second. At this rate, we will match Okrasinski's object count before July.
EDIT by Andrew: The count for total number of objects was too high (included duplicates) so I removed the ocount stuff and simply inserted "len(obj_names)" for the count. Not sure why I didn't use that in the 1st script!
Re: apgsearch v1.0
The time-average so far is 7979 million objects per day, so we should match Okrasinski's object count within 60 days of the start of Catagolue. That is to say, 21st April.Since then, 10 billion soups in the b3s23/C1 census have been searched, with an average of 4200 soups per second. At this rate, we will match Okrasinski's object count before July.
We should have 10^12 objects before the start of July, and 4*10^12 by the end of this year. Unless we can procure more interest (by which I mean computing power) by posting this on Hacker News or something. I should probably improve the documentation on the website (to describe the symmetry notation etc.) first.
What do you do with ill crystallographers? Take them to the mono-clinic!
Re: apgsearch v1.0
Just one comment:
There might be different oscillators working in different rules with the same apgcode.
I'm not talking about the moral pentadecathlon, but the "clock" in this rule:
http://catagolue.appspot.com/census/b34s2/C1/xp2
And a question:
On the top of every object page I see it says "There is currently no description assigned to this pattern."
Is it for future purposes?
There might be different oscillators working in different rules with the same apgcode.
I'm not talking about the moral pentadecathlon, but the "clock" in this rule:
http://catagolue.appspot.com/census/b34s2/C1/xp2
And a question:
On the top of every object page I see it says "There is currently no description assigned to this pattern."
Is it for future purposes?
- gameoflifeboy
- Posts: 474
- Joined: January 15th, 2015, 2:08 am
Re: apgsearch v1.0
Yes, I noticed that clock variation before too! And now that we're talking about the names given to patterns, some of them could really be cleaned up. For example, the ones from Okrasinski's census should have their underscores taken out of them, and the ones where the name is nothing more than a hexadecimal number (like 01101aab1aab02a802a80110 here) should have their name removed or a new name given to them.Scorbie wrote:Just one comment:
There might be different oscillators working in different rules with the same apgcode.
I'm not talking about the moral pentadecathlon, but the "clock" in this rule:
http://catagolue.appspot.com/census/b34s2/C1/xp2
And a question:
On the top of every object page I see it says "There is currently no description assigned to this pattern."
Is it for future purposes?
- gameoflifeboy
- Posts: 474
- Joined: January 15th, 2015, 2:08 am
Re: apgsearch v1.0
Some more suggestions for pattern names:
- xs14_j1u413z11 can be "dock siamese carrier"
- xs13_354djo can be "house siamese shillelagh"
- xs15_0gilicz346 can be "big S with tub" (from this post)
- xs12_651i4ozx11 I once heard called "double claw"
- xs14_1no3tg is the exact same pattern as Sidewalk from LifeWiki. Not to mention "Bookends" is the name of another pattern in the Catagolue as well.
Re: apgsearch v1.0
I've implemented your naming suggestions (albeit renaming 'sidewalk' to 'pavement').
What do you do with ill crystallographers? Take them to the mono-clinic!
- praosylen
- Posts: 2449
- Joined: September 13th, 2014, 5:36 pm
- Location: Pembina University, Home of the Gliders
- Contact:
Re: apgsearch v1.0
Another naming suggestion: xs31_69b88bbgz69d11dd needs a different name (given that many members of this forum are rather young), although I do concede the current name is accurate.
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...
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...
- gameoflifeboy
- Posts: 474
- Joined: January 15th, 2015, 2:08 am
Re: apgsearch v1.0
So far, we have found almost every interesting pattern in Okrasinski's census (my standard reference for Life objects frequency since Dec. 2012), except for by flops (00140008006b0008002a0008), cis-mold on dock (031802a400aa009702870300), two pulsar quadrants (007000000108011401270040003000100010), and cloverleaf siamese long beehive (063009480b68194e0771194e0b6809480630), so expect those to be appearing in the next few months.
Re: apgsearch v1.0
We've just seen the 1st example of a 47-cell still life:
http://catagolue.appspot.com/census/b3s23/D4_+1/xs47
That completes a full set from xs4 to xs50. No odd-numbered examples above xs50.
http://catagolue.appspot.com/census/b3s23/D4_+1/xs47
That completes a full set from xs4 to xs50. No odd-numbered examples above xs50.
Re: apgsearch v1.0
So what? There is even no obscenity. Don't be a hypocrite.A for awesome wrote:Another naming suggestion: xs31_69b88bbgz69d11dd needs a different name (given that many members of this forum are rather young)
Ivan Fomichev
- praosylen
- Posts: 2449
- Joined: September 13th, 2014, 5:36 pm
- Location: Pembina University, Home of the Gliders
- Contact:
Re: apgsearch v1.0
Young as in around 12 or younger.codeholic wrote:So what? There is even no obscenity. Don't be a hypocrite.A for awesome wrote:Another naming suggestion: xs31_69b88bbgz69d11dd needs a different name (given that many members of this forum are rather young)
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...
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...
Re: apgsearch v1.0
I agree with A for Awesome, for a different reason - if a suggestion is likely to make middle-school age boys giggle but middle-school age girls feel slightly uncomfortable, then it doesn't deserve a place in official nomenclature. I'm a fan of gender equality in sciences, and I feel like that age in particular is one where any semblance of "This field of study is controlled by boys/men" is likely to deter curious girls. Just my two cents.codeholic wrote:So what? There is even no obscenity. Don't be a hypocrite.A for awesome wrote:Another naming suggestion: xs31_69b88bbgz69d11dd needs a different name (given that many members of this forum are rather young)
Physics: sophistication from simplicity.
- Alexey_Nigin
- Posts: 326
- Joined: August 4th, 2014, 12:33 pm
- Location: Ann Arbor, MI
- Contact:
Re: apgsearch v1.0
I totally agree. Personally, I find this name very odd, even though I am a boy and I am older than many other members. In my opinion, that single word makes a good site seem a bit silly. This will probably dissuade some visitors from coming to the site regularly. At least I don't want to seek a synthesis of a still life with such title.Aidan F. Pierce wrote:Another naming suggestion: xs31_69b88bbgz69d11dd needs a different name (given that many members of this forum are rather young), although I do concede the current name is accurate.
Edit: Oh, and there is also xs33_69b8bb88gz69d1dd11... If you leave the name of the 31-cell still life as it is, then this still life should be called "long ...". I hope you will consider it a good reason for removing that controversial title.
There are 10 types of people in the world: those who understand binary and those who don't.
Re: apgsearch v1.0
One option is "Aries betwixt two blocks", after the relevant symbol:

Tanner Jacobi
Coldlander, a novel, available in paperback and as an ebook. Now on Amazon.
Coldlander, a novel, available in paperback and as an ebook. Now on Amazon.
Re: apgsearch v1.0
All still-lifes with $\geq 31$ cells found in C1/b3s23 now have non-empty non-controversial names.
However, it certainly appears that giving a still-life a controversial name seems to encourage people to discover a glider synthesis. Since it features in Kazyan's 'syringe', I propose calling xs41_8e1eo0kcwo4oz33034al913kp the 'MMR vaccine'.
http://catagolue.appspot.com/object/xs4 ... 13kp/b3s23
http://en.wikipedia.org/wiki/MMR_vaccine_controversy
However, it certainly appears that giving a still-life a controversial name seems to encourage people to discover a glider synthesis. Since it features in Kazyan's 'syringe', I propose calling xs41_8e1eo0kcwo4oz33034al913kp the 'MMR vaccine'.
http://catagolue.appspot.com/object/xs4 ... 13kp/b3s23
http://en.wikipedia.org/wiki/MMR_vaccine_controversy
What do you do with ill crystallographers? Take them to the mono-clinic!
Re: apgsearch v1.0
I have another idea for naming what we now call "Aries betwixt two blocks". That still life and its relatives all feature two blocks sandwiching what appears to me as a C-clef:
Therefore the still lifes should be called narrow clef (top left), wide clef (bottom left), narrow clef with handle (top right) and wide clef with handle (bottom right).
(Good luck Sarah Brightman; see you singing on the ISS later in 2015!)
Other names I propose:
Code: Select all
x = 35, y = 21, rule = B3/S23
2b2ob2o5b2ob2o$2b2obobo3bobob2o$7bo3bo$2b5o5b7o$bo17bo$2b5o5b7o$7bo3bo
16bobob2o$2b2obobo3bobob2o11bobobobo$2b2ob2o5b2ob2o11bobo3bo$28bobob2o
$28bob2o$28bobob2o$b2o2b2o5b2o2b2o10bobo3bo$b2o2bobo3bobo2b2o10bobobob
o$7bo3bo16bobob2o$b6o5b8o$o19bo$b6o5b8o$7bo3bo$b2o2bobo3bobo2b2o$b2o2b
2o5b2o2b2o!(Good luck Sarah Brightman; see you singing on the ISS later in 2015!)
In actuality it's a weld of an eater 2 and the long-hook-with-tail variant of eater 5. No need to rename it so colourfully.calcyman wrote:I propose calling xs41_8e1eo0kcwo4oz33034al913kp the 'MMR vaccine'.
Other names I propose:
- xs14_178f1e8 = dollar sign
xs15_33gv1oo = Z-hexomino with two blocks
xs15_2ege1ego = 7/4 hats
Princess of Science, Parcly Taxel
Code: Select all
x = 31, y = 5, rule = B2-a/S12
3bo23bo$2obo4bo13bo4bob2o$3bo4bo13bo4bo$2bo4bobo11bobo4bo$2bo25bo!Re: apgsearch v1.0
The phenomenon is more drastic in b38s23, d8_4 symmetry. All yls(even not a multiple of 589), zzs(including 5 zz_replicators) , and Pathologicals are merely instances of the p589 puffer.http://catagolue.appspot.com/census/b38s23/D8_4flipper77 wrote:Also, this D2_x soup is marked as PATHOLOGICAL, but the only interesting thing it does is create a linear growth pattern named yl384_1_116_7c9400afe0d7060deabfcdeb490084cc, which has been recorded one other time:
CODE: SELECT ALL / SHOW IN VIEWER
x = 16, y = 16, rule = B3/S23
3o2b2ob3o4bo$obobobo3b3obo$2obo3bo2b3o2bo$2b2o2b2o2b6o$bo6bobo3bo$o6bo
b4ob2o$2obo2b6obobo$2b2ob3ob5obo$o3bobo2b5obo$o4b5o2bobo$9o5b2o$b3ob4o
2b3o$b3obob3ob2ob2o$3bo2b3o2bobobo$bob3o3b2obo$ob2ob4obob2obo!
- gameoflifeboy
- Posts: 474
- Joined: January 15th, 2015, 2:08 am
Re: apgsearch v1.0
So xs11_2ege13 ("hungry hat") is 5/4 hats?Freywa wrote:xs15_2ege1ego = 7/4 hats
- gameoflifeboy
- Posts: 474
- Joined: January 15th, 2015, 2:08 am
Re: apgsearch v1.0
Code: Select all
x = 7, y = 2, rule = B3/S23
6ob$o2bo2bo$5b2o!Similarly this could be called a long shoe:
Code: Select all
x = 8, y = 2, rule = B3/S23
7ob$o2bo3bo$6b2o!- Alexey_Nigin
- Posts: 326
- Joined: August 4th, 2014, 12:33 pm
- Location: Ann Arbor, MI
- Contact:
Re: apgsearch v1.0
I do not understand why the program calls this "ov_p7":
http://catagolue.appspot.com/object/ov_p7/b36s23
It is actually a transcendental pattern without any p7's in the ash after 2^18 gens.
http://catagolue.appspot.com/object/ov_p7/b36s23
It is actually a transcendental pattern without any p7's in the ash after 2^18 gens.
There are 10 types of people in the world: those who understand binary and those who don't.
Re: apgsearch v1.0
This is an (un)lucky coincidence. The soup triggers the error detection phase (which is for some reason no longer disabled in HighLife?) and so object detection begins for a second time at gen 456,320. The p7 objects appear just after this point, so they are considered as one object along with the remaining ash from the active region which spawned them. They are knocked off by a pair of backwards escaping gliders around gen 465,000.Alexey_Nigin wrote:I do not understand why the program calls this "ov_p7":
http://catagolue.appspot.com/object/ov_p7/b36s23
It is actually a transcendental pattern without any p7's in the ash after 2^18 gens.
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.
Semi-active here - recovering from a severe case of LWTDS.
Semi-active here - recovering from a severe case of LWTDS.