Life tag testing

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

Re: Life tag testing

Post by rowett »

Build 646 is now available on the lazyslug server

Fixes in this build:
  • make 2-state HROT selection box consistent with Life-like equivalent
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 647 is now available on the lazyslug server

Fixes in this build:
  • fixed an issue with edited state 6 [R]History cells not working after Reset
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 648 is now available on the lazyslug server

Enhancements in this build:
  • Labels support variable substitution with #H for reversible generation (for PCA and Margolus rules)
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 649 is now available on the lazyslug server

Enhancements in this build:
  • Labels support variable substitution with #I for relative generation and #J for relative reversible generation
Fixes in this build:
  • fixed an issue with Margolus rules incrementing generation count when Stats display enabled
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 650 is now available on the lazyslug server

Fixes in this build:
  • fixed an issue when all cells died during Identify
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 651 is now available on the lazyslug server

Fixes in this build:
  • don't reset playback direction on soft reset
User avatar
dvgrn
Moderator
Posts: 12053
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

Here's a report of some trouble with #CXRLE tags in bounded grids.
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

dvgrn wrote: November 6th, 2021, 9:43 am Here's a report of some trouble with #CXRLE tags in bounded grids.
Thanks, I'll take a look.
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 652 is now available on the lazyslug server

Enhancements in this build:
  • extend TRACK range to +/- 8
  • create canvas if it doesn't exist
Fixes in this build:
  • disable STARTFROM notifications if NOREPORT is enabled
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 653 is now available on the lazyslug server

Fixes in this build:
  • potential fix for reported flickering on ChromeBook
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 654 is now available on the lazyslug server

Fixes in this build:
  • reverted create canvas if missing change
User avatar
dvgrn
Moderator
Posts: 12053
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

This just came up on Discord: the "cycling" OFF states in LifeSuper don't seem to cycle any more --

Code: Select all

x = 10, y = 6, rule = LifeSuper
10T$T8.T$T8.V$T8.V$R8.V$8R2V!
(At least, I was pretty sure one of our test patterns included some of this behavior, though not this exact pattern of course.)
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

dvgrn wrote: November 13th, 2021, 11:17 pm This just came up on Discord: the "cycling" OFF states in LifeSuper don't seem to cycle any more --

Code: Select all

x = 10, y = 6, rule = LifeSuper
10T$T8.T$T8.V$T8.V$R8.V$8R2V!
(At least, I was pretty sure one of our test patterns included some of this behavior, though not this exact pattern of course.)
Fixed. The issue was that with only OFF states in the pattern LifeViewer stopped calculating future generations since there are no live states.
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 655 is now available on the lazyslug server

Fixes in this build:
  • fix LifeSuper patterns with only dead cells stopping generating
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Code: Select all

x = 9, y = 5, rule = B3/S23
$bo3b3o$b3o2bo$2bo!
[[ TILT 1 ZOOM 8 AUTOSTART ]]
User avatar
dvgrn
Moderator
Posts: 12053
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

rowett wrote: November 16th, 2021, 1:20 pm[3D view]
Ha, nice! Was this a response to the New Colorful Game of Life Simulator?

(And are there any new secret keyboard controls yet, for changing the camera angle in the third dimension? I see that the arrow keys and < and > still work for the usual ANGLE and panning changes.)

It seems to work fine with different themes, and even in rainbow mode with multiple layers.
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

dvgrn wrote: November 16th, 2021, 2:46 pm Ha, nice! Was this a response to the New Colorful Game of Life Simulator?
It's been planned for a long time but that was certainly a catalyst. I downloaded the simulator and it is very pretty (especially with the lighting models used). However it's also very slow when you increase the grid size a little bit.

For LifeViewer the only secret key for now is ; which toggles the "3D" projection on and off. More to follow as I get time.
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 656 is now available on the lazyslug server

Enhancements in this build:
  • added experimental mode 7 support
  • script command [[ MODE7 ]] enables mode 7 display
  • hotkey ; toggles mode7 on/off
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 657 is now available on the lazyslug server

Enhancements in this build:
  • added hotkeys Ctrl-[ and Ctrl-] to change tilt angle for mode7 display
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 658 is now available on the lazyslug server

Enhancements in this build:
  • added experimental support to tilt the camera for square grids
    • script command [[ TILT <0.0..5.0> ]] defines tilt amount (can be used in POIs and Waypoints)
    • hotkeys ' and / to increase and decrease tilt
    • new range control in Settings menu to set tilt amount
  • hotkey ? now toggles cell shape (for hexagonal and triangular grids)
User avatar
dvgrn
Moderator
Posts: 12053
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

Okay, here goes for a better spec for recursive pattern descriptions. We can currently do

Code: Select all

x = 1, y = 1, rule = B3/S23
!
[[ RLE eater o$3o$3bo$2b2o!
RLE herschel 2bo$obo$3o$o!
RLE halfgun 39b2o76b2o$39bo24b2o51b2o$40b3o6b2o13bo17b2o$2b2ob2o35bo6b2o11bobo17bo$2bo3bo55b2o19bo$3b3o76b2o$91b2o$3b3o84bobo$2bo3bo84bo$2b2ob2o110b2o$31b2o83bo2bo$31b2o46b2o36b2o$79b2o29b2o$110b2o$3bo$b3o$o$2o32b2o$35bo$
15b2o15b3o13b2o3b2o$15bo16bo16bo3bo69b2o$16b3o27b3o5b3o66b2o$18bo27bo9bo62b2o$119bobo$121bo$121b2o$108b2o$108b2o3$106b2o$106b2o! 
PASTE halfgun
PASTE halfgun 159 -3 FLIP
PASTE herschel 61 11
PASTE eater 87 -25
STEP 5 AUTOSTART ]]
But now we want to be able to define "halfgun", let's say as

Code: Select all

x = 1, y = 1, rule = B3/S23
!
#C halfgun definition
[[ RLE herscheltransmitter 2b2ob2o$2bo3bo$3b3o2$3b3o$2bo3bo$2b2ob2o5$3bo$b3o$o$2o2$15b2o$15bo$16b3o$18bo!
RLE fx153 25b2o$2o24bo$bo13b2o6b3o$bobo11b2o6bo$2b2o6$33b2o$33b2o6$30b2o$30bo$11b2o3b2o13b3o$12bo3bo16bo$9b3o5b3o$9bo9bo!
RLE herschelreceiver 38b2o$38b2o$3b2o$3bo$4bo$3b2o$12b2o$11bobo$12bo$38b2o$37bo2bo$2o36b2o$2o29b2o$31b2o7$44b2o$44b2o$40b2o$40bobo$42bo$42b2o$29b2o$29b2o3$27b2o$27b2o!
PASTE herscheltransmitter
PASTE fx153 65 -3 FLIPX
PASTE herschelreceiver 79 -3 ]]
But then those pieces in turn can be split up into their component parts, e.g.,

Code: Select all

x = 1, y = 1, rule = B3/S23
!
#C herscheltransmitter definition
[[ RLE deadsparkcoil 2ob2o$o3bo$b3o2$b3o$o3bo$2ob2o!
RLE eater o$3o$3bo$2b2o!
PASTE deadsparkcoil
PASTE eater 1 11 FLIPX
PASTE eater 16 19 FLIP ]]
Now there's a duplicate definition of "eater" between these three chunks, and we don't really want to do any but the three PASTE operations in the first chunk. So let's combine all these, something like this:

Code: Select all

x = 1, y = 1, rule = B3/S23
!
[[ RLE fx153 25b2o$2o24bo$bo13b2o6b3o$bobo11b2o6bo$2b2o6$33b2o$33b2o6$30b2o$30bo$11b2o3b2o13b3o$12bo3bo16bo$9b3o5b3o$9bo9bo!
RLE herschelreceiver 38b2o$38b2o$3b2o$3bo$4bo$3b2o$12b2o$11bobo$12bo$38b2o$37bo2bo$2o36b2o$2o29b2o$31b2o7$44b2o$44b2o$40b2o$40bobo$42bo$42b2o$29b2o$29b2o3$27b2o$27b2o!
RLE eater o$3o$3bo$2b2o!
RLE herschel 2bo$obo$3o$o!
DEF herscheltransmitter deadsparkcoil UNION eater 1 1 FLIPX UNION eater 16 19 FLIP DELTA 2 0
DEF halfgun herscheltransmitter UNION fx153 65 -3 FLIPX UNION herschelreceiver 79 -3 DELTA 0 3
DEF p1092gun halfgun UNION halfgun 159 -3 FLIP UNION herschel 61 11 UNION eater 87 -25
PASTE p1092gun
STEP 5 AUTOSTART ]]
I've added new DEF and UNION and DELTA keywords, but these are just placeholders showing where the new functionality is needed. DEF could probably be just the old RLE command. The DELTA command isn't absolutely needed, but it would be nice to have the option to build a combined pattern, then apply a transformation to the whole pattern -- instead of applying individual transformations to each of the component parts.

An equivalent would be

DEF herscheltransmittertemp deadsparkcoil UNION eater 1 1 FLIPX UNION eater 16 19 FLIP
DEF herscheltransmitter herscheltransmittertemp 2 0

-- there just needs to be room for the subpattern after the last UNION to either have following translation/transformation parameters, or to not have any such parameters.
User avatar
dvgrn
Moderator
Posts: 12053
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Life tag testing

Post by dvgrn »

That was enough for one post, so here's the other item I mentioned via chat.

Very often you want to make slight changes to a combined pattern -- use an alternate form of some subpattern, weld pieces together, etc. That could be something like this -- see the third line from the end:

Code: Select all

x = 1, y = 1, rule = B3/S23
!
[[ RLE fx153 25b2o$2o24bo$bo13b2o6b3o$bobo11b2o6bo$2b2o6$33b2o$33b2o6$30b2o$30bo$11b2o3b2o13b3o$12bo3bo16bo$9b3o5b3o$9bo9bo!
RLE herschelreceiver 38b2o$38b2o$3b2o$3bo$4bo$3b2o$12b2o$11bobo$12bo$38b2o$37bo2bo$2o36b2o$2o29b2o$31b2o7$44b2o$44b2o$40b2o$40bobo$42bo$42b2o$29b2o$29b2o3$27b2o$27b2o!
RLE eater o$3o$3bo$2b2o!
RLE herschel 2bo$obo$3o$o!
DEF herscheltransmitter deadsparkcoil UNION eater 1 1 FLIPX UNION eater 16 19 FLIP DELTA 2 0
DEF halfgun herscheltransmitter UNION fx153 65 -3 FLIPX UNION herschelreceiver 79 -3 DELTA 0 3
DEF p1092gun halfgun UNION halfgun 159 -3 FLIP UNION eater 87 -25 XOR 3b2o$2bo2bo$o2b2o$obo$2o! 114 8

PASTE p1092gun
STEP 5 AUTOSTART ]]
The "XOR 3b2o$2bo2bo$o2b2o$obo$2o! 114 8" is supposed to overlap the beehive inside "halfgun", which is really the beehive inside "herschelreceiver" -- the beehive cells should turn off while at the same time the glider cells turn on.

As before, there are lots of other syntax options. This method produces the required "XOR patch" functionality by making XOR into an alternate command along the same lines as UNION.
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 659 is now available on the lazyslug server

Enhancements in this build:
  • initial work on annotation positioning with TILT
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 660 is now available on the lazyslug server

Fixes in this build:
  • only allocate TILT buffer on first use
User avatar
rowett
Moderator
Posts: 4597
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Life tag testing

Post by rowett »

Build 661 is now available on the lazyslug server

Enhancements in this build:
  • Select All with an empty pattern now cancels any selection
  • Identify now displays generation that pattern died
Fixes in this build:
  • stop Identify iterating first generation with an empty pattern
Locked