Life tag testing

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

Re: Life tag testing

Post by rowett »

Build 1137 is now available on the lazyslug server

Fixes in this build:
  • fixed an issue with tokenizing custom rule names containing commas
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1138 is now available on the lazyslug server

Fixes in this build:
  • disable Rand All button for RuleTable rules
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1139 is now available on the lazyslug server

Fixes in this build:
  • fix paste mode OR for [R]Investigator
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1140 is now available on the lazyslug server

Fixes in this build:
  • fix disappearing notifications that are being cleared from restarting disappear phase
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1141 is now available on the lazyslug server

Fixes in this build:
  • fixed fps overlapping box at fps >= 100
  • fixed Advance Outside clearing issue
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1142 is now available on the lazyslug server

Enhancements in this build:
  • initial work on Paste from system clipboard
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1143 is now available on the lazyslug server

Enhancements in this build:
  • new script command [[ AUTOIDENTIFY ]] will automatically Identify pattern on load
  • Paste from system clipboard will now automatically convert [R]Super and [R]History to [R]Standard
Fixes in this build:
  • fixed Random Pattern not correctly respecting [[ RANDWIDTH ]] and [[ RANDHEIGHT ]]
AUTOIDENTIFY:

Code: Select all

#C [[ AUTOIDENTIFY ]]
x = 156, y = 75, rule = B3/S23History
146b2o5b2o$146b2o5b2o16$145b2obo3bob2o$145bo2bo3bo2bo$146b3o3b3o3$31b
2o$33bo$18b2o10b2o2bo$18b2o11bo2bo$32bobo$32b2o119b2o$153b2o$32b2o$32b
obo$18b2o11bo2bo10b2o30b2o$18b2o10b2o2bo10b2o30b2o$b2o4b3o23bo$b2o3bo
3bo20b2o$6b2ob2o$7bobo67bo$53bo2bo19bobo66bo2bo$7bobo21b4o22bo17b2ob2o
69bo$6b2ob2o19bo3bo18bo3bo16bobob3o64bo3bo$6bo3bo4b2o17bo19b4o14bob2o
2b2o66b4o$7b3o4b2o14bo2bo38bobo77b2o$16bo135bobo$154bo$86b2o34bo31b2o$
69b2o15bobo7b2o24b2o$51bo3b3o11b2o17bo7b2o23bobo$36b2o12bobo2b5o26b3o$
36b2o12bo3b2o3b2o$51bo2bo3b2o$3o5b3o41b3o3bo$o2b2ob2o2bo16bo58b3o$b3o
3b3o16b2o24b3o3bo10b2o17bo7b2o$2bo5bo17bobo22bo2bo3b2o9b2o15bobo7b2o$
36b2o12bo3b2o3b2o2b2o21b2o$36b2o12bobo2b5o3b2o$51bo3b3o52b2o$111b2o$
92bo17bo$50b2o38bo2bo$b2o5b2o42bo25b2o10b5o$b2o5b2o39b2o2bo10b2o12b2o
10b3ob2o$31bo18bo2bo10b2o25b2obo15bo3bo$30bo2bo4b2o11bobo38b2o15bo5bo
9b2o$17b2o10b5o3b2o12b2o56bo15b2o$17b2o9b2ob3o5bo52b2o15b2o3bo$29bob2o
18b2o38b2obo16b3o$30b2o19bobo24b2o10b3ob2o$50bo2bo10b2o12b2o10b5o16b3o
$30b2o17b2o2bo10b2o24bo2bo15b2o3bo$29bob2o19bo39bo16bo15b2o$17b2o9b2ob
3o16b2o57bo5bo9b2o$17b2o10b5o76bo3bo$30bo2bo$31bo!
User avatar
dvgrn
Moderator
Posts: 12039
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

rowett wrote: May 25th, 2024, 10:48 am [*]Paste from system clipboard will now automatically convert [R]Super and [R]History to [R]Standard[/list]
Hmm, I ran into a case last week (trying to paste LifeHistory from the system clipboard into a plain-Life pattern) where that would have been useful.

I don't think it's the final best solution, though. I was just trying to do some editing in a LifeHistory stamp collection, and since I had the system clipboard enabled, all the LifeHistory envelope stuff got lost. That's useful information a lot of the time -- if I can't retain it then I can't really work in LifeViewer on that kind of thing.
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1144 is now available on the lazyslug server

Fixes in this build:
  • fixed automatic Paste conversion
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

dvgrn wrote: May 26th, 2024, 3:40 pm
rowett wrote: May 25th, 2024, 10:48 am [*]Paste from system clipboard will now automatically convert [R]Super and [R]History to [R]Standard[/list]
Hmm, I ran into a case last week (trying to paste LifeHistory from the system clipboard into a plain-Life pattern) where that would have been useful.

I don't think it's the final best solution, though. I was just trying to do some editing in a LifeHistory stamp collection, and since I had the system clipboard enabled, all the LifeHistory envelope stuff got lost. That's useful information a lot of the time -- if I can't retain it then I can't really work in LifeViewer on that kind of thing.
This was unintentional and has been fixed. Pasting [R]History should work correctly now.
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1145 is now available on the lazyslug server

Enhancements in this build:
  • improved automatic Paste conversion when pasting from system clipboard
    • now handles conversions between [R]Standard, [R]History, [R]Super and [R]Investigator
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1146 is now available on the lazyslug server

Enhancements in this build:
  • changed Advance Selection so the selection box is static
  • added Advance Selection and Advance Outside buttons
  • Paste from system clipboard now works with unknown rules
Fixes in this build:
  • added error checking when attempting to write to system clipboard
User avatar
dvgrn
Moderator
Posts: 12039
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

I've just sent the following note to the three people on the forums who have started using headers like "xrule = B3/S23" in their RLE:
dvgrn wrote:June 12th, 2024, 5:47 am
dvgrn wrote: May 28th, 2024, 7:26 am
b-engine wrote: May 28th, 2024, 7:08 am Yes, and in fact you can delete the x & y and replacing rule with xrule while having the entire RLE working...
I'd advise against posting patterns in b-engine's abbreviated form, at least for the moment. The minimal header would be

x=0,y=0,rule={rule}

Golly currently errors out in a hugely ugly way with an "xrule" pattern, and even the new safeopenclip.lua can't figure out what to do. Only LifeViewer is currently tolerant enough to support such a monstrously abbreviated format.
This is actually a big enough problem that I'm going to make a formal request here, about not abbreviating RLE headers to "xrule", at least for the time being. There may be something more showing up on the forums soon.

Part of the point of having a common RLE format for sharing patterns is so that people with different software can easily join in the fun -- copy and paste whatever patterns are posted, and have them Just Work.

I've seen quite a few RLE parsers that rely on at least the "x=" part of the header. Many parsers will decide it's not valid RLE if it doesn't have the x, equals, comma, y, equals. Golly is in this category. Opening an "xrule" pattern in Golly causes a really unpleasant error.

I've done a global search-and-replace on the forums to convert "xrule" patterns to the minimal form above.

I'm really hoping that everyone can see their way to not posting any more patterns with "xrule" abbreviations for the time being -- "xrule" seems to have spread very quickly once it was introduced.
It occurs to me that, now that the global search-and-replace has been done, the simplest way to keep this "xrule" abbreviation from spreading would be to remove support for it from LifeViewer (rather than adding support for it to Golly, which doesn't address the problem of all the other existing parsers that don't support that syntax).

Does that sound like a workable plan, or are there downsides to the idea that I'm not seeing?

EDIT: For people communicating rules via phone, where the main point is to pop up an empty LifeViewer window for a new rule, strictly for exploration purposes (the pattern is usually just !) ... could LifeViewer maybe support the old standard rule-definition syntax for Life 1.05 -- but without the Life 1.05 header being required?

Code: Select all

#R MAPexamplerule
.
or even just

Code: Select all

#R MAPexamplerule
Currently it doesn't look like the #R or #r rule specification is supported, even when the official header is present. But people stopped bothering with the Life 1.05 header for ASCII patterns, quite a long time ago.

Code: Select all

#Life 1.05
#R MAPexamplerule
.
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1147 is now available on the lazyslug server

Enhancements in this build:
  • improve RLE header detection (RLE header must have a space or = after x)
  • support #R in headerless RLE or Life 1.05 to define rule
User avatar
dvgrn
Moderator
Posts: 12039
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

rowett wrote: June 16th, 2024, 1:43 am Build 1147 is now available on the lazyslug server

Enhancements in this build:
  • improve RLE header detection (RLE header must have a space or = after x)
  • support #R in headerless RLE or Life 1.05 to define rule
Looks good! I'm seeing better support for Life 1.05 #R than for headerless RLE #R so far. E.g., I've edited the last two "xrule" posts as examples, and they seem to work fine, but they need a minimal ASCII-format pattern on the next line after the #R line.

LifeViewer build 1147 doesn't do anything if these examples are converted to headerless RLE, or to an #R-only format:

Code: Select all

# You can find this in Request a Rule to be "Tamed" thread
#R B1e2cek3cjkry4jrw5cny6ck7c/S2kn3-aejr4knqty5ejk6e
!
#C [[ RANDOMIZE ]] 

Code: Select all

# You can find this in Request a Rule to be "Tamed" thread
#R B1e2cek3cjkry4jrw5cny6ck7c/S2kn3-aejr4knqty5ejk6e
b!
#C [[ RANDOMIZE ]] 

Code: Select all

#R B012-a5n6aek/S1e2-ak3:T400,400
#C [[ RANDOMIZE ]]

Code: Select all

#R B012-a5n6aek/S1e2-ak3:T400,400

Code: Select all

#R B012-a5n6aek/S1e2-ak3:T400,400
!
#C non-LifeViewer command comments don't work after the exclamation point either
Here's a test case where headerless RLE works:

Code: Select all

#R B012-a5n6aek/S1e2-ak3:T400,400
#C comments here are okay
!
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1148 is now available on the lazyslug server

Fixes in this build:
  • fixes to #R support
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

dvgrn wrote: June 16th, 2024, 6:02 am Looks good! I'm seeing better support for Life 1.05 #R than for headerless RLE #R so far.
LifeViewer is actually using the RLE decoder since I don't want to promote the use of the obsolete Life 1.05 format.

If LifeViewer sees an RLE header (x = ...) then any following #R lines are ignored (and removed if the pattern is saved).

Example: header line sets the HighLife rule, #R line is ignored. Saving this pattern removes the #R line.

Code: Select all

x = 1, y = 1, rule = HighLife
#R Ignored
!
If LifeViewer does not see an RLE header then the first #R line sets the rule. Subsequent #R lines are ignored. An RLE header line is illegal (and will generate an error). If the pattern is saved the #R line will be replaced by a valid RLE header.

Example: #R line set the HighLife rule. Saving this pattern creates valid RLE header.

Code: Select all

#R HighLife
!
Since this is RLE the last pattern character needs to use the ! character. Comments after this will be processed correctly.

Example: [[ AUTOSTART ]] after pattern.

Code: Select all

#R HighLife
3o!
#C [[ AUTOSTART ]]
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1149 is now available on the lazyslug server

Enhancements in this build:
  • improve HTML entity handling
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1150 is now available on the lazyslug server

Fixes in this build:
  • fixed line break handling
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1151 is now available on the lazyslug server

Fixes in this build:
  • fixed Identify with LtL/HROT >2 state patterns
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1152 is now available on the lazyslug server

Fixes in this build:
  • fixed AutoIdentify persisting across viewers
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1153 is now available on the lazyslug server

Enhancements in this build:
  • initial work on @ICONS rendering
    • new Icons button to toggle cell icon display (hotkey Alt+I)
    • Sync button is now in Settings>Clipboard>External Sync
    • new script command [[ ICONS ]] switches icon display on
  • current limitations
    • only supports camera Angle of 0
    • does not support built-in icon sets (circles, diamonds, hexagons and triangles)

    Code: Select all

    #C [[ ICONS AUTOSTART GPS 8 ]]
    x = 74, y = 47, rule = AnimatedPixelArt
    pJuOpJuOpJuOpJuOpJuOpJuOpJuO6.pJBpJBpJBpJBpJBpJBpJB6.pJBpJBpJBpJBpJBpJ
    BpJB6.pJBpJBpJBpJBpJBpJBpJB$uPuQuPuQuPuQuPuQuPuQuPuQuPuQ6.uPuQuPuQuPuQ
    uPuQuPuQuPuQuPuQ6.uPBuPBuPBuPBuPBuPBuPB6.14B$pJuOKtLKtLKtLKtLKtLpJuO
    6.pJBK.K.K.K.K.pJB6.pJBK.K.K.K.K.pJB6.pJBK.K.K.K.K.pJB$uPuQ10tLuPuQ6.
    uPuQ10tLuPuQ6.uPBtL.tL.tL.tL.tL.uPB6.2B10.2B$pJuOKtLOtVpXvGOtVKtLpJuO
    6.pJBK.O.pXCO.K.pJB6.pJBK.O.pXCO.K.pJB6.pJBK.O.pXCO.K.pJB$uPuQ2tLtTtU
    vEuUtTtU2tLuPuQ6.uPuQ2tLtTtUvEuUtTtU2tLuPuQ6.uPBtL.tT.vECtT.tL.uPB6.
    2B4.2C4.2B$pJuOKtLpTvGpTuUOtLKtLpJuO6.pJBK.pTCpTCO.K.pJB6.pJBK.pTCpTC
    O.K.pJB6.pJBK.pTCpTCO.K.pJB$uPuQ2tLuUvF2uUtTtU2tLuPuQ6.uPuQ2tLuUvF2uU
    tTtU2tLuPuQ6.uPBtL.uUCuUCtT.tL.uPB6.2B2.4C4.2B$pJuOKtLOtVpXvGOtVKtLpJ
    uO6.pJBK.O.pXCO.K.pJB6.pJBK.O.pXCO.K.pJB6.pJBK.O.pXCO.K.pJB$uPuQ2tLtT
    tUvEvFtTtU2tLuPuQ6.uPuQ2tLtTtUvEvFtTtU2tLuPuQ6.uPBtL.tT.vECtT.tL.uPB
    6.2B4.2C4.2B$pJuOKtLOtLpTuUKtVKtLpJuO6.pJBK.O.pTCK.K.pJB6.pJBK.O.pTCK
    .K.pJB6.pJBK.O.pTCK.K.pJB$uPuQ4tL2uUtTtU2tLuPuQ6.uPuQ4tL2uUtTtU2tLuPuQ
    6.uPBtL.tL.uUCtT.tL.uPB6.2B4.2C4.2B$pJuOKtLpXvGpXvGpXvGKtLpJuO6.pJBK.
    pXCpXCpXCK.pJB6.pJBK.pXCpXCpXCK.pJB6.pJBK.pXCpXCpXCK.pJB$uPuQ2tLvEuUvE
    uUvEvF2tLuPuQ6.uPuQ2tLvEuUvEuUvEvF2tLuPuQ6.uPBtL.vECvECvECtL.uPB6.2B
    2.6C2.2B$pJuOKtLKtLKtLKtLKtLpJuO6.pJBK.K.K.K.K.pJB6.pJBK.K.K.K.K.pJB
    6.pJBK.K.K.K.K.pJB$uPuQ10tLuPuQ6.uPuQ10tLuPuQ6.uPBtL.tL.tL.tL.tL.uPB
    6.2B10.2B$pJuOpJuOpJuOpJuOpJuOpJuOpJuO6.pJBpJBpJBpJBpJBpJBpJB6.pJBpJB
    pJBpJBpJBpJBpJB6.pJBpJBpJBpJBpJBpJBpJB$uPuQuPuQuPuQuPuQuPuQuPuQuPuQ6.
    uPuQuPuQuPuQuPuQuPuQuPuQuPuQ6.uPBuPBuPBuPBuPBuPBuPB6.14B4$60.KtLKtLWtX
    WtXWtXKtLKtL$60.4tL6tX4tL$60.KtLWtXKtLKtLKtLWtXKtL$60.2tL2tX6tL2tX2tL
    $60.KtLWtXKtLKtLKtLWtXKtL$60.2tL2tX6tL2tX2tL$27.KtLKtLWtXWtXWtXWtXWtX
    WtXKtLKtL13.KtLWtXKtLKtLKtLWtXKtL$27.4tL12tX4tL13.2tL2tX6tL2tX2tL$27.
    KtLWtXWtXpTuXpTuXpWuUpWuUWtXWtXKtL13.KtLKtLWtXWtXWtXKtLKtL$27.2tL4tX
    8uU4tX2tL13.tM3tL6tX4tL$6.KtLKtLpIuJNtPKtL11.WtXWtXKtOWtXWtXWtXWtXNtL
    WtXWtX13.LtMKtLKtLWtXKtLKtLKtL$6.3tLtVuMuJ4tL11.4tXtLtO8tXtOtL4tX13.tL
    3tM2tL2tX6tL$6.KtPKtLqEvGKtLNtL11.WtXKtOWtXWtXsVyAsVyAWtXWtXNtLWtX13.
    VtWWtXWtXWtXWtXWtXVtW$6.4tLvAvBtOtV2tL11.2tXtLtO4tXxWxXxWxX4tXtOtL2tX
    13.4tW6tX4tW$6.pIuJqEvGKtLqEvGpIuJ11.WtXKtLWtXsVyAsVyAsVyAsVyAWtXKtLW
    tX13.KtLKtLKtLWtXKtLKtLLtM$6.2uJvAvB2tLvAvB2uJ11.2tX2tO2tXxW2xXyAxXyA
    xWxX2tX2tO2tX13.6tL2tX2tL2tMtLtM$6.NtLKtLqEvGKtLKtP11.WtXKtLWtXsVyAsV
    yAsVyAsVyAWtXKtLWtX13.KtLKtLKtLWtXKtLKtLKtL$6.2tLtOtVvAvB4tL11.2tX2tO
    2tXxW2xXyAxXyAxWxX2tX2tO2tX13.6tL2tX4tLtMtL$6.KtLNtPpIuJKtLKtL11.WtXN
    tLWtXWtXsVyAsVyAWtXWtXKtOWtX13.KtLKtLKtLWtXKtLKtLKtL$6.4tLuMuJtLtV2tL
    11.2tXtOtL4tXxWxXxWxX4tXtLtO2tX13.6tL2tX6tL$27.WtXWtXNtLWtXWtXWtXWtXK
    tOWtXWtX13.KtLKtLWtXKtLWtXKtLKtL$27.4tXtOtL8tXtLtO4tX13.4tL2tX2tL2tX
    4tL$27.KtLWtXWtXpWuUpWuUpTuXpTuXWtXWtXKtL13.KtLWtXKtLKtLKtLWtXKtL$27.
    2tL4tX8uU4tX2tL13.2tL2tW2tM2tL2tM2tW2tL$27.KtLKtLWtXWtXWtXWtXWtXWtXKtL
    KtL13.VtWLtMKtLKtLKtLLtMVtW$27.4tL12tX4tL13.2tWtL2tM3tLtM2tLtM2tW!
    
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1154 is now available on the lazyslug server

Enhancements in this build:
  • added icons for PCA rules
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1155 is now available on the lazyslug server

Fixes in this build:
  • clear grid during startup timing measurement
User avatar
rowett
Moderator
Posts: 4595
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1156 is now available on the lazyslug server

Enhancements in this build:
  • Identify now uses offset square grid for hexagonal Cell Period Maps
Locked