I noticed a bug in build 299: if you edit a pattern, run for many generations and then step back one generation, the pattern suddenly appears as it would have if you hadn't made the edit. This is particularly apparent if the edit made the pattern die out, as it will suddenly come back to life if you step back one generation, even if that one generation was long after when the pattern actually died.
77topaz wrote:I noticed a bug in build 299: if you edit a pattern, run for many generations and then step back one generation, the pattern suddenly appears as it would have if you hadn't made the edit. This is particularly apparent if the edit made the pattern die out, as it will suddenly come back to life if you step back one generation, even if that one generation was long after when the pattern actually died.
This also happens on mobile.
κ is measurable iff there is a nontrivial elementary embedding j:V→M (M transitive) with critical point κ
77topaz wrote:I noticed a bug in build 299: if you edit a pattern, run for many generations and then step back one generation, the pattern suddenly appears as it would have if you hadn't made the edit. This is particularly apparent if the edit made the pattern die out, as it will suddenly come back to life if you step back one generation, even if that one generation was long after when the pattern actually died.
The short answer is because I haven't implemented the Undo system yet.
The long answer is because at the moment it's using the Snapshot system. Snapshots are taken every 50 generations. When you step back what actually happens is it finds the latest Snapshot (which is at most 49 generations earlier) and then computes generations forward from there until it gets to the current generation - 1 (i.e. the previous generation to now). Your edits weren't available in the latest Snapshot so disappear.
For example:
T = 63
You make some edits
Run the pattern a few steps forward to T = 90
Step back
At this point LifeViewer finds the latest Snapshot which was taken at T=50 and then plays forward until T=89.
Since your edit didn't happen until T=63 it's lost.
muzik wrote:Random thought: will LtL Margolus rules be supported? If so, they should use half-integer ranges, similar to half-integer-range Wolfram rules.
can now define UI colours using [[ COLOR <item> R G B|<name> ]] where <item> is one of:
UIFOREGROUND for control foreground colour
UIBACKGROUND for control background colour
UIHIGHLIGHT for colour when mouse is over control
UISELECT for colour when control is selected
UILOCKED for colour when control is locked
UIBORDER for control border colour
new script command [[ HISTORYSTATES <0..> ]] to define the number of history states to use - test
default is 63 for 2-state patterns and 1 for multi-state patterns
maximum is 63 for 2-state and up to 63 for multi-state but limited by a total of 256 states
set to 0 to disable cell history drawing
Themes
[[ THEME ]] script command can now take a Theme name or number:
Mono, Blues, Fire, Poison, Yellow, Gray, Inverse
Day, Occupied, Red, LifeHistory, Generations
Golly, MCell, Catagolue, Caterer, Life32
grid line colours are now included in each Theme
there is a 2-state and multi-state version of each Theme
for multi-state patterns [[ COLOR DYING ]] and [[ COLOR DYINGRAMP ]] set the cell dying colour range
[[ COLOR DEAD ]] now defines the cell colour when it first dies and [[ COLOR DEADRAMP ]] is the colour it becomes after staying dead for HISTORYSTATES generations
improved handling of custom Theme definitions:
for all Themes:
if ALIVE not specified then set it to the inverse of DEAD or the inverse of BACKGROUND or white
if both BACKGROUND and DEAD not specified then set BACKGROUND to the inverse of ALIVE or black
if DEAD not specified then set it to BACKGROUND
if DEADRAMP not specified then set it to DEAD
for 2-state Themes:
if ALIVERAMP not specified then set it to ALIVE
for multi-state Themes:
if DYING not specified then set DYING to step 2 of ALIVE to DYINGRAMP
if DYINGRAMP not specified then set it to DYING
Engine
much faster HROT/LtL performance for von Neumann and Circular neighbourhoods
HROT/LtL patterns now use DELETERANGE when patterns reach the grid boundary
empty patterns are now allowed
hotkey Ctrl "C" now copies the current pattern as RLE to the clipboard
hotkey Alt+Ctrl "C" copies the current pattern as RLE with comments to the clipboard
hotkey Shift+Ctrl "C" copies the reset state of the pattern as RLE to the clipboard
Memory usage reduction
default grid size reduced to 512x512
MAXGRIDSIZE argument is now from 9 (2^9 = 512) to 14 (2^14 is 16384)
memory for Population Graph is now dynamically added
memory for Population Graph is now not allocated if NOGRAPH is specified or if THUMBLAUNCH is specified without GRAPH
memory for Stars is only allocated on first use
Help
each Help topic is now on a separate page
each Help topic has a list of Help sections
improved text wrapping
long rule aliases wrap across two lines
added aggregate memory usage information (across all Viewers on the browser page)
UI
main menu enhancements
new Draw and Pan buttons
Zoom slider and Opacity sliders get wider as window allows to a maximum
bottom right menu enhancements
new Esc button in can be used to close error display
new Info button to toggle InfoBar display (which shows camera settings)
new Stars button to toggle Starfield display
FPS button moved and renamed to Timing
new Details button to toggle Timing details
new HistFit button to toggle HISTORYFIT mode (whether AUTOFIT includes history states)
new Major button to toggle major grid lines
new Labels button to toggle label display
Themes can not be changed for patterns with illegal rules or states
Population Graph disabled for patterns with illegal rules or states
Angle slider is no longer locked when AutoFit is on
Display
UI default foreground colour is now white
AutoFit is improved at high zooms and step sizes > 1
display now updates after every step back
ToolTips can now be two lines long and will try to split at a space, comma or slash
when the PopUp Viewer width changes the right edge position will stay fixed (when launched from THUMBLAUNCH)
Pattern Editor
simple pattern editing
toggle between editing and panning with new UI buttons or hotkey "F1"
toggle Smart Drawing with hotkey Shift and "F1"
Smart Drawing automatically deletes cells if you start drawing on a cell whose state is the current drawing state
new Pick State button which allows the drawing state to be set by clicking on an existing cell
new States List to select drawing state which resizes based on window width
if there are more states than will fit a States Slider appears allowing you to scroll the list
new Toggle States button to show or hide the States List
Fixes since the last released build:
Rules
HROT patterns were defaulting S8 to on
canonical HROT patterns were not validating counts against von Neumann or Circular neighbourhoods
fixed an issue with HROT rule validation
when specifying a Klein bounded grid without defining the twist edge the default is now vertical (to match Golly)
bounded grid types that do not support twists were not being reported as errors when twists were specified
Patterns
patterns were not being correctly validated against maximum grid size
better error reporting when RLE contains invalid characters
switch off custom Theme on new pattern load
Life 1.05 decoder now ignores trailing spaces
Engine
don't processes unneeded history states
bounded grids >= 8192 and <= 16384 in size were causing a crash
memory details in Help could be negative
Generations rules were not displaying the Life ended message
Generations population statistics were wrong
pattern died generation was not working in the PopUp Viewer for the second pattern onwards if not reset
always compute all history generations for [R]History patterns regardless of Theme
hex coordinates were wrong
view offset was not being correctly reset when grid resized to default
removed "Life ended at" message if grid empty when play started
added missing Help information for hotkey "K" and Shift "K"
Help text could wrap incorrectly because of shadow
PopUp Viewer was not having the grid size reset after MAXGRIDSIZE specified
graph and labels were not rendering while computing previous generations
graph was broken after computing previous generations
The updated hotkey map detailing the LifeViewer keyboard controls is here.
Comments, feedback, suggestions and bug reports welcome!
Fantastic work with Lifeviewer, Chris. This is a big update! I gather it's been rolled out in stages because some of the new features have been available but there hadn't been any announcements here. Too many improvements to mention them all, but a few that made me really happy: The multiverse option looks particularly useful. I'd seen mention of it but didn't know what it was for. Should be very handy for collections of patterns on the LifeWiki. I also appreciate the changes you made to the Copy to Clipboard behaviour. I've caught myself trying to copy an evolved pattern and ending up with the initial pattern instead. Thanks again.
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.
Semi-active here - recovering from a severe case of LWTDS.
wildmyron wrote:Fantastic work with Lifeviewer, Chris.
Thanks for the feedback!
wildmyron wrote:This is a big update! I gather it's been rolled out in stages because some of the new features have been available but there hadn't been any announcements here.
Yes I discovered a bug in some new functionality in the last released build so didn't announce it until it was fixed - which with all the other work going on took a bit longer than hoped.
wildmyron wrote:The multiverse option looks particularly useful. I'd seen mention of it but didn't know what it was for. Should be very handy for collections of patterns on the LifeWiki.
I'm always looking for ways to make LifeViewer a more useful pattern presentation tool. Multiverse Mode takes it a good step in that direction. More to come on this in future builds.