LifeViewer/Known bugs

From LifeWiki
Revision as of 14:49, 14 November 2023 by Rowett (talk | contribs) (→‎Scripting)
Jump to navigation Jump to search

This page contains a list of issues within LifeViewer which are not considered to be a high enough priority to fix immediately, with test cases where they apply.

  • Please report any new bugs to this forum topic. This page is for unresolved issues that have already been reported.
  • Issues which are not fixable are documented at LifeViewer/Known bugs/Not fixable. Checking there is recommended before reporting bugs in the event that said issue is already listed there.

Playback

  • In many cases, script commands will persist after resuming playback if Identify is used while script-related sequences are underway.[1]

Pattern editing

  • In the general-range algorithm, selections behave oddly at the very edge of the unbounded grid.
    • For range 1 in the general range algorithm, the three cells at the edge are effectively treated as one. Any selection in a cell one or two away from the edge will snap to the very edge, and any selection containing any of those cells plus cells four or more cells away will select all three of those cells.
    • Since the three cells at the very edge cannot be modified at all, it'd be preferable if selections simply could not be made at the three cells at the edge for this algorithm. The fact that selections can be made here at all can result in unwanted deletion of cells when flipping or rotating selections containing them.
Standard General
x = 2, y = 2, rule = B/S01234V 2o$2o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ MAXGRIDSIZE 9 X -256 THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
x = 2, y = 2, rule = R1,C2,S0-4,B,NN 2o$2o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ MAXGRIDSIZE 9 X -256 THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
  • For Margolus rule bounded grids, attempting to begin drawing by clicking in the topmost row or leftmost column inside of the boundaries will do nothing. However, if this click is held while the cursor is moved further to the right or downwards and them moved back into one of these extreme rows/columns, or the click does not begin in said row or column and is dragged into it, only then will drawing be permitted.
x = 10, y = 10, rule = M0,4,8,12,4,12,12,13,8,12,12,14,12,13,14,15:T10,10 9o$9o$9o$9o$9o$9o$9o$9o$9o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] [[ THEME Book ]]
(click above to open LifeViewer)

Identify

  • Dying cells in the range-1 algorithm are handled differently from the same cells in the general-range algorithm, being counted towards the pattern bounding box in the former but not the latter.
    • This also affects AutoFit during playback.
    • A fix for this is planned.[2]
range-1 general-range
x = 68, y = 9, rule = 23/34/128 4.sW.sT3.sK.sH3.rW.rT3.rK.rH3.qW.qT3.qK.qH3.pW.pT3.pK.pH3.W.T3.K.H$3. sXtAsUsTsU.sLsMsIsHsI.rXsArUrTrU.rLrMrIrHrI.qXrAqUqTqU.qLqMqIqHqI.pXqA pUpTpU.pLpMpIpHpI.XpAUTU.LMIHI.3A$2.tBtD2tA2sVsNsP2sM2sJsBsD2sA2rVrNrP 2rM2rJrBrD2rA2qVqNqP2qM2qJqBqD2qA2pVpNpP2pM2pJpBpD2pA2VNP2M2JBD2A$2.tC .2tDsUsXsOsT2sPsIsLsCsH2sDrUrXrOrT2rPrIrLrCrH2rDqUqXqOqT2qPqIqLqCqH2qD pUpXpOpT2pPpIpLpCpH2pDUXOT2PILCH2D2A$4.tFtDtBsXsVsTsRsPsNsLsJsHsFsDsB rXrVrTrRrPrNrLrJrHrFrDrBqXqVqTqRqPqNqLqJqHqFqDqBpXpVpTpRpPpNpLpJpHpFpD pBXVTRPNLJHFDBA$3.tCtFsUtB2sVsOsRsIsN2sJsCsFrUsB2rVrOrRrIrN2rJrCrFqUrB 2qVqOqRqIqN2qJqCqFpUqB2pVpOpRpIpN2pJpCpFUpB2VORIN2JCFABA$.2tG2tDsTsV 2sS2sPsHsJ2sG2sDrTrV2rS2rPrHrJ2rG2rDqTqV2qS2qPqHqJ2qG2qDpTpV2pS2pPpHpJ 2pG2pDTV2S2PHJ2G2D2A$tFtGtCtBtC.sRsSsOsNsO.sFsGsCsBsC.rRrSrOrNrO.rFrG rCrBrC.qRqSqOqNqO.qFqGqCqBqC.pRpSpOpNpO.pFpGpCpBpC.RSONO.FGCBC$.tE.tB 3.sQ.sN3.sE.sB3.rQ.rN3.rE.rB3.qQ.qN3.qE.qB3.pQ.pN3.pE.pB3.Q.N3.E.B! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ AUTOFIT THEME Book THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
x = 68, y = 9, rule = R1,C128,S2-3,B3-4 4.sW.sT3.sK.sH3.rW.rT3.rK.rH3.qW.qT3.qK.qH3.pW.pT3.pK.pH3.W.T3.K.H$3. sXtAsUsTsU.sLsMsIsHsI.rXsArUrTrU.rLrMrIrHrI.qXrAqUqTqU.qLqMqIqHqI.pXqA pUpTpU.pLpMpIpHpI.XpAUTU.LMIHI.3A$2.tBtD2tA2sVsNsP2sM2sJsBsD2sA2rVrNrP 2rM2rJrBrD2rA2qVqNqP2qM2qJqBqD2qA2pVpNpP2pM2pJpBpD2pA2VNP2M2JBD2A$2.tC .2tDsUsXsOsT2sPsIsLsCsH2sDrUrXrOrT2rPrIrLrCrH2rDqUqXqOqT2qPqIqLqCqH2qD pUpXpOpT2pPpIpLpCpH2pDUXOT2PILCH2D2A$4.tFtDtBsXsVsTsRsPsNsLsJsHsFsDsB rXrVrTrRrPrNrLrJrHrFrDrBqXqVqTqRqPqNqLqJqHqFqDqBpXpVpTpRpPpNpLpJpHpFpD pBXVTRPNLJHFDBA$3.tCtFsUtB2sVsOsRsIsN2sJsCsFrUsB2rVrOrRrIrN2rJrCrFqUrB 2qVqOqRqIqN2qJqCqFpUqB2pVpOpRpIpN2pJpCpFUpB2VORIN2JCFABA$.2tG2tDsTsV 2sS2sPsHsJ2sG2sDrTrV2rS2rPrHrJ2rG2rDqTqV2qS2qPqHqJ2qG2qDpTpV2pS2pPpHpJ 2pG2pDTV2S2PHJ2G2D2A$tFtGtCtBtC.sRsSsOsNsO.sFsGsCsBsC.rRrSrOrNrO.rFrG rCrBrC.qRqSqOqNqO.qFqGqCqBqC.pRpSpOpNpO.pFpGpCpBpC.RSONO.FGCBC$.tE.tB 3.sQ.sN3.sE.sB3.rQ.rN3.rE.rB3.qQ.qN3.qE.qB3.pQ.pN3.pE.pB3.Q.N3.E.B! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ AUTOFIT THEME Book THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
  • For some specific resolutions, the Identify periods table will not display all of its contents at once, but there will also not be any scroll bar to allow viewing of hidden values.
x = 3, y = 26, rule = M0,8,4,3,2,5,9,7,1,6,10,11,12,13,14,15 b2o2$b2o2$b2o2$b2o2$b2o2$b2o2$b2o$b2o2$b2o2$b2o2$b2o2$b2o2$b2o2$b2o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] [[ THEME Book ]]
(click above to open LifeViewer)

Pattern loading

  • Margolus patterns on bounded grids will delete the top row and leftmost column of the pattern when loaded, unlike in other rulespaces.
    • Other issues can arise from this, particularly if the top-left cell should be alive but is not. For example, a "New Pattern" message will not be displayed despite no alive cells being present, the population counter will report that one live cell is present, and using "Select All" creates a selection at the bottom right corner of the bounded grid.
    • Fixes for Margolus pattern positioning on bounded grids are on the backlog.[3]
Margolus outer-totalistic
x = 12, y = 12, rule = M0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15:T10 $3bob5o$2bo2bob2o$2b2obo2b3o$b2ob6o$2bo$b6obo$b6o2b2o$2b3o4b2o$bobobo $b2obob2o2bo! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
x = 12, y = 12, rule = B/S012345678:T10 $3bob5o$2bo2bob2o$2b2obo2b3o$b2ob6o$2bo$b6obo$b6o2b2o$2b3o4b2o$bobobo $b2obob2o2bo! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
  • Triangular patterns loaded on bounded grids also result in cell deletion.
    • For either of the following two patterns, drawing a cell at the very top left of the bounded grid, using Save Pattern and then reloading the pattern will result in everything being shifted down and to the right.
range-1 general-range
x = 5, y = 5, rule = B/S0123456789XYZL:P6 $b4o$b4o$b4o$b4o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
x = 5, y = 5, rule = R1,C2,S0-12,B,NL:P6 $b4o$b4o$b4o$b4o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
  • When saving a Margolus pattern using Save Pattern at an odd generation, reopening that pattern will cause it to have completely different behaviour than the original pattern.
    • This could be fixed by including an extra cell of empty space on both axes before the pattern iff saved on an odd generation to compensate for the shifting grid subdivisions.
x = 3, y = 3, rule = M0,2,8,3,1,5,6,7,4,9,10,11,12,13,14,15 bo$2bo$2o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] [[ THEME Book ]]
(click above to open LifeViewer)

Scripting

  • STATE1FIT does not work as expected in [R]Super rules.
    • STATE1FIT may be deprecated in future in favor of a new ALIVEFIT command in order to resolve this issue.[2]
[R]Standard [R]History
x = 3, y = 3, rule = B3/S23 o$obo$2o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ AUTOFIT STATE1FIT THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
x = 3, y = 3, rule = B3/S23History o$obo$2o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ AUTOFIT STATE1FIT THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
[R]Super [R]Investigator
x = 3, y = 3, rule = B3/S23Super o$obo$2o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ AUTOFIT STATE1FIT THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
x = 3, y = 3, rule = B3/S23Investigator o$obo$2o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ AUTOFIT STATE1FIT THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
  • Pasting over deathforcer cells in [R]Investigator does not delete them like is the case in [R]History and [R]Super.
[R]History [R]Super [R]Investigator
x = 1, y = 1, rule = B/S012345678History F! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ PASTET 1 PASTE 9o$9o$9o$9o$9o$9o$9o$9o$9o! -4 -4 THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
x = 1, y = 1, rule = B/S012345678Super F! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ PASTET 1 PASTE 9o$9o$9o$9o$9o$9o$9o$9o$9o! -4 -4 THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
x = 1, y = 1, rule = B/S012345678Investigator C! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ PASTET 1 PASTE 9o$9o$9o$9o$9o$9o$9o$9o$9o! -4 -4 THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)

Rendering

  • The grid lines used to partition the grid in Margolus rules are not consistent in representing the partitioned regions.
    • It would be expected that either GRIDMAJOR would represent the "active" partitioning, or GRID would, but not interchangeably depending on the input pattern. The former would be preferable.
GRID used GRIDMAJOR used
x = 1, y = 1, rule = M0,2,8,3,1,5,6,7,4,9,10,11,12,13,14,15 o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ COLOR GRIDMAJOR Black GRIDMAJOR 2 THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
x = 1, y = 1, rule = M0,2,8,3,1,5,6,7,4,9,10,11,12,13,14,15 $o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ COLOR GRIDMAJOR Black GRIDMAJOR 2 THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)

Platform-exclusive issues

iOS

Playback

  • Holding down links will cause LifeViewer instances to be throttled to 30fps instead of the expected 60.[4]

Pattern editing

  • Copying patterns to the external clipboard does not appear to actually work.

References