Pattern viewer for forum threads

For discussion directly related to ConwayLife.com, such as requesting changes to how the forums or home page function.
User avatar
muzik
Posts: 6604
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

Many oscillators with identical mods to periods are now being reported with a mod transform again:

Code: Select all

x = 4, y = 4, rule = B3/S23
2b2o$3bo$o$2o!
I wonder how easy it would be to implement support for kinetic symmetry detection in Identify at this point. For oscillators, the mod transforms already narrow it down greatly (for example, Rot90CW and Rot90CCW indicate either a nrf or nrv oscillstor, and we can detect which one it is simply by checking whether the total bounding box is odd or even). The main thing that needs to be added before this is feasible is detecting the symmetries of still lifes and of oscillators that aren't time symmetric. Here's the wiki page on kinetic symmetries, a list of examples of each type in B3/S23, and almost minimal examples for almost every period up to including 16.

Identifying the following pattern (as opposed to running it normally) will cause all of the history trail cells to seemingly vanish as long as you're not using rectangular cells. Pressing the AutoFit or Fit Pattern buttons after identifying it also causes strange behaviour since it goes to the top left of the grid for some reason.

Code: Select all

x = 5, y = 5, rule = B2/S2H
o$2o$bo2$obobo!
[[ ZOOM 16 X -128 Y -256 STARTFROM 370 MAXGRIDSIZE 9 ]]
Margolus still lifes are detected as p2 once more:

Code: Select all

x = 1, y = 1, rule = M0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
o!
It was mentioned a month or so ago that strict volatility support for Margolus and two-state ruletables hadn't yet reached the top of the backlog. Since support for the former has now been added, is support for the latter still planned at all?

Code: Select all

x = 1, y = 3, rule = Life
o$o$o!

Code: Select all

x = 1, y = 3, rule = Life-RuleTree
o$o$o!
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
rowett
Moderator
Posts: 4586
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

muzik wrote: March 27th, 2023, 8:20 am Many oscillators with identical mods to periods are now being reported with a mod transform again
Fixed, thanks.
muzik wrote: March 27th, 2023, 8:20 am Identifying the following pattern (as opposed to running it normally) will cause all of the history trail cells to seemingly vanish as long as you're not using rectangular cells
Fixed, thanks.
muzik wrote: March 27th, 2023, 8:20 am Margolus still lifes are detected as p2 once more
Fixed, thanks.
User avatar
rowett
Moderator
Posts: 4586
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

muzik wrote: February 24th, 2023, 5:49 pm Would it be possible for "Info Bar" to be moved from Display into Advanced, and "Integer Zoom" to be moved from General into Display?
Yes, done.

Also I have added Settings->General->Fit Selection which fits the selection to the window.
User avatar
muzik
Posts: 6604
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

Another phantom cell issue: this pattern with a PASTE command doesn't paste the requested cells as expected. The T menu shows a population of 3, but no cells are visible, and Select All causes a 1x1 selection to appear at the origin. [R]History is seemingly unaffected.

Code: Select all

x = 2, y = 2, rule = B3/S23
!
[[ SHOWGENSTATS MAXGRIDSIZE 9 GRID X -255 PASTE 2o$bo! -254 0 ]]

Code: Select all

x = 2, y = 2, rule = B3/S23History
!
[[ SHOWGENSTATS MAXGRIDSIZE 9 GRID X -255 PASTE 2o$bo! -254 0 ]]
I also don't know if cross surfaces and Klein bottles work right for PCA. This pattern places a N cell at the twisted edge. When advancing to T=2. it crosses the boundary. The position is flipped as expected, but it still becomes a S cell as if it weren't flipped. Would I be correct in expecting this to become a N cell instead?

Code: Select all

x = 5, y = 2, rule = 2PCA4,0,2,4,12,8,5,9,7,1,6,10,11,3,13,14,15:K5,5*
b$4.A!
[[ GRID ]]
Also note that the above example shows that bounded grids appear to be discentered for PCA rules.
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
muzik
Posts: 6604
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

Deathforcer cells do not appear to work in [R]History when at the edge of the grid. Draw a state-6 cell at the position denoted by the arrow and then press Play - none of the cells adjacent to it end up being killed. This behaviour is not present in [R]Super (the setup will have to be recreated manually since this test case will not work due to the bug in the above post).

Code: Select all

x = 2, y = 2, rule = B3/S23History
!
[[ SHOWGENSTATS MAXGRIDSIZE 9 GRID X -255 PASTE 2o$bo! -255 0 ARROW -256 -3 -256 -0 32 ]]
If a [R]History rule is specified and the pattern contains Niemiec cells, the pattern cannot be loaded and an error will be thrown up (and also a New Pattern message, for some reason) since LifeViewer will attempt to use the rule "[R]HistorySuper", which is invalid. It'd be expected that the [R]History part of the rulestring would be ignored if Niemiec cells are present, and the pattern would just be loaded in [R]Super instead as if the specified rule was just B3/S23.

Code: Select all

x = 3, y = 1, rule = B3/S23History
xyz!
[[ SHOWGENSTATS ]]
If we attempt to use [R]History with a general-range rule, which is not yet supported, the error message will correctly state that [R]History isn't supported with HROT. If we attempt the same thing with [R]Super, however, it will incorrectly state it's incompatible with Generations, rather than HROT.

Code: Select all

x = 2, y = 2, rule = R1,C2,S2-3,B3History
2o$2o!

Code: Select all

x = 2, y = 2, rule = R1,C2,S2-3,B3Super
2o$2o!

Code: Select all

x = 2, y = 2, rule = R1,C2,S2-3,B3
2x$yz!
The T menu states that the following rule has an alias which is just "Super", which seems wrong. For 2-state "Generations" rules of the form "s/b/2", would it make more sense for the rulestring to be converted into the "Bb/Ss" format and for this to be used instead of "s/b/2", assuming there's no important difference in processing/engine/etc. for 2-state "Generations" and normal 2-state rules?

Code: Select all

x = 3, y = 1, rule = 23/3/2
xyz!
[[ SHOWGENSTATS ]]
The following would become LifeHistory and LifeSuper in such a case:

Code: Select all

x = 3, y = 1, rule = 23/3/2History
3o!
[[ SHOWGENSTATS ]]

Code: Select all

x = 3, y = 1, rule = 23/3/2Super
3o!
[[ SHOWGENSTATS ]]
Using script commands to change the color of [R]History marked states will set a custom THEME, as can be seen in the Themes menu and in Help > Info > Theme. However, changing theme will not change the color of the marked states back to their defaults as would be expected like is the case with other state colors when customized. Can this be fixed so that [R]History marked cell theme support works properly?

Code: Select all

x = 7, y = 5, rule = LifeHistory
3.C2.C$2.C$2.C3.C$2.4C!
[[ COLOR mark1 128 128 255 ]]
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
muzik
Posts: 6604
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

For PCA rules with a bounded grid which is infinite in one direction, patterns just don't work. Everything dies (although not visually) at generation 1, and any edits made after the initial pattern strobe in and out of existence during playback. Are infinite bounded grids unsupported for PCA, or are they supported and playback just isn't working right?

Code: Select all

x = 7, y = 7, rule = 2PCA4,0,4,8,12,1,10,9,13,2,6,5,14,3,7,11,15:T20,0
7O$7O$7O$7O$7O$7O$7O!
How is NOSTEPBACK meant to work for reversible rules? I assume the way it does currently, which is basically "disallow single steps in the opposite direction of the current playback direction"?

Code: Select all

x = 5, y = 5, rule = 2PCA4,0,4,8,12,1,10,9,13,2,6,5,14,3,7,11,15:T5
2.A2$H3.B2$2.D!
[[ NOSTEPBACK REVERSESTART ]]
A low-priority feature request: there should be an option somewhere for reversible rules that changes the playback controls to that of non-reversible rules, such that the "step back" button actually reverts the pattern to the previously computed generation, rather than running the pattern in the reverse rule for one generation. There have been a few times when I've actually wanted to go back to the previous generation, particularly in cases like the following where a spaceship hits the boundary and dies. Stepping back by running the reverse rule obviously doesn't bring the spaceship back, and the undo button is unwieldy and will often undo considerably past the target generation. An option of some sort to switch between the "reversible" playback controls and "standard" playback controls, probably under Advanced, would be a welcome addition.

Code: Select all

x = 6, y = 6, rule = 2PCA4,0,4,8,12,1,10,9,13,2,6,5,14,3,7,11,15:P40,20
2.2A$.4A$6A$6A$.4A$2.2A!
[[ AUTOSTART ]]
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
muzik
Posts: 6604
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

I've had an idea for a while for a second type of period map which could be implemented for oscillators: in the map for a given oscillator of period n, each cell would be colored depending on how many of those n generations that cell was alive for.

Here, for example, is a period-3 caterer. The period map for this shows where the period-1 cells are and period-3 cells are, but doesn't actually make a distinction between the two possible types of p3 cells: the ones alive for one out of three generations, and the ones alive for two out of three generations.

Code: Select all

x = 8, y = 6, rule = B3/S23
2bo$o3b4o$o3bo$o$3bo$b2o!
This proposed period map variant would make such a distinction, however. Here's an example of how it would look. Cells alive for 0/3 generations are the background, those alive for 1/3 generations are one color and those alive for 2/3 generations are another. Those alive for 3/3 are stator cells and are colored accordingly.

Code: Select all

x = 9, y = 6, rule = none
3.B2.BC$.BCB5C$BAC2BA.C$.B.B$2.2CB$2.CA!
[[ GRID COLOR GRID #505050 COLOR GRIDMAJOR #505050 COLOR BACKGROUND Black
COLOR 1 #A8A8A8
COLOR 2 #FF6666
COLOR 3 #29FFFF
COLOR LABEL #FF6666 LABEL -4 2 24 "█ 1"
COLOR LABEL #29FFFF LABEL -4 3 24 "█ 2"
COLOR LABEL #A8A8A8 LABEL -4 4 24 "█ 3" ]]
For another example, here's one of those MarBlocks oscillators. A period-4 oscillator, it contains cells that oscillate at period 2 and 4, as well as having stator cells.

Code: Select all

x = 6, y = 10, rule = B3i/S5i
2b2o$2b2o$2o2b2o$2o2b2o$2o2b2o$2o2b2o$2o2b2o$2o2b2o$2b2o$2b2o!
Note that, for period-4 oscillators, this kind of map would not distinguish between period-2 cells and period-4 cells that are alive for two out of four generations. It would, however, distinguish between different types of period-4 cells, which the current subperiod maps do not.

Code: Select all

x = 10, y = 10, rule = none
4.2A$3.A2BA$2.BC2BCB$.ACD2CDCA$A2BC2BC2BA$A2BC2BC2BA$.ACD2CDCA$2.BC2B
CB$3.A2BA$4.2A!
[[ GRID COLOR GRID #505050 COLOR GRIDMAJOR #505050 COLOR BACKGROUND Black
COLOR 1 #FF6666
COLOR 2 #29FF29
COLOR 3 #0000EB
COLOR 4 #A8A8A8
COLOR LABEL #FF6666 LABEL -4 3 24 "█ 1"
COLOR LABEL #29FF29 LABEL -4 4 24 "█ 2"
COLOR LABEL #0000EB LABEL -4 5 24 "█ 3"
COLOR LABEL #A8A8A8 LABEL -4 6 24 "█ 4" ]]
So far, we've only been dealing with basic low-period cases as simple examples. It's already pretty obvious what cells are which simply by playing the patterns and looking at the relative "brightnesses" of cells. This proposed map type will make it easier to see properties of cells in oscillators with slightly higher periods where the proportion of the period each cell stays alive for isn't immediately obvious. Here, for example, is the classic p15 pentadecathlon:

Code: Select all

x = 3, y = 10, rule = B3/S23
bo$bo$obo$bo$bo$bo$bo$obo$bo$bo!
Assuming I counted everything correctly, its variant map should look like this.

Code: Select all

x = 9, y = 16, rule = none
4.C$3.CFC$3.FGF$2.CBIBC$2.EFHFE$.ABIGIBA$.ABEGEBA$2AB3DB2A$2AB3DB2A$.
ABEGEBA$.ABIGIBA$2.EFHFE$2.CBIBC$3.FGF$3.CFC$4.C!
[[ GRID COLOR GRID #505050 COLOR GRIDMAJOR #505050 COLOR BACKGROUND Black
COLOR 1 #FF6666
COLOR 2 #FFB829
COLOR 3 #9CEB00
COLOR 4 #00AD00
COLOR 5 #66FFCC
COLOR 6 #29B8FF
COLOR 7 #0000EB
COLOR 8 #7400AD
COLOR 9 #FF66CC
COLOR LABEL #FF6666 LABEL -4 4 24 "█ 1"
COLOR LABEL #FFB829 LABEL -4 5 24 "█ 2"
COLOR LABEL #9CEB00 LABEL -4 6 24 "█ 3"
COLOR LABEL #00AD00 LABEL -4 7 24 "█ 4"
COLOR LABEL #66FFCC LABEL -4 8 24 "█ 5"
COLOR LABEL #29B8FF LABEL -4 9 24 "█ 6"
COLOR LABEL #0000EB LABEL -4 10 24 "█ 7"
COLOR LABEL #7400AD LABEL -4 11 24 "█ 8"
COLOR LABEL #FF66CC LABEL -4 12 24 "█ 9" ]]
This kind of map would make analysing useful sparker oscillators easier: if a cell near the edge is only on for one generation, that cell has potential for interactions with other oscillators to allow for hassling, LCMs and others. High-traffic cells, in comparison, would be less suited for such applications and can be avoided.

----

Back to issues: for general-range rules, the neighbourhood range which is reported when mousing over the rule name in the T menu can persist into other viewers that contain a pattern using the hexagonal grid. I thought this was exclusive to the none rule a while ago, but it appears to apply in general. Open the first of the two viewers, move the mouse over the rule name at the bottom left, and note the reported neighbourhood. Then open the viewer below it, and then reopen the first one. Despite the input pattern not having changed, the reported neighbourhood is different.

Code: Select all

x = 3, y = 3, rule = B/S0123456H
2o$3o$b2o!
[[ SHOWGENSTATS ]]

Code: Select all

x = 7, y = 5, rule = R5,C0,M1,S34..58,B34..45,NM
7o$7o$7o$7o$7o!
[[ SHOWGENSTATS ]]
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
rowett
Moderator
Posts: 4586
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

muzik wrote: March 27th, 2023, 12:14 pm If a [R]History rule is specified and the pattern contains Niemiec cells, the pattern cannot be loaded and an error will be thrown up (and also a New Pattern message, for some reason) since LifeViewer will attempt to use the rule "[R]HistorySuper", which is invalid.
Fixed, thanks.
muzik wrote: March 27th, 2023, 12:14 pm If we attempt to use [R]History with a general-range rule, which is not yet supported, the error message will correctly state that [R]History isn't supported with HROT. If we attempt the same thing with [R]Super, however, it will incorrectly state it's incompatible with Generations, rather than HROT.
Fixed, thanks.
muzik wrote: March 27th, 2023, 12:14 pm The T menu states that the following rule has an alias which is just "Super"
Fixed, thanks.
muzik wrote: March 27th, 2023, 12:14 pm Using script commands to change the color of [R]History marked states will set a custom THEME, as can be seen in the Themes menu and in Help > Info > Theme. However, changing theme will not change the color of the marked states back to their defaults as would be expected like is the case with other state colors when customized.
Fixed, thanks.
User avatar
rowett
Moderator
Posts: 4586
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

muzik wrote: March 27th, 2023, 2:34 pm For PCA rules with a bounded grid which is infinite in one direction, patterns just don't work
Fixed, thanks.
muzik wrote: March 27th, 2023, 2:34 pm How is NOSTEPBACK meant to work for reversible rules?
NOSTEPBACK disables the Undo/Redo system which means no previous generations are available.

For non-reversible rules the previous generations are available and the Step Back button uses this to go back. If you enable NOSTEPBACK then Step Back is disabled since it needs the history.

For reversible rules the Step Forward and Step Back buttons both create a new generation, one using the standard rule and one using the reverse rule (depending on the current playback direction), so no history is needed.
User avatar
rowett
Moderator
Posts: 4586
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

muzik wrote: March 27th, 2023, 5:05 pm for general-range rules, the neighbourhood range which is reported when mousing over the rule name in the T menu can persist into other viewers that contain a pattern using the hexagonal grid
Fixed, thanks.
User avatar
muzik
Posts: 6604
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

rowett wrote: October 31st, 2022, 10:34 am Hexagonal Selections

Can anyone point me at a tool or paper that describes a good way of making selections on a hexagonal grid?
I'm not sure if the following would be of any use: https://codegolf.stackexchange.com/ques ... gonal-grid

I've been considering creating a thread to investigate how to generalize the concept of a bounding box to these grids, since as we all know rectangles simply don't suffice.
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
muzik
Posts: 6604
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

rowett wrote: March 28th, 2023, 5:04 am
muzik wrote: March 27th, 2023, 12:14 pm Using script commands to change the color of [R]History marked states will set a custom THEME, as can be seen in the Themes menu and in Help > Info > Theme. However, changing theme will not change the color of the marked states back to their defaults as would be expected like is the case with other state colors when customized.
Fixed, thanks.
On that topic, I checked Help > Scripts > Colours and it lists the [R]History states in capitals. Customising the colors with these does not seem to work, however. I don't know if it did previously.

Code: Select all

x = 7, y = 5, rule = LifeHistory
3.C2.C$2.C$2.C3.C$2.4C!
[[ COLOR MARK1 128 128 255 ]]
Changing via state number works as expected:

Code: Select all

x = 7, y = 5, rule = LifeHistory
3.C2.C$2.C$2.C3.C$2.4C!
[[ COLOR 3 128 128 255 ]]
Could Help > Themes be made to display the colors of each [R]History state since they now technically depend on themes as a result of the above fix? I can also provide colors for [R]History cells if having them change according to the default themes is desirable.

On a related note, custom themes can be created if we change the colors of states that don't exist. For 2-state rules, such as the following, no script error is produced either unless we specify a number below 0 or above 255, but even exceeding those numbers creates a custom theme for some reason. I'd expect that for 2-state rules, changing the colors of states 2-255 should give an error message just like it does for 256+, and changing the color of any state that does not exist in the rule should not create a custom theme either.

Code: Select all

x = 5, y = 4, rule = B3/S23
bo2bo$o$o3bo$4o!
[[ COLOR 2 Green ]]

Code: Select all

x = 5, y = 4, rule = B3/S23
bo2bo$o$o3bo$4o!
[[ COLOR 3 Green ]]

Code: Select all

x = 5, y = 4, rule = B3/S23
bo2bo$o$o3bo$4o!
[[ COLOR 255 Green ]]

Code: Select all

x = 5, y = 4, rule = B3/S23
bo2bo$o$o3bo$4o!
[[ COLOR 256 Green ]]
This inconsistency also seems to have returned.
muzik wrote: February 8th, 2023, 6:16 amBack on the topic of themes and cell color customization, the results of these commands are different:

Code: Select all

x = 10, y = 8, rule = 23/3/17
2.3A$.ABDBA$A2BE2A$.AGJDL3.P$D2GLM3.O$.EG2J3ON$2.FGJIOM$4.H.L!
[[ COLOR DEAD DeepSkyBlue ]]

Code: Select all

x = 10, y = 8, rule = 23/3/17
2.3A$.ABDBA$A2BE2A$.AGJDL3.P$D2GLM3.O$.EG2J3ON$2.FGJIOM$4.H.L!
[[ COLOR dead DeepSkyBlue ]]
And another inconsistency: for 2-state rules where the dead color is the same as the background color, increasing the amount of layers will cause those otherwise invisible history cells to remain the same as the background color. However, increasing the state count causes them to appear darker than the background. Since these themes are intended to not show history, I don't think that they should even be shown in layers in the first place.

Code: Select all

x = 2, y = 4, rule = /2ae/2
o$bo$bo$o!
[[ STARTFROM 5 GRID THEME Inverse LAYERS 10 ]]

Code: Select all

x = 2, y = 4, rule = /2ae/3
o$bo$bo$o!
[[ STARTFROM 5 GRID THEME Inverse LAYERS 10 ]]
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
muzik
Posts: 6604
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

rowett wrote: March 4th, 2023, 5:51 amRegarding bounding box issues there is a backlog item awaiting implementation to make them consistent across rule families (including HistoryFit and State1Fit, thought the latter will probably become AliveFit to accommodate [R]Super and [R]History).
A thought I've had related to "AliveFit": it'd be useful if, when editing [R]History and [R]Super patterns, there existed some way to switch to a "2-state" editor mode. In this mode, Select All would only count alive cells rather than every cell that isn't state 0, making changes to selections would only count alive cells, and so on. This probably isn't a high priority suggestion, but there's been a small handful of times where I've been caught out by the functional differences between [R]Standard and [R]History/[R]super when editing patterns.
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
rowett
Moderator
Posts: 4586
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

muzik wrote: March 28th, 2023, 5:28 am custom themes can be created if we change the colors of states that don't exist. For 2-state rules, such as the following, no script error is produced either unless we specify a number below 0 or above 255, but even exceeding those numbers creates a custom theme for some reason.
Fixed, thanks.
User avatar
muzik
Posts: 6604
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

rowett wrote: March 28th, 2023, 5:58 am
muzik wrote: March 28th, 2023, 5:28 am custom themes can be created if we change the colors of states that don't exist. For 2-state rules, such as the following, no script error is produced either unless we specify a number below 0 or above 255, but even exceeding those numbers creates a custom theme for some reason.
Fixed, thanks.
Fix confirmed, however it seems to have the unintended side effect that states 2-6 in [R]History cannot have their color changed by specifying a state number, which worked in the previous build. Refer to the post above containing it.

----

In Help > Themes, is the "Rule defines n states from DYING to DYINGRAMP" off by one? For the following pattern, there's only one dying state, but it says the rule defines 2 states across that gradient. The alive state doesn't count since it doesn't use DYING (rather, for most themes, DYING is computed with it as a reference).

Code: Select all

x = 3, y = 4, rule = /2/3
.AB$AB$AB$.AB!
The rule "B3/S23H" appears to be assigned the alias "LifeH" due to the preceding "B3/S23" being interpreted as "Life". However, LifeH is not an actual alias listed in LifeViewer, so this is probably wrong.

Code: Select all

x = 3, y = 3, rule = B3/S23H
o$2bo$bo!
[[ SHOWGENSTATS ]]

Code: Select all

x = 3, y = 3, rule = B3/S23H
x$2by$bz!
[[ SHOWGENSTATS ]]
Also, hexagonal bounded grids aren't centered perfectly on first load. The vertical offset is the most obvious. Inspecting how far the horizontal tips are from the edges of the viewer window shows that there's also some misalignment there.

Code: Select all

x = 1, y = 1, rule = B/SH:P11
b!
[[ GRID THEME Inverse ]]
A more minor hexagonal grid fitting issue: for this pattern, if we click AutoFit or Fit Pattern, it's centered correctly at T=380, but unaccountably shifts slightly to the right at T=381 if we try to fit it after it dies first.

Code: Select all

x = 5, y = 5, rule = B2/S2H
o$2o$bo2$obobo!
[[ ZOOM 16 X -128 Y -256 STARTFROM 380 MAXGRIDSIZE 9 ]]
And finally, if we use this theme from a while ago, one history trail cell appears to be missing at T=381: there are 11 deaths, but only 10 visible dead trail cells.

Code: Select all

x = 5, y = 5, rule = B2/S2H
o$2o$bo2$obobo!
[[ COLOR ALIVE 255 255 128 COLOR ALIVERAMP 255 255 128 HISTORYSTATES 2 COLOR BACKGROUND 0 0 0 COLOR DEAD 192 0 0 COLOR DEADRAMP 0 0 0 SHOWGENSTATS ZOOM 16 X -128 Y -256 STARTFROM 380 MAXGRIDSIZE 9 ]]
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
rowett
Moderator
Posts: 4586
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

toroidalet wrote: March 21st, 2023, 3:57 pm Certain patterns on Klein bottles don't seem to work properly:

Code: Select all

x = 10, y = 10, rule = B3/S23:K10*+1,10
9$7b3o!
Fixed, thanks.
User avatar
rowett
Moderator
Posts: 4586
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

muzik wrote: December 23rd, 2022, 10:29 pm for patterns which have a remarkably high number of differing cell periods, the legend can end up going off the bottom of the viewer rendering some unreadable
You can now scroll the legend with arrow buttons or Page Up and Page Down. The Home key will go to the top and End will go to the bottom.
User avatar
muzik
Posts: 6604
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

rowett wrote: March 29th, 2023, 1:28 pm
muzik wrote: December 23rd, 2022, 10:29 pm for patterns which have a remarkably high number of differing cell periods, the legend can end up going off the bottom of the viewer rendering some unreadable
You can now scroll the legend with arrow buttons or Page Up and Page Down. The Home key will go to the top and End will go to the bottom.
Can it be made scrollable via click/tap and drag like the Help pages are?
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
muzik
Posts: 6604
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

In Help > Info > Theme, could the "type" of theme in use be displayed? Each theme has a different definition depending on what rule is currently in use, so saying which one is currently applied in that section is something I'd find useful. There would be the following possibilities:
- one for most 2-state rules, for the range-1 and general-range algorithm, including [R]History
- one for Generations rules, also for the range-1 and general-range algorithms
- one for Margolus rules, which differ from the usual 2-state themes since GRIDMAJOR is set to 2 if above 2 for each theme
- one for PCA rules

Code: Select all

x = 2, y = 2, rule = B/S012345678
2o$2o!

Code: Select all

x = 2, y = 2, rule = 012345678//3
2o$2o!

Code: Select all

x = 2, y = 2, rule = M0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
2o$2o!

Code: Select all

x = 2, y = 2, rule = 2PCA4,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
2o$2o!

Code: Select all

x = 2, y = 2, rule = none
2o$2o!
For Help > Themes, there's also the following two things I've been meaning to bring up for a while:

Firstly, Generations rules' themes are referred to as "Multi-state Themes" at the top of Help > Themes. "Multi-state" is a rather generic term, since there are many different types of multistate rules other than Generations. LifeViewer supports several of them. It should probably say something along the lines of "Generations Themes" there instead.

Also, for PCA themes, BACKGROUND, DEAD and DEADRAMP are listed at the top of the page, but the sixteen nonzero states are not, despite the fact that those will change from theme to theme. Those should probably be added to that list in some form.

----

For cases where a single element can have its color changed under multiple possible names, could all of those names be listed in Help > Scripts > Colours? For example, cells which are alive can be changed using "COLOR ALIVE", "COLOR alive" or "COLOR ON". However, only "COLOR ALIVE" is listed. (Customising states via state numbers is already listed a bit below it so doesn't need to be listed again.)

Code: Select all

x = 8, y = 3, rule = B3/S23
o$obo2b3o$2o!
[[ COLOR ALIVE Red STARTFROM 80 ZOOM 16 X -8 Y 10 ]]

Code: Select all

x = 8, y = 3, rule = B3/S23
o$obo2b3o$2o!
[[ COLOR ON Red STARTFROM 80 ZOOM 16 X -8 Y 10 ]]

Code: Select all

x = 8, y = 3, rule = B3/S23
o$obo2b3o$2o!
[[ COLOR alive Red STARTFROM 80 ZOOM 16 X -8 Y 10 ]]
Likewise, cells that were once alive but have since died accept "DEAD", "dead" and "HISTORY", but only "DEAD" is listed.

Code: Select all

x = 8, y = 3, rule = B3/S23
o$obo2b3o$2o!
[[ COLOR DEAD Red STARTFROM 80 ZOOM 16 X -8 Y 10 ]]

Code: Select all

x = 8, y = 3, rule = B3/S23
o$obo2b3o$2o!
[[ COLOR HISTORY Red STARTFROM 80 ZOOM 16 X -8 Y 10 ]]

Code: Select all

x = 8, y = 3, rule = B3/S23
o$obo2b3o$2o!
[[ COLOR dead Red STARTFROM 80 ZOOM 16 X -8 Y 10 ]]
Partially related, but this is inconsistent:

Code: Select all

x = 8, y = 3, rule = B3/S23History
o$obo2b3o$2o!
[[ COLOR 2 Red STARTFROM 80 ZOOM 16 X -8 Y 10 ]]

Code: Select all

x = 8, y = 3, rule = B3/S23Super
o$obo2b3o$2o!
[[ COLOR 2 Red STARTFROM 80 ZOOM 16 X -8 Y 10 ]]
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
muzik
Posts: 6604
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

I've found some other issues with tile loading that may be linked to the one from earlier you weren't able to reproduce:

Firstly, for the following patterns, create a selection starting from the dot and the center and drag it towards one of the upper corners of the board. It's possible to reach the horizontal edges, but a ceiling will be hit which the selection cannot expand past vertically. If a selection is started beyond this ceiling, this effect goes away until the viewer is restarted.

Code: Select all

x = 2, y = 2, rule = B1357/S02468
2o$2o!
[[ MAXGRIDSIZE 9 DELETERANGE 1 ZOOM -1 ]]

Code: Select all

x = 2, y = 2, rule = R1,C2,S0,2,4,6,8,B1,3,5,7,NM
2o$2o!
[[ MAXGRIDSIZE 9 DELETERANGE 1 ZOOM -1 ]]

Code: Select all

x = 2, y = 2, rule = rlrep
2o$2o!
[[ MAXGRIDSIZE 9 DELETERANGE 1 ZOOM -1 ]]
@RULE rlrep
@TABLE
n_states:2
neighborhood:Moore
symmetries:permute
0,0,0,0,0,0,0,0,1,1
0,0,0,0,0,0,1,1,1,1
0,0,0,0,1,1,1,1,1,1
0,0,1,1,1,1,1,1,1,1
1,1,0,0,0,0,0,0,0,0
1,1,1,1,0,0,0,0,0,0
1,1,1,1,1,1,0,0,0,0
1,1,1,1,1,1,1,1,0,0
Secondly, for the above patterns, evolutionary differences can be seen. The first pattern makes use of the entire grid and acts periodically, to the point where you can even use Identify on it and get a good result. The second pattern, despite the rule and initial pattern being "the same", collides with the same "floor" and "ceiling" from the selection issue, and quickly becomes asymmetric and highly chaotic. It only expands past these boundaries around 800 generations in. The third pattern, like the first, does not hit those invisible boundaries. However, when cells are killed at the edge of the grid, it happens in a less symmetric fashion than the first pattern, meaning that it cannot be identified as an oscillator. It'd be expected that the second and third patterns would behave identically to the first when running them, to the point where identification is possible.

Finally, there seem to be some minor issues with Undo at considerable distances. In the following pattern, try drawing something small and regular such as a 2x2 block centered at the intersection of the two major grid lines. If we then immediately press the Undo button, only three of the four cells will be cleared, and the first one created by drawing persists. If, instead of immediately pressing Undo, we step forward one generation, then either step back to T=0 or use the undo button, three out of the four cells will remain, with only the first drawn cell being absent from its initial position. In fact, this first cell seems to have been shifted down considerably for some reason (it can be easily located via Select All).

Code: Select all

x = 1, y = 1, rule = B1357/S1357
!
[[ MAXGRIDSIZE 9 GRID X -250 Y -250 ]]
----

Off of the topic of unloaded chunks but still on the topic of boundaries: for this pattern, if we click inside of the bounded grid to draw, and then drag the cursor outside of the bounded grid, cells will be drawn at the farthest possible point which is inside of the bounded grid, as expected. However, while still holding down the mouse button, if we drag the cursor so that it's outside of the "unbounded boundary" of gray cells (i.e. where one of the coordinates seem in the bottom left is further from the origin than -256) then drawing will stop happening until the cursor goes back into the "black" regions.

Code: Select all

x = 1, y = 1, rule = B/S012345678:P480
!
[[ MAXGRIDSIZE 9 GRID ZOOM 8 X -240 Y -240 ]]
I'd also like to point out that if we click inside of the black region that's outside of the bounded grid but still within bounds, cells are immediately drawn at the edge of the bounded grid. I think that cells should only be drawn if the click begins within the bounded grid, much like how you can only create a selection if the click begins inside the bounded grid (but you can still drag the cursor out while the click is being held).
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
rowett
Moderator
Posts: 4586
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

muzik wrote: March 29th, 2023, 8:38 pm for the following patterns, create a selection starting from the dot and the center and drag it towards one of the upper corners of the board. It's possible to reach the horizontal edges, but a ceiling will be hit which the selection cannot expand past vertically
Fixed, thanks.
muzik wrote: March 29th, 2023, 8:38 pm Secondly, for the above patterns, evolutionary differences can be seen.
Yes this is expected. The different algos have different border distances.
muzik wrote: March 29th, 2023, 8:38 pm there seem to be some minor issues with Undo at considerable distances
Fixed, thanks.
muzik wrote: March 29th, 2023, 8:38 pm if we click inside of the bounded grid to draw, and then drag the cursor outside of the bounded grid, cells will be drawn at the farthest possible point which is inside of the bounded grid, as expected. However, while still holding down the mouse button, if we drag the cursor so that it's outside of the "unbounded boundary" of gray cells then drawing will stop happening until the cursor goes back into the "black" regions.
True, this is expected.
muzik wrote: March 29th, 2023, 8:38 pm if we click inside of the black region that's outside of the bounded grid but still within bounds, cells are immediately drawn at the edge of the bounded grid
Fixed, thanks.
User avatar
muzik
Posts: 6604
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

Over at viewer.html, if we immediately delete all of the text in the RLE input box and then click View, it just keeps the previous pattern. However, if we clear everything except for a residual line break, we get an empty pattern. I'd expect both of these to generate an empty pattern. (In addition, despite the latter generating an empty pattern, no "View Pattern" message is produced).

In the latter case, if we then use "Save Pattern", it correctly saves an empty pattern, but "#C" appears before the RLE for some reason.

If we paste the following pattern into viewer.html, "New Pattern" is displayed instead of "Invalid pattern!"

Code: Select all

x = 1, y = 1, rule = LifeHistory
f!
The same happens for the following pattern (which can be run from the forum), but it also starts very zoomed out for some reason:

Code: Select all

x = 1, y = 1, rule = LifeHistory
O!
Odd-sized bounded grids in general appear to be off-center, which is probably the main cause behind the previously reported PCA and hexagonal grid issues.

Code: Select all

x = 2, y = 2, rule = B/S01234V:P8
2o$2o!
[[ GRID THEME Inverse ]]

Code: Select all

x = 2, y = 2, rule = B/S01234V:P9
2o$2o!
[[ GRID THEME Inverse ]]
If we increase the layers when a bounded grid is present, the bounded grid cells darken. Bounded grid cells being duplicated in layers was recently removed. Is this darkening still intended?

Code: Select all

x = 2, y = 2, rule = B/S01234V:P8
2o$2o!
[[ GRID THEME Inverse LAYERS 2 ]]

Code: Select all

x = 2, y = 2, rule = B/S01234V:P9
2o$2o!
[[ GRID THEME Inverse LAYERS 2 ]]
And in [R]Super, zooming out farther than -1.0 causes bounded grid cells to appear whitish for some reason.

Code: Select all

x = 2, y = 2, rule = B/S01234VSuper:P9
2o$2o!
[[ GRID ZOOM -1 ]]

Code: Select all

x = 2, y = 2, rule = B/S01234VSuper:P9
2o$2o!
[[ GRID ZOOM -1.1 ]]
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
muzik
Posts: 6604
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik »

For hexagonal grids, the boundary cells appear to de-render too early when at the edge of the screen. This can be seen here at the top - try panning the camera around to see it in action.

Code: Select all

x = 1, y = 1, rule = B/S0123HT
!
[[ THEME Inverse MAXGRIDSIZE 9 X 0 Y -256 ]]
On triangular grids, selections appear one cell wider than they actually are. I don't think this is correct as I remember this not being the case before.

Code: Select all

x = 1, y = 1, rule = B/S0123LE
o!
[[ COLOR ALIVE Magenta ]]
Also, for hexagonal and triangular grids, selections don't appear to quite visually reach to the edges of the cell. If we use Select All on the above pattern and the following two, we can see that for hexagons and triangles, magenta can be seen to still bleed out of the sides slightly, which doesn't happen for square cells. This is obviously a very low-priority thing, but I thought I'd mention it anyway for completion's sake.

Code: Select all

x = 1, y = 1, rule = B/S0123HT
o!
[[ COLOR ALIVE Magenta ]]

Code: Select all

x = 1, y = 1, rule = B/S01234V
o!
[[ COLOR ALIVE Magenta ]]
There may be some very minor precision issues when auto-fitting hexagonal spaceships. This could have many causes (using rectangular bounding boxes, the hexagons not being completely regular, or something else entirely), and, like the above, also isn't very high priority. For AutoFit I'd expect that the middle trailing hexagon you can see behind this p3 ship would "intersect" the two dihexes from the phase before it to an equal extent, however in this orientation it "intersects" the one "above" it but not the one "below" it. In addition, the isolated hexagon at the top left doesn't intersect anything, whereas the one opposite it at the bottom intersects two other cells.

Code: Select all

x = 4, y = 4, rule = B2/S2H
obo$ob2o2$2b2o!
[[ AUTOSTART AUTOFIT ]]
Onto higher priority stuff: there are two issues I've found with the "drawing against the edge of a bounded grid" functionality. Start your click at the top right hand area of this bounded grid where the dead cells are, and drag it outwards accordingly. The issues are the following:
- alive cells which have remained alive for a long while can be overwritten with freshly-drawn alive cells
- undoing drawing that happened while the cursor was outside of the bounded grid does not work properly, and will result in previously-existing cells being deleted instead

Neither of these things happen if the cursor is on top of the target cell - this only happens as a result of out-of-bounds drawing.

Code: Select all

x = 16, y = 16, rule = B/S012345678:P16
14o$14o$16o$16o$16o$16o$16o$16o$16o$16o$16o$16o$16o$16o$16o$16o!
[[ STARTFROM 80 ]]
I should also highlight another parity issue with Golly here: in Golly, it's possible to start a selection by initially clicking and dragging while the cursor outside of a bounded grid, and that selection will be snapped to the very edge of the bounded grid. I'm not sure if LifeViewer should shoot for parity with Golly in this case, or if internal consistency within LifeViewer would be preferable (this exact behaviour but for drawing was removed in the previous build - granted, it didn't exist in Golly).

Finally, is it meant to be possible to escape from the script error screen by pressing the Settings button twice? It can cause undesirable effects such as making panning, selecting and drawing impossible. For script errors, it might be advisable to have the "Esc" button moved to where the "Settings" button is.

Code: Select all

x = 2, y = 2, rule = B3/S23
2o$2o!
[[ Error! ]]
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.
User avatar
rowett
Moderator
Posts: 4586
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

muzik wrote: March 30th, 2023, 5:37 am Over at viewer.html, if we immediately delete all of the text in the RLE input box and then click View, it just keeps the previous pattern.
Fixed, thanks.
muzik wrote: March 30th, 2023, 5:37 am if we then use "Save Pattern", it correctly saves an empty pattern, but "#C" appears before the RLE for some reason.
Fixed, thanks.
muzik wrote: March 30th, 2023, 5:37 am Odd-sized bounded grids in general appear to be off-center, which is probably the main cause behind the previously reported PCA and hexagonal grid issues.
Fixed, thanks.
muzik wrote: March 30th, 2023, 5:37 am If we increase the layers when a bounded grid is present, the bounded grid cells darken. Bounded grid cells being duplicated in layers was recently removed. Is this darkening still intended?
Yes. With layers darkening is used to show depth.
muzik wrote: March 30th, 2023, 5:37 am And in [R]Super, zooming out farther than -1.0 causes bounded grid cells to appear whitish for some reason.
Fixed, thanks.
User avatar
rowett
Moderator
Posts: 4586
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett »

muzik wrote: March 30th, 2023, 6:39 am For hexagonal grids, the boundary cells appear to de-render too early when at the edge of the screen.
Fixed, thanks.
muzik wrote: March 30th, 2023, 6:39 am there are two issues I've found with the "drawing against the edge of a bounded grid" functionality. Start your click at the top right hand area of this bounded grid where the dead cells are, and drag it outwards accordingly. The issues are the following:
- alive cells which have remained alive for a long while can be overwritten with freshly-drawn alive cells
- undoing drawing that happened while the cursor was outside of the bounded grid does not work properly, and will result in previously-existing cells being deleted instead
Both fixed, thanks.
muzik wrote: March 30th, 2023, 6:39 am I should also highlight another parity issue with Golly here: in Golly, it's possible to start a selection by initially clicking and dragging while the cursor outside of a bounded grid, and that selection will be snapped to the very edge of the bounded grid. I'm not sure if LifeViewer should shoot for parity with Golly in this case, or if internal consistency within LifeViewer would be preferable (this exact behaviour but for drawing was removed in the previous build - granted, it didn't exist in Golly).
No, I'm happy with how LifeViewer works here.
muzik wrote: March 30th, 2023, 6:39 am Finally, is it meant to be possible to escape from the script error screen by pressing the Settings button twice?
Fixed, thanks.
Post Reply