LifeViewer/Known bugs

From LifeWiki
Revision as of 07:32, 27 September 2023 by Rowett (talk | contribs) (→‎Playback)
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

  • Twisted edges of Klein bottles and cross-surfaces might not be being processed correctly in PCA rules.
    • In the following pattern, a single PCA cell crosses the twisted edge of a Klein bottle. In a normal unbounded plane, the cell, being in the "west" state, would become a "south" cell in the next generation. In this example, since it crosses a twisted boundary, it'd be expected that it would be flipped vertically (or, equivalently, rotated 180 degrees), and would become a "north" cell as a result. However, in this demonstration, it still becomes a "south" cell.
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! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] [[ THEME Book ]]
(click above to open LifeViewer)
  • In many cases, script commands will persist after resuming playback if Identify is used while script-related sequences are underway.[1]
  • States 2 and above in [R]Investigator are killed by the boundary. This should never happen - only state 1 should ever be killed.
    • Draw a state 8 or state 9 cell close to the border and note how it gets destroyed as evolution happens.
x = 1, y = 1, rule = B3/S23Investigator ! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] [[ MAXGRIDSIZE 9 X -250 ]]
(click above to open LifeViewer)
  • In general range rules, KILLGLIDERS does not function correctly: the bounding box of the pattern does not adjust after T=0, and dying gliders can set dead cells to background cells.
Range-1 General-range
x = 24, y = 24, rule = B3/S23 21bo$21bobo$21b2o10$3b2o2b2o$b10o$b10o$12o$12o$b10o$b10o$12o$12o$b10o $b10o$3b2o2b2o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ KILLGLIDERS THEME Book THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
x = 24, y = 24, rule = R1,C2,S2-3,B3 21bo$21bobo$21b2o10$3b2o2b2o$b10o$b10o$12o$12o$b10o$b10o$12o$12o$b10o $b10o$3b2o2b2o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ KILLGLIDERS THEME Book THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)

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 st 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)

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)

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)

Scripting

  • Paste commands can set existing historical cells to their maximum age instantaneously.
x = 34, y = 34, rule = B3-jknr4ity5ijk6i8/S23-a4city6c7cHistory 13.B$12.3B$11.5B.2B$11.9B$11.10B$9.2B.10B$8.3BABA8B$7.3B3ABA8B$6.3BAB A12B$5.3B2A16B$5.4B2ABA19B$2.3B.5B2A20B$.11BA21B$33B$.18BA10B$2.16BAB A8B$3.14B.BA10B$2.14B3.10B$2.13BDB3.8B$3.11BDBDB3.6B$4.11BD3B5.B$5. 15B$7.13B$8.12B$9.12B$9.11B$10.10B$10.9B$10.8B$10.5B.B$10.4B$10.4B$ 11.3B$12.B! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] [[ THEME Book PASTET EVERY 102 0 PASTEMODE COPY PASTE 5BAB$4BABA$3B.BAB$2B3.2B$BDB3.B$DBDB$BD3B! 14 14 PASTET EVERY 102 51 PASTEMODE COPY PASTE 5BDB$4BDBD$3B.BDB$2B3.2B$BAB3.B$ABAB$BA3B! 14 14 ]]
(click above to open LifeViewer)
  • Setting GRIDMAJOR to 0 and setting GRID and GRIDMAJOR to the same color produce visually identical results, but LifeViewer handles these differently.
    • For the GRID = GRIDMAJOR case, Settings > Display > Major GridLines remains toggleable.
    • For the GRIDMAJOR 0 case, the color that major grid lines would use is still displayed in Help > Info > Gridlines, despite these grid lines being completely inaccessible.
      • For the GRID = GRIDMAJOR case, the color is displayed identically for both, which could be considered inconsistent with how GRID = GRIDMAJOR cases are handled in Help > Themes.
GRIDMAJOR 0 GRID = GRIDMAJOR
x = 22, y = 4, rule = B2en3ijq4w6aen/S2cek3aceny4ejqr5jk6a b2o4b2o4b2o4b2o$o2bo2bo2bo2bo2bo2bo2bo$o2bo2bo2bo2bo2bo2bo2bo$b2o4b2o 4b2o4b2o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ GRID GRIDMAJOR 0 COLOR GRID 60 60 120 THUMBNAIL THUMBSIZE 4 WIDTH 600 HEIGHT 600 ]]
(click above to open LifeViewer)
x = 22, y = 4, rule = B2en3ijq4w6aen/S2cek3aceny4ejqr5jk6a b2o4b2o4b2o4b2o$o2bo2bo2bo2bo2bo2bo2bo$o2bo2bo2bo2bo2bo2bo2bo$b2o4b2o 4b2o4b2o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ GRID GRIDMAJOR 5 COLOR GRID 60 60 120 COLOR GRIDMAJOR 60 60 120 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