Difference between revisions of "LifeViewer"

From LifeWiki
Jump to navigation Jump to search
(43 intermediate revisions by 3 users not shown)
Line 34: Line 34:
==LifeViewer features==
==LifeViewer features==
* Smooth non-integer zoom with anti-aliasing and rotation.
* Smooth non-integer zoom with anti-aliasing and rotation.
* Colour themes with cell history and longevity.
* Colour [[#Themes|themes]] with cell history and longevity.
* Square, hexagonal and triangular grids.
* Pseudo 3D layers and stars.
* Pseudo 3D layers and stars.
* Multiple ways to automatically track patterns with the camera as they evolve.
* Multiple ways to automatically track patterns with the camera as they evolve.
* Script language that allows many features to be customized including Waypoint animations.
* [[#Scripts|Script]] language that allows many features to be customized including Waypoint animations.
* Support for multiple embedded LifeViewers and/or a single popup LifeViewer.
* Support for multiple embedded LifeViewers and/or a single popup LifeViewer.
* Ability to step back to earlier generations for all patterns and reverse playback for reversible Margolus and PCA patterns.
* Ability to step back to earlier generations for all patterns and reverse playback for reversible Margolus and PCA patterns.
* Random pattern and rule generation.
* Random pattern and rule generation.
* Real time auto-scaling population graph.
* Real time auto-scaling [[#Population Graph|population graph]].
* Pattern annotation with Labels, Arrows, Lines and Polygons.
* [[#Annotations|Pattern annotation]] with Labels, Arrows, Lines and Polygons.
* Programatically pasting cells onto the grid at defined intervals (for example: glider injection).
* Programatically pasting cells onto the grid at defined intervals (for example: glider injection).
* Ability to build patterns from RLE recipes with transformations.
* Ability to build patterns from RLE recipes with transformations.
* Identification of oscillator and spaceship periods.
* Identification of still life patterns, oscillator and spaceship periods.
* Automatic scaling for high DPI displays including smartphones and tablets.
* Automatic scaling for high DPI displays including smartphones and tablets.
* Editor with unlimitied undo/redo and multiple clipboards.
* Editor with unlimitied undo/redo and multiple clipboards.
Line 420: Line 421:
format rules. Typically @TREE rules run much faster so if possible ensure there is an @TREE version of the rule before the @TABLE
format rules. Typically @TREE rules run much faster so if possible ensure there is an @TREE version of the rule before the @TABLE
version (if present).
version (if present).
LifeViewer supports the @COLORS section and the @NAMES section but does not support the @ICONS section (which will be ignored if present).
LifeViewer supports the @COLORS section and the @NAMES section but does not support the @ICONS section (which will be ignored if present), although this may be supported in future.<ref name="post87414" />


===Aliases===
===Aliases===
Line 481: Line 482:
For range 2+ neighbourhoods only Plane, and Torus (without shift) are supported.
For range 2+ neighbourhoods only Plane, and Torus (without shift) are supported.


Native support for [[BSFKL]], [[Extended Generations]] and [[deficient]] rules is also planned.<ref name="post68678" /><ref name="post68691" /><ref name="post86409" /> Support for 1D totalistic rules and multiple neighbourhoods rules may also be planned.<ref name="post84188" /><ref>https://www.conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=75700#p75775</ref>
Native support for [[BSFKL]], [[Extended Generations]] and [[deficient]] rules is also planned.<ref name="post68678" /><ref name="post68691" /><ref name="post86409" /> Support for 1D totalistic rules and multiple neighbourhoods rules may also be planned.<ref name="post84188" /><ref name="post75775" />


==Keyboard commands==
==User Interface==
 
===Mouse Controls===
A visual map of keyboard shortcuts is shown below:
In Pan mode click and drag with the mouse to pan the view. The mouse wheel can be used to zoom in or out of the pattern. The zoom will be centered on the mouse pointer.
 
 
[[File:hotkeys.png|1024px]]
In Draw mode click and drag with the mouse to draw cells.
 
 
Below is a list of keyboard commands by category:
In Select mode click and drag with the mouse to make a selection.
 
 
===Playback controls===
===Top Row===
<div class="mw-collapsible mw-collapsed">
[[File:ui-top.png]]
Click on "Expand" to the right to view Playback controls.
 
<div class="mw-collapsible-content">
<div class="mw-collapsible mw-collapsed">
<table border=1 cellspacing=0 width=500><tr>
Click on "Expand" to the right to see the menu functions.
<div class="mw-collapsible-content">
 
Going from left to right the controls perform the following functions:
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Name</td><td bgcolor=#c0c0c0>Type</td><td bgcolor=#c0c0c0>Function</td></tr><tr>
<td>Auto</td><td>Toggle</td><td>toggles AutoFit mode</td></tr><tr>
<td>Fit</td><td>Button</td><td>fits the pattern to the window</td></tr><tr>
<td>Draw</td><td>Option</td><td>switches to Draw mode for drawing cells</td></tr><tr>
<td>Select</td><td>Option</td><td>switches to Select mode for copy/paste</td></tr><tr>
<td>Pan</td><td>Option</td><td>switches to Pan mode for viewing patterns</td></tr><tr>
<td>Zoom</td><td>Slider</td><td>changes the camera zoom</td></tr><tr>
<td>START</td><td>Toggle</td><td>toggles AUTOSTART mode (if defined)</td></tr><tr>
<td>STOP</td><td>Toggle</td><td>toggles STOP mode (if defined)</td></tr><tr>
<td>WAYPT</td><td>Toggle</td><td>toggles Waypoint mode (if defined)</td></tr><tr>
<td>LOOP</td><td>Toggle</td><td>toggles LOOP mode (if defined)</td></tr><tr>
<td>Sync</td><td>Toggle</td><td>toggles use of external clipboard</td></tr><tr>
<td>Grid</td><td>Toggle</td><td>toggles grid line display</td></tr><tr>
<td>Help</td><td>Toggle</td><td>toggles Help display</td></tr><tr>
</table>
</div>
</div>
 
===Bottom Row===
[[File:ui-bottom.png]]
 
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to see the menu functions.
<div class="mw-collapsible-content">
 
Going from left to right the controls perform the following functions:
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Name</td><td bgcolor=#c0c0c0>Type</td><td bgcolor=#c0c0c0>Function</td></tr><tr>
<td>T 0</td><td>Toggle</td><td>toggles generation statistics display</td></tr><tr>
<td>Undo</td><td>Button</td><td>undo the last edit</td></tr><tr>
<td>Redo</td><td>Button</td><td>redo the last undone action</td></tr><tr>
<td>60/s</td><td>Slider</td><td>sets playback steps per second</td></tr><tr>
<td>x1</td><td>Slider</td><td>sets playback generations per step</td></tr><tr>
<td>Reset</td><td>Option</td><td>reset to T=0 and if at T=0 also reset camera</td></tr><tr>
<td>Step Back</td><td>Option</td><td>step back step size generations</td></tr><tr>
<td>Step Forward</td><td>Option</td><td>step forward step size generations</td></tr><tr>
<td>Play</td><td>Option</td><td>start playback</td></tr><tr>
<td>Settings</td><td>Toggle</td><td>toggles the settings menu</td></tr><tr>
</table>
</div>
</div>
 
===Draw Mode===
[[File:draw-mode.png]]
 
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to see the menu functions.
<div class="mw-collapsible-content">
 
Going from left to right the controls perform the following functions:
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Name</td><td bgcolor=#c0c0c0>Type</td><td bgcolor=#c0c0c0>Function</td></tr><tr>
<td>Pick</td><td>Toggle</td><td>click on a cell to set drawing state</td></tr><tr>
<td>State Display</td><td>Toggle</td><td>toggle state display</td></tr><tr>
<td>Draw Pause</td><td>Toggle</td><td>toggle pause playback while drawing</td></tr><tr>
<td>Smart Draw</td><td>Toggle</td><td>toggle smart drawing</td></tr><tr>
<td>0-6</td><td>Slider</td><td>change the displayed states</td></tr><tr>
<td>State List</td><td>Option</td><td>select the current drawing state</td></tr><tr>
</table>
</div>
</div>
 
===Select Mode===
[[File:select-mode.png]]
 
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to see the menu functions.
<div class="mw-collapsible-content">
 
Going from left to right the controls perform the following functions:
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Name</td><td bgcolor=#c0c0c0>Type</td><td bgcolor=#c0c0c0>Function</td></tr><tr>
<td>All</td><td>Button</td><td>select all cells</td></tr><tr>
<td>Auto Shrink</td><td>Toggle</td><td>auto shrink selection to pattern</td></tr><tr>
<td>Clipboards</td><td>Toggle</td><td>toggle clipboard libary to select active clipboard</td></tr><tr>
<td>Cut</td><td>Button</td><td>cut cells in selection to current clipboard</td></tr><tr>
<td>Copy</td><td>Button</td><td>copy cells in selection to current clipboard</td></tr><tr>
<td>Paste</td><td>Button</td><td>paste cells from current clipboard</td></tr><tr>
<td>Top Left</td><td>Slider</td><td>set paste location</td></tr><tr>
<td>AND/CPY/OR/XOR</td><td>Option</td><td>set paste mode</td></tr><tr>
</table>
</div>
</div>
 
===Selection Menu===
[[File:selection-menu.png]]
 
The Selection Menu appears when there is an active Selection in Select Mode.
 
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to see the menu functions.
<div class="mw-collapsible-content">
 
Going from top to bottom and left to right the controls perform the following functions:
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Name</td><td bgcolor=#c0c0c0>Type</td><td bgcolor=#c0c0c0>Function</td></tr><tr>
<td>Left</td><td>Button</td><td>nudge selection left 1 cell</td></tr><tr>
<td>Right</td><td>Button</td><td>nudge selection right 1 cell</td></tr><tr>
<td>Up</td><td>Button</td><td>nudge selection up 1 cell</td></tr><tr>
<td>Down</td><td>Button</td><td>nudge selection down 1 cell</td></tr><tr>
<td>50%</td><td>Slider</td><td>set random fill percentage</td></tr><tr>
<td>Random</td><td>Button</td><td>random fill selection using all states</td></tr><tr>
<td>Random 2</td><td>Button</td><td>random fill selection 2 states</td></tr><tr>
<td>Invert</td><td>Button</td><td>invert cells in selection</td></tr><tr>
<td>Flip X</td><td>Button</td><td>flip selection horizontally</td></tr><tr>
<td>Flip Y</td><td>Button</td><td>flip selection vertically</td></tr><tr>
<td>Rotate CW</td><td>Button</td><td>rotate selection clockwise</td></tr><tr>
<td>Rotate CCW</td><td>Button</td><td>rotate selection counter-clockwise</td></tr><tr>
<td>Clear Inside</td><td>Button</td><td>clear cells inside selection</td></tr><tr>
<td>Clear Outside</td><td>Button</td><td>clear cells outside selection</td></tr><tr>
</table>
</div>
</div>
 
===Settings Menu===
[[File:settings.png]]
 
The Settings Menu can be opened by clicking on the Settings button. Note the Settings button will not appear if the Viewer window is less than 480 pixels high.
The menu contains three sliders and a set of topic buttons.
 
====Sliders====
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to see the slider functions.
<div class="mw-collapsible-content">
 
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Name</td><td bgcolor=#c0c0c0>Type</td><td bgcolor=#c0c0c0>Function</td></tr><tr>
<td>Angle</td><td>Slider</td><td>set camera angle (square grid only)</td></tr><tr>
<td>Layers</td><td>Slider</td><td>set number of cell layers</td></tr><tr>
<td>Depth</td><td>Slider</td><td>set depth between each cell layer</td></tr><tr>
</table>
The Layers setting creates a pseudo-3D effect where cells are drawn in higher layers the longer they live, and appear to fall through lower layers the longer it has been since they died.
</div>
</div>
 
====Pattern====
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to see the Pattern options.
<div class="mw-collapsible-content">
 
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Name</td><td bgcolor=#c0c0c0>Type</td><td bgcolor=#c0c0c0>Function</td></tr><tr>
<td>Change Rule</td><td>Button</td><td>prompts for a new Rule and then switches to it</td></tr><tr>
<td>New Pattern</td><td>Button</td><td>creates a new blank Pattern with the current Rule</td></tr><tr>
<td>Load Pattern</td><td>Button</td><td>loads the last saved Pattern</td></tr><tr>
<td>Save Pattern</td><td>Button</td><td>saves the current Pattern to the text box</td></tr><tr>
<td>Randomize</td><td>Button</td><td>creates a new random Pattern with a random Rule (based on the current rule family)</td></tr><tr>
<td>Copy Rule</td><td>Button</td><td>copies the current Rule definition to the clikpboard</td></tr><tr>
<td>Identify</td><td>Button</td><td>identify whether the current Pattern is a still life, oscillator or spaceship</td></tr><tr>
<td>Fast Identify</td><td>Button</td><td>same as Identify but doesn't calculate Active Cells, Mod, Temperature or Volatility</td></tr><tr>
<td>Save Image</td><td>Button</td><td>open an image of the current pattern in a new tab</td></tr><tr>
<td>Save Graph</td><td>Button</td><td>open an image of the Population Graph in a new tab</td></tr><tr>
<td>Go To Gen</td><td>Button</td><td>prompts for a generation and then moves to that generation</td></tr><tr>
</table>
</div>
</div>
 
====Theme====
Allows selection from a list of available colour Themes.
 
====Graph====
Toggles the [[#Population Graph|Population Graph]].
 
====Advanced====
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to see the Advanced options.
<div class="mw-collapsible-content">
 
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Name</td><td bgcolor=#c0c0c0>Type</td><td bgcolor=#c0c0c0>Function</td></tr><tr>
<td>Frame Times</td><td>Toggle</td><td>toggles display of the frames per second and CPU load %</td></tr><tr>
<td>Timing Details</td><td>Toggle</td><td>toggles extended timing information display</td></tr><tr>
<td>Display Info Bar</td><td>Toggle</td><td>toggles the Info Bar display which shows camera location, angle, and bounding box velocity</td></tr><tr>
<td>Relative Gen</td><td>Toggle</td><td>toggles absolute or relative generation display (when #CXRLE Gen specified)</td></tr><tr>
<td>Render Quality</td><td>Toggle</td><td>toggles anti-aliased cell display</td></tr><tr>
</table>
</div>
</div>
 
====Display====
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to see the Display options.
<div class="mw-collapsible-content">
 
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Name</td><td bgcolor=#c0c0c0>Type</td><td bgcolor=#c0c0c0>Function</td></tr><tr>
<td>Use Rectangles</td><td>Toggle</td><td>toggle use of rectangular cells for Hexagonal and Triangular grids</td></tr><tr>
<td>Cell Borders</td><td>Toggle</td><td>toggles drawing of cell borders</td></tr><tr>
<td>Major GridLines</td><td>Toggle</td><td>toggle drawing major GridLines</td></tr><tr>
<td>Starfield</td><td>Toggle</td><td>toggle drawing starfield in background</td></tr><tr>
<td>Annotations</td><td>Toggle</td><td>toggle annotation display (if specified)</td></tr><tr>
<td>Rainbow</td><td>Toggle</td><td>toggle using Rainbow cell colours (for 2-state patterns)</td></tr><tr>
<td>Auto GridLines</td><td>Toggle</td><td>toggle automatically switching GridLines on for Draw and Select modes, and off for Pan mode</td></tr><tr>
<td>Alt GridLines</td><td>Toggle</td><td>toggle alternating GridLines (for Margolus patterns)</td></tr><tr>
</table>
</div>
</div>
 
====Playback====
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to see the Playback options.
<div class="mw-collapsible-content">
 
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Name</td><td bgcolor=#c0c0c0>Type</td><td bgcolor=#c0c0c0>Function</td></tr><tr>
<td>AutoFit History</td><td>Toggle</td><td>toggle using history states for AutoFit bounding box</td></tr><tr>
<td>Throttle</td><td>Toggle</td><td>toggle playback throttling</td></tr><tr>
<td>Perf. Warning</td><td>Toggle</td><td>toggle performance warning display</td></tr><tr>
<td>Kill Gliders</td><td>Toggle</td><td>toggle killing escaping gliders</td></tr><tr>
<td>AutoHide UI</td><td>Toggle</td><td>toggle hiding UI during playback</td></tr><tr>
</table>
</div>
</div>
 
===Population Graph===
LifeViewer can show a real time auto-scaling population graph. It is toggled on or off with [[#Graph|Settings&rarr;Graph]]. At each generation it shows total population, births and deaths.
Note that the graph will only capture data for the first 2<sup>19</sup> (524288) generations.
 
[[File:pop-graph.png]]
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to see the Graph options.
<div class="mw-collapsible-content">
 
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Name</td><td bgcolor=#c0c0c0>Type</td><td bgcolor=#c0c0c0>Function</td></tr><tr>
<td>Opacity</td><td>Slider</td><td>set the graph opacity %</td></tr><tr>
<td>Lines</td><td>Toggle</td><td>toggle between drawing lines or points</td></tr><tr>
<td>X</td><td>Button</td><td>close the graph</td></tr><tr>
</table>
</div>
</div>
 
==Keyboard commands==
 
A visual map of keyboard shortcuts is shown below:
 
[[File:hotkeys.png|1024px]]
 
Below is a list of keyboard commands by category:
 
===Playback controls===
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to view Playback controls.
<div class="mw-collapsible-content">
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td>Enter</td><td>toggle play / pause</td></tr><tr>
<td>Space</td><td>pause / next generation</td></tr><tr>
<td>B</td><td>pause / previous generation</td></tr><tr>
<td>Backspace</td><td>pause / previous generation</td></tr><tr>
<td>Tab</td><td>pause / next step</td></tr><tr>
<td>Shift Tab</td><td>pause / previous step</td></tr><tr>
<td>Esc</td><td>pause if playing</td></tr><tr>
<td>R</td><td>reset to generation 0</td></tr><tr>
<td>Shift N</td><td>go to generation</td></tr><tr>
<td>-</td><td>decrease generation speed</td></tr><tr>
<td>+</td><td>increase generation speed</td></tr><tr>
<td>Shift -</td><td>minimum generation speed</td></tr><tr>
<td>Shift +</td><td>maximum generation speed</td></tr><tr>
<td>D</td><td>decrease step size</td></tr><tr>
<td>E</td><td>increase step size</td></tr><tr>
<td>Shift D</td><td>minimum step size</td></tr><tr>
<td>Shift E</td><td>maximum step size</td></tr><tr>
<td>0</td><td>reset step and speed</td></tr><tr>
<td>Ctrl P</td><td>toggle pause playback while drawing</td></tr><tr>
<td>Alt T</td><td>toggle throttling</td></tr><tr>
<td>W</td><td>toggle waypoint playback and loop</td></tr><tr>
<td>Shift P</td><td>toggle just loop</td></tr><tr>
<td>Alt O</td><td>toggle autostart</td></tr><tr>
<td>Alt P</td><td>toggle stop</td></tr><tr>
</table>
</div>
</div>
 
===Multi-Viewer controls===
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to view Multi-viewer controls.
<div class="mw-collapsible-content">
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td>Shift R</td><td>reset all LifeViewers to generation 0</td></tr><tr>
<td>Z</td><td>stop playback in all other LifeViewers</td></tr><tr>
<td>Shift Z</td><td>stop playback in all LifeViewers</td></tr>
</table>
</div>
</div>
 
===Camera controls===
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to view Camera controls.
<div class="mw-collapsible-content">
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td>Enter</td><td>toggle play / pause</td></tr><tr>
<td>V</td><td>restore saved camera position</td></tr><tr>
<td>Space</td><td>pause / next generation</td></tr><tr>
<td>Shift V</td><td>save current camera position</td></tr><tr>
<td>B</td><td>pause / previous generation</td></tr><tr>
<td>F</td><td>fit pattern to display</td></tr><tr>
<td>Backspace</td><td>pause / previous generation</td></tr><tr>
<td>Shift F</td><td>toggle autofit</td></tr><tr>
<td>Tab</td><td>pause / next step</td></tr><tr>
<td>Shift H</td><td>toggle autofit history mode</td></tr><tr>
<td>Shift Tab</td><td>pause / previous step</td></tr><tr>
<td>Ctrl F</td><td>fit selection to display</td></tr><tr>
<td>Esc</td><td>pause if playing</td></tr><tr>
<td>Ctrl M</td><td>center pattern on display</td></tr><tr>
<td>R</td><td>reset to generation 0</td></tr><tr>
<td>[</td><td>zoom out</td></tr><tr>
<td>-</td><td>decrease generation speed</td></tr><tr>
<td>]</td><td>zoom in</td></tr><tr>
<td>+</td><td>increase generation speed</td></tr><tr>
<td>Shift [</td><td>halve zoom</td></tr><tr>
<td>Shift -</td><td>minimum generation speed</td></tr><tr>
<td>Shift ]</td><td>double zoom</td></tr><tr>
<td>Shift +</td><td>maximum generation speed</td></tr><tr>
<td>1</td><td>1x zoom</td></tr><tr>
<td>D</td><td>decrease step size</td></tr><tr>
<td>2</td><td>2x zoom</td></tr><tr>
<td>E</td><td>increase step size</td></tr><tr>
<td>4</td><td>4x zoom</td></tr><tr>
<td>Shift D</td><td>minimum step size</td></tr><tr>
<td>8</td><td>8x zoom</td></tr><tr>
<td>Shift E</td><td>maximum step size</td></tr><tr>
<td>6</td><td>16x zoom</td></tr><tr>
<td>0</td><td>reset step and speed</td></tr><tr>
<td>3</td><td>32x zoom</td></tr><tr>
<td>Ctrl P</td><td>toggle pause playback while drawing</td></tr><tr>
<td>Shift 3</td><td>64x zoom</td></tr><tr>
<td>Alt T</td><td>toggle throttling</td></tr><tr>
<td>Shift 1</td><td>integer zoom</td></tr><tr>
<td>W</td><td>toggle waypoint playback and loop</td></tr><tr>
<td>Shift 2</td><td>-2x zoom</td></tr><tr>
<td>Shift P</td><td>toggle just loop</td></tr><tr>
<td>Shift 4</td><td>-4x zoom</td></tr><tr>
<td>Alt O</td><td>toggle autostart</td></tr><tr>
<td>Shift 8</td><td>-8x zoom</td></tr><tr>
<td>Alt P</td><td>toggle stop</td></tr><tr>
<td>Shift 6</td><td>-16x zoom</td></tr><tr>
<td>Left</td><td>pan left</td></tr><tr>
<td>Right</td><td>pan right</td></tr><tr>
<td>Up</td><td>pan up</td></tr><tr>
<td>Down</td><td>pan down</td></tr><tr>
<td>Shift Left</td><td>pan north west</td></tr><tr>
<td>Shift Right</td><td>pan south east</td></tr><tr>
<td>Shift Up</td><td>pan north east</td></tr><tr>
<td>Shift Down</td><td>pan south west</td></tr><tr>
<td><</td><td>rotate left</td></tr><tr>
<td>></td><td>rotate right</td></tr><tr>
<td>Shift <</td><td>rotate left 90 degrees</td></tr><tr>
<td>Shift ></td><td>rotate right 90 degrees</td></tr><tr>
<td>5</td><td>reset angle</td></tr>
</table>
</table>
</div>
</div>
</div>
</div>


===Multi-Viewer controls===
===View controls===
<div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to view Multi-viewer controls.
Click on "Expand" to the right to view View controls.
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
<table border=1 cellspacing=0 width=500><tr>
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td>Shift R</td><td>reset all LifeViewers to generation 0</td></tr><tr>
<td>Q</td><td>increase number of layers</td></tr><tr>
<td>Z</td><td>stop playback in all other LifeViewers</td></tr><tr>
<td>A</td><td>decrease number of layers</td></tr><tr>
<td>Shift Z</td><td>stop playback in all LifeViewers</td></tr>
<td>P</td><td>increase layer depth</td></tr><tr>
<td>L</td><td>decrease layer depth</td></tr><tr>
<td>C</td><td>next colour theme</td></tr><tr>
<td>Shift C</td><td>previous colour theme</td></tr><tr>
<td>Alt C</td><td>default theme</td></tr>
</table>
</table>
</div>
</div>
</div>
</div>


===Camera controls===
===Display controls===
<div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to view Camera controls.
Click on "Expand" to the right to view Display controls.
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
<table border=1 cellspacing=0 width=500><tr>
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td>V</td><td>restore saved camera position</td></tr><tr>
<td>G</td><td>toggle generation statistics</td></tr><tr>
<td>Shift V</td><td>save current camera position</td></tr><tr>
<td>Shift G</td><td>toggle generation display mode</td></tr><tr>
<td>F</td><td>fit pattern to display</td></tr><tr>
<td>Y</td><td>toggle population graph</td></tr><tr>
<td>Shift F</td><td>toggle autofit</td></tr><tr>
<td>Shift Y</td><td>toggle graph lines</td></tr><tr>
<td>Shift H</td><td>toggle autofit history mode</td></tr><tr>
<td>7</td><td>decrease graph opacity</td></tr><tr>
<td>Ctrl F</td><td>fit selection to display</td></tr><tr>
<td>9</td><td>increase graph opacity</td></tr><tr>
<td>Ctrl M</td><td>center pattern on display</td></tr><tr>
<td>Shift W</td><td>toggle performance warning</td></tr><tr>
<td>[</td><td>zoom out</td></tr><tr>
<td>/</td><td>toggle cell type for hex and triangular grids</td></tr><tr>
<td>]</td><td>zoom in</td></tr><tr>
<td>T</td><td>toggle timing information</td></tr><tr>
<td>Shift [</td><td>halve zoom</td></tr><tr>
<td>Shift T</td><td>toggle extended timing information</td></tr><tr>
<td>Shift ]</td><td>double zoom</td></tr><tr>
<td>I</td><td>toggle pattern and engine information</td></tr><tr>
<td>1</td><td>1x zoom</td></tr><tr>
<td>Shift I</td><td>toggle information bar</td></tr><tr>
<td>2</td><td>2x zoom</td></tr><tr>
<td>Ctrl Q</td><td>toggle cell anti-aliasing</td></tr><tr>
<td>4</td><td>4x zoom</td></tr><tr>
<td>Alt B</td><td>toggle cell borders</td></tr><tr>
<td>8</td><td>8x zoom</td></tr><tr>
<td>X</td><td>toggle gridlines</td></tr><tr>
<td>6</td><td>16x zoom</td></tr><tr>
<td>Shift X</td><td>toggle major gridlines</td></tr><tr>
<td>3</td><td>32x zoom</td></tr><tr>
<td>Ctrl G</td><td>toggle auto gridlines</td></tr><tr>
<td>Shift 3</td><td>64x zoom</td></tr><tr>
<td>Alt G</td><td>convert pattern to [Rule]Super</td></tr><tr>
<td>Shift 1</td><td>integer zoom</td></tr><tr>
<td>Alt H</td><td>convert pattern to [Rule]History</td></tr><tr>
<td>Shift 2</td><td>-2x zoom</td></tr><tr>
<td>Alt J</td><td>convert pattern to [Rule]Standard</td></tr><tr>
<td>Shift 4</td><td>-4x zoom</td></tr><tr>
<td>Ctrl L</td><td>toggle kill escaping gliders</td></tr><tr>
<td>Shift 8</td><td>-8x zoom</td></tr><tr>
<td>S</td><td>toggle stars</td></tr><tr>
<td>Shift 6</td><td>-16x zoom</td></tr><tr>
<td>O</td><td>open screenshot in separate window</td></tr><tr>
<td>Left</td><td>pan left</td></tr><tr>
<td>Shift O</td><td>open population graph in separate window</td></tr><tr>
<td>Right</td><td>pan right</td></tr><tr>
<td>Shift U</td><td>toggle UI</td></tr>
<td>Up</td><td>pan up</td></tr><tr>
<td>Alt U</td><td>toggle autohide UI during playback</td></tr>
<td>Down</td><td>pan down</td></tr><tr>
<td>Alt W</td><td>toggle rainbow mode</td></tr>
<td>Shift Left</td><td>pan north west</td></tr><tr>
<td>Shift Right</td><td>pan south east</td></tr><tr>
<td>Shift Up</td><td>pan north east</td></tr><tr>
<td>Shift Down</td><td>pan south west</td></tr><tr>
<td><</td><td>rotate left</td></tr><tr>
<td>></td><td>rotate right</td></tr><tr>
<td>Shift <</td><td>rotate left 90 degrees</td></tr><tr>
<td>Shift ></td><td>rotate right 90 degrees</td></tr><tr>
<td>5</td><td>reset angle</td></tr>
</table>
</table>
</div>
</div>
</div>
</div>


===View controls===
===Pattern controls===
<div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to view View controls.
Click on "Expand" to the right to view Pattern controls.
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
<table border=1 cellspacing=0 width=500><tr>
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td>Q</td><td>increase number of layers</td></tr><tr>
<td>Alt N</td><td>new pattern</td></tr><tr>
<td>A</td><td>decrease number of layers</td></tr><tr>
<td>Alt R</td><td>change rule</td></tr><tr>
<td>P</td><td>increase layer depth</td></tr><tr>
<td>Ctrl O</td><td>open original or last saved pattern</td></tr><tr>
<td>L</td><td>decrease layer depth</td></tr><tr>
<td>Ctrl+Shift O</td><td>open clipboard as pattern</td></tr><tr>
<td>C</td><td>next colour theme</td></tr><tr>
<td>Ctrl S</td><td>save pattern</td></tr><tr>
<td>Shift C</td><td>previous colour theme</td></tr><tr>
<td>Alt Z</td><td>randomize pattern and rule</td></tr><tr>
<td>Alt C</td><td>default theme</td></tr>
<td>Ctrl+Alt Z</td><td>randomize pattern only</td></tr><tr>
<td>F6</td><td>toggle oscillator and spaceship identification</td></tr><tr>
<td>Ctrl+F6</td><td>fast identification</td></tr>
</table>
</table>
</div>
</div>
</div>
</div>


===Display controls===
===External clipboard controls===
<div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to view Display controls.
Click on "Expand" to the right to view External clipboard controls.
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
<table border=1 cellspacing=0 width=500><tr>
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td>G</td><td>toggle generation statistics</td></tr><tr>
<td>Alt S</td><td>toggle sync cut and copy with external clipboard</td></tr><tr>
<td>Shift G</td><td>toggle generation display mode</td></tr><tr>
<td>Ctrl+Shift C</td><td>copy original pattern</td></tr><tr>
<td>Y</td><td>toggle population graph</td></tr><tr>
<td>Ctrl C</td><td>copy current selection</td></tr><tr>
<td>Shift Y</td><td>toggle graph lines</td></tr><tr>
<td>Ctrl+Alt C</td><td>copy current selection with comments</td></tr><tr>
<td>7</td><td>decrease graph opacity</td></tr><tr>
<td>Ctrl+Shift X</td><td>cut original pattern</td></tr><tr>
<td>9</td><td>increase graph opacity</td></tr><tr>
<td>Ctrl X</td><td>cut current selection</td></tr><tr>
<td>Shift W</td><td>toggle performance warning</td></tr><tr>
<td>Ctrl+Alt X</td><td>cut current selection with comments</td></tr><tr>
<td>/</td><td>toggle cell type for hex and triangular grids</td></tr><tr>
<td>Ctrl J</td><td>copy rule definition</td></tr><tr>
<td>T</td><td>toggle timing information</td></tr><tr>
<td>K</td><td>copy camera position</td></tr><tr>
<td>Shift T</td><td>toggle extended timing information</td></tr><tr>
<td>Shift K</td><td>copy camera position and view</td></tr>
<td>I</td><td>toggle pattern and engine information</td></tr><tr>
<td>Shift I</td><td>toggle information bar</td></tr><tr>
<td>Ctrl Q</td><td>toggle cell anti-aliasing</td></tr><tr>
<td>Alt B</td><td>toggle cell borders</td></tr><tr>
<td>X</td><td>toggle gridlines</td></tr><tr>
<td>Shift X</td><td>toggle major gridlines</td></tr><tr>
<td>Ctrl G</td><td>toggle auto gridlines</td></tr><tr>
<td>Alt G</td><td>convert pattern to [Rule]Super</td></tr><tr>
<td>Alt H</td><td>convert pattern to [Rule]History</td></tr><tr>
<td>Alt J</td><td>convert pattern to [Rule]Standard</td></tr><tr>
<td>Ctrl L</td><td>toggle kill escaping gliders</td></tr><tr>
<td>S</td><td>toggle stars</td></tr><tr>
<td>O</td><td>open screenshot in separate window</td></tr><tr>
<td>Shift O</td><td>open population graph in separate window</td></tr><tr>
<td>Shift U</td><td>toggle UI</td></tr>
<td>Alt U</td><td>toggle autohide UI during playback</td></tr>
<td>Alt W</td><td>toggle rainbow mode</td></tr>
</table>
</table>
</div>
</div>
</div>
</div>


===Pattern controls===
===Edit controls===
<div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to view Pattern controls.
Click on "Expand" to the right to view Edit controls.
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
<table border=1 cellspacing=0 width=500><tr>
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td>Alt N</td><td>new pattern</td></tr><tr>
<td>F1</td><td>toggle draw/pan mode</td></tr><tr>
<td>Alt R</td><td>change rule</td></tr><tr>
<td>F2</td><td>draw mode</td></tr><tr>
<td>Ctrl O</td><td>open original or last saved pattern</td></tr><tr>
<td>Shift F2</td><td>toggle smart drawing</td></tr><tr>
<td>Ctrl+Shift O</td><td>open clipboard as pattern</td></tr><tr>
<td>F3</td><td>pick mode</td></tr><tr>
<td>Ctrl S</td><td>save pattern</td></tr><tr>
<td>F4</td><td>select mode</td></tr><tr>
<td>Alt Z</td><td>randomize pattern and rule</td></tr><tr>
<td>F5</td><td>pan mode</td></tr><tr>
<td>Ctrl+Alt Z</td><td>randomize pattern only</td></tr><tr>
<td>Ctrl A</td><td>select all</td></tr><tr>
<td>F6</td><td>toggle oscillator and spaceship identification</td></tr><tr>
<td>Shift A</td><td>shrink selection</td></tr><tr>
<td>Ctrl+F6</td><td>fast identification</td></tr>
</table>
</div>
</div>
 
===External clipboard controls===
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to view External clipboard controls.
<div class="mw-collapsible-content">
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td>Alt S</td><td>toggle sync cut and copy with external clipboard</td></tr><tr>
<td>Ctrl+Shift C</td><td>copy original pattern</td></tr><tr>
<td>Ctrl C</td><td>copy current selection</td></tr><tr>
<td>Ctrl+Alt C</td><td>copy current selection with comments</td></tr><tr>
<td>Ctrl+Shift X</td><td>cut original pattern</td></tr><tr>
<td>Ctrl X</td><td>cut current selection</td></tr><tr>
<td>Ctrl+Alt X</td><td>cut current selection with comments</td></tr><tr>
<td>Ctrl J</td><td>copy rule definition</td></tr><tr>
<td>K</td><td>copy camera position</td></tr><tr>
<td>Shift K</td><td>copy camera position and view</td></tr>
</table>
</div>
</div>
 
===Edit controls===
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to view Edit controls.
<div class="mw-collapsible-content">
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td>F1</td><td>toggle draw/pan mode</td></tr><tr>
<td>F2</td><td>draw mode</td></tr><tr>
<td>Shift F2</td><td>toggle smart drawing</td></tr><tr>
<td>F3</td><td>pick mode</td></tr><tr>
<td>F4</td><td>select mode</td></tr><tr>
<td>F5</td><td>pan mode</td></tr><tr>
<td>Ctrl A</td><td>select all</td></tr><tr>
<td>Shift A</td><td>shrink selection</td></tr><tr>
<td>Alt A</td><td>toggle auto-shrink selection</td></tr><tr>
<td>Alt A</td><td>toggle auto-shrink selection</td></tr><tr>
<td>Ctrl C</td><td>copy</td></tr><tr>
<td>Ctrl C</td><td>copy</td></tr><tr>
Line 756: Line 1,007:


==Themes==
==Themes==
Themes are used to define the colours of cells, the background and the grid lines. Some Themes also
Themes are used to define the colours of cells, the background and the grid lines for 2-state and Generations patterns. Some Themes also specify whether major grid lines are used and if so on what interval.
specify whether major grid lines are used and if so on what interval.
 
Most Themes provide a visual representation of cell history and longevity.
Themes are primarily used to provide a visual representation of cell history and longevity.


The default Theme is "Blues"
The default Theme is "Blues"
Line 768: Line 1,019:


===Grid===
===Grid===
Some Themes define specific GridLine colours for standard and Major GridLines and also the major GridLine interval.
GRID: grid line colour<br />
GRID: grid line colour<br />
GRIDMAJOR: major grid line colour and interval
GRIDMAJOR: major grid line colour and interval


===Two-state Themes===
===Two-state Themes===
BACKGROUND: cell never occupied<br />
For two-state Themes there are five colours that are used for defining the cell colours:
ALIVE: cell just born<br />
<table border=1 cellspacing=0 width=500><tr>
ALIVERAMP: cell alive for several generations<br />
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
DEAD: cell just died<br />
<td>BACKGROUND</td><td>cell never occupied</td></tr><tr>
DEADRAMP: cell dead for several generations
<td>ALIVE</td><td>cell just born</td></tr><tr>
<td>ALIVERAMP</td><td>cell alive for at least AGESTATES generations (default 63)</td></tr>
<td>DEAD</td><td>cell just died</td></tr>
<td>DEADRAMP</td><td>cell dead for at least HISTORYSTATES generations (default 63)</td></tr>
</table>
New cells are drawn in the ALIVE colour.
 
If cells stay alive they fade from the ALIVE colour to the ALIVERAMP colour over the next AGESTATES (default 63) generations. This provides a visual representation of cell longevity.


There are 63 (AGESTATES) states from ALIVE to ALIVERAMP.<br />
Cells are drawn in the DEAD colour when they die.
There are 63 (HISTORYSTATES) states from DEAD to DEADRAMP.


If they stay dead they fade from the DEAD colour to the DEADRAMP colour over the next HISTORYSTATES (default 63) generations. This provides a visual representation of cell history.
<div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to see the definitions of the available two-state Themes.
Click on "Expand" to the right to see the definitions of the available two-state Themes.
Line 1,516: Line 1,776:


===Multi-state Themes===
===Multi-state Themes===
Multi-state Themes are used for Generations rules.
Multi-state Themes are used for Generations rules and there are six colours that are used for defining the cell colours:
<table border=1 cellspacing=0 width=500><tr>
<td bgcolor=#c0c0c0>Key</td><td bgcolor=#c0c0c0>Description</td></tr><tr>
<td>BACKGROUND</td><td>cell never occupied</td></tr><tr>
<td>ALIVE</td><td>cell alive</td></tr><tr>
<td>DYING</td><td>cell just started dying</td></tr>
<td>DYINGRAMP</td><td>cell about to die</td></tr>
<td>DEAD</td><td>cell just died</td></tr>
<td>DEADRAMP</td><td>cell dead for at least HISTORYSTATES generations (default 63)</td></tr>
</table>
New cells are drawn in the ALIVE colour.
 
Cells are drawn in the DYING colour when they start to die. They then fade to the DYINGRAMP colour over the number of generations defined in the rule.
 
Once cells reach the DYINGRAMP colour then on the next generation they die and become the DEAD colour.


BACKGROUND: cell never occupied<br />
If they stay dead they fade from the DEAD colour to the DEADRAMP colour over the next HISTORYSTATES (default 63) generations. This provides a visual representation of cell history.
ALIVE: cell alive<br />
DYING: cell just starting dying<br />
DYINGRAMP: cell about to die<br />
DEAD: cell just died<br />
DEADRAMP: cell dead for several generations


Rule defines states from DYING to DYINGRAMP<br />
63 (HISTORYSTATES) states from DEAD to DEADRAMP
<div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to see the definitions of the available multi-state Themes.
Click on "Expand" to the right to see the definitions of the available multi-state Themes.
Line 2,342: Line 2,609:
LifeViewer supports a large number of script commands than can be used to control playback, the camera, labels and annotations, colours and many other aspects.
LifeViewer supports a large number of script commands than can be used to control playback, the camera, labels and annotations, colours and many other aspects.


Scripts must be embedded in pattern comments. Commands must be surrounded by whitespace.
Scripts must be embedded in pattern comments which means you can add them to any pattern file and other pattern readers will happily ignore them. The should be encloded in <nowiki>[[</nowiki> and <nowiki>]]</nowiki>. All commands must be surrounded by whitespace. Multiple script sections are allowed.


For example loading the following pattern into LifeViewer will start playback automatically (AUTOSTART) and then stop at generation 30 (STOP 30).
For example loading the following pattern into LifeViewer will start playback automatically (AUTOSTART) and then stop at generation 30 (STOP 30).
Line 2,422: Line 2,689:
<td>LOOP <1..>|OFF</td><td>loop at generation</td></tr><tr>
<td>LOOP <1..>|OFF</td><td>loop at generation</td></tr><tr>
<td>STOP <1..>|OFF</td><td>stop at generation</td></tr><tr>
<td>STOP <1..>|OFF</td><td>stop at generation</td></tr><tr>
<td>STARTFROM <1..></td><td>play to generation on load</td></tr><tr>
<td>GPS <1..60></td><td>set steps per second</td></tr><tr>
<td>GPS <1..60></td><td>set steps per second</td></tr><tr>
<td>STEP <1..64></td><td>set generations per step</td></tr><tr>
<td>STEP <1..64></td><td>set generations per step</td></tr><tr>
Line 2,582: Line 2,850:
<td>SHOWINFOBAR</td><td>show information bar</td></tr>
<td>SHOWINFOBAR</td><td>show information bar</td></tr>
<td>RAINBOW</td><td>use rainbow colours</td></tr>
<td>RAINBOW</td><td>use rainbow colours</td></tr>
<td>QUALITY</td><td>anti-alias cells at non-integer zooms > 1x</td></tr>
</table>
</table>
</div>
</div>
Line 2,618: Line 2,887:


===Colours===
===Colours===
These commands allow you to specify the colour of cells, the grid lines, selections, the population graph, annotations and the UI.
These commands allow you to specify the colour of cells, the grid lines, selections, the population graph, annotations and the UI. For cell colours it is also possible to use the state name:
<nowiki>
[[ COLOR alive 0 255 255 ]]
[[ COLOR "mark off" 240 128 128 ]]</nowiki>
<div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible mw-collapsed">
Click on "Expand" to the right to view the Colour commands.
Click on "Expand" to the right to view the Colour commands.
Line 3,587: Line 3,859:
| 0
| 0
| style="background-color:#ffff00;" |
| style="background-color:#ffff00;" |
|-
|-
| YellowGreen
| YellowGreen
| 154
| 154
| 205
| 205
| 50
| 50
| style="background-color:#9acd32;" |
| style="background-color:#9acd32;" |
|-
|-
|}
|}
</div>
</div>
</div>
</div>
 
 
==Info==
==Info==
LifeViewer engine information and details about the currently loaded pattern can be found by pressing 'I', or clicking the Info button under Help.
LifeViewer engine information and details about the currently loaded pattern can be found by pressing 'I', or clicking the Info button under Help.
 
 
==References==
==References==
<references>
<references>
<ref name="post68678">{{LinkForumThread
<ref name="post87414">{{LinkForumThread
|format = ref
|format = ref
|title  = Re: Pattern viewer for forum threads
|title  = Re: Pattern viewer for forum threads
|p      = 68678
|p      = 87414
|author = Chris Rowett
|author = Chris Rowett
|date  = January 26, 2019
|date  = January 13, 2020
}}</ref>
<ref name="post68678">{{LinkForumThread
|format = ref
|title  = Re: Pattern viewer for forum threads
|p      = 68678
|author = Chris Rowett
|date  = January 26, 2019
}}</ref>
<ref name="post68691">{{LinkForumThread
|format = ref
|title  = Re: Pattern viewer for forum threads
|p      = 68691
|author = Chris Rowett
|date  = January 26, 2019
}}</ref>
<ref name="post86409">{{LinkForumThread
|format = ref
|title  = Re: Pattern viewer for forum threads
|p      = 86409
|author = Chris Rowett
|date  = December 20, 2019
}}</ref>
<ref name="post84188">{{LinkForumThread
|format = ref
|title  = Re: Pattern viewer for forum threads
|p      = 84188
|author = Chris Rowett
|date  = October 15, 2019
}}</ref>
}}</ref>
<ref name="post68691">{{LinkForumThread
<ref name="post75775">{{LinkForumThread
|format = ref
|format = ref
|title  = Re: Pattern viewer for forum threads
|title  = Re: Pattern viewer for forum threads
|p      = 68691
|p      = 75775
|author = Chris Rowett
|author = Chris Rowett
|date  = January 26, 2019
|date  = May 6, 2019
}}</ref>
<ref name="post86409">{{LinkForumThread
|format = ref
|title  = Re: Pattern viewer for forum threads
|p      = 86409
|author = Chris Rowett
|date  = December 20, 2019
}}</ref>
<ref name="post84188">{{LinkForumThread
|format = ref
|title  = Re: Pattern viewer for forum threads
|p      = 84188
|author = Chris Rowett
|date  = October 15, 2019
}}</ref>
}}</ref>
</references>
</references>

Revision as of 14:49, 11 May 2021

LifeViewer
Homepage Click here
Purpose Life simulation
Created by Chris Rowett
Platform HTML5 / Javascript

LifeViewer is a browser-based scriptable pattern viewer and editor used to simulate Life and a wide range of other 1D and 2D cellular automata.

If you want to use LifeViewer on your own site then the latest release can be downloaded here.

x=59, y = 7, rule = B3/S23 o5b5ob5ob5obo3bob5ob5obobobob5ob4o$o7bo3bo5bo5bo3bo3bo3bo5bobobobo5bo 3bo$o7bo3bo5bo5bo3bo3bo3bo5bobobobo5bo3bo$o7bo3b3o3b3o3bo3bo3bo3b3o3bo bobob3o3b4o$o7bo3bo5bo5bo3bo3bo3bo5bobobobo5bo3bo$o7bo3bo5bo6bobo4bo3b o5bobobobo5bo3bo$5ob5obo5b5o3bo3b5ob5o2bobo2b5obo3bo! #C [[ IGNOREEXCLUSIVE ]] #C [[ COLOUR DEAD 0 0 0 COLOUR ALIVE 0 0 0 ]] #C [[ LOOP 1101 STARS NOSTEPBACK ]] #C [[ AUTOSTART X -90 Y 60 LAYERS 6 ZOOM 4 DEPTH 3 ]] #C [[ PAUSE 3 X 90 Y -60 ANGLE 20 THEME 0 ]] #C [[ PAUSE 1.5 X 90 Y 60 ANGLE 340 ZOOM 6 ]] #C [[ PAUSE 1.5 X 0 Y 0 ANGLE 0 THEME 3 ZOOM 4 ]] #C [[ PAUSE 1 X 0 DEPTH 0.2 ZOOM 6 THEME 4 ]] #C [[ T 1 THEME 7 ]] #C [[ T 400 ZOOM 5 X 5 Y -10 THEME 2 ]] #C [[ T 450 DEPTH 5 ]] #C [[ T 560 X -155 Y 127 DEPTH 0.5 ]] #C [[ T 950 X -242 Y 214 ANGLE 20 ]] #C [[ T 1050 DEPTH 0 ANGLE 0 AUTOFIT "#T" ]] #C [[ T 1100 X 0 Y 0 ZOOM 0.25 THEME CUSTOM ]]

LifeViewer features

  • Smooth non-integer zoom with anti-aliasing and rotation.
  • Colour themes with cell history and longevity.
  • Square, hexagonal and triangular grids.
  • Pseudo 3D layers and stars.
  • Multiple ways to automatically track patterns with the camera as they evolve.
  • Script language that allows many features to be customized including Waypoint animations.
  • Support for multiple embedded LifeViewers and/or a single popup LifeViewer.
  • Ability to step back to earlier generations for all patterns and reverse playback for reversible Margolus and PCA patterns.
  • Random pattern and rule generation.
  • Real time auto-scaling population graph.
  • Pattern annotation with Labels, Arrows, Lines and Polygons.
  • Programatically pasting cells onto the grid at defined intervals (for example: glider injection).
  • Ability to build patterns from RLE recipes with transformations.
  • Identification of still life patterns, oscillator and spaceship periods.
  • Automatic scaling for high DPI displays including smartphones and tablets.
  • Editor with unlimitied undo/redo and multiple clipboards.

Rule support

LifeViewer supports the following rule families:

Built-in Rules

Click on "Expand" to the right to view example patterns for each rule family.

2-state Margolus rules.
Example: Critters (M15,14,13,3,11,5,6,1,7,9,10,2,12,4,8,0)
x=63, y = 34, rule = critters 9$52bo9$48b2o$39bo$47bo2bo3$47bo$48bo$5bo31bo20bo$6bo31bo18bo$6bo31bo 17bo$5bo31bo17bo! [[ RLE input o$bo$bo$o! PASTET EVERY 64 PASTE input 5 24 ZOOM 4 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]
2-state Outer-totalistic Life-like cellular automata (from ranges 1 to 500, including Larger than Life).
Example: Soldier Bugs (R7,C2,M1,S65..114,B65..95,NM)
x=113, y = 113, rule = R7,C2,M1,S65..114,B65..95,NM 49b4o$47b7o$46b10o$45b12o$45b13o19b2o$44b3o5b6o17b6o$22b3o19b3o5b6o16b 9o$20b7o17b3o5b6o15b11o$19b9o16b3o5b6o14b3ob9o$18b12o15b3o2b8o14b3o4b 7o$18b13o14b12o14b3o6b6o$17b5o3b6o15b10o15b3o6b6o$17b2o7b5o16b7o17b3o 6b6o$17b2o7b5o18b3o20b3obo2b7o$17b3o5b6o41b13o$17b3o2b9o42b11o$18b3ob 8o44b8o$19b10o46b6o16b5o$20b7o50b2o17b8o$21b5o69b4o2b4o$94b3o4b5o$93b 3o5b5o$93b5o4b5o$93b5o4b5o$93b5o4b5o$93b6o2b5o$94b12o$9b5o81b10o$8b7o 80b9o$7b9o80b8o$6b10o81b6o$6b11o$5b13o$5b5o3b5o$4b5o5b5o$4b5o5b5o$5b4o 4b5o$5b3o6b4o$6b4o3b4o$7b9o$8b7o$10b3o3$104b4o$102b8o$101b10o$100b4o4b 4o$100b3o5b4o$99b4o5b5o$99b5o4b5o$99b5o4b5o$100b13o$100b12o$101b10o$4b 6o91b10o$3b8o91b8o$2b10o91b6o$2b10o$b12o$13o$5o4b5o$5o4b5o$5o5b4o$b4o 5b3o$b4o4b4o$2b10o$3b8o$5b4o3$100b3o$98b7o$97b9o$96b4o3b4o$95b4o6b3o$ 95b5o4b4o$94b5o5b5o$94b5o5b5o$95b5o3b5o$95b13o$96b11o$10b6o81b10o$9b8o 80b9o$9b9o80b7o$8b10o81b5o$7b12o$7b5o2b6o$6b5o4b5o$6b5o4b5o$6b5o4b5o$ 7b5o5b3o$7b5o4b3o$8b4o2b4o69b5o$9b8o17b2o50b7o$11b5o16b6o46b10o$31b8o 44b8ob3o$29b11o42b9o2b3o$28b13o41b6o5b3o$27b7o2bob3o20b3o18b5o7b2o$27b 6o6b3o17b7o16b5o7b2o$27b6o6b3o15b10o15b6o3b5o$27b6o6b3o14b12o14b13o$27b 7o4b3o14b8o2b3o15b12o$28b9ob3o14b6o5b3o16b9o$29b11o15b6o5b3o17b7o$30b 9o16b6o5b3o19b3o$32b6o17b6o5b3o$34b2o19b13o$56b12o$57b10o$59b7o$60b4o! [[ ZOOM 2 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]
2-state Isotropic non-totalistic Life-like cellular automata (for range-1 Moore and range-1 hexagonal).
Example: Just Friends (B2-a/S12)
x=65, y = 74, rule = B2-a/S12 63bo$63bo4$61bo$64bo$59bobo2bo46$18bo$19b2o12$4bo$4bo4$2bo$5bo$obo2bo! [[ ZOOM 2 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]
2-state Non-isotropic Life-like cellular automata (for range-1 Moore, hexagonal and von Neumann).
Example: MAP//8IAN1+KYD/9QAA/f8AAOu/AQD38wAI//8IgP39Akrn/wAB/78DAP/+AAD/ugAA//sQCN3+AIDfvwhD//sAQA
x=1, y = 1, rule = MAP//8IAN1+KYD/9QAA/f8AAOu/AQD38wAI//8IgP39Akrn/wAB/78DAP/+AAD/ugAA//sQCN3+AIDfvwhD//sAQA:T80,40 o! [[ ZOOM 4 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]
Generations rules (as an extension of the outer-totalistic, non-totalistic and non-isotropic rulespaces).
Example: Fireworks (2,13,21)
x=200, y = 100, rule = 2/13/21:T200,100 #C Fireworks #C An admirably beautiful rule by John Elliott 88.A6$A58$61.A24$107.A11$37.A! [[ ZOOM 2 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]
Alternating rules.
Example: alternlife (B13/S012345678|B/S15)
x=21, y = 9, rule = alternlife 3.A13.A2$.2A15.2A2$A19.A4$9.A! [[ ZOOM 12 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]
Partitioned cellular automata (PCA) rules.
Example: PCA_4 (2PCA4,0,2,4,12,8,5,9,7,1,6,10,11,3,13,14,15)
x=49, y = 29, rule = PCA_4 AB45.AB$HD45.HD24$21.A20.D$20.E$AB19.B20.F4.AB$HD39.D5.HD! [[ STEP 20 ZOOM 6 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]
Weighted rules.
Example: R2,C2,S2-3,B4,7-8,NW0010001210120210121000100
x=9, y = 9, rule = R2,C2,S2,3,B4,7,8,NW0010001210120210121000100:T80,40 3A6.$3A6.$2A.A3.A.$2.A5.A$9.$9.$9.$2.A6.$3.A5.! [[ ZOOM 4 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]
Elementary cellular automata (even numbers only).
Example: Wolfram 30 (W30)
x=1, y = 1, rule = W30:P100,40 o! #CXRLE Pos=0,-20 [[ ZOOM 4 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]
  • [R]History rules.
    • Example: LifeHistory
      x=457, y = 155, rule = LifeHistory 59.3B64.B125.B$58.BFBF2B60.4BF122.3B$58.6BF.B.F.F.B.F.F.B.F.F.B.F.F.B .F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F7B5.BF.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F. B.F.F.B.F.F.B.FBF.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F .F.B.F.F.B.F.F3BFBF.2B2F2.3B$57.F10B.5B.5B.A4B.5B.5B.5B.26BF2BF133B$ 57.24B2A2BA129BA33B2A19B$56.23BA3B2A63B3A63BABA32B4A17B$55.F23BABA67B 2A66BA30BABA2BA16B$56.23BA3B2A63B3A63BABA31BAB4A14BF3B63.F3.BF$57.24B 2A2BA129BA33B4A20B3.B59.5B$56.12B.5B.5B.A4B.5B.5B.5B.28BF116BA23B.B2C 57.6B$57.7BF.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B. F.F7BF3.F2B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F .B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.FBF.2BFBF3BFBF8B3A8B2C 57.7B$58.6B61.7B125.10BA7B.B57.8B$56.F.5B.F59.9B125.7B3A7B58.10B$57. 7B61.7B125.15B61.10B$56.9B59.F.5B.F123.4B.5BA6B60.11B$57.7B61.7B123. 4B2.3B3A5B61.11B$56.F7BF59.F7BF121.4B3.B3A7B61.11B$57.7B61.7B121.4B3. 3B2A2B.3B55.F.B.F.2F11B$56.F.5B.F59.9B119.4B3.8B2.F43.B.F.F.B4.BF.6BA BA9B2A32B2A32B2A32B2A6B$57.7B61.7B119.4B3.8B44.23BA2BA7B4A30B4A30B4A 30B4A6BF$56.9B59.F.5B.F117.4B3.9B42.F24BA3BA6B2AB2A29B2AB2A29B2AB2A 29B2AB2A5B$57.7B61.7B117.4B3.4B.6B42.28BA8B2A32B2A32B2A32B2A6B$56.F7B F59.F7BF115.4B3.4B.7B42.24BA3BA117B$57.7B61.7B115.4B3.4B2.6B44.23BA2B A5B$56.F.5B.F59.9B113.4B3.4B3.6B47.7B.2B.F2.6B3A6B$57.7B61.2B3A2B113. 4B3.4B4.6B46.9B.F2.BF.B.F.F9B$56.9B59.F.5B.F111.4B3.4B4.8B46.7B13.F8B $57.7B61.2ABAB2A111.4B3.4B6.8B45.6B.F13.8B$56.F7BF59.FBA3BABF109.4B3. 4B6.9B45.F2BA3B14.8B$57.7B61.2BABA2B109.4B3.4B7.9B46.B3AB14.9B$56.F. 5B.F59.3BABA3B107.4B3.4B8.10B44.B2ABAB14.8B$57.7B61.BA3BAB107.4B3.4B 9.5B2A3B42.F2.5B14.8B$56.9B59.F.5B.F105.4B3.4B10.5B2A4B28.B6.F6.7B.F 11.10B$57.7B61.7B105.4B3.4B11.11B27.5BF.2B3.B.9B12.11B$56.F7BF59.F7BF 103.4B3.4B12.12BA.2A21.24B14.8B$57.7B61.7B103.4B3.4B15.8B2.2A.A19.26B 14.7B$56.F.5B.F59.9B101.4B2.5B16.7B26.F25B14.7B$18.3B4.B31.7B61.7B 101.4B3.4B17.5B29.24BF13.8B$17.BFBF6BF28.9B59.F.5B.F99.2A2B3.4B18.5B 30.23B14.6B$17.6B.5B28.7B61.7B99.2B2A3.4B18.6B31.8B2.B.F10B14.5B$16.F 13BF25.F7BF59.F7BF97.2BAB3.4B19.7B2.4B23.10B6.B.6BF12.F.4B$16.4BA12B 24.7B61.7B97.4B3.4B19.F7BF6BF21.9B9.5B16.F.B$15.4B2A5BA5BFB22.F.5B.F 59.9B95.4B3.4B21.14B21.11B5.3B2ABA6B$14.F3BA9BA5B23.7B61.7B95.4B3.4B 21.F14B20.7BA2BF2B4.4B3A6B$14.5B2A3BA3BA3BFB22.9B59.F7BF93.4B3.4B23. 15B19.6B3A4B4.2BF2BA7B$13.7BA12B24.7B61.7B93.4B3.4B23.16B19.6BAB2A3B 5.11B$14.11B2A6B23.F7BF59.F7BF91.4B3.4B25.15B24.5B9.9B$14.B.7BF7B.B 24.7B61.7B91.4B3.4B25.F14B23.F6B.B6.10B$14.19B23.F.5B.F59.9B89.4B3.4B 27.9B.3B25.10BF.B2.8B$14.20B23.BA3BAB61.7B89.4B3.4B27.F7BF31.23B$13.B F18B23.3BABA3B59.F7BF87.4B3.4B27.10B30.F24B$13.19BF24.2BABA2B61.7B87. 4B3.4B29.9B30.25BF$13.BF17B24.FBA3BABF59.F7BF85.4B3.4B31.7B31.25B$14. 17B26.2ABAB2A61.7B85.4B3.4B31.F7BF30.BA22B$16.F13BF25.F.5B.F59.9B83. 4B3.4B33.7B31.BA7B.B3.2B.F5B$18.5B.6B27.2B3A2B61.7B83.4B3.4B33.F7BF 31.BA5B6.F6.B$19.F6BFBFB26.9B59.F7BF81.4B3.4B35.7B32.5B2.F$21.B4.3B 28.7B61.7B81.4B3.4B35.9B32.3B$56.F7BF59.F7BF79.4B3.BA2B37.7B34.F$57. 7B61.7B79.4B3.2A2B37.F7BF$56.F.5B.F59.9B77.4B3.2B2A39.7B$57.7B61.7B 77.4B3.4B39.F7BF$56.9B59.F7BF75.4B3.4B41.7B$57.7B61.7B75.4B3.4B41.9B$ 56.F7BF59.F7BF73.4B3.4B43.7B$57.7B61.7B46.F2B2A2BF19.4B3.4B43.F3BA3BF $56.F.5B.F59.9B45.3B2A2B19.4B3.4B45.2B3A2B$57.7B61.7B46.8B.F15.4B3.4B 45.FB5ABF$56.9B59.F7BF43.12B14.4B3.4B47.BA3BAB$57.7B61.8B42.F13B12.4B 3.4B47.2A5B2A$56.F7BF.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F .F.B.F.F.B.F9B38.3B.13BF10.4B3.4B49.BA3BA2B$55.11B.5B.5B.5B.5B.5B.5B. 4BA.5B.5B.13B37.5B.11B11.4B3.4B49.FBA3BABF$55.48BA2B2A27B37.5B.8B2.F 9.4B3.4B50.8B$54.BF48B2A3BA24B40.13B10.4B3.4B52.F6B$54.53BABA23BF41. 8B.4B8.4B3.4B53.6BF64.F$54.BF48B2A3BA23B43.7B2.4B6.4B3.4B54.7BF.B.F.F .B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F2.B.3B$55.48BA2B 2A24B45.5B.F2.4B4.4B3.4B55.F10B.5B.5B.5B.5B.5B.5B.5B.5B.5B2.7BF$57.F 7B2.5B.5B.5B.5B.5B.5B.4BA.5B.5B.10BF45.4B6.4B2.4B3.4B56.33B2A42B$59. 3B.B2.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F7B 45.4B7.8B3.4B56.33BABA41BFB$60.F64.F6B44.4B9.6B3.4B56.F32B2A45B$125. 6BF43.4B11.4B3.4B57.34BABA41BFB$125.8B41.4B11.6B.4B57.36B2A42B$124.F 7BF40.4B11.11B59.13B.5B.5B.5B.5B.5B.5B.5B.5B.5B.11B$124.8B40.4B11.4B 2.5B60.9BF.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F. F7BF$124.9B38.4B11.4B4.5B60.8B61.7B$125.7B38.4B11.2A2B6.4B60.F7BF59. 9B$124.F7BF36.4B11.2B2A8.4B12.B47.7B61.7B$125.7B36.4B11.2BAB10.4B10. 3B45.9B59.F.5B.F$124.F7BF34.4B11.4B12.4B9.3B46.7B61.7B$125.7B34.4B11. 4B14.4B7.4B45.F7BF59.F7BF$124.9B32.4B11.4B16.4B5.4B.F45.7B61.7B$125. 7B32.4B11.4B18.4B3.4B.3B43.F7BF59.9B$124.F7BF30.4B11.4B20.9B.6B42.7B 61.7B$125.7B30.4B11.4B22.15BF40.9B59.F.5B.F$25.F98.F2BABA2BF28.4B11. 4B24.15B41.7B61.7B$125.2B3A2B28.4B11.4B26.16B38.F7BF59.F7BF$124.3B3A 3B26.4B11.4B29.10B2A2B39.7B61.7B$20.F104.7B26.4B11.4B31.9B2A2B38.F7BF 59.9B$124.F7BF24.4B11.4B31.F2.11B39.7B61.7B$125.7B24.4B11.4B34.11B39. 9B59.F.5B.F$124.F.5B.F22.4B11.4B34.9B.F41.7B61.7B$125.7B22.4B11.4B34. 3AB.4B43.F7BF59.F7BF$124.9B20.4B11.4B34.3BA2.4BF43.7B61.7B$31.F92.10B 18.4B11.4B34.3BA2.F.2B44.F7BF59.9B$124.F7BF18.4B11.4B34.4B5.F46.7B61. 7B$125.7B18.4B11.4B34.4B52.9B59.F.5B.F$20.F9.2A92.F.5B.F16.4B11.4B34. 4B54.7B61.7B$30.2A93.7B16.4B11.4B34.4B54.F7BF59.F3BA3BF$124.9B14.4B 11.4B34.4B56.7B61.2B3A2B$75.F49.7B14.4B11.4B34.4B56.F7BF59.2BA3BA2B$ 7.F23.F35.F56.F7BF12.4B11.B2DB34.4B58.7B61.B2AB2AB$2.F17.3A101.8B12. 4B11.2B2D34.4B58.9B59.F.5B.F$22.A6.F94.F7BF10.4B11.4B34.4B60.7B61.7B$ F20.A2.F42.2A9.F46.7B10.4B11.4B34.4B60.F7BF59.F7BF$67.2A55.9B8.4B11. 4B21.B12.4B62.7B61.7B$119.2B4.7B8.4B11.4B21.3B10.4B62.F.5B.F59.9B$2A 116.5B2F7BF3B3.4B11.4B22.3B9.4B64.B2AB2AB61.7B$2A9.F55.F11.F38.24B11. 4B23.4B7.4B64.2BA3BA2B59.F.5B.F$117.24B11.4B23.F.4B5.4B66.2B3A2B61.7B $69.F13.F33.23B11.4B23.3B.4B3.4B66.F3BA3BF59.F7BF$F117.21B11.4B22.6B. 9B68.7B61.7B$73.F11.F31.23B9.4B22.F15B68.F.5B.F59.9B$118.21B9.4B23. 15B70.7B61.7B$80.A38.19B9.4B22.16B70.9B59.F.5B.F$81.A2.2A37.B.10B11. 4B23.2B2A10B73.7B61.7B$74.F4.3A2.2A40.8B11.4B24.2B2A9B73.F7BF59.F7BF$ 11.F115.6B11.4B25.11B2.F73.7B61.7B$11.F115.5B11.4B27.11B74.F.5B.F59. 9B$85.F41.6B9.4B29.F.9B74.7B61.7B$126.8B7.4B33.4B.4B72.9B59.F.5B.F$ 125.4B.5B6.4B21.D.D8.F4B2.4B72.7B61.7B$124.4B4.4B2.F.5B19.D5.D8.2B.F 2.4B70.F7BF59.F7BF$123.4B6.4B2.BA5B34.F5.4B70.7B61.7B$79.F42.4B8.4B.A B2A4B16.D3.C3.D15.4B68.F.5B.F59.9B$121.4B10.4BA3BA4B18.2C19.5B35.3B 30.7B61.7B$120.4B9.F2.4BA3B.5B13.D2.C.C2.D17.4B32.7B27.9B59.F.5B.F$ 119.4B11.7BA3B.5B39.4B30.10B26.7B61.7B$118.4B10.F2BA6BA3B.3B14.D5.D 20.4B.F.F.B.F.F.B.F.F.B.F.F.B.F3.12B23.F7BF59.F7BF$118.3B12.B3A9BF19. D.D23.28B3.14B23.7B61.7B$118.2B14.AB3A7B43.B2.4BA3BA36BF21.F.5B.F59. 9B$118.B15.F.B2A6B43.2AB.3BA4BA36BF22.7B61.7B$137.BA6B43.2A6B2A39B22. 9B59.F.5B.F$136.F2BA3BF45.2B.3BA4BA38B21.7B61.6B$137.BA3B50.4BA3BA23B 4.11BF.B.F.F.B.F.F.A.F3.F7BF.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B. F.F.B.F.F.B.F.F.B.F7B$138.A3B50.28B10.13B.5B.3BA4BF28B.5B.5B.5B.5B.5B .5B.12B$191.BF2B.F.F.B.F.F.B.F.F.B.F.F.B.F9.21B2AB2A44B2A33B$229.21B 2A48BABA33B$229.20B3A50B2A32BF$230.20B2A48BABA33B$229.F21B2AB2A44B2A 33B$230.7B.5B.5B.3BA3BF2BF26B.5B.5B.5B.5B.5B.5B.10BF$229.7BF2.F.B.F.F .B.F.F.A.FB5.7BF.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F. F.B.F6B$230.5B28.F4B60.2BFBFB$231.3B31.B64.3B$232.B.F! [[ ZOOM 1 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]
[R]Super rules.
Example: LifeSuper
x=312, y = 156, rule = LifeSuper:T312,156 69.M.M6.M.M49.2Q.Q6.Q3.3Q117.S.2S2.S.S2.2S.S10.U.2U2.U.U2.2U.U$20.2O. 2O2.2O.2O39.M6.M44.2Q5.Q.Q8.3Q4.Q85.2O34.S.S22.U.U$20.2O2.O2.O2.2O36. 2M10.2M41.2Q17.2Q3.Q85.4O28.S11.S12.U11.U$21.2O2.2O2.2O94.Q106.2O2.2O 28.S2.S3.S2.S14.U2.U3.U2.U$21.O8.O201.O4.O28.4S3.4S14.4U3.4U$19.2O10. 2O23.G36.A8.A7.A7.A7.A7.A7.A7.A7.A7.A7.A7.A7.A7.A35.2O30.S3.S.S3.S14. U3.U.U3.U$51.3A2.G.G32.A.A6.A.A5.A.A5.A.A5.A.A5.A.A5.A.A5.A.A5.A.A5.A .A5.A.A5.A.A5.A.A5.A.A33.O4.O30.S.S.S.S18.U.U.U.U$18.O14.O21.G.G34.A. A3.A5.A.A5.A.A5.A.A5.A.A5.A.A5.A.A5.A.A5.A.A5.A.A5.A.A5.A.A5.A.A5.A.A 29.O4.O28.S3.S.S3.S14.U3.U.U3.U$18.O2.O8.O2.O23.G34.A3.A.A7.A7.A7.A7. A7.A7.A7.A7.A7.A7.A7.A7.A7.A24.O14.O26.S3.S20.U3.U$18.O14.O170.A21.O. O4.O2.O4.O.O20.2S.S7.S.2S10.2U.U7.U.2U$19.O.O8.O.O61.2A133.O3.4O3.O 23.2S11.2S10.2U11.2U$21.O8.O70.A7.A7.A7.A7.A7.A7.A7.A7.A7.A7.A7.A7.A 6.2A3.G16.O16.O19.S15.S8.U15.U$22.O6.O65.A5.A.A5.A.A5.A.A5.A.A5.A.A5. A.A5.A.A5.A.A5.A.A5.A.A5.A.A5.A.A5.A.A10.2G16.2O10.2O20.S2.S11.S2.S6. U2.U11.U2.U3.A$21.3O4.3O66.A.A5.A.A5.A.A5.A.A5.A.A5.A.A5.A.A5.A.A5.A. A5.A.A5.A.A5.A.A5.A.A5.A.A4.2G17.3O10.3O22.S11.S12.U11.U6.A$22.2O4.2O 67.A7.A7.A7.A7.A7.A7.A7.A7.A7.A7.A7.A7.A7.A8.G21.O4.O24.S.S3.S5.S3.S. S6.U.U3.U5.U3.U.U3.A$19.2O10.2O197.2O.O2.O.2O27.2S5.2S16.2U5.2U$19.3O 3.2O3.3O41.W11.A14.I9.K14.M103.2O2.2O2.2O27.S2.S.S2.S16.U2.U.U2.U$20. 2O3.2O3.2O28.pA12.W.W9.A.A12.I.I7.K.K12.M.M102.2O6.2O27.3S3.3S16.3U3. 3U$21.O3.2O3.O25.2pA.2pA12.W10.2A13.2I8.2K13.2M105.2O.2O.2O29.S.S.S.S 18.U.U.U.U$20.3O6.3O23.pA3.pA6.3W4.W3.W7.A.A12.I9.K.K12.M105.2O.2O.2O 29.2S3.2S18.2U3.2U$55.pA3.pA6.2W2.W4.W.W7.2A12.I.I8.2K7.2M4.3M5.M$54. pA3.pA9.3W.2W.2W11.A10.I13.K14.M2.M.M.M$20.3O6.3O20.3pA.pA.pA7.W2.W.W .3W8.A2.A5.A4.I10.K2.K4.2M2.M2.3M2.M.M.2M94.3O6.3O$19.5O4.5O16.pA2.2pA 3.2pA6.W4.W5.W6.A8.A.A3.I.I7.K7.M6.3M102.O3.O4.O3.O$18.O5.O2.O5.O14.pA .pA3.2pA9.W4.W5.W5.2A7.2A5.I2.I5.2K6.2M4.2M108.O6.O$19.O3.O4.O3.O14.pA 2.pA3.pA4.pA6.W2.W.W.3W7.A8.A14.K.K6.M4.3M104.2O10.2O$48.pA.pA3.2pA2. pA9.3W.2W.2W6.3A5.A.A4.3I5.2K8.3M$49.pA2.2pA.pA.pA8.2W2.W4.W.W6.A6.A 6.2I17.M$52.2pA12.3W4.W3.W8.A2.2A2.A6.I6.K11.M160.2W$54.2pA17.W10.2A 2.3A2.A4.2I7.K.K7.2M159.2W2.2W$55.pA17.W.W8.2A3.3A7.I.I5.K.K7.2M158.W $74.W11.A13.I7.K10.M154.4W5.W$274.W$12.G97.A36.A5.A6.A12.A11.A88.W.W 4.3W$11.G2.G22.2S53.11P8.2A.3A.3A3.A3.A3.A13.A.A3.A.A3.A.A5.3A2.A2.A 3.3A2.A2.A3.3A.3A.2A4.2A11.2A27.3W26.2W3.2W3.W$11.G2.G22.S4.2S46.15P 4.2A12.3A.3A.3A5.A4.3A.A3.A2.A3.A.A3.3A3.A2.A2.3A3.A2.A2.3A7.A3.A2.A 6.A3.A.A31.2W5.W19.2W3.W.W$13.G24.S.S2.S16.46P5.A10.A.4A.4A.A3.A.A2.A 4.2A3.A.A3.A12.A11.A14.A.3A2.3A3.A.A5.A30.2W5.W17.W7.W$42.S3.2S12.P 29.15P17.2A9.A.A2.A.A2.A.2A3.A3.A45.A3.2A3.A.A2.A6.A36.W17.W2.W2.W6.W $39.S5.S.S12.P31.11P12.3A5.A3.3A.A2.A2.2A.2A.A.A.2A8.A43.2A3.4A.A.2A. 2A2.2A25.W31.3W.2W2.3W3.W$41.S.S6.2S8.P59.3A4.A.A.3A4.A4.2A4.2A3.A.2A 5.2A3.2A3.2A3.2A3.2A3.2A3.2A3.3A.A.2A3.A.A2.A.A30.W3.3W23.W15.2W3.W2. 2W.W$37.S.S5.S5.S8.P59.A4.3A.A8.A.2A2.A3.A.A.2A2.A.2A.2A3.2A3.2A3.2A 3.2A3.2A3.2A3.2A.2A4.2A.A3.A3.A.4A25.W6.W22.2W.2W.2W3.4W2.W3.W3.W3.2W $37.2S3.S5.S.S3.2S4.P63.A3.A.2A7.A3.3A.A.A2.A4.A3.2A3.2A3.2A3.2A3.2A 3.2A3.2A3.2A5.2A.A.A.3A3.2A.A2.A28.W2.2W28.4W.W.4W3.W3.W3.2W$44.S.S6. S.S4.P63.2A2.A2.A8.2A3.A.A2.A5.2A5.2A3.2A3.2A3.2A3.2A3.2A3.2A3.2A4.A 7.4A5.2A30.W.W23.3W4.W.W5.W8.2W.W$40.S.S5.S11.62P7.2A4.3A4.2A.A.2A.A. A3.A47.A9.A71.W.W.2W3.W$45.S5.S.S20.P46.P20.A.2A.A2.A.2A4.A42.2A.A.A 14.2A26.2W34.2W3.W.W.W5.3W$14.2W3.W18.S.S6.S.S6.2S16.P46.P26.2A7.2A 28.2A13.A2.2A13.A.A26.2W4.2W28.2W2.W.2W.W5.W2.2W3.2W$3.4W7.2W2.W2.W 15.S5.S.S5.S5.S16.P46.P40.A24.A9.2A.A.A4.2A46.2W30.W.W4.3W5.2W2.W$W2. W4.W2.W2.W.W.W18.2S9.S5.S.S17.P46.P11.3A9.A5.A10.A25.A.A5.A.A.2A5.A6. A3.A.A29.W41.2W3.2W4.W.W$.W.W.W2.W.W.W3.W.W2.W4.W14.S.S6.S.S7.30P31.P 23.A5.A10.A7.A6.A13.A.A.A12.A.A.A.A34.W.W4.W38.3W3.W2.4W3.W$.W.3W2.W. W4.W.2W.2W4.3W12.2S3.S.S5.S5.30P6.26P15.3A5.A4.2A17.2A6.2A5.3A3.2A.2A 21.A.A3.A25.W2.W3.W.W48.W2.W.W$.3W2.2W2.W.2W4.W5.W2.4W14.S5.S8.3P4X3P 3X3P.3P.2P5.2P6.P52.A18.3A6.3A4.A25.A11.A24.W2.W3.W2.W40.3W5.2W3.W$W 10.3W.W2.2W4.2W2.W3.2W11.2S6.S.S4.2PX6PX3PX2P.3P.2P.6P6.P44.3A3.A2.A 2.3A4.2A7.2A6.2A6.A28.A3.A3.A30.W2.W48.W4.2W$.3W9.4W.W.3W6.2W.2W3.2W 10.S.S8.2PX6PX3PX2P2.2P.2P.6P6.P50.A3.A.A6.A.A7.A6.A17.A6.A5.2A2.A.A 32.W2.W55.2W$.3W10.W3.W2.2W3.W2.W3.W3.W.W9.2S4.S.S2.2PX2P2X2PX3PX2P.P .P.2P3.4P6.P50.A4.A8.3A30.2A6.2A9.A.A2.2A29.2W2.W2.W53.W$.3W3.W11.4W 2.4W.2W.3W.W.W16.2S2.2PX3PX2PX3PX2P.2P2.2P.6P6.P65.2A29.3A6.3A4.A3.A 8.A32.2W53.W$7W27.3W23.2PX3PX2PX3PX2P.3P.2P.6P6.48P5.3A8.A.A31.2A6.2A 13.A4.A$3.W.W17.7W2.W.3W23.3P3X4P3X3P.3P.2P5.2P54.P10.2A2.A.A33.A6.A 6.A.A10.A26.3W$6.W16.W2.W33.30P53.P11.A.A2.A14.3A4.2A29.A.A.A.A30.2W 3.3W$6.W24.W28.30P54.P11.4A13.A8.A.A22.A.A3.A33.2W7.2W$60.30P53.P13. 2A6.3A5.A4.A40.A.A25.3W3.2W$60.30P54.P29.A2.A.A3.2A.A14.3A.A.A14.A25. W.W2.3W$60.30P5.O47.P17.3A5.3A4.A2.A16.A24.2A26.2W3.W.W$19.VRTVRTVRTV RTVRTVRTVRTVRTVRTVRTVRTVR6.3P3.4P3.4P3X3PX3PX2P5.O.O46.P32.2A.2A4.A.A 5.2A6.A.A2.A5.A41.2W54.Q$19.T34.T5.2P.3P.2P.3P.2PX3PX2PX3PX2P3.O5.O 43.P21.3A11.A2.A13.2A3.A4.A104.Q$.Q17.V34.V5.2P.6P.3P.2PX3PX2P2X2PX2P 9.O.O42.P34.A.A2.A3.A.A4.A5.2A3.A4.A.3A6.A27.2W58.Q$2.2Q2.Q12.V34.R5. 3P3.3P.3P.2PX3PX2PXPXPX2P2.2O9.O39.P25.3A8.A32.2A.A5.A25.W.2W4.2W$6.Q 12.V34.R5.6P.2P.3P.2PX3PX2PX2P2X2P13.O.O38.P36.2A.A5.A.A8.2A3.A6.A.2A 5.A25.W5.W.2W51.Q.Q$.Q4.Q12.V34.R5.2P.3P.2P.3P.2PX3PX2PX3PX2P4.O5.O6. O35.P29.3A7.A6.A2.A.2A.A.A.A3.A7.3A.A29.W5.W54.Q.Q$9.3Q7.V3.27V4.R5. 3P3.4P3.4P3X3PX3PX2P10.O6.O.O34.P47.2A.2A.2A6.A41.W2.W2.W54.Q$19.V3.V 25.V4.R5.30P4.2O4.O10.O31.P33.3A36.A32.2W3.W2.W$14.Q4.V3.V25.V4.R5. 30P21.O.O30.P45.A64.2W52.Q$14.Q4.V3.V25.V4.R5.30P3.O4.O4.2O2.2O6.O27. P37.3A6.A4.A26.A86.Q$9.2Q3.Q4.V3.V25.V4.T5.30P8.O4.O2.O.O6.O.O26.P45. A2.A.A26.A27.2W57.Q$3.4Q.Q10.V3.7V14.6V4.T5.30P2.2O4.O5.O14.O23.P41. 3A6.A.A3.A10.2A.2A6.A25.W.2W4.2W$Q3.2Q13.V9.V14.V9.T52.O11.O.O22.P49. A5.A.A7.A2.2A.A31.W5.W.2W$Q4.Q5.Q7.V9.V14.V9.T39.O.O6.O.O2.O3.2O9.O 19.P45.3A7.A.A4.A3.A4.2A5.A25.W5.W$.Q8.2Q7.V9.V14.V9.T41.O6.2O2.2O3.O 3.2O5.O.O18.P56.A2.A.A4.A3.A6.A25.W2.W2.W$9.3Q7.V9.V14.V9.T43.O.O12.O .O.O9.O15.P49.3A9.A.A2.2A4.A5.A26.2W3.W2.W$.Q9.Q7.V9.V14.V9.T45.O26.O .O14.P60.A4.A.2A2.A38.2W$.3Q15.V.9V14.9V2T47.O.O6.O.O.O8.O6.O11.P53. 3A11.2A.2A4.A$.2Q8.Q92.O6.2O3.O5.2O7.O.O10.P74.A.A26.W.2W6.W$.Q5.Q4.Q 93.O.O6.2O7.2O17.P57.3A44.W.W7.W$7.2Q3.Q95.O14.O10.2O8.P28.4Q40.A3.2A 26.W8.W$4.Q.4Q29.G70.O.O7.O7.O9.O4.X28.5Q28.3A3.A4.A5.A26.2W$2.2Q10.Q 22.G.G72.O5.O.O5.O.O5.O4.2O3.X24.Q.Q4.2Q33.A.A3.A.A29.2W3.W3.W50.A$ 14.Q23.G.G73.O.O5.O.O5.O.O4.2O4.X24.4Q38.A.A6.2A28.2W3.W3.W50.A$14.Q 23.G77.O7.O7.O6.O4.X22.2Q2.Q5.Q34.A41.W3.W50.A$143.X24.Q.Q3.3Q$144.X 24.3Q.3Q.Q73.pA17.pA$143.X25.3Q.2Q4.Q70.pA.pA15.pA.pA$144.X26.3Q3.2Q 70.2pA16.2pA$143.X29.Q.2Q.Q4.Q66.pA18.pA$144.X27.6Q4.2Q3.2Q60.pA.pA 15.2pA$143.X27.Q9.Q4.3Q6.3Q51.pA17.3pA$142.X28.2Q4.2Q.4Q.Q3.Q.3Q2.Q2. 3Q46.pA$95.3X.7X2.X2.12X6.3X3.7X30.Q3.3Q.Q4.2Q.2Q6.Q51.pA.pA2.2pA12.pA 2.pA$94.X3.2X2.X2.X.X.X.X2.X2.2X9.X3.X2.X38.Q7.Q5.2Q7.Q.3Q46.pA3.pA7. 2pA5.pA.pA$93.X8.X3.X3.X3.X3.X14.X.X38.Q5.Q3.2Q.3Q5.3Q51.3pA4.2pA2.pA 6.pA$93.X8.X3.X3.X3.X3.X14.X.X50.Q.2Q4.4Q53.2pA.pA.pA.pA2.pA6.pA$93.X 8.X3.X3.X3.X3.X14.X.X43.Q.3Q.2Q.Q5.Q3.Q11.2Q8.2Q30.2pA3.4pA7.pA.pA$ 94.X7.X3.X3.X3.X3.X14.X.X44.Q.Q.2Q2.4Q4.Q2.Q9.3Q7.Q2.4Q43.pA$95.2X5.X 3.5X3.X3.3X12.X.4X48.Q4.Q4.Q3.Q4.Q2.Q2.2Q.Q.Q.2Q.Q.2Q26.2pA3.4pA7.2pA $97.X4.X3.X3.X3.X3.X13.X6.X50.3Q5.Q2.Q2.2Q.Q.Q.Q.2Q.Q5.Q.Q.2Q4.Q18.2pA .pA.pA.pA2.pA$98.X3.X3.X3.X3.X3.X12.X8.X49.5Q7.Q2.Q.Q3.Q2.Q.Q.2Q2.Q.Q .2Q3.2Q16.3pA4.2pA2.pA6.pA2.pA$98.X3.X3.X3.X3.X3.X11.X9.X52.Q5.3Q5.Q. Q.3Q.2Q2.Q2.Q3.Q3.Q17.pA3.pA7.2pA4.pA$98.X3.X3.X3.X3.X3.X10.X10.X52.Q 5.Q4.2Q11.Q3.2Q.Q.2Q.3Q.Q4.2Q8.pA.pA2.2pA10.2pA$93.X3.X4.X3.X3.X3.X3. X9.X6.X3.X60.Q3.Q4.Q12.Q.Q.Q.2Q.Q2.4Q2.Q2.2Q3.pA17.pA$94.3X5.X3.X3.X 3.X3.4X6.7X.3X67.Q3.Q8.2Q2.2Q4.Q.2Q10.Q.Q3.pA16.3pA$122.6X77.Q5.2Q12. 2Q.Q2.6Q.2Q3.Q5.pA.pA15.pA$206.Q4.2Q13.4Q6.3Q4.Q6.pA18.pA$207.Q.Q19. 6Q4.2Q.Q6.2pA16.2pA$211.2Q16.Q2.Q.Q6.Q8.pA.pA14.2pA$251.pA17.pA2$.pA 12.pA80.E7.E70.G134.pA$pA.pA4.2pA.pA3.pA7.O6.O21.2K.2K10.M16.M11.E.E 5.E.E69.2G.3G3.G2.G7.2G4.3G105.pA$.2pA4.pA.2pA3.pA6.O.O4.O.O30.M3.2M 16.2M3.M4.E5.E.E5.E65.2G9.G2.G6.4G8.G102.pA$21.O.O4.O.O21.K.K6.M.2M. 2M14.2M.2M.M10.E7.E.E65.G6.2G.2G.2G3.G4.G7.G$.4pA3.3pA10.O.O4.O.O7.3I .3I7.K.K6.M2.2M18.2M2.M3.2E17.E72.G2.G4.2G4.2G6.G56.2S.2S7.2S.2S8.2O. 2O7.2O.2O$pA4.pA.pA3.pA.2pA6.O.O4.O.O7.I5.I4.2K.K.K.2K11.M10.M30.E.E 70.G2.G4.2G4.2G9.3G51.S.4S5.4S.S8.O.4O5.4O.O4.2pA$pA3.2pA.pA3.pA.pA6. 2O.2O2.2O.2O8.I.I7.2K3.2K37.E.E7.E10.E66.2G.2G.2G3.G4.G63.S6.S3.S6.S 6.O6.O3.O6.O4.pA$pA.2pA.pA.pA.pA.pA.pA25.2I.2I23.M.3M.M2.M.3M.M13.E5. E.E10.E.E66.G2.G6.4G7.3G55.S4.S5.S4.S3.2A3.O4.O5.O4.O5.pA$pA4.pA.pA3. pA.2pA7.2O4.2O8.I5.I22.M2.2M.M2.M.2M2.M15.E.E5.E.E10.E64.G2.G7.2G66.S 15.S3.2A3.O15.O4.2pA$.4pA3.3pA11.8O40.2M.M2.M.2M11.3E6.E7.E10.E.E68.G 10.2G14.3G44.S13.S10.O13.O$20.O2.O.2O.O2.O6.I5.I5.2K3.2K53.E.E10.E66. G9.G2.G6.4G8.G40.S15.S8.O15.O$.4pA3.3pA9.3O6.3O7.2I.2I5.2K.K.K.2K37.E 5.E10.E10.E.E64.G8.G4.G4.G.2G.G7.G40.S2.2S.2S.2S.2S2.S8.O2.2O.2O.2O. 2O2.O$pA4.pA.pA3.pA.2pA5.O10.O8.I.I9.K.K40.E5.E5.2E5.E.E10.E65.3G2.G 6.G3.2G2.2G7.G43.2S.2S.2S.2S14.2O.2O.2O.2O7.2pA$pA2.pA.pA.pA3.pA.pA6. O10.O6.I5.I7.K.K16.M6.M16.2E3.2E5.E8.E10.E.E68.G6.G3.2G2.2G52.S7.S16. O7.O9.pA$pA3.2pA.2pA2.pA.pA5.O12.O5.3I.3I25.M.6M.M30.E7.E.E10.E67.G4. G4.G.2G.G52.S.S3.S.S16.O.O3.O.O9.pA$pA.pA2.pA.pA.pA.pA.2pA5.O10.O19. 2K.2K14.2M6.2M11.3E2.2E.2E2.3E3.2E9.E10.E.E66.G2.G6.4G7.3G43.S2.S.S2. S16.O2.O.O2.O8.2pA$.4pA3.3pA9.2O8.2O42.2M17.E.E.E.E.E.E18.E.E10.E65. 2G64.S2.S.S2.S16.O2.O.O2.O$19.2O10.2O18.2K.2K17.4M18.2E3.2E22.E10.E.E 68.G61.S.S.S.S18.O.O.O.O$3.2pA3.3pA2.2pA4.2O.O6.O.2O39.2M2.2M31.E.E.E 12.E.E10.E66.G9.G2.G47.2S.S.S.2S16.2O.O.O.2O$pA.pA2.pA.pA.pA.pA2.pA5. O.2O4.2O.O20.K.K40.2E3.2E7.E.E.E5.E8.E10.E.E64.G8.G.2G.G43.S.S.S.S.S. S.S.S10.O.O.O.O.O.O.O.O7.pA$pA.4pA.2pA.2pA.pA6.O2.O4.O2.O6.3I.3I7.K.K 38.E.E.E.E.E.E5.E3.E3.2E2.E8.E.E76.3G4.G2.G43.4S2.2S.2S2.4S8.4O2.2O. 2O2.4O$2.pA2.pA.pA.pA.pA.2pA6.3O.2O.3O7.I5.I4.2K.K.K.2K14.2M2.2M13.3E 2.2E.2E2.3E4.E.E8.E.E8.E9.2E72.G2.G42.S2.2S.S.S.S.S.2S2.S6.O2.2O.O.O. O.O.2O2.O5.pA$pA2.2pA3.3pA10.3O.2O.3O9.I.I7.2K3.2K15.2M2.2M31.E3.E5.E 3.E10.E.E9.E68.G.2G.G40.2S3.3S.S.S.3S3.2S.2pA.2O3.3O.O.O.3O3.2O4.pA$ 21.2O6.2O8.2I.2I27.2M4.2M16.2E3.2E7.E.E.E9.E3.3E6.E5.E4.2E67.G2.G41. 2S.S2.S2.S.S2.S2.S.2S.2pA.2O.O2.O2.O.O2.O2.O.2O$6.7pA11.4O10.I5.I27.M .2M.M17.E5.E7.E.E.E5.3E6.3E7.E.E4.2E99.3A13.S.S3.2S3.2S3.S.S6.O.O3.2O 3.2O3.O.O$6.pA2.pA2.pA6.2O4.2O4.2O39.2M2.2M17.E5.E38.E6.E114.3S13.3S 6.3O13.3O$22.2O4.2O$125.Q142.3S.3S18.3O.3O$19.2O.2O4.2O.2O34.2M12.2M 40.2Q17.2Q3.Q122.S.S22.O.O$19.2O.2O4.2O.2O33.3M4.M2.M4.3M39.2Q5.Q.Q8. 3Q4.Q118.S2.S.S2.S16.O2.O.O2.O$19.2O.2O4.2O.2O34.M.M3.M2.M3.M.M47.2Q. Q6.Q3.3Q119.S9.S14.O9.O$68.2M3.M2.M3.2M42.3Q.Q10.2Q.Q.2Q.Q3.Q9.Q104.S 2.S3.S2.S14.O2.O3.O2.O$69.2M8.2M43.Q2.2Q11.Q.Q6.3Q8.2Q103.S2.S5.S2.S 12.O2.O5.O2.O$71.M6.M49.Q10.3Q2.Q4.Q2.2Q.Q.2Q.Q73.2O$68.M2.8M2.M38.Q. 2Q.Q10.Q.2Q.Q8.Q3.3Q3.Q71.O4.O26.S2.S7.S2.S10.O2.O7.O2.O$68.M3.2M2.2M 3.M37.Q.2Q.5Q5.2Q4.6Q4.Q2.2Q5.Q70.O6.O26.2S.S5.S.2S12.2O.O5.O.2O$118. 2Q.2Q11.2Q18.2Q4.Q69.O8.O25.2S.2S3.2S.2S12.2O.2O3.2O.2O$73.M2.M42.Q. 2Q.5Q5.2Q4.6Q4.Q2.2Q5.Q69.2O.4O.2O27.2S.S.S.2S16.2O.O.O.2O$22.O6.O42. M4.M42.Q.2Q.Q10.Q.2Q.Q8.Q3.3Q3.Q$20.2O.2O2.2O.2O41.4M51.Q10.3Q2.Q4.Q 2.2Q.Q.2Q.Q107.S.S.S.S18.O.O.O.O$71.M6.M45.Q2.2Q11.Q.Q6.3Q8.2Q70.2O2. 2O26.S4.S3.S4.S10.O4.O3.O4.O$69.3M6.3M43.3Q.Q10.2Q.Q.2Q.Q3.Q9.Q70.2O 2.2O25.2S3.S.S.S.S3.2S8.2O3.O.O.O.O3.2O! [[ ZOOM 1 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]
RuleTable rules from a repository.
Example: Byl-loop
x=5, y = 5, rule = Byl-Loop:P200,100 3.C$4.B2$B$.C! [[ ZOOM 2 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]

Repository Rules

LifeViewer can load rules from the Rule: namespace here on LifeWiki. The rules must be in RuleTable format. LifeViewer supports both @TABLE and @TREE format rules. Typically @TREE rules run much faster so if possible ensure there is an @TREE version of the rule before the @TABLE version (if present). LifeViewer supports the @COLORS section and the @NAMES section but does not support the @ICONS section (which will be ignored if present), although this may be supported in future.[1]

Aliases

LifeViewer contains a large list of alias names for particular rules. This list of rule name aliases can be found by clicking the Aliases button under Help.

Grid and neighbourhood support

LifeViewer supports many different neighbourhoods on square, hexagonal or triangular grids.

Click on "Expand" to the right to view the full list of supported neighbournoods per grid type.

  • square grid:
    • outer-totalistic:
      • Moore
      • von Neumann
      • circular
      • cross
      • L2
      • saltire
      • star
      • checkerboard
      • hash
      • custom (CoordCA)
    • non-totalistic
    • non-isotropic
    • Margolus
    • PCA
    • Weighted
  • hexagonal or offset-square grid:
    x=50, y = 136, rule = B2/S34H $24bo$22bo$24bo$22b3o$25bo$23b3o$25bobo$25bobo$24b2o$22bo5bo$23bo$27b 2o$27bo$23bo$25b2obo$23bo2bobo$25bob3o$21bo2bob3o$22b3o3b2o$21bo2bob2o $26bobo$23b2o2bo$24b2o3bo$25b2obo$27bo! [[ TRACK -0.25 0.5 GPS 15 GRID ZOOM 8 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]
    • outer totalistic:
      • hexagonal
      • tripod
      • asterisk
      • custom (CoordCA)
    • non-totalistic
    • non-isotropic
  • triangular grid:
    x=8, y = 6, rule = B456/S34L bo3bo$bo4bo$b2o4bo$2bo5bo$2bo5bo$3b2ob2o! [[ TRACK 1/6 1/6 GPS 8 GRID ZOOM 16 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]
    • outer totalistic:
      • triangular Moore
      • triangular edges
      • triangular vertices
      • triangular inner
      • triangular outer
      • custom (CoordCA)

Bounded grid types

LifeViewer supports patterns on "unbounded" grids (maximum 16384x16384 in size) and the following bounded grid types:

  • Plane
  • Cylinder (with optional shift)
  • Torus (with optional shift)
  • Klein-bottle (with optional shift)
  • Cross-surface
  • Sphere

For range 2+ neighbourhoods only Plane, and Torus (without shift) are supported.

Native support for BSFKL, Extended Generations and deficient rules is also planned.[2][3][4] Support for 1D totalistic rules and multiple neighbourhoods rules may also be planned.[5][6]

User Interface

Mouse Controls

In Pan mode click and drag with the mouse to pan the view. The mouse wheel can be used to zoom in or out of the pattern. The zoom will be centered on the mouse pointer.

In Draw mode click and drag with the mouse to draw cells.

In Select mode click and drag with the mouse to make a selection.

Top Row

Ui-top.png

Click on "Expand" to the right to see the menu functions.

Going from left to right the controls perform the following functions:

NameTypeFunction
AutoToggletoggles AutoFit mode
FitButtonfits the pattern to the window
DrawOptionswitches to Draw mode for drawing cells
SelectOptionswitches to Select mode for copy/paste
PanOptionswitches to Pan mode for viewing patterns
ZoomSliderchanges the camera zoom
STARTToggletoggles AUTOSTART mode (if defined)
STOPToggletoggles STOP mode (if defined)
WAYPTToggletoggles Waypoint mode (if defined)
LOOPToggletoggles LOOP mode (if defined)
SyncToggletoggles use of external clipboard
GridToggletoggles grid line display
HelpToggletoggles Help display

Bottom Row

Ui-bottom.png

Click on "Expand" to the right to see the menu functions.

Going from left to right the controls perform the following functions:

NameTypeFunction
T 0Toggletoggles generation statistics display
UndoButtonundo the last edit
RedoButtonredo the last undone action
60/sSlidersets playback steps per second
x1Slidersets playback generations per step
ResetOptionreset to T=0 and if at T=0 also reset camera
Step BackOptionstep back step size generations
Step ForwardOptionstep forward step size generations
PlayOptionstart playback
SettingsToggletoggles the settings menu

Draw Mode

Draw-mode.png

Click on "Expand" to the right to see the menu functions.

Going from left to right the controls perform the following functions:

NameTypeFunction
PickToggleclick on a cell to set drawing state
State DisplayToggletoggle state display
Draw PauseToggletoggle pause playback while drawing
Smart DrawToggletoggle smart drawing
0-6Sliderchange the displayed states
State ListOptionselect the current drawing state

Select Mode

Select-mode.png

Click on "Expand" to the right to see the menu functions.

Going from left to right the controls perform the following functions:

NameTypeFunction
AllButtonselect all cells
Auto ShrinkToggleauto shrink selection to pattern
ClipboardsToggletoggle clipboard libary to select active clipboard
CutButtoncut cells in selection to current clipboard
CopyButtoncopy cells in selection to current clipboard
PasteButtonpaste cells from current clipboard
Top LeftSliderset paste location
AND/CPY/OR/XOROptionset paste mode

Selection Menu

Selection-menu.png

The Selection Menu appears when there is an active Selection in Select Mode.

Click on "Expand" to the right to see the menu functions.

Going from top to bottom and left to right the controls perform the following functions:

NameTypeFunction
LeftButtonnudge selection left 1 cell
RightButtonnudge selection right 1 cell
UpButtonnudge selection up 1 cell
DownButtonnudge selection down 1 cell
50%Sliderset random fill percentage
RandomButtonrandom fill selection using all states
Random 2Buttonrandom fill selection 2 states
InvertButtoninvert cells in selection
Flip XButtonflip selection horizontally
Flip YButtonflip selection vertically
Rotate CWButtonrotate selection clockwise
Rotate CCWButtonrotate selection counter-clockwise
Clear InsideButtonclear cells inside selection
Clear OutsideButtonclear cells outside selection

Settings Menu

Settings.png

The Settings Menu can be opened by clicking on the Settings button. Note the Settings button will not appear if the Viewer window is less than 480 pixels high. The menu contains three sliders and a set of topic buttons.

Sliders

Click on "Expand" to the right to see the slider functions.

NameTypeFunction
AngleSliderset camera angle (square grid only)
LayersSliderset number of cell layers
DepthSliderset depth between each cell layer

The Layers setting creates a pseudo-3D effect where cells are drawn in higher layers the longer they live, and appear to fall through lower layers the longer it has been since they died.

Pattern

Click on "Expand" to the right to see the Pattern options.

NameTypeFunction
Change RuleButtonprompts for a new Rule and then switches to it
New PatternButtoncreates a new blank Pattern with the current Rule
Load PatternButtonloads the last saved Pattern
Save PatternButtonsaves the current Pattern to the text box
RandomizeButtoncreates a new random Pattern with a random Rule (based on the current rule family)
Copy RuleButtoncopies the current Rule definition to the clikpboard
IdentifyButtonidentify whether the current Pattern is a still life, oscillator or spaceship
Fast IdentifyButtonsame as Identify but doesn't calculate Active Cells, Mod, Temperature or Volatility
Save ImageButtonopen an image of the current pattern in a new tab
Save GraphButtonopen an image of the Population Graph in a new tab
Go To GenButtonprompts for a generation and then moves to that generation

Theme

Allows selection from a list of available colour Themes.

Graph

Toggles the Population Graph.

Advanced

Click on "Expand" to the right to see the Advanced options.

NameTypeFunction
Frame TimesToggletoggles display of the frames per second and CPU load %
Timing DetailsToggletoggles extended timing information display
Display Info BarToggletoggles the Info Bar display which shows camera location, angle, and bounding box velocity
Relative GenToggletoggles absolute or relative generation display (when #CXRLE Gen specified)
Render QualityToggletoggles anti-aliased cell display

Display

Click on "Expand" to the right to see the Display options.

NameTypeFunction
Use RectanglesToggletoggle use of rectangular cells for Hexagonal and Triangular grids
Cell BordersToggletoggles drawing of cell borders
Major GridLinesToggletoggle drawing major GridLines
StarfieldToggletoggle drawing starfield in background
AnnotationsToggletoggle annotation display (if specified)
RainbowToggletoggle using Rainbow cell colours (for 2-state patterns)
Auto GridLinesToggletoggle automatically switching GridLines on for Draw and Select modes, and off for Pan mode
Alt GridLinesToggletoggle alternating GridLines (for Margolus patterns)

Playback

Click on "Expand" to the right to see the Playback options.

NameTypeFunction
AutoFit HistoryToggletoggle using history states for AutoFit bounding box
ThrottleToggletoggle playback throttling
Perf. WarningToggletoggle performance warning display
Kill GlidersToggletoggle killing escaping gliders
AutoHide UIToggletoggle hiding UI during playback

Population Graph

LifeViewer can show a real time auto-scaling population graph. It is toggled on or off with Settings→Graph. At each generation it shows total population, births and deaths. Note that the graph will only capture data for the first 219 (524288) generations.

Pop-graph.png

Click on "Expand" to the right to see the Graph options.

NameTypeFunction
OpacitySliderset the graph opacity %
LinesToggletoggle between drawing lines or points
XButtonclose the graph

Keyboard commands

A visual map of keyboard shortcuts is shown below:

Hotkeys.png

Below is a list of keyboard commands by category:

Playback controls

Click on "Expand" to the right to view Playback controls.

KeyDescription
Entertoggle play / pause
Spacepause / next generation
Bpause / previous generation
Backspacepause / previous generation
Tabpause / next step
Shift Tabpause / previous step
Escpause if playing
Rreset to generation 0
Shift Ngo to generation
-decrease generation speed
+increase generation speed
Shift -minimum generation speed
Shift +maximum generation speed
Ddecrease step size
Eincrease step size
Shift Dminimum step size
Shift Emaximum step size
0reset step and speed
Ctrl Ptoggle pause playback while drawing
Alt Ttoggle throttling
Wtoggle waypoint playback and loop
Shift Ptoggle just loop
Alt Otoggle autostart
Alt Ptoggle stop

Multi-Viewer controls

Click on "Expand" to the right to view Multi-viewer controls.

KeyDescription
Shift Rreset all LifeViewers to generation 0
Zstop playback in all other LifeViewers
Shift Zstop playback in all LifeViewers

Camera controls

Click on "Expand" to the right to view Camera controls.

KeyDescription
Vrestore saved camera position
Shift Vsave current camera position
Ffit pattern to display
Shift Ftoggle autofit
Shift Htoggle autofit history mode
Ctrl Ffit selection to display
Ctrl Mcenter pattern on display
[zoom out
]zoom in
Shift [halve zoom
Shift ]double zoom
11x zoom
22x zoom
44x zoom
88x zoom
616x zoom
332x zoom
Shift 364x zoom
Shift 1integer zoom
Shift 2-2x zoom
Shift 4-4x zoom
Shift 8-8x zoom
Shift 6-16x zoom
Leftpan left
Rightpan right
Uppan up
Downpan down
Shift Leftpan north west
Shift Rightpan south east
Shift Uppan north east
Shift Downpan south west
<rotate left
>rotate right
Shift <rotate left 90 degrees
Shift >rotate right 90 degrees
5reset angle

View controls

Click on "Expand" to the right to view View controls.

KeyDescription
Qincrease number of layers
Adecrease number of layers
Pincrease layer depth
Ldecrease layer depth
Cnext colour theme
Shift Cprevious colour theme
Alt Cdefault theme

Display controls

Click on "Expand" to the right to view Display controls.

KeyDescription
Gtoggle generation statistics
Shift Gtoggle generation display mode
Ytoggle population graph
Shift Ytoggle graph lines
7decrease graph opacity
9increase graph opacity
Shift Wtoggle performance warning
/toggle cell type for hex and triangular grids
Ttoggle timing information
Shift Ttoggle extended timing information
Itoggle pattern and engine information
Shift Itoggle information bar
Ctrl Qtoggle cell anti-aliasing
Alt Btoggle cell borders
Xtoggle gridlines
Shift Xtoggle major gridlines
Ctrl Gtoggle auto gridlines
Alt Gconvert pattern to [Rule]Super
Alt Hconvert pattern to [Rule]History
Alt Jconvert pattern to [Rule]Standard
Ctrl Ltoggle kill escaping gliders
Stoggle stars
Oopen screenshot in separate window
Shift Oopen population graph in separate window
Shift Utoggle UI
Alt Utoggle autohide UI during playback
Alt Wtoggle rainbow mode

Pattern controls

Click on "Expand" to the right to view Pattern controls.

KeyDescription
Alt Nnew pattern
Alt Rchange rule
Ctrl Oopen original or last saved pattern
Ctrl+Shift Oopen clipboard as pattern
Ctrl Ssave pattern
Alt Zrandomize pattern and rule
Ctrl+Alt Zrandomize pattern only
F6toggle oscillator and spaceship identification
Ctrl+F6fast identification

External clipboard controls

Click on "Expand" to the right to view External clipboard controls.

KeyDescription
Alt Stoggle sync cut and copy with external clipboard
Ctrl+Shift Ccopy original pattern
Ctrl Ccopy current selection
Ctrl+Alt Ccopy current selection with comments
Ctrl+Shift Xcut original pattern
Ctrl Xcut current selection
Ctrl+Alt Xcut current selection with comments
Ctrl Jcopy rule definition
Kcopy camera position
Shift Kcopy camera position and view

Edit controls

Click on "Expand" to the right to view Edit controls.

KeyDescription
F1toggle draw/pan mode
F2draw mode
Shift F2toggle smart drawing
F3pick mode
F4select mode
F5pan mode
Ctrl Aselect all
Shift Ashrink selection
Alt Atoggle auto-shrink selection
Ctrl Ccopy
Ctrl Dtoggle states display
Ctrl Iinvert selection
Ctrl Kremove selection
Ctrl Vpaste
Ctrl+Shift Vpaste to selection
Ctrl Xcut
Ctrl Yredo edit
Ctrl Zundo edit
Ctrl+Shift Zredo edit
Ctrl Spaceadvance selection
Shift Spaceadvance outside
Shift Lcycle paste location
Shift Mcycle paste mode
Shift 5random fill
Alt Kpick cell state to replace with drawing state
Ctrl+Alt Kclear current drawing state cells
Delclear cells in selection
Shift Delclear outside selection
>rotate selection clockwise
<rotate selection counter-clockwise
Alt Xflip selection horizontally
Alt Yflip selection vertically
Alt Leftnudge selection 1 cell left
Alt Rightnudge selection 1 cell right
Alt Upnudge selection 1 cell up
Alt Downnudge selection 1 cell down
Eschide paste
Enterperform paste
Ctrl 0select state 0 for drawing
Ctrl 1select state 1 for drawing
Shift Btoggles clipboard library
Alt 0make clipboard 0 active
Alt 1make clipboard 1 active
Alt 2make clipboard 2 active
Alt 3make clipboard 3 active
Alt 4make clipboard 4 active
Alt 5make clipboard 5 active
Alt 6make clipboard 6 active
Alt 7make clipboard 7 active
Alt 8make clipboard 8 active
Alt 9make clipboard 9 active

Help controls

Click on "Expand" to the right to view Help controls.

KeyDescription
Upscroll up one line
Downscroll down one line
Page Upscroll up one page
Page Downscroll down one page
Shift Page Upscroll up one section
Shift Page Downscroll down one section
Homego to first help page
Endgo to last help page

Themes

Themes are used to define the colours of cells, the background and the grid lines for 2-state and Generations patterns. Some Themes also specify whether major grid lines are used and if so on what interval.

Themes are primarily used to provide a visual representation of cell history and longevity.

The default Theme is "Blues" but this can be changed by clicking Theme in the Settings menu or with the THEME script command.

x=3, y = 3, rule = Life 3o$2bo$bo! [[ AUTOSTART THUMBNAIL GRID STOP 128 ZOOM 8 X 32 Y -31 HEIGHT 560 ]]

Grid

Some Themes define specific GridLine colours for standard and Major GridLines and also the major GridLine interval.

GRID: grid line colour
GRIDMAJOR: major grid line colour and interval

Two-state Themes

For two-state Themes there are five colours that are used for defining the cell colours:

KeyDescription
BACKGROUNDcell never occupied
ALIVEcell just born
ALIVERAMPcell alive for at least AGESTATES generations (default 63)
DEADcell just died
DEADRAMPcell dead for at least HISTORYSTATES generations (default 63)

New cells are drawn in the ALIVE colour.

If cells stay alive they fade from the ALIVE colour to the ALIVERAMP colour over the next AGESTATES (default 63) generations. This provides a visual representation of cell longevity.

Cells are drawn in the DEAD colour when they die.

If they stay dead they fade from the DEAD colour to the DEADRAMP colour over the next HISTORYSTATES (default 63) generations. This provides a visual representation of cell history.

Click on "Expand" to the right to see the definitions of the available two-state Themes.

Mono
BACKGROUND 0 0 0     Black
ALIVE 255 255 255     White
DEAD 0 0 0     Black
Blues
BACKGROUND 0 0 0     Black
ALIVE 0 255 255     Aqua
ALIVERAMP 255 255 255     White
DEAD 0 0 255     Blue
DEADRAMP 0 0 47    
Fire
BACKGROUND 0 0 0     Black
ALIVE 255 144 0    
ALIVERAMP 255 255 0     Yellow
DEAD 160 0 0    
DEADRAMP 32 0 0    
Poison
BACKGROUND 0 0 0     Black
ALIVE 0 255 255     Aqua
ALIVERAMP 255 255 255     White
DEAD 0 128 0     Green
DEADRAMP 0 24 0    
Yellow
BACKGROUND 0 32 128    
ALIVE 255 255 0     Yellow
ALIVERAMP 255 255 255     White
DEAD 128 0 128     Purple
DEADRAMP 0 47 0    
Gray
BACKGROUND 0 0 0     Black
ALIVE 176 176 176    
ALIVERAMP 240 240 240    
DEAD 104 104 104    
DEADRAMP 16 16 16    
Inverse
BACKGROUND 255 255 255     White
ALIVE 0 0 0     Black
DEAD 255 255 255     White
Day
BACKGROUND 255 255 255     White
ALIVE 0 0 255     Blue
ALIVERAMP 0 0 0     Black
DEAD 0 255 255     Aqua
DEADRAMP 240 240 240    
Occupied
BACKGROUND 0 0 0     Black
ALIVE 240 240 240    
DEAD 240 240 240    
Red
BACKGROUND 0 0 0     Black
ALIVE 240 240 240    
DEAD 160 0 0    
LifeHistory
BACKGROUND 0 0 0     Black
ALIVE 0 240 0    
ALIVERAMP 16 255 16    
DEAD 0 0 160    
DEADRAMP 0 0 96    
Generations
BACKGROUND 0 0 0     Black
ALIVE 255 255 0     Yellow
ALIVERAMP 255 255 255     White
DEAD 255 0 0     Red
DEADRAMP 64 0 0    
Golly
BACKGROUND 48 48 48    
ALIVE 255 255 255     White
DEAD 48 48 48    
GRID 80 80 80    
GRIDMAJOR 112 112 112    
GRIDMAJOR 10
MCell
BACKGROUND 0 0 0     Black
ALIVE 255 255 0     Yellow
DEAD 0 0 0     Black
GRID 64 0 0    
GRIDMAJOR 99 3 1    
GRIDMAJOR 5
Catagolue
BACKGROUND 192 255 238    
ALIVE 0 0 0     Black
DEAD 160 221 204    
GRID 160 221 204    
GRIDMAJOR 160 221 204    
GRIDMAJOR 0
Caterer
BACKGROUND 54 57 62    
ALIVE 255 255 255     White
DEAD 54 57 62    
GRID 0 0 0     Black
GRIDMAJOR 0 0 0     Black
GRIDMAJOR 0
Life32
BACKGROUND 255 255 255     White
ALIVE 0 0 128     Navy
DEAD 255 255 255     White
GRID 192 192 192     Silver
GRIDMAJOR 128 128 128     Gray
GRIDMAJOR 5
Margolus
BACKGROUND 0 0 0     Black
ALIVE 255 255 0     Yellow
ALIVERAMP 255 255 255     White
DEAD 0 0 128     Navy
DEADRAMP 0 0 47    
GRID 32 32 255    
GRIDMAJOR 64 64 128    
GRIDMAJOR 2
PCA
BACKGROUND 0 0 0     Black
ALIVE 176 176 176    
ALIVERAMP 240 240 240    
DEAD 64 64 64    
DEADRAMP 24 24 24    
Book
BACKGROUND 255 255 255     White
ALIVE 0 0 0     Black
DEAD 192 220 255    
DEADRAMP 255 220 192    
GRID 192 192 192     Silver
GRIDMAJOR 209 209 209    
GRIDMAJOR 0

Multi-state Themes

Multi-state Themes are used for Generations rules and there are six colours that are used for defining the cell colours:

KeyDescription
BACKGROUNDcell never occupied
ALIVEcell alive
DYINGcell just started dying
DYINGRAMPcell about to die
DEADcell just died
DEADRAMPcell dead for at least HISTORYSTATES generations (default 63)

New cells are drawn in the ALIVE colour.

Cells are drawn in the DYING colour when they start to die. They then fade to the DYINGRAMP colour over the number of generations defined in the rule.

Once cells reach the DYINGRAMP colour then on the next generation they die and become the DEAD colour.

If they stay dead they fade from the DEAD colour to the DEADRAMP colour over the next HISTORYSTATES (default 63) generations. This provides a visual representation of cell history.

Click on "Expand" to the right to see the definitions of the available multi-state Themes.

Mono
BACKGROUND 0 0 0     Black
ALIVE 255 255 255     White
DYING 255 255 255     White
DYINGRAMP 0 0 0     Black
DEAD 0 0 0     Black
Blues
BACKGROUND 0 0 0     Black
ALIVE 0 255 255     Aqua
DYING 0 255 255     Aqua
DYINGRAMP 0 0 255     Blue
DEAD 0 0 128     Navy
DEADRAMP 0 0 47    
Fire
BACKGROUND 0 0 0     Black
ALIVE 255 144 0    
DYING 255 144 0    
DYINGRAMP 240 0 0    
DEAD 160 0 0    
DEADRAMP 32 0 0    
Poison
BACKGROUND 0 0 0     Black
ALIVE 0 255 255     Aqua
DYING 0 255 255     Aqua
DYINGRAMP 0 192 0    
DEAD 0 128 0     Green
DEADRAMP 0 24 0    
Yellow
BACKGROUND 0 32 128    
ALIVE 255 255 0     Yellow
DYING 255 255 0     Yellow
DYINGRAMP 192 64 64    
DEAD 128 0 128     Purple
DEADRAMP 0 47 0    
Gray
BACKGROUND 0 0 0     Black
ALIVE 240 240 240    
DYING 240 240 240    
DYINGRAMP 160 160 160    
DEAD 104 104 104    
DEADRAMP 16 16 16    
Inverse
BACKGROUND 255 255 255     White
ALIVE 0 0 0     Black
DYING 0 0 0     Black
DYINGRAMP 255 255 255     White
DEAD 255 255 255     White
Day
BACKGROUND 255 255 255     White
ALIVE 0 0 255     Blue
DYING 0 0 255     Blue
DYINGRAMP 0 255 255     Aqua
DEAD 0 192 192    
DEADRAMP 240 240 240    
Occupied
BACKGROUND 0 0 0     Black
ALIVE 240 240 240    
DYING 240 240 240    
DEAD 240 240 240    
Red
BACKGROUND 0 0 0     Black
ALIVE 255 255 255     White
DYING 160 160 160    
DEAD 160 0 0    
LifeHistory
BACKGROUND 0 0 0     Black
ALIVE 16 255 16    
DYING 16 255 16    
DYINGRAMP 0 128 160    
DEAD 0 0 160    
DEADRAMP 0 0 96    
Generations
BACKGROUND 0 0 0     Black
ALIVE 255 255 0     Yellow
DYING 255 255 0     Yellow
DYINGRAMP 255 0 0     Red
DEAD 128 0 0     Maroon
DEADRAMP 64 0 0    
Golly
BACKGROUND 48 48 48    
ALIVE 255 255 0     Yellow
DYING 255 255 0     Yellow
DYINGRAMP 255 0 0     Red
DEAD 48 48 48    
MCell
BACKGROUND 0 0 0     Black
ALIVE 255 255 0     Yellow
DYING 255 255 0     Yellow
DYINGRAMP 0 255 0     Lime
DEAD 0 0 0     Black
Catagolue
BACKGROUND 192 255 238    
ALIVE 0 0 0     Black
DYING 2 129 2    
DYINGRAMP 96 192 139    
DEAD 160 221 204    
Caterer
BACKGROUND 54 57 62    
ALIVE 255 170 0    
DYING 255 170 0    
DYINGRAMP 255 85 0    
DEAD 54 57 62    
Life32
BACKGROUND 255 255 255     White
ALIVE 0 0 128     Navy
DYING 0 0 128     Navy
DYINGRAMP 0 0 64    
DEAD 255 255 255     White
Margolus
BACKGROUND 0 0 0     Black
ALIVE 255 255 0     Yellow
DYING 255 255 0     Yellow
DYINGRAMP 64 64 128    
DEAD 0 0 128     Navy
DEADRAMP 0 0 47    
PCA
BACKGROUND 0 0 0     Black
ALIVE 240 240 240    
DYING 240 240 240    
DYINGRAMP 160 160 160    
DEAD 64 64 64    
DEADRAMP 24 24 24    
Book
BACKGROUND 255 255 255     White
ALIVE 0 0 0     Black
DYING 128 128 128     Gray
DYINGRAMP 24 24 24    
DEAD 192 220 255    
DEADRAMP 255 220 192    

Scripts

LifeViewer supports a large number of script commands than can be used to control playback, the camera, labels and annotations, colours and many other aspects.

Scripts must be embedded in pattern comments which means you can add them to any pattern file and other pattern readers will happily ignore them. The should be encloded in [[ and ]]. All commands must be surrounded by whitespace. Multiple script sections are allowed.

For example loading the following pattern into LifeViewer will start playback automatically (AUTOSTART) and then stop at generation 30 (STOP 30).

 #C [[ AUTOSTART STOP 30 ]]
 x = 3, y = 3, rule = Life
 o$
 obo$
 2o!
 

It's also valid to have script commands after the RLE since this area is treated as comments.

 x = 3, y = 3, rule = Life
 o$
 obo$
 2o!
 [[
   ANGLE 30
   GPS 5
   AUTOSTART
   THEME Fire
 ]]
 

Only text surrounded by [[ and ]] is interpreted as script commands.

 #C An example [[ ZOOM 16 ]] with camera settings [[ X -4 Y 5 ]]
 #C and [[ GRID ]] grid lines.
 x = 3, y = 3, rule = Life
 o$
 obo$
 2o!
 

Below is a list of script commands by category:

Parameter conventions

The parameter conventions for the commands below are listed here.

Click on "Expand" to the right to view the Parameter conventions.

ParameterDescription
A|Beither A or B
(A)A is optional
A*zero or more A
A+one or more A
<1..3>integer range
<1.0..3.0>decimal range

General

These commands are used to mark sections in the pattern comments that contain script commands.

Click on "Expand" to the right to view the General commands.

CommandDescription
[[start script section
]]end script section
SUPPRESSsuppress overwrite warning

Playback

These commands control pattern playback including whether to start automatically, whether to stop or loop, and playback speed. Also in this section are commands controlling various playback settings.

Click on "Expand" to the right to view the Playback commands.

CommandDescription
AUTOSTART (OFF)start play automatically
LOOP <1..>|OFFloop at generation
STOP <1..>|OFFstop at generation
STARTFROM <1..>play to generation on load
GPS <1..60>set steps per second
STEP <1..64>set generations per step
HARDRESETalways use hard reset
VIEWONLYdisable playback
NOSTEPBACKdisable step back
NOREPORTdisable stop messages
NOPERFWARNINGdisable performance warning
NOTHROTTLEdisable playback throttling
EXCLUSIVEPLAYstarting playback pauses others
IGNOREEXCLUSIVEignore other pause requests

Camera

These commands control the camera. You can specify the position, zoom, and rotation of the camera. You can also specify camera motion to have it track in a particular direction to follow a moving pattern.

Click on "Expand" to the right to view the Camera commands.

CommandDescription
ANGLE <0..359>set camera angle
X <-4096..4096>set camera x position
Y <-4096..4096>set camera y position
ZOOM <-16.0..64.0>set camera zoom
Zsame as ZOOM
AUTOFIT (OFF)fit pattern to display
HISTORYFIT (OFF)autofit uses pattern history
STATE1FIT (OFF)autofit only uses state 1
TRACK X Ycamera tracking
   Xhorizontal speed cells/gen
   Yvertical speed cells/gen
TRACKBOX E S W Ncamera box tracking
   Eeast edge speed cells/gen
   Ssouth edge speed cells/gen
   Wwest edge speed cells/gen
   Nnorth edge speed cells/gen
TRACKLOOP P X Ycamera tracking with loop
   Pperiod
   Xhorizontal speed cells/gen
   Yvertical speed cells/gen

Waypoints

These commands allow you to setup a list of Waypoints for the camera to follow during playback. For each waypoint you can specify a camera position (with a subset of the Camera commands), playback speed (with a subset of the Playback commands) and then a target generation by which you want the camera to reach that position.

Click on "Expand" to the right to view the Waypoint commands.

CommandDescription
T <0..>waypoint at generation
PAUSE <0.0..>pause for time
LINEAR ALL|X|Y|ZOOMlinear motion
BEZIER ALL|X|Y|ZOOMbezier motion (default)
TIMEsave timing at waypoint start

Points of Interest

These commands allow you define a set of static Points of Interest at locations on the grid. Once defined you can jump the camera to any POI via buttons on the UI or keyboard shortcuts. You can also specify an action at each POI like starting or stopping playback.

Click on "Expand" to the right to view the Point of Interest commands.

CommandDescription
POIdefine point of interest
POIT <0..>start POI at generation
POIRESETreset generation at POI
POIPLAYstart playback at POI
POISTOPstop playback at POI
POITRANS <0..200>set POI transition speed
   <command>|ALL INITIALuse initial value for POI
   "<string>"define message
POIADDLABELSadd Labels as POIs

Annotations

These commands allow you to annotate the pattern with Labels, Arrows, Polylines and Polygons. You can specify annotation size, colour and motion. You can also specify at which zooms and generations annotations appear and disappear.

Click on "Expand" to the right to view the Annotation commands.

CommandDescription
LABEL X Y ZOOMdefine label at position
   (MAXZOOM) (FIXED)... zoom range and fixed position
   "<string>"... label text
LABELSIZE <4..128>define label font size
   (FIXED)... optionally fix size
LABELALPHA <0.0..1.0>define label font alpha
LABELT <0..> <0..> <0..>generation range / fade
LABELANGLE <0..359>label angle
   (FIXED)... optionally fix angle
LABELTARGET X Y D|OFFlabel target and distance
LABELTRACK DX DY|FIXEDlabel move per generation
ARROW X1 Y1 X2 Y2 ZOOMdefine arrow at position
   (MAXZOOM) (FIXED)... zoom range and fix position
ARROWSIZE <1..64> <0.0..1.0>line width and head multiple
ARROWALPHA <0.0..1.0>define arrow alpha
ARROWT <0..> <0..> <0..>generation range / fade
ARROWANGLE <0..359>arrow angle
   (FIXED)... optionally fix angle
ARROWTARGET X Y D|OFFarrow target and distance
ARROWTRACK DX DY|FIXEDarrow move per generation
POLYLINE X1 Y1 X2 Y2 .. ZOOMdefine outline polygon
   (MAXZOOM) (FIXED)... zoom range and fix position
POLYFILL X1 Y1 X2 Y2 .. ZOOMdefine filled polygon
   (MAXZOOM) (FIXED)... zoom range and fix position
POLYSIZE <1..64>line width
POLYALPHA <0.0..1.0>define polygon alpha
POLYT <0..> <0..> <0..>generation range / fade
POLYANGLE <0..359>polygon angle
   (FIXED)... optionally fix angle
POLYTARGET X Y D|OFFpolygon target and distance

Display

These commands control the various display settings including width and height of the LifeViewer window, whether grid lines are displayed, and how cells are drawn.

Click on "Expand" to the right to view the Display commands.

CommandDescription
WIDTH <560..4096>set LifeViewer width
HEIGHT <240..4096>set LifeViewer height
POPUPWIDTH <560..4096>set popup width
POPUPHEIGHT <240..4096>set popup height
TITLE "<string>"set popup window title
   #Bprogram build number
   #Npattern name
   #Opattern originator
   #Rrule name
   #Arule alias
   #Tprogram title
   #0..9saved timing as average fps
   ### symbol
LAYERS <1..10>set number of layers
DEPTH <0.0..10.0>set layer depth
GRID (OFF)display gridlines
GRIDMAJOR <0..16>set major grid line interval
AGESTATES <0..63>number of age states to draw
HISTORYSTATES <0..63>number of history states to draw
STARS (OFF)display stars
HEXCELLShexagonal cells for hexagonal grid
TRIANGULARCELLStriangular cells for triangular grid
SQUARECELLSsquare cells for hexagonal or triangular grid
CELLBORDERSdisplay cell borders
NOGUIdisable menus and hotkeys
AUTOHIDEGUIhide menus during playback
SHOWTIMINGshow timing information
EXTENDEDTIMINGextended timing information
SHOWGENSTATSshow generation statistics
SHOWINFOBARshow information bar
RAINBOWuse rainbow colours
QUALITYanti-alias cells at non-integer zooms > 1x

Thumbnails

These commands allow you to specify that LifeViewer starts as a thumbnail. You can also specify whether it expands inline or launches into a separate window when clicked or tapped.

Click on "Expand" to the right to view the Thumbnail commands.

CommandDescription
THUMBNAIL (OFF)start at 1/4 size
THUMBSIZE <2..4>set thumbnail divisor
THUMBLAUNCH (OFF)thumbnail launches viewer
THUMBZOOM <-16.0..64.0>set thumbnail zoom
THUMBSTARTstart playback on thumbnail expand

Population Graph

These commands allow you to customize the Population Graph and have it enabled by default or completely disabled.

Click on "Expand" to the right to view the Population Graph commands.

CommandDescription
GRAPHdisplay population graph
GRAPHOPACITY <0.0..1.0>population graph opacity
GRAPHPOINTSpopulation graph use points
NOGRAPHdisable population graph

Colours

These commands allow you to specify the colour of cells, the grid lines, selections, the population graph, annotations and the UI. For cell colours it is also possible to use the state name:

 [[ COLOR alive 0 255 255 ]]
 [[ COLOR "mark off" 240 128 128 ]]

Click on "Expand" to the right to view the Colour commands.

CommandDescription
THEME <0..19>|nameset theme
   name = CUSTOMset custom theme
COLOR BACKGROUND R G Bset theme background
COLOR ALIVE R G Bset theme alive color
COLOR ALIVERAMP R G Bset theme alive ramp
COLOR DEAD R G Bset theme dead color
COLOR DEADRAMP R G Bset theme dead ramp
COLOR DYING R G Bset theme dying color
COLOR DYINGRAMP R G Bset theme dying ramp
COLOR BOUNDARY R G Bset boundary color
COLOR <0..1> R G Bset state color
COLOR BOUNDED R G Bset bounded color
COLOR SELECT R G Bset select color
COLOR PASTE R G Bset paste color
COLOR ADVANCE R G Bset advance color
COLOR GRID R G Bset grid color
COLOR GRIDMAJOR R G Bset grid major color
COLOR STARS R G Bset star color
COLOR TEXT R G Bset waypoint message color
COLOR ERROR R G Bset error message color
COLOR GRAPHBG R G Bset graph background color
COLOR GRAPHAXIS R G Bset graph axis color
COLOR GRAPHALIVE R G Bset graph alive color
COLOR GRAPHBIRTH R G Bset graph birth color
COLOR GRAPHDEATH R G Bset graph death color
COLOR LABEL R G Bset label text color
COLOR ARROW R G Bset arrow line color
COLOR POLY R G Bset polygon color
COLOR UIFOREGROUND R G Bset UI foreground color
COLOR UIBACKGROUND R G Bset UI background color
COLOR UIHIGHLIGHT R G Bset UI highlight text color
COLOR UISELECT R G Bset UI selected color
COLOR UILOCKED R G Bset UI locked color
COLOR UIBORDER R G Bset UI border color
COLOURsame as COLOR

Pattern

These commands allow you programatically paste cells onto the grid during playback. This can be used for glider injection. Other settings including the grid size and whether to automatically kill escaping gliders are also here.

Click on "Expand" to the right to view the Pattern commands.

CommandDescription
XOFFSET <-4096..4096>set pattern x offset
YOFFSET <-4096..4096>set pattern y offset
DELETERANGE <1..16>set boundary delete range
NOCOPYdisable pattern source copy
NOSOURCEhide pattern source
MAXGRIDSIZE <9..14>set maximum grid size 2^n
RECIPE name X Y (<1..>)+create a named recipe
RLE name rlecreate a named rle
   (X Y) (TRANS)... X Y and transformation
   IDENTITYidentity
   FLIPflip
   FLIPXflip X
   FLIPYflip Y
   SWAPXYswap X and Y
   SWAPXYFLIPswap X and Y and flip
   RCWrotate clockwise
   RCCWrotate counter-clockwise
PASTE name|rle (X Y)paste rle at optional X Y
   (TRANS)... optional transformation
PASTET <0..>set paste generation
   (recipe|<1..>+)*... optional delta list
PASTET EVERY <1..>set paste interval
   (<0..> (<1..>))... optional start and end
PASTEDELTA X Yset position delta for PASTET EVERY
PASTEMODE <0..15>|modeset paste mode
 0 0000 ZERO

 1 0001 AND
 2 0010 0010
 3 0011 X|COPY
 4 0100 DIFF
 5 0101 Y
 6 0110 XOR
 7 0111 OR
 8 1000 NOR
 9 1001 XNOR
10 1010 NOTY
11 1011 1011
12 1100 NOTX
13 1101 1101
14 1110 NAND

15 1111 ONE
KILLGLIDERSsuppress escaping gliders

Randomize

These commands allow you to specify parameters for random pattern and rule generation.

Click on "Expand" to the right to view the Randomize commands.

CommandDescription
RANDOMIZEcreate random pattern
RANDSEED <string>set random seed
RANDWIDTH <1..1024>set random pattern width
RANDHEIGHT <1..1024>set random pattern height
RANDFILL <1..100>set random pattern fill percentage
RANDCHANCE FIXEDkeep rule fixed
RANDCHANCE <item> <0..100>set percentage chance for <item>
   ALLall conditions
   Ball birth conditions
   Sall survival conditions
   B<0..n>specified birth condition
   S<0..n>specified survival condition

Colours

LifeViewer supports colour names that can be used in place of R G B values for relevant script commands.

For example: [[ COLOUR ALIVE Green ]]

Click on "Expand" to the right to view the list of colour names and values.

AliceBlue 240 248 255    
AntiqueWhite 250 235 215
Aqua 0 255 255
Aquamarine 127 255 212
Azure 240 255 255
Beige 245 245 220
Bisque 255 228 196
Black 0 0 0
BlanchedAlmond 255 235 205
Blue 0 0 255
BlueViolet 138 43 226
Brown 165 42 42
BurlyWood 222 184 135
CadetBlue 95 158 160
Chartreuse 127 255 0
Chocolate 210 105 30
Coral 255 127 80
CornflowerBlue 100 149 237
Cornsilk 255 248 220
Crimson 220 20 60
Cyan 0 255 255
DarkBlue 0 0 139
DarkCyan 0 139 139
DarkGoldenRod 184 134 11
DarkGray 169 169 169
DarkGreen 0 100 0
DarkKhaki 189 183 107
DarkMagenta 139 0 139
DarkOliveGreen 85 107 47
DarkOrange 255 140 0
DarkOrchid 153 50 204
DarkRed 139 0 0
DarkSalmon 233 150 122
DarkSeaGreen 143 188 143
DarkSlateBlue 72 61 139
DarkSlateGray 47 79 79
DarkTurquoise 0 206 209
DarkViolet 148 0 211
DeepPink 255 20 147
DeepSkyBlue 0 191 255
DimGray 105 105 105
DodgerBlue 30 144 255
FireBrick 178 34 34
FloralWhite 255 250 240
ForestGreen 34 139 34
Fuchsia 255 0 255
Gainsboro 220 220 220
GhostWhite 248 248 255
Gold 255 215 0
GoldenRod 218 165 32
Gray 128 128 128
Green 0 128 0
GreenYellow 173 255 47
HoneyDew 240 255 240
HotPink 255 105 180
IndianRed 205 92 92
Indigo 75 0 130
Ivory 255 255 240
Khaki 240 230 140
Lavender 230 230 250
LavenderBlush 255 240 245
LawnGreen 124 252 0
LemonChiffon 255 250 205
LightBlue 173 216 230
LightCoral 240 128 128
LightCyan 224 255 255
LightGoldenRodYellow 250 250 210
LightGray 211 211 211
LightGreen 144 238 144
LightPink 255 182 193
LightSalmon 255 160 122
LightSeaGreen 32 178 170
LightSkyBlue 135 206 250
LightSlateGray 119 136 153
LightSteelBlue 176 196 222
LightYellow 255 255 224
Lime 0 255 0
LimeGreen 50 205 50
Linen 250 240 230
Magenta 255 0 255
Maroon 128 0 0
MediumAquaMarine 102 205 170
MediumBlue 0 0 205
MediumOrchid 186 85 211
MediumPurple 147 112 219
MediumSeaGreen 60 179 113
MediumSlateBlue 123 104 238
MediumSpringGreen 0 250 154
MediumTurquoise 72 209 204
MediumVioletRed 199 21 133
MidnightBlue 25 25 112
MintCream 245 255 250
MistyRose 255 228 225
Moccasin 255 228 181
NavajoWhite 255 222 173
Navy 0 0 128
OldLace 253 245 230
Olive 128 128 0
OliveDrab 107 142 35
Orange 255 165 0
OrangeRed 255 69 0
Orchid 218 112 214
PaleGoldenRod 238 232 170
PaleGreen 152 251 152
PaleTurquoise 175 238 238
PaleVioletRed 219 112 147
PapayaWhip 255 239 213
PeachPuff 255 218 185
Peru 205 133 63
Pink 255 192 203
Plum 221 160 221
PowderBlue 176 224 230
Purple 128 0 128
RebeccaPurple 102 51 153
Red 255 0 0
RosyBrown 188 143 143
RoyalBlue 65 105 225
SaddleBrown 139 69 19
Salmon 250 128 114
SandyBrown 244 164 96
SeaGreen 46 139 87
SeaShell 255 245 238
Sienna 160 82 45
Silver 192 192 192
SkyBlue 135 206 235
SlateBlue 106 90 205
SlateGray 112 128 144
Snow 255 250 250
SpringGreen 0 255 127
SteelBlue 70 130 180
Tan 210 180 140
Teal 0 128 128
Thistle 216 191 216
Tomato 255 99 71
Turquoise 64 224 208
Violet 238 130 238
Wheat 245 222 179
White 255 255 255
WhiteSmoke 245 245 245
Yellow 255 255 0
YellowGreen 154 205 50

Info

LifeViewer engine information and details about the currently loaded pattern can be found by pressing 'I', or clicking the Info button under Help.

References

  1. Chris Rowett (January 13, 2020). Re: Pattern viewer for forum threads (discussion thread) at the ConwayLife.com forums
  2. Chris Rowett (January 26, 2019). Re: Pattern viewer for forum threads (discussion thread) at the ConwayLife.com forums
  3. Chris Rowett (January 26, 2019). Re: Pattern viewer for forum threads (discussion thread) at the ConwayLife.com forums
  4. Chris Rowett (December 20, 2019). Re: Pattern viewer for forum threads (discussion thread) at the ConwayLife.com forums
  5. Chris Rowett (October 15, 2019). Re: Pattern viewer for forum threads (discussion thread) at the ConwayLife.com forums
  6. Chris Rowett (May 6, 2019). Re: Pattern viewer for forum threads (discussion thread) at the ConwayLife.com forums

External links

Forum threads