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 1027 is now available on the lazyslug server

Fixes in this build:
  • fixed Nudge Selection boundary for 2-state 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 1028 is now available on the lazyslug server

Enhancements in this build:
  • New Pattern and Change Rule will now detect rule name from pasted RLE
Fixes in this build:
  • allow Snow to fall through cell borders
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1029 is now available on the lazyslug server

Fixes in this build:
  • fixed Layer colours for dead cells in Generations rule
  • fixed Bounding Box when cells cleared at grid boundary
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1030 is now available on the lazyslug server

Fixes in this build:
  • fixed Nudge Selection boundary for HROT/LtL 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 1031 is now available on the lazyslug server

Fixes in this build:
  • made hexagons more regular
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1032 is now available on the lazyslug server

Enhancements in this build:
  • added the generation at which Identify finds the minimum and maximum Spaceship or Oscillator population and bounding box to Help->Info->Identify
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1033 is now available on the lazyslug server

Enhancements in this build:
  • made T Min/Max mod the period for Help->Info->Identify
User avatar
dvgrn
Moderator
Posts: 12049
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

I just started trying to fit APG's latest slow salvo into LifeViewer.

Code: Select all

x = 2, y = 2, rule = B3/S23
2o$2o!
[[ STEP 64 X 25 Y 25 Z 6 ]]
[[ RLE G 3o$o$bo! ]]
[[ RLE block 2o$2o! ]]
[[ PASTET 56 PASTE G 104 100 ]]
[[ PASTET 568 PASTE G 103 100 ]]
[[ PASTET 1079 PASTE G 115 100 ]]
[[ PASTET 1592 PASTE G 107 100 ]]
[[ PASTET 2099 PASTE G 98 100 ]]
[[ PASTET 2611 PASTE G 92 100 ]]
[[ PASTET 3124 PASTE G 102 100 ]]
[[ PASTET 3635 PASTE G 99 100 ]]
[[ PASTET 4148 PASTE G 97 100 ]]
[[ PASTET 4660 PASTE G 94 100 ]]
[[ PASTET 5171 PASTE G 104 100 ]]
[[ PASTET 5688 PASTE G 123 100 ]]
[[ PASTET 6200 PASTE G 126 100 ]]
[[ PASTET 6711 PASTE G 134 100 ]]
[[ PASTET 7224 PASTE G 125 100 ]]
[[ PASTET 7736 PASTE G 130 100 ]]
[[ PASTET 8248 PASTE G 100 100 ]]
[[ PASTET 8755 PASTE G 105 100 ]]
[[ PASTET 9268 PASTE G 109 100 ]]
[[ PASTET 9779 PASTE G 103 100 ]]
[[ PASTET 10292 PASTE G 108 100 ]]
[[ PASTET 10803 PASTE G 119 100 ]]
[[ PASTET 11315 PASTE G 103 100 ]]
[[ PASTET 11828 PASTE G 110 100 ]]
[[ PASTET 12340 PASTE G 93 100 ]]
[[ PASTET 12852 PASTE G 106 100 ]]
[[ PASTET 13368 PASTE G 115 100 ]]
[[ PASTET 13880 PASTE G 112 100 ]]
[[ PASTET 14392 PASTE G 112 100 ]]
[[ PASTET 14904 PASTE G 119 100 ]]
[[ PASTET 15416 PASTE G 109 100 ]]
[[ PASTET 15928 PASTE G 103 100 ]]
[[ PASTET 16439 PASTE G 102 100 ]]
[[ PASTET 16947 PASTE G 81 100 ]]
[[ PASTET 17459 PASTE G 78 100 ]]
[[ PASTET 17971 PASTE G 72 100 ]]
[[ PASTET 18487 PASTE G 83 100 ]]
[[ PASTET 18995 PASTE G 84 100 ]]
[[ PASTET 19511 PASTE G 81 100 ]]
[[ PASTET 20023 PASTE G 68 100 ]]
[[ PASTET 20536 PASTE G 77 100 ]]
[[ PASTET 21043 PASTE G 82 100 ]]
[[ PASTET 21557 PASTE G 82 100 ]]
[[ PASTET 22072 PASTE G 135 100 ]]
[[ PASTET 22583 PASTE G 111 100 ]]
[[ PASTET 23096 PASTE G 126 100 ]]
[[ PASTET 23604 PASTE G 124 100 ]]
[[ PASTET 24116 PASTE G 127 100 ]]
[[ PASTET 24628 PASTE G 120 100 ]]
[[ PASTET 25140 PASTE G 118 100 ]]
[[ PASTET 25652 PASTE G 123 100 ]]
[[ PASTET 26164 PASTE G 122 100 ]]
[[ PASTET 26676 PASTE G 118 100 ]]
[[ PASTET 27191 PASTE G 116 100 ]]
[[ PASTET 27704 PASTE G 125 100 ]]
[[ PASTET 28216 PASTE G 114 100 ]]
[[ PASTET 28728 PASTE G 117 100 ]]
[[ PASTET 29240 PASTE G 121 100 ]]
[[ PASTET 29752 PASTE G 112 100 ]]
[[ PASTET 30263 PASTE G 116 100 ]]
[[ PASTET 30772 PASTE G 99 100 ]]
[[ PASTET 31284 PASTE G 109 100 ]]
[[ PASTET 31796 PASTE G 106 100 ]]
[[ PASTET 32307 PASTE G 102 100 ]]
[[ PASTET 32819 PASTE G 106 100 ]]
[[ PASTET 33331 PASTE G 111 100 ]]
[[ PASTET 33844 PASTE G 106 100 ]]
[[ PASTET 34356 PASTE G 127 100 ]]
[[ PASTET 34867 PASTE G 132 100 ]]
[[ PASTET 35380 PASTE G 140 100 ]]
[[ PASTET 35892 PASTE G 131 100 ]]
[[ PASTET 36404 PASTE G 138 100 ]]
[[ PASTET 36916 PASTE G 122 100 ]]
[[ PASTET 37429 PASTE G 111 100 ]]
I've posted it with a LOOP value set at 50.000 and a custom MAXGRIDSIZE setting -- partly because I happened to notice that if you let the output glider go too long, the bounding box that LifeViewer is monitoring (I'm guessing) eventually increases, and then doesn't go back to the smaller value when you hit Reset and run again. So the second run ends up running relatively slowly.

Not sure if anything can or should be done about the "mysterious" slowdown behavior on second and later runs, when no MAXGRIDSIZE is set.

Feature Creep
(I mean, you can call me that if you want, but I'm trying to just refer to the software phenomenon...)

My more speculative question is this: we've ended up wtih a really nice compact syntax for single-channel salvos -- a whole string of numbers after PASTET instead of just one, with a glider then PASTEd in a fixed location.

Any likelihood of some syntactic sugar for the slow-salvo case, where I always want to paste the next glider on the same row or column, as in the sample above? Ideally I'd just want to specify a list of lane numbers and parities, plus maybe a minimum safe time delay between successive gliders.

But maybe it would be cleaner from a LifeViewer point of view to specify just an origin point and a delta -- (0 1) or (1 0), let's say -- and throw in a long string of pairs of numbers, giving the time delta and the lane delta.
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: July 10th, 2023, 4:31 pm I just started trying to fit APG's latest slow salvo into LifeViewer.

Not sure if anything can or should be done about the "mysterious" slowdown behavior on second and later runs, when no MAXGRIDSIZE is set.
I've deployed a fix for this. The history tile grid wasn't being reset properly.
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1034 is now available on the lazyslug server

Enhancements in this build:
  • reduced memory usage when reading comments
  • Fast Lookup now supports RuleTree rules with up to 16 states
  • added experimental support for [R]Extended rules
Fixes in this build:
  • fixed Mod for [R]Super with state 6
  • fixed vertical positioning on Hexagonal grids
  • fixed [R]History state 6 cells at grid edge
  • fixed THUMBLAUNCH when used with RANDOMIZE or RANDOMIZE2
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1035 is now available on the lazyslug server

Fixes in this build:
  • fixed [R]Extended Y axis
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1036 is now available on the lazyslug server

Enhancements in this build:
  • added B0 support to [R]Extended 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 1037 is now available on the lazyslug server

Fixes in this build:
  • fixed a crash in Help
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1038 is now available on the lazyslug server

Fixes in this build:
  • fixed RuleLoader algo issue
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1039 is now available on the lazyslug server

Fixes in this build:
  • fixed [R]Extended for hexagonal neighbourhoods
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1040 is now available on the lazyslug server

Fixes in this build:
  • fixed drawing in [R]Extended
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1041 is now available on the lazyslug server

Fixes in this build:
  • fixed HROT bounding box calculation
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1042 is now available on the lazyslug server

Enhancements in this build:
  • added experimental syntax for slow salvos
    • [[ PASTET t PASTE rle x y XT dx1 dt1 dx2 dt2 ... dxn dtn ]]
    • [[ PASTET t PASTE rle x y YT dy1 dt1 dy2 dt2 ... dyn dtn ]]
Example:

Code: Select all

x = 2, y = 2, rule = B3/S23
2o$2o!
[[ STEP 64 X 25 Y 25 Z 6 ]]
[[ RLE G 3o$o$bo! ]]
[[ PASTET 56 PASTE G 104 100 XT -1 512 12 511 -8 513 -9 507 -6 512 10 513 -3 511 -2 513 -3 512 10 511 19 517 3 512 8 511 -9 513 5 512 -30 512 5 507 4 513 -6 511 5 513 11 511 -16 512 7 513 -17 512 13 512 9 516 -3 512 0 512 7 512 -10 512 -6 512 -1 511 -21 508 -3 512 -6 512 11 516 1 508 -3 516 -13 512 9 513 5 507 0 514 53 515 -24 511 15 513 -2 508 3 512 -7 512 -2 512 5 512 -1 512 -4 512 -2 515 9 513 -11 512 3 512 4 512 -9 512 4 511 -17 509 10 512 -3 512 -4 511 4 512 5 512 -5 513 21 512 5 511 8 513 -9 512 7 512 -16 512 -11 513 ]]
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: August 27th, 2023, 3:01 pm Build 1042 is now available on the lazyslug server

Enhancements in this build:
  • added experimental syntax for single-channel salvos
Very nice! That's "slow salvo", though, not "single-channel" -- we already had the single-channel syntax.
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: July 10th, 2023, 4:31 pm I just started trying to fit APG's latest slow salvo into LifeViewer.
Is it valid to have a time delta of zero? At the moment I check it's > 0.
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: August 29th, 2023, 2:29 pm Is it valid to have a time delta of zero? At the moment I check it's > 0.
A time delta of zero is sorta technically possible. It could be the "lowest number of ticks that you could wait, and still get the same result" -- so it might be a value that could come out of a slow-salvo optimization script.

The resulting "slow salvo" would probably be what I would call "over-optimized" -- impossible to pick apart into its individual gliders and guess reliably at what the original order was -- but I guess I would say that zero should probably be allowable.

EDIT Some of my slow-salvo optimization scripts would effectively generate negative numbers for time deltas. It would be kind of entertaining if you supported those, too -- basically re-ordering the sequence of paste operations -- but I don't officially recommend it.

It's nice that this syntax doesn't assume gliders, or any other particular pasted pattern. It just occurred to me that there's a tricky limitation with using this syntax for *WSSes, though. Not only would you be limited to just one of the three types of *WSSes, but you'd also be limited to just one of the two possible colors of spaceship, for each lane.

I don't see an easy way around this, though. It would need a more complicated syntax with three parameters in each group -- or each phase and type would have to be listed separately using the current syntax, but the actual pasting would be interleaved rather than consecutive, which I'm fairly sure is forbidden by the current design.
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: August 29th, 2023, 2:35 pm Some of my slow-salvo optimization scripts would effectively generate negative numbers for time deltas. It would be kind of entertaining if you supported those, too -- basically re-ordering the sequence of paste operations -- but I don't officially recommend it.
This is fine since LifeViewer doesn't care which order paste operations are defined. The only place where order matters is if you define multiple pastes to happen at the same generation. In which case they happen in the order they were defined in the script. This could be important if you're doing funky paste modes.

I'll remove the restriction of >0 time definition.
dvgrn wrote: August 29th, 2023, 2:35 pm It's nice that this syntax doesn't assume gliders, or any other particular pasted pattern. It just occurred to me that there's a tricky limitation with using this syntax for *WSSes, though. Not only would you be limited to just one of the three types of *WSSes, but you'd also be limited to just one of the two possible colors of spaceship, for each lane.

I don't see an easy way around this, though. It would need a more complicated syntax with three parameters in each group -- or each phase and type would have to be listed separately using the current syntax, but the actual pasting would be interleaved rather than consecutive, which I'm fairly sure is forbidden by the current design.
The latter is supported. Just define each phase in its own list.
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1043 is now available on the lazyslug server

Fixes in this build:
  • allow negative time delta for slow salvos
  • fixed Bounding Box for Identify [R]History patterns with state 6
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 1044 is now available on the lazyslug server

Enhancements in this build:
  • improved Identify performance for [R]History patterns
  • Settings->Advanced->State Number now toggles displaying raw state number
Fixes in this build:
  • fixed Identify not displaying "Life ended" message when [[ LOOP ]] defined
  • fixed Fast Lookup not being triggered for RuleTable patterns with 5 to 7 states
  • fixed Identify with multi-state patterns
  • fixed Identify and Bounded Grids
  • fixed [[ COLOR ]] error for [R]History lower case state names
  • fixed state 3 cells for [R]Extended in Identify
  • fixed [R]History no-trail states that get killed at the grid boundary
  • fixed AutoFit on Bounded Grids with an infinite dimension
  • fixed dead Triangular cells not drawing at grid edge
  • fixed HistoryFit for patterns with just pasted cells
  • fixed minimum delete radius for HROT and Extended algos
User avatar
rowett
Moderator
Posts: 4596
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Do you think it's worth adding [R]Extended to Golly's Super algo?
Locked