Life tag testing

For scripts to aid with computation or simulation in cellular automata.
Locked
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 218 is now available on the lazyslug server

Enhancements in this build:
  • new graph script commands:
    • [[ GRAPH ]] enables population graph display on pattern load
    • [[ GRAPHOPACITY <0.0..1.0> ]] sets the graph background opacity
    • [[ GRAPHPOINTS ]] draws the graph as points rather than lines
  • added graph data to help information
  • added "Just Friends" to the non-totalistic aliases
Fixes in this build:
  • initial generation was being ignored for graph y axis scaling
  • graph y axis label now abbreviates automatically when Viewer height is small
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

dvgrn wrote:I'll manage a decent review by the end of the weekend, anyway. If that's not fast enough, my quick look at your test pages says that it's probably an improvement on the status quo -- so really I'm happy with the release-now test-later roll-back-if-necessary model, too. Saves me some test setup time...!
I'm happy to wait for the weekend. Completely rewrote the B0 stuff so keen to have that tested!
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 219 is now available on the lazyslug server

Enhancements in this build:
  • shift and hotkey "o" now opens population graph snapshot in separate window
Fixes in this build:
  • population graph x axis limit was incorrect for generations less than the graph width
The updated keyboard map is here.
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 220 is now available on the lazyslug server

Enhancements in this build:
  • added the ability to customize graph colors - test
    • [[ COLOR GRAPHBG R G B ]] sets background color
    • [[ COLOR GRAPHAXIS R G B ]] sets axis color
    • [[ COLOR GRAPHALIVE R G B ]] sets alive color
    • [[ COLOR GRAPHBIRTH R G B ]] set birth color
    • [[ COLOR GRAPHDEATH R G B ]] sets death color
  • added graph colors to help information
Fixes in this build:
  • when just [[ COLOR BACKGROUND ]] and [[ COLOR ALIVE ]] were specified an invalid [[ COLOR DEADRAMP ]] was created
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 221 is now available on the lazyslug server

Fixes in this build:
  • tooltips in multi-item controls now work after item clicked
User avatar
dvgrn
Moderator
Posts: 12049
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

rowett wrote:Build 221 is now available on the lazyslug server

Fixes in this build:
  • tooltips in multi-item controls now work after item clicked
Can you have a quick look at what is going on with my nice easy testing method?

-- I downloaded an appropriate forum thread using Firefox -- the previous page of this thread, in point of fact.
-- I saved the complete Web page to testingBuild221.htm.
-- When I open the local saved copy of the Web page, the old Build 214 plugin successfully adds a second "Show in Viewer" link after each existing "Show in Viewer" link. That's what it has always done, so that's good.
-- I found the lv-plugin.js file in the testingBuild221_files folder, and renamed it to lv-plugin-old.js.
-- I downloaded Build 221 from the lazyslug server, and saved it as lv-plugin.js in the testingBuild221_files folder.
-- When I open the local saved copy of the Web page again, the new Build 221 plugin doesn't add any new "Show in Viewer" links, so I can't get Build 221 running in the context of that Web page. That doesn't seem so good...?
-- When I rename lv-plugin.js to lv-plugin-build221.js, and put lv-plugin-old.js back to lv-plugin.js, the "Show in Viewer" links appear again. So it's not like magic has stopped working or anything...!
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 222 is now available on the lazyslug server

Fixes in this build:
  • fixed an issue with the allocator during startup
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

dvgrn wrote:Can you have a quick look at what is going on with my nice easy testing method?
Your method was good, it was a bug which is fixed in build 222.
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Let me know if build 222 works for you...
User avatar
dvgrn
Moderator
Posts: 12049
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

rowett wrote:Let me know if build 222 works for you...
Will do. Sorry for the delay -- unfortunately I'm away from the test computer again until after dinner tonight.

It seems like a very auspicious build number, though, much better than 221.
User avatar
dvgrn
Moderator
Posts: 12049
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

rowett wrote:Build 222 is now available on the lazyslug server

Fixes in this build:
  • fixed an issue with the allocator during startup
Yup, that seems to have solved the testing problem -- I'm getting links added now that open LifeViewer build 222.

The rule=MAP stuff looks good. I initially expected a space between "MAP" and the map string, but that seems to produce a VIEWONLY view of the pattern. It's a little odd that "MAP" is technically a series of characters that might be part of a rule string -- there might not be very many interesting rules where the string starts with MAP, but still it's kind of strange to have no delimiter there. I can see how a colon would be a bad delimiter, since it's used for something else. Maybe a space, though -- or a forward slash?

I checked a random sample of MAP rules and they all seem to be doing the right thing. I'd vote for releasing it to see if anyone else can find a problem, but it's going to have to be something awfully subtle. Seems to me it's going to Just Work.

The population graph looks really good, especially as it's being generated and adjusting itself in real time! The only issue I've run into so far is that when I graphed the

x = 2557, y = 73, rule = LifeHistory

pattern here, the graph adjusted itself beautifully forwards in time at step=50, until it went flat. I ran it until the flat line was about as long as the interesting part... and then hit "b" to see what happened when I stepped backwards. LifeViewer suddenly got very unresponsive, though it didn't quite lock up.
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

dvgrn wrote:The rule=MAP stuff looks good. I initially expected a space between "MAP" and the map string, but that seems to produce a VIEWONLY view of the pattern. It's a little odd that "MAP" is technically a series of characters that might be part of a rule string -- there might not be very many interesting rules where the string starts with MAP, but still it's kind of strange to have no delimiter there. I can see how a colon would be a bad delimiter, since it's used for something else. Maybe a space, though -- or a forward slash?
I originally was considering a delimiter. Space was ruled out early because I wanted a single token for the rule.
I had a quick chat with Andrew on the topic (since this is also implemented in Golly 2.9b2) and the feeling was MAP rules are most likely to be generated by scripts, so smaller is better. Happy to broaden the debate on the Golly discussion list, or I could just claim victory and release what's built :)
dvgrn wrote:The population graph looks really good, especially as it's being generated and adjusting itself in real time! The only issue I've run into so far is that when I graphed the

x = 2557, y = 73, rule = LifeHistory

pattern here, the graph adjusted itself beautifully forwards in time at step=50, until it went flat. I ran it until the flat line was about as long as the interesting part... and then hit "b" to see what happened when I stepped backwards. LifeViewer suddenly got very unresponsive, though it didn't quite lock up.
I've seen step back run slow on occasion but never consistently. I presume LifeViewer did indeed step back and resume normal service after the pause?
User avatar
dvgrn
Moderator
Posts: 12049
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

rowett wrote:I've seen step back run slow on occasion but never consistently. I presume LifeViewer did indeed step back and resume normal service after the pause?
Yup. And my computer isn't any too fast to start with. It's just an unreasonable test case -- that pattern, run at step=50 up to around T=4000 -- where LifeViewer runs out of snapshots and has to re-generate. It just works so well in the forward direction that one kind of get used to impressive speed and no wait time.

Looks good to release, as far as I can see. Like various too-long-to-read bills in Washington, D.C., maybe it's time to pass it so we can find out what's in it. I see you're creeping up on a quarter megabyte of Javascript -- LifeViewer has turned into quite a project...!
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Nathaniel,
Please will you upload build 222 to the forum and the Wiki?

Thanks!
User avatar
Nathaniel
Site Admin
Posts: 907
Joined: December 10th, 2008, 3:48 pm
Location: New Brunswick, Canada
Contact:

Re: Life tag testing

Post by Nathaniel »

222 is now live on the forums and wiki. Thanks!
User avatar
dvgrn
Moderator
Posts: 12049
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

Bother -- I seem to have tripped over a subtle bug with bounded universes combined with MAP rules:

Code: Select all

x = 37, y = 13, rule = MAPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/10:T50,49
o9bo9bo9bo$bo9bo9bo$2bo9bo$3bo$4bo15bo$5bo13bo$6bo11bo5bo$7bo9bo5bo$8b
o7bo5bo4bo$9bo5bo5bo4bo$o13bo5bo4bo4bo$13bo15bo$33bo2$5bo8bo$4b3o$3b5o
$4b3o12b2o$5bo13b2o$27b3o$o9bo16b3o$27b3o!
Notice that the nice diagonal rainbow-worms don't make it from the exact upper left corner to the lower right corner. And strangely, there also seems to be a worm-killing spot on the left edge.

It's very similar without the Generations suffix:

Code: Select all

x = 37, y = 13, rule = MAPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:T50,49
o9bo9bo9bo$bo9bo9bo$2bo9bo$3bo$4bo15bo$5bo13bo$6bo11bo5bo$7bo9bo5bo$8b
o7bo5bo4bo$9bo5bo5bo4bo$o13bo5bo4bo4bo$13bo15bo$33bo2$5bo8bo$4b3o$3b5o
$4b3o12b2o$5bo13b2o$27b3o$o9bo16b3o$27b3o!
... but I think the point of final disappearance is different for some reason. Also the Generations rule keeps running, where the plain-MAP rule says that Life ends at T=3434.

There's no problem with regular old totalistic rules --

Code: Select all

x = 25, y = 24, rule = B3/S23:T50,49
8b3o$3o5bo$o8bo$bo$22b3o$14b3o5bo$14bo8bo$15bo$7b3o$7bo$8bo2$21b3o$14b
3o4bo$6b3o5bo7bo$6bo8bo$7bo5$13b3o$13bo$14bo!
even when they're translated into MAP rules:

Code: Select all

x = 25, y = 24, rule = MAPARYXfhZofugWaH7oaIDogBZofuhogOiAaIDogIAAgAAWaH7oaIDogGiA6ICAAIAAaIDogIAAgACAAIAAAAAAAA:T50,49
8b3o$3o5bo$o8bo$bo$22b3o$14b3o5bo$14bo8bo$15bo$7b3o$7bo$8bo2$21b3o$14b
3o4bo$6b3o5bo7bo$6bo8bo$7bo5$13b3o$13bo$14bo!
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

dvgrn wrote:Bother -- I seem to have tripped over a subtle bug with bounded universes combined with MAP rules
Thanks - Yes it's a LifeViewer bug and I have a fix. It works fine in Golly 2.9b2.
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 223 is now available on the lazyslug server

Fixes in this build:
  • fixed an issue with MAP rules and bounded grids - test
  • fit zoom and thumbnail mode now work together
  • graphs now display properly in thumbnail mode - test
  • graph colors were incorrect on some browsers
User avatar
dvgrn
Moderator
Posts: 12049
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

rowett wrote:Build 223 is now available on the lazyslug server
Here's some interesting behavior in build 222, that I'd guess is probably still an issue in Build 223 -- haven't checked yet. Test inspired by Saka, on the Testing Grounds thread.

In these examples, VIEWONLY gets triggered, but the AUTOSTART script command still works, so then the simulation can't be stopped... and in the second example, the pattern ends up being multi-state-looking (!):

Code: Select all

x = 9, y = 3, rule = MAP3141592653589793238462643383279502884197169399375105820974944592307816406286208998628
o!
#C [[ AUTOSTART AUTOFIT ]]

Code: Select all

x = 9, y = 3, rule = MAP3141592653589793238462643383279502884197169399375105820974944592307816406286208998628
oboobobob$booboboob$oboboobo!
#C [[ AUTOSTART AUTOFIT HISTORYFIT GPS 10 ]]
Works fine if you get the MAP string the right length --

Code: Select all

x = 9, y = 3, rule = MAP31415926535897932384626433832795028841971693993751058209749445923078164062862089986280
o!
#C [[ AUTOSTART AUTOFIT ]]
-- but if it's too long, you get the multi-color VIEWONLY behavior back again:

Code: Select all

x = 9, y = 3, rule = MAP314159265358979323846264338327950288419716939937510582097494459230781640628620899862803
o!
#C [[ AUTOSTART AUTOFIT ]]
It is very easy to miscount MAP length, especially if you're doing silly things like use lines of Shakespeare for your MAP strings... for the 87-characters-and-longer case, would it be possible to give a more specific illegal-character error -- maybe "MAP string length must be 86, not {N}"?
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 224 is now available on the lazyslug server

Enhancements in this build:
  • better error reporting for invalid MAP rules - test
Fixes in this build:
  • AUTOSTART no longer runs patterns with invalid rules
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 225 is now available on the lazyslug server

Enhancements in this build:
  • added script command [[ NOGRAPH ]] which disables the population graph
    • slight performance increase when not tracking population
Fixes in this build:
  • statistics generation was not being reset when new pattern loaded in existing viewer
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Dave let's give it the weekend to see if any more MAP bugs appear and then do a release.
User avatar
dvgrn
Moderator
Posts: 12049
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

rowett wrote:Dave let's give it the weekend to see if any more MAP bugs appear and then do a release.
Sounds reasonable. All looking good so far.

Meanwhile, the Caterpillar has found its way into a JavaScript-based simulator/editor running HashLife.

Now, it doesn't run the Caterpillar very reliably -- it made both Internet Explorer and Chrome stop responding after a while, if I tried to stop after running for a while and then tried to click another button before it was ready. Some similar problems showed up with Gemini. But when the patterns were running, they were only an order of magnitude or so slower than Golly -- not too bad...!

Anything even vaguely reasonable sized does just fine. Loading arbitrary RLE patterns via copy/paste or from a local drive is supported, and also on-the-fly editing of any pattern.
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

dvgrn wrote:Meanwhile, the Caterpillar has found its way into a JavaScript-based simulator/editor running HashLife.
Yes it's not bad at all - a good port of the HashLife algorithm into native Javascript. Be interesting to see how it compares in performance to Molly (which is cross-compiled from the C/C++ via enscriptem into Javascript).
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Nathaniel,
Please will you upload build 225 to the forum and the Wiki?

Thanks!
Locked