LifeViewer: Difference between revisions
added exclusive playback |
First import of docs from LifeViewer online help -- needs more rework, especially the Themes tables, but this is a starting point. |
||
| Line 10: | Line 10: | ||
If you want to use LifeViewer on your own site then the latest release can be downloaded [http://lazyslug.com/lifeview/plugin/js/release/ here]. | If you want to use LifeViewer on your own site then the latest release can be downloaded [http://lazyslug.com/lifeview/plugin/js/release/ here]. | ||
<div style="float: right;">{{LV:Viewer| | |||
< | x = 59, y = 7, rule = B3/S23 | ||
o5b5ob5ob5obo3bob5ob5obobobob5ob4o$o7bo3bo5bo5bo3bo3bo3bo5bobobobo5bo | o5b5ob5ob5obo3bob5ob5obobobob5ob4o$o7bo3bo5bo5bo3bo3bo3bo5bobobobo5bo | ||
3bo$o7bo3bo5bo5bo3bo3bo3bo5bobobobo5bo3bo$o7bo3b3o3b3o3bo3bo3bo3b3o3bo | 3bo$o7bo3bo5bo5bo3bo3bo3bo5bobobobo5bo3bo$o7bo3b3o3b3o3bo3bo3bo3b3o3bo | ||
| Line 30: | Line 30: | ||
#C [[ T 950 X -242 Y 214 ANGLE 20 ]] | #C [[ T 950 X -242 Y 214 ANGLE 20 ]] | ||
#C [[ T 1050 DEPTH 0 ANGLE 0 AUTOFIT "#T" ]] | #C [[ T 1050 DEPTH 0 ANGLE 0 AUTOFIT "#T" ]] | ||
#C [[ T 1100 X 0 Y 0 ZOOM 0.25 THEME CUSTOM ]]}}</ | #C [[ T 1100 X 0 Y 0 ZOOM 0.25 THEME CUSTOM ]]}}</div> | ||
==LifeViewer features== | |||
* Smooth non-integer zoom with anti-aliasing and rotation. | |||
* Colour themes with cell history and longevity. | |||
* 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. | |||
* Pattern annotation with Labels, Arrows, Lines and Polygons. | |||
* Programatically pasting cells onto the grid at defined intervals (for example: glider injection). | |||
* Identification of oscillator and spaceship periods. | |||
* Automatic scaling for high DPI displays including smartphones and tablets. | |||
* Editor with unlimitied undo/redo and multiple clipboards. | |||
Rule support | ==Rule support== | ||
* 2-state [[Margolus]] rules. | * 2-state [[Margolus]] rules. | ||
** Example: Critters (M15,14,13,3,11,5,6,1,7,9,10,2,12,4,8,0) {{LV:Viewer|x = 63, y = 34, rule = critters | ** Example: Critters (M15,14,13,3,11,5,6,1,7,9,10,2,12,4,8,0) {{LV:Viewer|x = 63, y = 34, rule = critters | ||
| Line 78: | Line 92: | ||
88.A6$A58$61.A24$107.A11$37.A! | 88.A6$A58$61.A24$107.A11$37.A! | ||
[[ ZOOM 2 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]}} | [[ ZOOM 2 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]}} | ||
</td><td></td><td> | |||
* [[Alternating rule|Alternating]] rules. | * [[Alternating rule|Alternating]] rules. | ||
** Example: alternlife (B13/S012345678|B/S15) {{LV:Viewer|x = 21, y = 9, rule = alternlife | ** Example: alternlife (B13/S012345678|B/S15) {{LV:Viewer|x = 21, y = 9, rule = alternlife | ||
| Line 380: | Line 394: | ||
[[ ZOOM 2 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]}} | [[ ZOOM 2 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]}} | ||
Grid and neighbourhood support | ==Grid and neighbourhood support== | ||
* square grid: | * square grid: | ||
** outer-totalistic: | ** outer-totalistic: | ||
| Line 422: | Line 436: | ||
*** custom (CoordCA) | *** custom (CoordCA) | ||
[[Bounded grid]] types | ===[[Bounded grid]] types=== | ||
* Plane | * Plane | ||
* Cylinder (with optional shift) | * Cylinder (with optional shift) | ||
| Line 433: | Line 447: | ||
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 may also be planned.<ref name="post84188" /> | 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 may also be planned.<ref name="post84188" /> | ||
===Aliases=== | |||
The current list of rule name aliases can be found by clicking the Aliases button under Help. | |||
==Keyboard commands== | |||
A visual map of keyboard shortcuts is shown below: | |||
[[File:hotkeys.png|1024px]] | [[File:hotkeys.png|1024px]] | ||
===Playback controls=== | |||
<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>-</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>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> | |||
</table> | |||
===Multi-Viewer controls=== | |||
<table border=1 cellspacing=0 width=500><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> | |||
==Camera controls== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>V</td><td>restore saved camera position</td></tr><tr> | |||
<td>Shift V</td><td>save current camera position</td></tr><tr> | |||
<td>F</td><td>fit pattern to display</td></tr><tr> | |||
<td>Shift F</td><td>toggle autofit</td></tr><tr> | |||
<td>Shift H</td><td>toggle autofit history mode</td></tr><tr> | |||
<td>Ctrl F</td><td>fit selection to display</td></tr><tr> | |||
<td>Ctrl M</td><td>center pattern on display</td></tr><tr> | |||
<td>[</td><td>zoom out</td></tr><tr> | |||
<td>]</td><td>zoom in</td></tr><tr> | |||
<td>Shift [</td><td>halve zoom</td></tr><tr> | |||
<td>Shift ]</td><td>double zoom</td></tr><tr> | |||
<td>1</td><td>1x zoom</td></tr><tr> | |||
<td>2</td><td>2x zoom</td></tr><tr> | |||
<td>4</td><td>4x zoom</td></tr><tr> | |||
<td>8</td><td>8x zoom</td></tr><tr> | |||
<td>6</td><td>16x zoom</td></tr><tr> | |||
<td>3</td><td>32x zoom</td></tr><tr> | |||
<td>Shift 3</td><td>64x zoom</td></tr><tr> | |||
<td>Shift 1</td><td>integer zoom</td></tr><tr> | |||
<td>Shift 2</td><td>-2x zoom</td></tr><tr> | |||
<td>Shift 4</td><td>-4x zoom</td></tr><tr> | |||
<td>Shift 8</td><td>-8x zoom</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> | |||
==View controls== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>Q</td><td>increase number of layers</td></tr><tr> | |||
<td>A</td><td>decrease number of layers</td></tr><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> | |||
==Display controls== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>G</td><td>toggle generation statistics</td></tr><tr> | |||
<td>Shift G</td><td>toggle generation display mode</td></tr><tr> | |||
<td>Y</td><td>toggle population graph</td></tr><tr> | |||
<td>Shift Y</td><td>toggle graph lines</td></tr><tr> | |||
<td>7</td><td>decrease graph opacity</td></tr><tr> | |||
<td>9</td><td>increase graph opacity</td></tr><tr> | |||
<td>Shift W</td><td>toggle performance warning</td></tr><tr> | |||
<td>/</td><td>toggle hexagons for hex view</td></tr><tr> | |||
<td>T</td><td>toggle timing information</td></tr><tr> | |||
<td>Shift T</td><td>toggle extended timing information</td></tr><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>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> | |||
</table> | |||
==Pattern controls== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>Alt N</td><td>new pattern</td></tr><tr> | |||
<td>Alt R</td><td>change rule</td></tr><tr> | |||
<td>Ctrl O</td><td>open original or last saved pattern</td></tr><tr> | |||
<td>Ctrl+Shift O</td><td>open clipboard as pattern</td></tr><tr> | |||
<td>Ctrl S</td><td>save pattern</td></tr><tr> | |||
<td>Alt Z</td><td>randomize pattern and rule</td></tr><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> | |||
==External clipboard controls== | |||
<table border=1 cellspacing=0 width=500><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>copy original pattern</td></tr><tr> | |||
<td>Ctrl X</td><td>copy current selection</td></tr><tr> | |||
<td>Ctrl+Alt X</td><td>copy current selection with comments</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> | |||
==Edit controls== | |||
<table border=1 cellspacing=0 width=500><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>Ctrl C</td><td>copy</td></tr><tr> | |||
<td>Ctrl I</td><td>invert selection</td></tr><tr> | |||
<td>Ctrl K</td><td>remove selection</td></tr><tr> | |||
<td>Ctrl V</td><td>paste</td></tr><tr> | |||
<td>Ctrl+Shift V</td><td>paste to selection</td></tr><tr> | |||
<td>Ctrl X</td><td>cut</td></tr><tr> | |||
<td>Ctrl Y</td><td>redo edit</td></tr><tr> | |||
<td>Ctrl Z</td><td>undo edit</td></tr><tr> | |||
<td>Ctrl+Shift Z</td><td>redo edit</td></tr><tr> | |||
<td>Ctrl Space</td><td>advance selection</td></tr><tr> | |||
<td>Shift Space</td><td>advance outside</td></tr><tr> | |||
<td>Shift L</td><td>cycle paste location</td></tr><tr> | |||
<td>Shift M</td><td>cycle paste mode</td></tr><tr> | |||
<td>Shift 5</td><td>random fill</td></tr><tr> | |||
<td>Alt K</td><td>pick cell state to replace with drawing state</td></tr><tr> | |||
<td>Ctrl+Alt K</td><td>clear current drawing state cells</td></tr><tr> | |||
<td>Del</td><td>clear cells in selection</td></tr><tr> | |||
<td>Shift Del</td><td>clear outside selection</td></tr><tr> | |||
<td>></td><td>rotate selection clockwise</td></tr><tr> | |||
<td><</td><td>rotate selection counter-clockwise</td></tr><tr> | |||
<td>Alt X</td><td>flip selection horizontally</td></tr><tr> | |||
<td>Alt Y</td><td>flip selection vertically</td></tr><tr> | |||
<td>Alt Left</td><td>nudge selection 1 cell left</td></tr><tr> | |||
<td>Alt Right</td><td>nudge selection 1 cell right</td></tr><tr> | |||
<td>Alt Up</td><td>nudge selection 1 cell up</td></tr><tr> | |||
<td>Alt Down</td><td>nudge selection 1 cell down</td></tr><tr> | |||
<td>Esc</td><td>hide paste</td></tr><tr> | |||
<td>Enter</td><td>perform paste</td></tr><tr> | |||
<td>Ctrl 0</td><td>select state 0 for drawing</td></tr><tr> | |||
<td>Ctrl 1</td><td>select state 1 for drawing</td></tr><tr> | |||
<td>Alt 0</td><td>make clipboard 0 active</td></tr><tr> | |||
<td>Alt 1</td><td>make clipboard 1 active</td></tr><tr> | |||
<td>Alt 2</td><td>make clipboard 2 active</td></tr><tr> | |||
<td>Alt 3</td><td>make clipboard 3 active</td></tr><tr> | |||
<td>Alt 4</td><td>make clipboard 4 active</td></tr><tr> | |||
<td>Alt 5</td><td>make clipboard 5 active</td></tr><tr> | |||
<td>Alt 6</td><td>make clipboard 6 active</td></tr><tr> | |||
<td>Alt 7</td><td>make clipboard 7 active</td></tr><tr> | |||
<td>Alt 8</td><td>make clipboard 8 active</td></tr><tr> | |||
<td>Alt 9</td><td>make clipboard 9 active</td></tr> | |||
</table> | |||
==Help controls== | |||
<td><table border=1 cellspacing=0 width=500><tr></td></tr><tr> | |||
<td>Up</td><td>scroll up one line</td></tr><tr> | |||
<td>Down</td><td>scroll down one line</td></tr><tr> | |||
<td>Page Up</td><td>scroll up one page</td></tr><tr> | |||
<td>Page Down</td><td>scroll down one page</td></tr><tr> | |||
<td>Shift Page Up</td><td>scroll up one section</td></tr><tr> | |||
<td>Shift Page Down</td><td>scroll down one section</td></tr><tr> | |||
<td>Home</td><td>go to first help page</td></tr><tr> | |||
<td>End</td><td>go to last help page</td></tr> | |||
</table> | |||
==Themes== | |||
Themes are used to provide a visual representation of cell history and longevity and also define grid colours. | |||
===Grid=== | |||
GRID: grid line colour<br /> | |||
GRIDMAJOR: major grid line colour and interval | |||
===Two-state Themes=== | |||
BACKGROUND: cell never occupied<br /> | |||
ALIVE: cell just born<br /> | |||
ALIVERAMP: cell alive for several generations<br /> | |||
DEAD: cell just died<br /> | |||
DEADRAMP: cell dead for several generations | |||
There are 64 states from ALIVE to ALIVERAMP. | |||
There are 63 (HISTORYSTATES) states from DEAD to DEADRAMP. | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>Name</td><td>Mono</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>DEAD</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Blues</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>0</td><td>255</td><td>255</td><td>Aqua</td></tr><tr> | |||
<td>ALIVERAMP</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>DEAD</td><td>0</td><td>0</td><td>255</td><td>Blue</td></tr><tr> | |||
<td>DEADRAMP</td><td>0</td><td>0</td><td>47</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name*</td><td>Fire</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>144</td><td>0</td></tr><tr> | |||
<td>ALIVERAMP</td><td>255</td><td>255</td><td>0</td><td>Yellow</td></tr><tr> | |||
<td>DEAD</td><td>160</td><td>0</td><td>0</td></tr><tr> | |||
<td>DEADRAMP</td><td>32</td><td>0</td><td>0</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Poison</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>0</td><td>255</td><td>255</td><td>Aqua</td></tr><tr> | |||
<td>ALIVERAMP</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>DEAD</td><td>0</td><td>128</td><td>0</td><td>Green</td></tr><tr> | |||
<td>DEADRAMP</td><td>0</td><td>24</td><td>0</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Yellow</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>32</td><td>128</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>255</td><td>0</td><td>Yellow</td></tr><tr> | |||
<td>ALIVERAMP</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>DEAD</td><td>128</td><td>0</td><td>128</td><td>Purple</td></tr><tr> | |||
<td>DEADRAMP</td><td>0</td><td>47</td><td>0</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Gray</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>176</td><td>176</td><td>176</td></tr><tr> | |||
<td>ALIVERAMP</td><td>240</td><td>240</td><td>240</td></tr><tr> | |||
<td>DEAD</td><td>104</td><td>104</td><td>104</td></tr><tr> | |||
<td>DEADRAMP</td><td>16</td><td>16</td><td>16</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Inverse</td></tr><tr> | |||
<td>BACKGROUND</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>ALIVE</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>DEAD</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Day</td></tr><tr> | |||
<td>BACKGROUND</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>ALIVE</td><td>0</td><td>0</td><td>255</td><td>Blue</td></tr><tr> | |||
<td>ALIVERAMP</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>DEAD</td><td>0</td><td>255</td><td>255</td><td>Aqua</td></tr><tr> | |||
<td>DEADRAMP</td><td>240</td><td>240</td><td>240</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Occupied</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>240</td><td>240</td><td>240</td></tr><tr> | |||
<td>DEAD</td><td>240</td><td>240</td><td>240</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Red</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>240</td><td>240</td><td>240</td></tr><tr> | |||
<td>DEAD</td><td>160</td><td>0</td><td>0</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>LifeHistory</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>0</td><td>240</td><td>0</td></tr><tr> | |||
<td>ALIVERAMP</td><td>16</td><td>255</td><td>16</td></tr><tr> | |||
<td>DEAD</td><td>0</td><td>0</td><td>160</td></tr><tr> | |||
<td>DEADRAMP</td><td>0</td><td>0</td><td>96</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Generations</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>255</td><td>0</td><td>Yellow</td></tr><tr> | |||
<td>ALIVERAMP</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>DEAD</td><td>255</td><td>0</td><td>0</td><td>Red</td></tr><tr> | |||
<td>DEADRAMP</td><td>64</td><td>0</td><td>0</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Golly</td></tr><tr> | |||
<td>BACKGROUND</td><td>48</td><td>48</td><td>48</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>DEAD</td><td>48</td><td>48</td><td>48</td></tr><tr> | |||
<td>GRID</td><td>80</td><td>80</td><td>80</td></tr><tr> | |||
<td>GRIDMAJOR</td><td>112</td><td>112</td><td>112</td></tr><tr> | |||
<td>GRIDMAJOR</td><td>10</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>MCell</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>255</td><td>0</td><td>Yellow</td></tr><tr> | |||
<td>DEAD</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>GRID</td><td>64</td><td>0</td><td>0</td></tr><tr> | |||
<td>GRIDMAJOR</td><td>99</td><td>3</td><td>1</td></tr><tr> | |||
<td>GRIDMAJOR</td><td>5</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Catagolue</td></tr><tr> | |||
<td>BACKGROUND</td><td>192</td><td>255</td><td>238</td></tr><tr> | |||
<td>ALIVE</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>DEAD</td><td>160</td><td>221</td><td>204</td></tr><tr> | |||
<td>GRID</td><td>160</td><td>221</td><td>204</td></tr><tr> | |||
<td>GRIDMAJOR</td><td>160</td><td>221</td><td>204</td></tr><tr> | |||
<td>GRIDMAJOR</td><td>0</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Caterer</td></tr><tr> | |||
<td>BACKGROUND</td><td>54</td><td>57</td><td>62</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>DEAD</td><td>54</td><td>57</td><td>62</td></tr><tr> | |||
<td>GRID</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>GRIDMAJOR</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>GRIDMAJOR</td><td>0</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Life32</td></tr><tr> | |||
<td>BACKGROUND</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>ALIVE</td><td>0</td><td>0</td><td>128</td><td>Navy</td></tr><tr> | |||
<td>DEAD</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>GRID</td><td>192</td><td>192</td><td>192</td><td>Silver</td></tr><tr> | |||
<td>GRIDMAJOR</td><td>128</td><td>128</td><td>128</td><td>Gray</td></tr><tr> | |||
<td>GRIDMAJOR</td><td>5</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Margolus</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>255</td><td>0</td><td>Yellow</td></tr><tr> | |||
<td>ALIVERAMP</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>DEAD</td><td>0</td><td>0</td><td>128</td><td>Navy</td></tr><tr> | |||
<td>DEADRAMP</td><td>0</td><td>0</td><td>47</td></tr><tr> | |||
<td>GRID</td><td>32</td><td>32</td><td>255</td></tr><tr> | |||
<td>GRIDMAJOR</td><td>64</td><td>64</td><td>128</td></tr><tr> | |||
<td>GRIDMAJOR</td><td>2</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>PCA</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>176</td><td>176</td><td>176</td></tr><tr> | |||
<td>ALIVERAMP</td><td>240</td><td>240</td><td>240</td></tr><tr> | |||
<td>DEAD</td><td>64</td><td>64</td><td>64</td></tr><tr> | |||
<td>DEADRAMP</td><td>24</td><td>24</td><td>24</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Book</td></tr><tr> | |||
<td>BACKGROUND</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>ALIVE</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>DEAD</td><td>192</td><td>220</td><td>255</td></tr><tr> | |||
<td>DEADRAMP</td><td>255</td><td>220</td><td>192</td></tr><tr> | |||
<td>GRID</td><td>192</td><td>192</td><td>192</td><td>Silver</td></tr><tr> | |||
<td>GRIDMAJOR</td><td>209</td><td>209</td><td>209</td></tr><tr> | |||
<td>GRIDMAJOR</td><td>0</td></tr> | |||
</table> | |||
===Multi-state Themes=== | |||
BACKGROUND: cell never occupied<br /> | |||
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 | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>Name</td><td>Mono</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>DYING</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>DYINGRAMP</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>DEAD</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Blues</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>0</td><td>255</td><td>255</td><td>Aqua</td></tr><tr> | |||
<td>DYING</td><td>0</td><td>255</td><td>255</td><td>Aqua</td></tr><tr> | |||
<td>DYINGRAMP</td><td>0</td><td>0</td><td>255</td><td>Blue</td></tr><tr> | |||
<td>DEAD</td><td>0</td><td>0</td><td>128</td><td>Navy</td></tr><tr> | |||
<td>DEADRAMP</td><td>0</td><td>0</td><td>47</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Fire</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>144</td><td>0</td></tr><tr> | |||
<td>DYING</td><td>255</td><td>144</td><td>0</td></tr><tr> | |||
<td>DYINGRAMP</td><td>240</td><td>0</td><td>0</td></tr><tr> | |||
<td>DEAD</td><td>160</td><td>0</td><td>0</td></tr><tr> | |||
<td>DEADRAMP</td><td>32</td><td>0</td><td>0</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Poison</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>0</td><td>255</td><td>255</td><td>Aqua</td></tr><tr> | |||
<td>DYING</td><td>0</td><td>255</td><td>255</td><td>Aqua</td></tr><tr> | |||
<td>DYINGRAMP</td><td>0</td><td>192</td><td>0</td></tr><tr> | |||
<td>DEAD</td><td>0</td><td>128</td><td>0</td><td>Green</td></tr><tr> | |||
<td>DEADRAMP</td><td>0</td><td>24</td><td>0</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Yellow</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>32</td><td>128</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>255</td><td>0</td><td>Yellow</td></tr><tr> | |||
<td>DYING</td><td>255</td><td>255</td><td>0</td><td>Yellow</td></tr><tr> | |||
<td>DYINGRAMP</td><td>192</td><td>64</td><td>64</td></tr><tr> | |||
<td>DEAD</td><td>128</td><td>0</td><td>128</td><td>Purple</td></tr><tr> | |||
<td>DEADRAMP</td><td>0</td><td>47</td><td>0</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Gray</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>240</td><td>240</td><td>240</td></tr><tr> | |||
<td>DYING</td><td>240</td><td>240</td><td>240</td></tr><tr> | |||
<td>DYINGRAMP</td><td>160</td><td>160</td><td>160</td></tr><tr> | |||
<td>DEAD</td><td>104</td><td>104</td><td>104</td></tr><tr> | |||
<td>DEADRAMP</td><td>16</td><td>16</td><td>16</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Inverse</td></tr><tr> | |||
<td>BACKGROUND</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>ALIVE</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>DYING</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>DYINGRAMP</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>DEAD</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Day</td></tr><tr> | |||
<td>BACKGROUND</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>ALIVE</td><td>0</td><td>0</td><td>255</td><td>Blue</td></tr><tr> | |||
<td>DYING</td><td>0</td><td>0</td><td>255</td><td>Blue</td></tr><tr> | |||
<td>DYINGRAMP</td><td>0</td><td>255</td><td>255</td><td>Aqua</td></tr><tr> | |||
<td>DEAD</td><td>0</td><td>192</td><td>192</td></tr><tr> | |||
<td>DEADRAMP</td><td>240</td><td>240</td><td>240</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Occupied</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>240</td><td>240</td><td>240</td></tr><tr> | |||
<td>DYING</td><td>240</td><td>240</td><td>240</td></tr><tr> | |||
<td>DEAD</td><td>240</td><td>240</td><td>240</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Red</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>DYING</td><td>160</td><td>160</td><td>160</td></tr><tr> | |||
<td>DEAD</td><td>160</td><td>0</td><td>0</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>LifeHistory</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>16</td><td>255</td><td>16</td></tr><tr> | |||
<td>DYING</td><td>16</td><td>255</td><td>16</td></tr><tr> | |||
<td>DYINGRAMP</td><td>0</td><td>128</td><td>160</td></tr><tr> | |||
<td>DEAD</td><td>0</td><td>0</td><td>160</td></tr><tr> | |||
<td>DEADRAMP</td><td>0</td><td>0</td><td>96</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Generations</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>255</td><td>0</td><td>Yellow</td></tr><tr> | |||
<td>DYING</td><td>255</td><td>255</td><td>0</td><td>Yellow</td></tr><tr> | |||
<td>DYINGRAMP</td><td>255</td><td>0</td><td>0</td><td>Red</td></tr><tr> | |||
<td>DEAD</td><td>128</td><td>0</td><td>0</td><td>Maroon</td></tr><tr> | |||
<td>DEADRAMP</td><td>64</td><td>0</td><td>0</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Golly</td></tr><tr> | |||
<td>BACKGROUND</td><td>48</td><td>48</td><td>48</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>255</td><td>0</td><td>Yellow</td></tr><tr> | |||
<td>DYING</td><td>255</td><td>255</td><td>0</td><td>Yellow</td></tr><tr> | |||
<td>DYINGRAMP</td><td>255</td><td>0</td><td>0</td><td>Red</td></tr><tr> | |||
<td>DEAD</td><td>48</td><td>48</td><td>48</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>MCell</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>255</td><td>0</td><td>Yellow</td></tr><tr> | |||
<td>DYING</td><td>255</td><td>255</td><td>0</td><td>Yellow</td></tr><tr> | |||
<td>DYINGRAMP</td><td>0</td><td>255</td><td>0</td><td>Lime</td></tr><tr> | |||
<td>DEAD</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Catagolue</td></tr><tr> | |||
<td>BACKGROUND</td><td>192</td><td>255</td><td>238</td></tr><tr> | |||
<td>ALIVE</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>DYING</td><td>2</td><td>129</td><td>2</td></tr><tr> | |||
<td>DYINGRAMP</td><td>96</td><td>192</td><td>139</td></tr><tr> | |||
<td>DEAD</td><td>160</td><td>221</td><td>204</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Caterer</td></tr><tr> | |||
<td>BACKGROUND</td><td>54</td><td>57</td><td>62</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>170</td><td>0</td></tr><tr> | |||
<td>DYING</td><td>255</td><td>170</td><td>0</td></tr><tr> | |||
<td>DYINGRAMP</td><td>255</td><td>85</td><td>0</td></tr><tr> | |||
<td>DEAD</td><td>54</td><td>57</td><td>62</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Life32</td></tr><tr> | |||
<td>BACKGROUND</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>ALIVE</td><td>0</td><td>0</td><td>128</td><td>Navy</td></tr><tr> | |||
<td>DYING</td><td>0</td><td>0</td><td>128</td><td>Navy</td></tr><tr> | |||
<td>DYINGRAMP</td><td>0</td><td>0</td><td>64</td></tr><tr> | |||
<td>DEAD</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Margolus</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>255</td><td>255</td><td>0</td><td>Yellow</td></tr><tr> | |||
<td>DYING</td><td>255</td><td>255</td><td>0</td><td>Yellow</td></tr><tr> | |||
<td>DYINGRAMP</td><td>64</td><td>64</td><td>128</td></tr><tr> | |||
<td>DEAD</td><td>0</td><td>0</td><td>128</td><td>Navy</td></tr><tr> | |||
<td>DEADRAMP</td><td>0</td><td>0</td><td>47</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>PCA</td></tr><tr> | |||
<td>BACKGROUND</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>ALIVE</td><td>240</td><td>240</td><td>240</td></tr><tr> | |||
<td>DYING</td><td>240</td><td>240</td><td>240</td></tr><tr> | |||
<td>DYINGRAMP</td><td>160</td><td>160</td><td>160</td></tr><tr> | |||
<td>DEAD</td><td>64</td><td>64</td><td>64</td></tr><tr> | |||
<td>DEADRAMP</td><td>24</td><td>24</td><td>24</td></tr><tr> | |||
<td></td></tr><tr> | |||
<td>Name</td><td>Book</td></tr><tr> | |||
<td>BACKGROUND</td><td>255</td><td>255</td><td>255</td><td>White</td></tr><tr> | |||
<td>ALIVE</td><td>0</td><td>0</td><td>0</td><td>Black</td></tr><tr> | |||
<td>DYING</td><td>128</td><td>128</td><td>128</td><td>Gray</td></tr><tr> | |||
<td>DYINGRAMP</td><td>24</td><td>24</td><td>24</td></tr><tr> | |||
<td>DEAD</td><td>192</td><td>220</td><td>255</td></tr><tr> | |||
<td>DEADRAMP</td><td>255</td><td>220</td><td>192</td></tr> | |||
</table> | |||
==Scripts== | |||
Scripts must be embedded in pattern comments. Commands must be surrounded by whitespace. | |||
===Parameter conventions=== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>A|B</td><td>either A or B</td></tr><tr> | |||
<td>(A)</td><td>A is optional</td></tr><tr> | |||
<td>A*</td><td>zero or more A</td></tr><tr> | |||
<td>A+</td><td>one or more A</td></tr><tr> | |||
<td><1..3></td><td>integer range</td></tr><tr> | |||
<td><1.0..3.0></td><td>decimal range</td></tr> | |||
</table> | |||
===General=== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>[[</td><td>start script section</td></tr><tr> | |||
<td>]]</td><td>end script section</td></tr><tr> | |||
<td>SUPPRESS</td><td>suppress overwrite warning</td></tr> | |||
</table> | |||
===Playback=== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>AUTOSTART (OFF)</td><td>start play automatically</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>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>HARDRESET</td><td>always use hard reset</td></tr><tr> | |||
<td>VIEWONLY</td><td>disable playback</td></tr><tr> | |||
<td>NOSTEPBACK</td><td>disable step back</td></tr><tr> | |||
<td>NOREPORT</td><td>disable stop messages</td></tr><tr> | |||
<td>NOPERFWARNING</td><td>disable performance warning</td></tr><tr> | |||
<td>NOTHROTTLE</td><td>disable playback throttling</td></tr><tr> | |||
<td>EXCLUSIVEPLAY</td><td>starting playback pauses others</td></tr><tr> | |||
<td>IGNOREEXCLUSIVE</td><td>ignore other pause requests</td></tr> | |||
</table> | |||
===Camera=== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>ANGLE <0..359></td><td>set camera angle</td></tr><tr> | |||
<td>X <-4096..4096></td><td>set camera x position</td></tr><tr> | |||
<td>Y <-4096..4096></td><td>set camera y position</td></tr><tr> | |||
<td>ZOOM <-16.0..64.0></td><td>set camera zoom</td></tr><tr> | |||
<td>Z</td><td>same as ZOOM</td></tr><tr> | |||
<td>AUTOFIT (OFF)</td><td>fit pattern to display</td></tr><tr> | |||
<td>HISTORYFIT (OFF)</td><td>autofit uses pattern history</td></tr><tr> | |||
<td>STATE1FIT (OFF)</td><td>autofit only uses state 1</td></tr><tr> | |||
<td>TRACK X Y</td><td>camera tracking</td></tr><tr> | |||
<td> X </td><td>horizontal speed cells/gen</td></tr><tr> | |||
<td> Y </td><td>vertical speed cells/gen</td></tr><tr> | |||
<td>TRACKBOX E S W N</td><td>camera box tracking</td></tr><tr> | |||
<td> E </td><td>east edge speed cells/gen</td></tr><tr> | |||
<td> S </td><td>south edge speed cells/gen</td></tr><tr> | |||
<td> W </td><td>west edge speed cells/gen</td></tr><tr> | |||
<td> N </td><td>north edge speed cells/gen</td></tr><tr> | |||
<td>TRACKLOOP P X Y</td><td>camera tracking with loop</td></tr><tr> | |||
<td> P </td><td>period</td></tr><tr> | |||
<td> X </td><td>horizontal speed cells/gen</td></tr><tr> | |||
<td> Y </td><td>vertical speed cells/gen</td></tr> | |||
</table> | |||
===Waypoints=== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>T <0..></td><td>waypoint at generation</td></tr><tr> | |||
<td>PAUSE <0.0..></td><td>pause for time</td></tr><tr> | |||
<td>LINEAR ALL|X|Y|ZOOM</td><td>linear motion</td></tr><tr> | |||
<td>BEZIER ALL|X|Y|ZOOM</td><td>bezier motion (default)</td></tr><tr> | |||
<td>TIME</td><td>save timing at waypoint start</td></tr> | |||
</table> | |||
===Points of interest=== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>POI</td><td>define point of interest</td></tr><tr> | |||
<td>POIT <0..></td><td>start POI at generation</td></tr><tr> | |||
<td>POIRESET</td><td>reset generation at POI</td></tr><tr> | |||
<td>POIPLAY</td><td>start playback at POI</td></tr><tr> | |||
<td>POISTOP</td><td>stop playback at POI</td></tr><tr> | |||
<td>POITRANS <0..200></td><td>set POI transition speed</td></tr><tr> | |||
<td><command>|ALL INITIAL</td><td>use initial value for POI</td></tr><tr> | |||
<td>"<string>"</td><td>define message</td></tr> | |||
</table> | |||
===Annotations=== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>LABEL X Y ZOOM</td><td>define label at position</td></tr><tr> | |||
<td> (MAXZOOM) (FIXED)</td><td>... zoom range and fixed position</td></tr><tr> | |||
<td> "<string>"</td><td>... label text</td></tr><tr> | |||
<td>LABELSIZE <4..128></td><td>define label font size</td></tr><tr> | |||
<td>LABELALPHA <0.0..1.0></td><td>define label font alpha</td></tr><tr> | |||
<td>LABELT <0..> <0..> <0..></td><td>generation range / fade</td></tr><tr> | |||
<td>LABELANGLE <0..359></td><td>label angle</td></tr><tr> | |||
<td> (FIXED)</td><td>... optionally fix angle</td></tr><tr> | |||
<td>LABELTARGET X Y D|OFF</td><td>label target and distance</td></tr><tr> | |||
<td>LABELTRACK DX DY|FIXED</td><td>label move per generation</td></tr><tr> | |||
<td>ARROW X1 Y1 X2 Y2 ZOOM</td><td>define arrow at position</td></tr><tr> | |||
<td> (MAXZOOM) (FIXED)</td><td>... zoom range and fix position</td></tr><tr> | |||
<td>ARROWSIZE <1..64> <0.0..1.0></td><td>line width and head multiple</td></tr><tr> | |||
<td>ARROWALPHA <0.0..1.0></td><td>define arrow alpha</td></tr><tr> | |||
<td>ARROWT <0..> <0..> <0..></td><td>generation range / fade</td></tr><tr> | |||
<td>ARROWANGLE <0..359></td><td>arrow angle</td></tr><tr> | |||
<td> (FIXED)</td><td>... optionally fix angle</td></tr><tr> | |||
<td>ARROWTARGET X Y D|OFF</td><td>arrow target and distance</td></tr><tr> | |||
<td>ARROWTRACK DX DY|FIXED</td><td>arrow move per generation</td></tr><tr> | |||
<td>POLYLINE X1 Y1 X2 Y2 .. ZOOM</td><td>define outline polygon</td></tr><tr> | |||
<td> (MAXZOOM) (FIXED)</td><td>... zoom range and fix position</td></tr><tr> | |||
<td>POLYFILL X1 Y1 X2 Y2 .. ZOOM</td><td>define filled polygon</td></tr><tr> | |||
<td> (MAXZOOM) (FIXED)</td><td>... zoom range and fix position</td></tr><tr> | |||
<td>POLYSIZE <1..64></td><td>line width</td></tr><tr> | |||
<td>POLYALPHA <0.0..1.0></td><td>define polygon alpha</td></tr><tr> | |||
<td>POLYT <0..> <0..> <0..></td><td>generation range / fade</td></tr><tr> | |||
<td>POLYANGLE <0..359></td><td>polygon angle</td></tr><tr> | |||
<td> (FIXED)</td><td>... optionally fix angle</td></tr><tr> | |||
<td>POLYTARGET X Y D|OFF</td><td>polygon target and distance</td></tr> | |||
</table> | |||
==Display== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>WIDTH <560..4096></td><td>set LifeViewer width</td></tr><tr> | |||
<td>HEIGHT <240..4096></td><td>set LifeViewer height</td></tr><tr> | |||
<td>POPUPWIDTH <560..4096></td><td>set popup width</td></tr><tr> | |||
<td>POPUPHEIGHT <240..4096></td><td>set popup height</td></tr><tr> | |||
<td>TITLE "<string>"</td><td>set popup window title</td></tr><tr> | |||
<td> #B</td><td>program build number</td></tr><tr> | |||
<td> #N</td><td>pattern name</td></tr><tr> | |||
<td> #O</td><td>pattern originator</td></tr><tr> | |||
<td> #R</td><td>rule name</td></tr><tr> | |||
<td> #A</td><td>rule alias</td></tr><tr> | |||
<td> #T</td><td>program title</td></tr><tr> | |||
<td> #0..9</td><td>saved timing as average fps</td></tr><tr> | |||
<td> ##</td><td># symbol</td></tr><tr> | |||
<td>LAYERS <1..10></td><td>set number of layers</td></tr><tr> | |||
<td>DEPTH <0.0..10.0></td><td>set layer depth</td></tr><tr> | |||
<td>GRID (OFF)</td><td>display gridlines</td></tr><tr> | |||
<td>GRIDMAJOR <0..16></td><td>set major grid line interval</td></tr><tr> | |||
<td>HISTORYSTATES <0..63></td><td>number of history states</td></tr><tr> | |||
<td>STARS (OFF)</td><td>display stars</td></tr><tr> | |||
<td>HEXCELLS</td><td>hexagonal cells for hex</td></tr><tr> | |||
<td>SQUARECELLS</td><td>square cells for hex</td></tr><tr> | |||
<td>CELLBORDERS</td><td>display cell borders</td></tr><tr> | |||
<td>NOGUI</td><td>disable menus and hotkeys</td></tr><tr> | |||
<td>AUTOHIDEGUI</td><td>hide menus during playback</td></tr><tr> | |||
<td>SHOWTIMING</td><td>show timing information</td></tr><tr> | |||
<td>EXTENDEDTIMING</td><td>extended timing information</td></tr><tr> | |||
<td>SHOWGENSTATS</td><td>show generation statistics</td></tr><tr> | |||
<td>SHOWINFOBAR</td><td>show information bar</td></tr> | |||
===Thumbnails=== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>THUMBNAIL (OFF)</td><td>start at 1/4 size</td></tr><tr> | |||
<td>THUMBSIZE <2..4></td><td>set thumbnail divisor</td></tr><tr> | |||
<td>THUMBLAUNCH (OFF)</td><td>thumbnail launches viewer</td></tr><tr> | |||
<td>THUMBZOOM <-16.0..64.0></td><td>set thumbnail zoom</td></tr><tr> | |||
<td>THUMBSTART</td><td>start playback on thumbnail expand</td></tr> | |||
</table> | |||
===Population Graph=== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>GRAPH</td><td>display population graph</td></tr><tr> | |||
<td>GRAPHOPACITY <0.0..1.0></td><td>population graph opacity</td></tr><tr> | |||
<td>GRAPHPOINTS</td><td>population graph use points</td></tr><tr> | |||
<td>NOGRAPH</td><td>disable population graph</td></tr> | |||
</table> | |||
===Colours=== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>THEME <0..19>|name</td><td>set theme</td></tr><tr> | |||
<td> name = CUSTOM</td><td>set custom theme</td></tr><tr> | |||
<td>COLOR BACKGROUND R G B</td><td>set theme background</td></tr><tr> | |||
<td>COLOR ALIVE R G B</td><td>set theme alive color</td></tr><tr> | |||
<td>COLOR ALIVERAMP R G B</td><td>set theme alive ramp</td></tr><tr> | |||
<td>COLOR DEAD R G B</td><td>set theme dead color</td></tr><tr> | |||
<td>COLOR DEADRAMP R G B</td><td>set theme dead ramp</td></tr><tr> | |||
<td>COLOR DYING R G B</td><td>set theme dying color</td></tr><tr> | |||
<td>COLOR DYINGRAMP R G B</td><td>set theme dying ramp</td></tr><tr> | |||
<td>COLOR BOUNDARY R G B</td><td>set boundary color</td></tr><tr> | |||
<td>COLOR <0..1> R G B</td><td>set state color</td></tr><tr> | |||
<td>COLOR BOUNDED R G B</td><td>set bounded color</td></tr><tr> | |||
<td>COLOR SELECT R G B</td><td>set select color</td></tr><tr> | |||
<td>COLOR PASTE R G B</td><td>set paste color</td></tr><tr> | |||
<td>COLOR ADVANCE R G B</td><td>set advance color</td></tr><tr> | |||
<td>COLOR GRID R G B</td><td>set grid color</td></tr><tr> | |||
<td>COLOR GRIDMAJOR R G B</td><td>set grid major color</td></tr><tr> | |||
<td>COLOR STARS R G B</td><td>set star color</td></tr><tr> | |||
<td>COLOR TEXT R G B</td><td>set waypoint message color</td></tr><tr> | |||
<td>COLOR ERROR R G B</td><td>set error message color</td></tr><tr> | |||
<td>COLOR GRAPHBG R G B</td><td>set graph background color</td></tr><tr> | |||
<td>COLOR GRAPHAXIS R G B</td><td>set graph axis color</td></tr><tr> | |||
<td>COLOR GRAPHALIVE R G B</td><td>set graph alive color</td></tr><tr> | |||
<td>COLOR GRAPHBIRTH R G B</td><td>set graph birth color</td></tr><tr> | |||
<td>COLOR GRAPHDEATH R G B</td><td>set graph death color</td></tr><tr> | |||
<td>COLOR LABEL R G B</td><td>set label text color</td></tr><tr> | |||
<td>COLOR ARROW R G B</td><td>set arrow line color</td></tr><tr> | |||
<td>COLOR POLY R G B</td><td>set polygon color</td></tr><tr> | |||
<td>COLOR UIFOREGROUND R G B</td><td>set UI foreground color</td></tr><tr> | |||
<td>COLOR UIBACKGROUND R G B</td><td>set UI background color</td></tr><tr> | |||
<td>COLOR UIHIGHLIGHT R G B</td><td>set UI highlight text color</td></tr><tr> | |||
<td>COLOR UISELECT R G B</td><td>set UI selected color</td></tr><tr> | |||
<td>COLOR UILOCKED R G B</td><td>set UI locked color</td></tr><tr> | |||
<td>COLOR UIBORDER R G B</td><td>set UI border color</td></tr><tr> | |||
<td>COLOUR</td><td>same as COLOR</td></tr> | |||
</table> | |||
===Pattern=== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>XOFFSET <-4096..4096></td><td>set pattern x offset</td></tr><tr> | |||
<td>YOFFSET <-4096..4096></td><td>set pattern y offset</td></tr><tr> | |||
<td>DELETERANGE <1..16></td><td>set boundary delete range</td></tr><tr> | |||
<td>NOCOPY</td><td>disable pattern source copy</td></tr><tr> | |||
<td>NOSOURCE</td><td>hide pattern source</td></tr><tr> | |||
<td>MAXGRIDSIZE <9..14></td><td>set maximum grid size 2^n</td></tr><tr> | |||
<td>RECIPE name X Y (<1..>)+</td><td>create a named recipe</td></tr><tr> | |||
<td>RLE name rle</td><td>create a named rle</td></tr><tr> | |||
<td> (X Y) (TRANS)</td><td>... X Y and transformation</td></tr><tr> | |||
<td> IDENTITY</td><td>identity</td></tr><tr> | |||
<td> FLIP</td><td>flip</td></tr><tr> | |||
<td> FLIPX</td><td>flip X</td></tr><tr> | |||
<td> FLIPY</td><td>flip Y</td></tr><tr> | |||
<td> SWAPXY</td><td>swap X and Y</td></tr><tr> | |||
<td> SWAPXYFLIP</td><td>swap X and Y and flip</td></tr><tr> | |||
<td> RCW</td><td>rotate clockwise</td></tr><tr> | |||
<td> RCCW</td><td>rotate counter-clockwise</td></tr><tr> | |||
<td>PASTE name|rle (X Y)</td><td>paste rle at optional X Y</td></tr><tr> | |||
<td> (TRANS)</td><td>... optional transformation</td></tr><tr> | |||
<td>PASTET <0..></td><td>set paste generation</td></tr><tr> | |||
<td>(recipe|<1..>+)*</td><td>... optional delta list</td></tr><tr> | |||
<td>PASTET EVERY <1..></td><td>set paste interval</td></tr><tr> | |||
<td> (<0..> (<1..>))</td><td>... optional start and end</td></tr><tr> | |||
<td>PASTEDELTA X Y</td><td>set position delta for PASTET EVERY</td></tr><tr> | |||
<td>PASTEMODE <0..15>|mode</td><td>set paste mode</td></tr><tr> | |||
<td></td><td> 0 0000 ZERO<br /> | |||
1 0001 AND<br /> | |||
2 0010 0010<br /> | |||
3 0011 X|COPY<br /> | |||
4 0100 DIFF<br /> | |||
5 0101 Y<br /> | |||
6 0110 XOR<br /> | |||
7 0111 OR<br /> | |||
8 1000 NOR<br /> | |||
9 1001 XNOR<br /> | |||
10 1010 NOTY<br /> | |||
11 1011 1011<br /> | |||
12 1100 NOTX<br /> | |||
13 1101 1101<br /> | |||
14 1110 NAND<br /> | |||
15 1111 ONE</td></tr><tr> | |||
<td>KILLGLIDERS</td><td>suppress escaping gliders</td></tr> | |||
</table> | |||
===Randomize=== | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>RANDOMIZE</td><td>create random pattern</td></tr><tr> | |||
<td>RANDSEED <string></td><td>set random seed</td></tr><tr> | |||
<td>RANDWIDTH <1..1024></td><td>set random pattern width</td></tr><tr> | |||
<td>RANDHEIGHT <1..1024></td><td>set random pattern height</td></tr><tr> | |||
<td>RANDFILL <1..100></td><td>set random pattern fill percentage</td></tr><tr> | |||
<td>RANDCHANCE FIXED</td><td>keep rule fixed</td></tr><tr> | |||
<td>RANDCHANCE <item> <0..100></td><td>set percentage chance for <item></td></tr><tr> | |||
<td> ALL</td><td>all conditions</td></tr><tr> | |||
<td> B</td><td>all birth conditions</td></tr><tr> | |||
<td> S</td><td>all survival conditions</td></tr><tr> | |||
<td> B<0..n></td><td>specified birth condition</td></tr><tr> | |||
<td> S<0..n></td><td>specified survival condition</td></tr> | |||
</table> | |||
==Colours== | |||
The following names can be used in place of R G B. For example: [[ COLOUR ALIVE Green ]] | |||
<table border=1 cellspacing=0 width=500><tr> | |||
<td>AliceBlue</td><td>240</td><td>248</td><td>255</td><td></td></tr><tr> | |||
<td>AntiqueWhite</td><td>250</td><td>235</td><td>215</td><td></td></tr><tr> | |||
<td>Aqua</td><td>0</td><td>255</td><td>255</td><td></td></tr><tr> | |||
<td>Aquamarine</td><td>127</td><td>255</td><td>212</td><td></td></tr><tr> | |||
<td>Azure</td><td>240</td><td>255</td><td>255</td><td></td></tr><tr> | |||
<td>Beige</td><td>245</td><td>245</td><td>220</td><td></td></tr><tr> | |||
<td>Bisque</td><td>255</td><td>228</td><td>196</td><td></td></tr><tr> | |||
<td>Black</td><td>0</td><td>0</td><td>0</td><td></td></tr><tr> | |||
<td>BlanchedAlmond</td><td>255</td><td>235</td><td>205</td><td></td></tr><tr> | |||
<td>Blue</td><td>0</td><td>0</td><td>255</td><td></td></tr><tr> | |||
<td>BlueViolet</td><td>138</td><td>43</td><td>226</td><td></td></tr><tr> | |||
<td>Brown</td><td>165</td><td>42</td><td>42</td><td></td></tr><tr> | |||
<td>BurlyWood</td><td>222</td><td>184</td><td>135</td><td></td></tr><tr> | |||
<td>CadetBlue</td><td>95</td><td>158</td><td>160</td><td></td></tr><tr> | |||
<td>Chartreuse</td><td>127</td><td>255</td><td>0</td><td></td></tr><tr> | |||
<td>Chocolate</td><td>210</td><td>105</td><td>30</td><td></td></tr><tr> | |||
<td>Coral</td><td>255</td><td>127</td><td>80</td><td></td></tr><tr> | |||
<td>CornflowerBlue</td><td>100</td><td>149</td><td>237</td><td></td></tr><tr> | |||
<td>Cornsilk</td><td>255</td><td>248</td><td>220</td><td></td></tr><tr> | |||
<td>Crimson</td><td>220</td><td>20</td><td>60</td><td></td></tr><tr> | |||
<td>Cyan</td><td>0</td><td>255</td><td>255</td><td></td></tr><tr> | |||
<td>DarkBlue</td><td>0</td><td>0</td><td>139</td><td></td></tr><tr> | |||
<td>DarkCyan</td><td>0</td><td>139</td><td>139</td><td></td></tr><tr> | |||
<td>DarkGoldenRod</td><td>184</td><td>134</td><td>11</td><td></td></tr><tr> | |||
<td>DarkGray</td><td>169</td><td>169</td><td>169</td><td></td></tr><tr> | |||
<td>DarkGreen</td><td>0</td><td>100</td><td>0</td><td></td></tr><tr> | |||
<td>DarkKhaki</td><td>189</td><td>183</td><td>107</td><td></td></tr><tr> | |||
<td>DarkMagenta</td><td>139</td><td>0</td><td>139</td><td></td></tr><tr> | |||
<td>DarkOliveGreen</td><td>85</td><td>107</td><td>47</td><td></td></tr><tr> | |||
<td>DarkOrange</td><td>255</td><td>140</td><td>0</td><td></td></tr><tr> | |||
<td>DarkOrchid</td><td>153</td><td>50</td><td>204</td><td></td></tr><tr> | |||
<td>DarkRed</td><td>139</td><td>0</td><td>0</td><td></td></tr><tr> | |||
<td>DarkSalmon</td><td>233</td><td>150</td><td>122</td><td></td></tr><tr> | |||
<td>DarkSeaGreen</td><td>143</td><td>188</td><td>143</td><td></td></tr><tr> | |||
<td>DarkSlateBlue</td><td>72</td><td>61</td><td>139</td><td></td></tr><tr> | |||
<td>DarkSlateGray</td><td>47</td><td>79</td><td>79</td><td></td></tr><tr> | |||
<td>DarkTurquoise</td><td>0</td><td>206</td><td>209</td><td></td></tr><tr> | |||
<td>DarkViolet</td><td>148</td><td>0</td><td>211</td><td></td></tr><tr> | |||
<td>DeepPink</td><td>255</td><td>20</td><td>147</td><td></td></tr><tr> | |||
<td>DeepSkyBlue</td><td>0</td><td>191</td><td>255</td><td></td></tr><tr> | |||
<td>DimGray</td><td>105</td><td>105</td><td>105</td><td></td></tr><tr> | |||
<td>DodgerBlue</td><td>30</td><td>144</td><td>255</td><td></td></tr><tr> | |||
<td>FireBrick</td><td>178</td><td>34</td><td>34</td><td></td></tr><tr> | |||
<td>FloralWhite</td><td>255</td><td>250</td><td>240</td><td></td></tr><tr> | |||
<td>ForestGreen</td><td>34</td><td>139</td><td>34</td><td></td></tr><tr> | |||
<td>Fuchsia</td><td>255</td><td>0</td><td>255</td><td></td></tr><tr> | |||
<td>Gainsboro</td><td>220</td><td>220</td><td>220</td><td></td></tr><tr> | |||
<td>GhostWhite</td><td>248</td><td>248</td><td>255</td><td></td></tr><tr> | |||
<td>Gold</td><td>255</td><td>215</td><td>0</td><td></td></tr><tr> | |||
<td>GoldenRod</td><td>218</td><td>165</td><td>32</td><td></td></tr><tr> | |||
<td>Gray</td><td>128</td><td>128</td><td>128</td><td></td></tr><tr> | |||
<td>Green</td><td>0</td><td>128</td><td>0</td><td></td></tr><tr> | |||
<td>GreenYellow</td><td>173</td><td>255</td><td>47</td><td></td></tr><tr> | |||
<td>HoneyDew</td><td>240</td><td>255</td><td>240</td><td></td></tr><tr> | |||
<td>HotPink</td><td>255</td><td>105</td><td>180</td><td></td></tr><tr> | |||
<td>IndianRed</td><td>205</td><td>92</td><td>92</td><td></td></tr><tr> | |||
<td>Indigo</td><td>75</td><td>0</td><td>130</td><td></td></tr><tr> | |||
<td>Ivory</td><td>255</td><td>255</td><td>240</td><td></td></tr><tr> | |||
<td>Khaki</td><td>240</td><td>230</td><td>140</td><td></td></tr><tr> | |||
<td>Lavender</td><td>230</td><td>230</td><td>250</td><td></td></tr><tr> | |||
<td>LavenderBlush</td><td>255</td><td>240</td><td>245</td><td></td></tr><tr> | |||
<td>LawnGreen</td><td>124</td><td>252</td><td>0</td><td></td></tr><tr> | |||
<td>LemonChiffon</td><td>255</td><td>250</td><td>205</td><td></td></tr><tr> | |||
<td>LightBlue</td><td>173</td><td>216</td><td>230</td><td></td></tr><tr> | |||
<td>LightCoral</td><td>240</td><td>128</td><td>128</td><td></td></tr><tr> | |||
<td>LightCyan</td><td>224</td><td>255</td><td>255</td><td></td></tr><tr> | |||
<td>LightGoldenRodYellow</td><td>250</td><td>250</td><td>210</td><td></td></tr><tr> | |||
<td>LightGray</td><td>211</td><td>211</td><td>211</td><td></td></tr><tr> | |||
<td>LightGreen</td><td>144</td><td>238</td><td>144</td><td></td></tr><tr> | |||
<td>LightPink</td><td>255</td><td>182</td><td>193</td><td></td></tr><tr> | |||
<td>LightSalmon</td><td>255</td><td>160</td><td>122</td><td></td></tr><tr> | |||
<td>LightSeaGreen</td><td>32</td><td>178</td><td>170</td><td></td></tr><tr> | |||
<td>LightSkyBlue</td><td>135</td><td>206</td><td>250</td><td></td></tr><tr> | |||
<td>LightSlateGray</td><td>119</td><td>136</td><td>153</td><td></td></tr><tr> | |||
<td>LightSteelBlue</td><td>176</td><td>196</td><td>222</td><td></td></tr><tr> | |||
<td>LightYellow</td><td>255</td><td>255</td><td>224</td><td></td></tr><tr> | |||
<td>Lime</td><td>0</td><td>255</td><td>0</td><td></td></tr><tr> | |||
<td>LimeGreen</td><td>50</td><td>205</td><td>50</td><td></td></tr><tr> | |||
<td>Linen</td><td>250</td><td>240</td><td>230</td><td></td></tr><tr> | |||
<td>Magenta</td><td>255</td><td>0</td><td>255</td><td></td></tr><tr> | |||
<td>Maroon</td><td>128</td><td>0</td><td>0</td><td></td></tr><tr> | |||
<td>MediumAquaMarine</td><td>102</td><td>205</td><td>170</td><td></td></tr><tr> | |||
<td>MediumBlue</td><td>0</td><td>0</td><td>205</td><td></td></tr><tr> | |||
<td>MediumOrchid</td><td>186</td><td>85</td><td>211</td><td></td></tr><tr> | |||
<td>MediumPurple</td><td>147</td><td>112</td><td>219</td><td></td></tr><tr> | |||
<td>MediumSeaGreen</td><td>60</td><td>179</td><td>113</td><td></td></tr><tr> | |||
<td>MediumSlateBlue</td><td>123</td><td>104</td><td>238</td><td></td></tr><tr> | |||
<td>MediumSpringGreen</td><td>0</td><td>250</td><td>154</td><td></td></tr><tr> | |||
<td>MediumTurquoise</td><td>72</td><td>209</td><td>204</td><td></td></tr><tr> | |||
<td>MediumVioletRed</td><td>199</td><td>21</td><td>133</td><td></td></tr><tr> | |||
<td>MidnightBlue</td><td>25</td><td>25</td><td>112</td><td></td></tr><tr> | |||
<td>MintCream</td><td>245</td><td>255</td><td>250</td><td></td></tr><tr> | |||
<td>MistyRose</td><td>255</td><td>228</td><td>225</td><td></td></tr><tr> | |||
<td>Moccasin</td><td>255</td><td>228</td><td>181</td><td></td></tr><tr> | |||
<td>NavajoWhite</td><td>255</td><td>222</td><td>173</td><td></td></tr><tr> | |||
<td>Navy</td><td>0</td><td>0</td><td>128</td><td></td></tr><tr> | |||
<td>OldLace</td><td>253</td><td>245</td><td>230</td><td></td></tr><tr> | |||
<td>Olive</td><td>128</td><td>128</td><td>0</td><td></td></tr><tr> | |||
<td>OliveDrab</td><td>107</td><td>142</td><td>35</td><td></td></tr><tr> | |||
<td>Orange</td><td>255</td><td>165</td><td>0</td><td></td></tr><tr> | |||
<td>OrangeRed</td><td>255</td><td>69</td><td>0</td><td></td></tr><tr> | |||
<td>Orchid</td><td>218</td><td>112</td><td>214</td><td></td></tr><tr> | |||
<td>PaleGoldenRod</td><td>238</td><td>232</td><td>170</td><td></td></tr><tr> | |||
<td>PaleGreen</td><td>152</td><td>251</td><td>152</td><td></td></tr><tr> | |||
<td>PaleTurquoise</td><td>175</td><td>238</td><td>238</td><td></td></tr><tr> | |||
<td>PaleVioletRed</td><td>219</td><td>112</td><td>147</td><td></td></tr><tr> | |||
<td>PapayaWhip</td><td>255</td><td>239</td><td>213</td><td></td></tr><tr> | |||
<td>PeachPuff</td><td>255</td><td>218</td><td>185</td><td></td></tr><tr> | |||
<td>Peru</td><td>205</td><td>133</td><td>63</td><td></td></tr><tr> | |||
<td>Pink</td><td>255</td><td>192</td><td>203</td><td></td></tr><tr> | |||
<td>Plum</td><td>221</td><td>160</td><td>221</td><td></td></tr><tr> | |||
<td>PowderBlue</td><td>176</td><td>224</td><td>230</td><td></td></tr><tr> | |||
<td>Purple</td><td>128</td><td>0</td><td>128</td><td></td></tr><tr> | |||
<td>RebeccaPurple</td><td>102</td><td>51</td><td>153</td><td></td></tr><tr> | |||
<td>Red</td><td>255</td><td>0</td><td>0</td><td></td></tr><tr> | |||
<td>RosyBrown</td><td>188</td><td>143</td><td>143</td><td></td></tr><tr> | |||
<td>RoyalBlue</td><td>65</td><td>105</td><td>225</td><td></td></tr><tr> | |||
<td>SaddleBrown</td><td>139</td><td>69</td><td>19</td><td></td></tr><tr> | |||
<td>Salmon</td><td>250</td><td>128</td><td>114</td><td></td></tr><tr> | |||
<td>SandyBrown</td><td>244</td><td>164</td><td>96</td><td></td></tr><tr> | |||
<td>SeaGreen</td><td>46</td><td>139</td><td>87</td><td></td></tr><tr> | |||
<td>SeaShell</td><td>255</td><td>245</td><td>238</td><td></td></tr><tr> | |||
<td>Sienna</td><td>160</td><td>82</td><td>45</td><td></td></tr><tr> | |||
<td>Silver</td><td>192</td><td>192</td><td>192</td><td></td></tr><tr> | |||
<td>SkyBlue</td><td>135</td><td>206</td><td>235</td><td></td></tr><tr> | |||
<td>SlateBlue</td><td>106</td><td>90</td><td>205</td><td></td></tr><tr> | |||
<td>SlateGray</td><td>112</td><td>128</td><td>144</td><td></td></tr><tr> | |||
<td>Snow</td><td>255</td><td>250</td><td>250</td><td></td></tr><tr> | |||
<td>SpringGreen</td><td>0</td><td>255</td><td>127</td><td></td></tr><tr> | |||
<td>SteelBlue</td><td>70</td><td>130</td><td>180</td><td></td></tr><tr> | |||
<td>Tan</td><td>210</td><td>180</td><td>140</td><td></td></tr><tr> | |||
<td>Teal</td><td>0</td><td>128</td><td>128</td><td></td></tr><tr> | |||
<td>Thistle</td><td>216</td><td>191</td><td>216</td><td></td></tr><tr> | |||
<td>Tomato</td><td>255</td><td>99</td><td>71</td><td></td></tr><tr> | |||
<td>Turquoise</td><td>64</td><td>224</td><td>208</td><td></td></tr><tr> | |||
<td>Violet</td><td>238</td><td>130</td><td>238</td><td></td></tr><tr> | |||
<td>Wheat</td><td>245</td><td>222</td><td>179</td><td></td></tr><tr> | |||
<td>White</td><td>255</td><td>255</td><td>255</td><td></td></tr><tr> | |||
<td>WhiteSmoke</td><td>245</td><td>245</td><td>245</td></tr><tr> | |||
<td>Yellow</td><td>255</td><td>255</td><td>0</td><td></td></tr><tr> | |||
<td>YellowGreen</td><td>154</td><td>205</td><td>50</td><td></td></tr><tr> | |||
</table> | |||
==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== | ==References== | ||
Revision as of 18:15, 12 September 2020
| LifeViewer | |
| Homepage | Click here |
|---|---|
| Purpose | Life simulation |
| Created by | Chris Rowett |
| Platform | HTML5 / Javascript |
LifeViewer is a 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.
LifeViewer features
- Smooth non-integer zoom with anti-aliasing and rotation.
- Colour themes with cell history and longevity.
- 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.
- Pattern annotation with Labels, Arrows, Lines and Polygons.
- Programatically pasting cells onto the grid at defined intervals (for example: glider injection).
- Identification of oscillator and spaceship periods.
- Automatic scaling for high DPI displays including smartphones and tablets.
- Editor with unlimitied undo/redo and multiple clipboards.
Rule support
- 2-state Margolus rules.
- Example: Critters (M15,14,13,3,11,5,6,1,7,9,10,2,12,4,8,0)
- Example: Critters (M15,14,13,3,11,5,6,1,7,9,10,2,12,4,8,0)
- 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)
- Example: Soldier Bugs (R7,C2,M1,S65..114,B65..95,NM)
- 2-state Isotropic non-totalistic Life-like cellular automata (for range-1 Moore and range-1 hexagonal).
- Example: Just Friends (B2-a/S12)
- Example: Just Friends (B2-a/S12)
- 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
- Example: MAP//8IAN1+KYD/9QAA/f8AAOu/AQD38wAI//8IgP39Akrn/wAB/78DAP/+AAD/ugAA//sQCN3+AIDfvwhD//sAQA
- Generations rules (as an extension of the outer-totalistic, non-totalistic and non-isotropic rulespaces).
- Example: Fireworks (2,13,21)
- Example: Fireworks (2,13,21)
- Alternating rules.
- Example: alternlife (B13/S012345678|B/S15)
- Example: alternlife (B13/S012345678|B/S15)
- 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)
- Example: PCA_4 (2PCA4,0,2,4,12,8,5,9,7,1,6,10,11,3,13,14,15)
- Weighted rules.
- Example: R2,C2,S2-3,B4,7-8,NW0010001210120210121000100
- Example: R2,C2,S2-3,B4,7-8,NW0010001210120210121000100
- Elementary cellular automata (even numbers only).
- Example: Wolfram 30 (W30)
- Example: Wolfram 30 (W30)
- [R]History rules.
- Example: LifeHistory
- Example: LifeHistory
- [R]Super rules.
- Example: LifeSuper
- Example: LifeSuper
- RuleTable rules from a repository.
- Example: Byl-loop
- Example: Byl-loop
Grid and neighbourhood support
- square grid:
- outer-totalistic:
- Moore
- von Neumann
- circular
- cross
- L2
- saltire
- star
- checkerboard
- hash
- custom (CoordCA)
- non-totalistic
- non-isotropic
- Margolus
- PCA
- outer-totalistic:
- hexagonal or offset-square grid:
- outer totalistic:
- hexagonal
- tripod
- asterisk
- custom (CoordCA)
- non-totalistic
- non-isotropic
- outer totalistic:
- triangular grid:
- outer totalistic:
- triangular Moore
- triangular edges
- triangular vertices
- triangular inner
- triangular outer
- custom (CoordCA)
- outer totalistic:
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.[1][2][3] Support for 1D totalistic rules may also be planned.[4]
Aliases
The current list of rule name aliases can be found by clicking the Aliases button under Help.
Keyboard commands
A visual map of keyboard shortcuts is shown below:
Playback controls
| Key | Description |
| Enter | toggle play / pause |
| Space | pause / next generation |
| B | pause / previous generation |
| Backspace | pause / previous generation |
| Tab | pause / next step |
| Shift Tab | pause / previous step |
| Esc | pause if playing |
| R | reset to generation 0 |
| - | decrease generation speed |
| + | increase generation speed |
| Shift - | minimum generation speed |
| Shift + | maximum generation speed |
| D | decrease step size |
| E | increase step size |
| Shift D | minimum step size |
| Shift E | maximum step size |
| 0 | reset step and speed |
| Alt T | toggle throttling |
| W | toggle waypoint playback and loop |
| Shift P | toggle just loop |
| Alt O | toggle autostart |
Multi-Viewer controls
| Shift R | reset all LifeViewers to generation 0 |
| Z | stop playback in all other LifeViewers |
| Shift Z | stop playback in all LifeViewers |
Camera controls
| V | restore saved camera position |
| Shift V | save current camera position |
| F | fit pattern to display |
| Shift F | toggle autofit |
| Shift H | toggle autofit history mode |
| Ctrl F | fit selection to display |
| Ctrl M | center pattern on display |
| [ | zoom out |
| ] | zoom in |
| Shift [ | halve zoom |
| Shift ] | double zoom |
| 1 | 1x zoom |
| 2 | 2x zoom |
| 4 | 4x zoom |
| 8 | 8x zoom |
| 6 | 16x zoom |
| 3 | 32x zoom |
| Shift 3 | 64x zoom |
| Shift 1 | integer zoom |
| Shift 2 | -2x zoom |
| Shift 4 | -4x zoom |
| Shift 8 | -8x zoom |
| Shift 6 | -16x zoom |
| Left | pan left |
| Right | pan right |
| Up | pan up |
| Down | pan down |
| Shift Left | pan north west |
| Shift Right | pan south east |
| Shift Up | pan north east |
| Shift Down | pan south west |
| < | rotate left |
| > | rotate right |
| Shift < | rotate left 90 degrees |
| Shift > | rotate right 90 degrees |
| 5 | reset angle |
View controls
| Q | increase number of layers |
| A | decrease number of layers |
| P | increase layer depth |
| L | decrease layer depth |
| C | next colour theme |
| Shift C | previous colour theme |
| Alt C | default theme |
Display controls
| G | toggle generation statistics |
| Shift G | toggle generation display mode |
| Y | toggle population graph |
| Shift Y | toggle graph lines |
| 7 | decrease graph opacity |
| 9 | increase graph opacity |
| Shift W | toggle performance warning |
| / | toggle hexagons for hex view |
| T | toggle timing information |
| Shift T | toggle extended timing information |
| I | toggle pattern and engine information |
| Shift I | toggle information bar |
| Ctrl Q | toggle cell anti-aliasing |
| Alt B | toggle cell borders |
| X | toggle gridlines |
| Shift X | toggle major gridlines |
| Ctrl G | toggle auto gridlines |
| Alt G | toggle kill escaping gliders |
| S | toggle stars |
| O | open screenshot in separate window |
| Shift O | open population graph in separate window |
| Shift U | toggle UI |
Pattern controls
| Alt N | new pattern |
| Alt R | change rule |
| Ctrl O | open original or last saved pattern |
| Ctrl+Shift O | open clipboard as pattern |
| Ctrl S | save pattern |
| Alt Z | randomize pattern and rule |
| Ctrl+Alt Z | randomize pattern only |
| F6 | toggle oscillator and spaceship identification |
| Ctrl+F6 | fast identification |
External clipboard controls
| Alt S | toggle sync cut and copy with external clipboard |
| Ctrl+Shift C | copy original pattern |
| Ctrl C | copy current selection |
| Ctrl+Alt C | copy current selection with comments |
| Ctrl+Shift X | copy original pattern |
| Ctrl X | copy current selection |
| Ctrl+Alt X | copy current selection with comments |
| K | copy camera position |
| Shift K | copy camera position and view |
Edit controls
| F1 | toggle draw/pan mode |
| F2 | draw mode |
| Shift F2 | toggle smart drawing |
| F3 | pick mode |
| F4 | select mode |
| F5 | pan mode |
| Ctrl A | select all |
| Shift A | shrink selection |
| Alt A | toggle auto-shrink selection |
| Ctrl C | copy |
| Ctrl I | invert selection |
| Ctrl K | remove selection |
| Ctrl V | paste |
| Ctrl+Shift V | paste to selection |
| Ctrl X | cut |
| Ctrl Y | redo edit |
| Ctrl Z | undo edit |
| Ctrl+Shift Z | redo edit |
| Ctrl Space | advance selection |
| Shift Space | advance outside |
| Shift L | cycle paste location |
| Shift M | cycle paste mode |
| Shift 5 | random fill |
| Alt K | pick cell state to replace with drawing state |
| Ctrl+Alt K | clear current drawing state cells |
| Del | clear cells in selection |
| Shift Del | clear outside selection |
| > | rotate selection clockwise |
| < | rotate selection counter-clockwise |
| Alt X | flip selection horizontally |
| Alt Y | flip selection vertically |
| Alt Left | nudge selection 1 cell left |
| Alt Right | nudge selection 1 cell right |
| Alt Up | nudge selection 1 cell up |
| Alt Down | nudge selection 1 cell down |
| Esc | hide paste |
| Enter | perform paste |
| Ctrl 0 | select state 0 for drawing |
| Ctrl 1 | select state 1 for drawing |
| Alt 0 | make clipboard 0 active |
| Alt 1 | make clipboard 1 active |
| Alt 2 | make clipboard 2 active |
| Alt 3 | make clipboard 3 active |
| Alt 4 | make clipboard 4 active |
| Alt 5 | make clipboard 5 active |
| Alt 6 | make clipboard 6 active |
| Alt 7 | make clipboard 7 active |
| Alt 8 | make clipboard 8 active |
| Alt 9 | make clipboard 9 active |
Help controls
| Up | scroll up one line |
| Down | scroll down one line |
| Page Up | scroll up one page |
| Page Down | scroll down one page |
| Shift Page Up | scroll up one section |
| Shift Page Down | scroll down one section |
| Home | go to first help page |
| End | go to last help page |
Themes
Themes are used to provide a visual representation of cell history and longevity and also define grid colours.
Grid
GRID: grid line colour
GRIDMAJOR: major grid line colour and interval
Two-state Themes
BACKGROUND: cell never occupied
ALIVE: cell just born
ALIVERAMP: cell alive for several generations
DEAD: cell just died
DEADRAMP: cell dead for several generations
There are 64 states from ALIVE to ALIVERAMP. There are 63 (HISTORYSTATES) states from DEAD to DEADRAMP.
| Name | Mono | |||
| BACKGROUND | 0 | 0 | 0 | Black |
| ALIVE | 255 | 255 | 255 | White |
| DEAD | 0 | 0 | 0 | Black |
| Name | 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 | |
| Name* | Fire | |||
| BACKGROUND | 0 | 0 | 0 | Black |
| ALIVE | 255 | 144 | 0 | |
| ALIVERAMP | 255 | 255 | 0 | Yellow |
| DEAD | 160 | 0 | 0 | |
| DEADRAMP | 32 | 0 | 0 | |
| Name | 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 | |
| Name | Yellow | |||
| BACKGROUND | 0 | 32 | 128 | |
| ALIVE | 255 | 255 | 0 | Yellow |
| ALIVERAMP | 255 | 255 | 255 | White |
| DEAD | 128 | 0 | 128 | Purple |
| DEADRAMP | 0 | 47 | 0 | |
| Name | Gray | |||
| BACKGROUND | 0 | 0 | 0 | Black |
| ALIVE | 176 | 176 | 176 | |
| ALIVERAMP | 240 | 240 | 240 | |
| DEAD | 104 | 104 | 104 | |
| DEADRAMP | 16 | 16 | 16 | |
| Name | Inverse | |||
| BACKGROUND | 255 | 255 | 255 | White |
| ALIVE | 0 | 0 | 0 | Black |
| DEAD | 255 | 255 | 255 | White |
| Name | 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 | |
| Name | Occupied | |||
| BACKGROUND | 0 | 0 | 0 | Black |
| ALIVE | 240 | 240 | 240 | |
| DEAD | 240 | 240 | 240 | |
| Name | Red | |||
| BACKGROUND | 0 | 0 | 0 | Black |
| ALIVE | 240 | 240 | 240 | |
| DEAD | 160 | 0 | 0 | |
| Name | LifeHistory | |||
| BACKGROUND | 0 | 0 | 0 | Black |
| ALIVE | 0 | 240 | 0 | |
| ALIVERAMP | 16 | 255 | 16 | |
| DEAD | 0 | 0 | 160 | |
| DEADRAMP | 0 | 0 | 96 | |
| Name | 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 | |
| Name | Golly | |||
| BACKGROUND | 48 | 48 | 48 | |
| ALIVE | 255 | 255 | 255 | White |
| DEAD | 48 | 48 | 48 | |
| GRID | 80 | 80 | 80 | |
| GRIDMAJOR | 112 | 112 | 112 | |
| GRIDMAJOR | 10 | |||
| Name | 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 | |||
| Name | Catagolue | |||
| BACKGROUND | 192 | 255 | 238 | |
| ALIVE | 0 | 0 | 0 | Black |
| DEAD | 160 | 221 | 204 | |
| GRID | 160 | 221 | 204 | |
| GRIDMAJOR | 160 | 221 | 204 | |
| GRIDMAJOR | 0 | |||
| Name | 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 | |||
| Name | 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 | |||
| Name | 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 | |||
| Name | PCA | |||
| BACKGROUND | 0 | 0 | 0 | Black |
| ALIVE | 176 | 176 | 176 | |
| ALIVERAMP | 240 | 240 | 240 | |
| DEAD | 64 | 64 | 64 | |
| DEADRAMP | 24 | 24 | 24 | |
| Name | 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
BACKGROUND: cell never occupied
ALIVE: cell alive
DYING: cell just starting dying
DYINGRAMP: cell about to die
DEAD: cell just died
DEADRAMP: cell dead for several generations
Rule defines states from DYING to DYINGRAMP
63 (HISTORYSTATES) states from DEAD to DEADRAMP
| Name | 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 |
| Name | 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 | |
| Name | 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 | |
| Name | 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 | |
| Name | 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 | |
| Name | 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 | |
| Name | 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 |
| Name | 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 | |
| Name | Occupied | |||
| BACKGROUND | 0 | 0 | 0 | Black |
| ALIVE | 240 | 240 | 240 | |
| DYING | 240 | 240 | 240 | |
| DEAD | 240 | 240 | 240 | |
| Name | Red | |||
| BACKGROUND | 0 | 0 | 0 | Black |
| ALIVE | 255 | 255 | 255 | White |
| DYING | 160 | 160 | 160 | |
| DEAD | 160 | 0 | 0 | |
| Name | 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 | |
| Name | 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 | |
| Name | Golly | |||
| BACKGROUND | 48 | 48 | 48 | |
| ALIVE | 255 | 255 | 0 | Yellow |
| DYING | 255 | 255 | 0 | Yellow |
| DYINGRAMP | 255 | 0 | 0 | Red |
| DEAD | 48 | 48 | 48 | |
| Name | 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 |
| Name | Catagolue | |||
| BACKGROUND | 192 | 255 | 238 | |
| ALIVE | 0 | 0 | 0 | Black |
| DYING | 2 | 129 | 2 | |
| DYINGRAMP | 96 | 192 | 139 | |
| DEAD | 160 | 221 | 204 | |
| Name | Caterer | |||
| BACKGROUND | 54 | 57 | 62 | |
| ALIVE | 255 | 170 | 0 | |
| DYING | 255 | 170 | 0 | |
| DYINGRAMP | 255 | 85 | 0 | |
| DEAD | 54 | 57 | 62 | |
| Name | 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 |
| Name | 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 | |
| Name | 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 | |
| Name | 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
Scripts must be embedded in pattern comments. Commands must be surrounded by whitespace.
Parameter conventions
| A|B | either 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
| [[ | start script section |
| ]] | end script section |
| SUPPRESS | suppress overwrite warning |
Playback
| AUTOSTART (OFF) | start play automatically |
| LOOP <1..>|OFF | loop at generation |
| STOP <1..>|OFF | stop at generation |
| GPS <1..60> | set steps per second |
| STEP <1..64> | set generations per step |
| HARDRESET | always use hard reset |
| VIEWONLY | disable playback |
| NOSTEPBACK | disable step back |
| NOREPORT | disable stop messages |
| NOPERFWARNING | disable performance warning |
| NOTHROTTLE | disable playback throttling |
| EXCLUSIVEPLAY | starting playback pauses others |
| IGNOREEXCLUSIVE | ignore other pause requests |
Camera
| 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 |
| Z | same as ZOOM |
| AUTOFIT (OFF) | fit pattern to display |
| HISTORYFIT (OFF) | autofit uses pattern history |
| STATE1FIT (OFF) | autofit only uses state 1 |
| TRACK X Y | camera tracking |
| X | horizontal speed cells/gen |
| Y | vertical speed cells/gen |
| TRACKBOX E S W N | camera box tracking |
| E | east edge speed cells/gen |
| S | south edge speed cells/gen |
| W | west edge speed cells/gen |
| N | north edge speed cells/gen |
| TRACKLOOP P X Y | camera tracking with loop |
| P | period |
| X | horizontal speed cells/gen |
| Y | vertical speed cells/gen |
Waypoints
| T <0..> | waypoint at generation |
| PAUSE <0.0..> | pause for time |
| LINEAR ALL|X|Y|ZOOM | linear motion |
| BEZIER ALL|X|Y|ZOOM | bezier motion (default) |
| TIME | save timing at waypoint start |
Points of interest
| POI | define point of interest |
| POIT <0..> | start POI at generation |
| POIRESET | reset generation at POI |
| POIPLAY | start playback at POI |
| POISTOP | stop playback at POI |
| POITRANS <0..200> | set POI transition speed |
| <command>|ALL INITIAL | use initial value for POI |
| "<string>" | define message |
Annotations
| LABEL X Y ZOOM | define label at position |
| (MAXZOOM) (FIXED) | ... zoom range and fixed position |
| "<string>" | ... label text |
| LABELSIZE <4..128> | define label font 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|OFF | label target and distance |
| LABELTRACK DX DY|FIXED | label move per generation |
| ARROW X1 Y1 X2 Y2 ZOOM | define 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|OFF | arrow target and distance |
| ARROWTRACK DX DY|FIXED | arrow move per generation |
| POLYLINE X1 Y1 X2 Y2 .. ZOOM | define outline polygon |
| (MAXZOOM) (FIXED) | ... zoom range and fix position |
| POLYFILL X1 Y1 X2 Y2 .. ZOOM | define 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|OFF | polygon target and distance |
Display
Thumbnails
| 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 |
| #B | program build number |
| #N | pattern name |
| #O | pattern originator |
| #R | rule name |
| #A | rule alias |
| #T | program title |
| #0..9 | saved 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 |
| HISTORYSTATES <0..63> | number of history states |
| STARS (OFF) | display stars |
| HEXCELLS | hexagonal cells for hex |
| SQUARECELLS | square cells for hex |
| CELLBORDERS | display cell borders |
| NOGUI | disable menus and hotkeys |
| AUTOHIDEGUI | hide menus during playback |
| SHOWTIMING | show timing information |
| EXTENDEDTIMING | extended timing information |
| SHOWGENSTATS | show generation statistics |
| SHOWINFOBAR | show information bar |
| 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 |
| THUMBSTART | start playback on thumbnail expand |
Population Graph
| GRAPH | display population graph |
| GRAPHOPACITY <0.0..1.0> | population graph opacity |
| GRAPHPOINTS | population graph use points |
| NOGRAPH | disable population graph |
Colours
| THEME <0..19>|name | set theme |
| name = CUSTOM | set custom theme |
| COLOR BACKGROUND R G B | set theme background |
| COLOR ALIVE R G B | set theme alive color |
| COLOR ALIVERAMP R G B | set theme alive ramp |
| COLOR DEAD R G B | set theme dead color |
| COLOR DEADRAMP R G B | set theme dead ramp |
| COLOR DYING R G B | set theme dying color |
| COLOR DYINGRAMP R G B | set theme dying ramp |
| COLOR BOUNDARY R G B | set boundary color |
| COLOR <0..1> R G B | set state color |
| COLOR BOUNDED R G B | set bounded color |
| COLOR SELECT R G B | set select color |
| COLOR PASTE R G B | set paste color |
| COLOR ADVANCE R G B | set advance color |
| COLOR GRID R G B | set grid color |
| COLOR GRIDMAJOR R G B | set grid major color |
| COLOR STARS R G B | set star color |
| COLOR TEXT R G B | set waypoint message color |
| COLOR ERROR R G B | set error message color |
| COLOR GRAPHBG R G B | set graph background color |
| COLOR GRAPHAXIS R G B | set graph axis color |
| COLOR GRAPHALIVE R G B | set graph alive color |
| COLOR GRAPHBIRTH R G B | set graph birth color |
| COLOR GRAPHDEATH R G B | set graph death color |
| COLOR LABEL R G B | set label text color |
| COLOR ARROW R G B | set arrow line color |
| COLOR POLY R G B | set polygon color |
| COLOR UIFOREGROUND R G B | set UI foreground color |
| COLOR UIBACKGROUND R G B | set UI background color |
| COLOR UIHIGHLIGHT R G B | set UI highlight text color |
| COLOR UISELECT R G B | set UI selected color |
| COLOR UILOCKED R G B | set UI locked color |
| COLOR UIBORDER R G B | set UI border color |
| COLOUR | same as COLOR |
Pattern
| XOFFSET <-4096..4096> | set pattern x offset |
| YOFFSET <-4096..4096> | set pattern y offset |
| DELETERANGE <1..16> | set boundary delete range |
| NOCOPY | disable pattern source copy |
| NOSOURCE | hide pattern source |
| MAXGRIDSIZE <9..14> | set maximum grid size 2^n |
| RECIPE name X Y (<1..>)+ | create a named recipe |
| RLE name rle | create a named rle |
| (X Y) (TRANS) | ... X Y and transformation |
| IDENTITY | identity |
| FLIP | flip |
| FLIPX | flip X |
| FLIPY | flip Y |
| SWAPXY | swap X and Y |
| SWAPXYFLIP | swap X and Y and flip |
| RCW | rotate clockwise |
| RCCW | rotate 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 Y | set position delta for PASTET EVERY |
| PASTEMODE <0..15>|mode | set paste mode |
| 0 0000 ZERO 1 0001 AND | |
| KILLGLIDERS | suppress escaping gliders |
Randomize
| RANDOMIZE | create 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 FIXED | keep rule fixed |
| RANDCHANCE <item> <0..100> | set percentage chance for <item> |
| ALL | all conditions |
| B | all birth conditions |
| S | all survival conditions |
| B<0..n> | specified birth condition |
| S<0..n> | specified survival condition |
Colours
The following names can be used in place of R G B. For example: COLOUR ALIVE Green
| 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
- ↑ Chris Rowett (January 26, 2019). Re: Pattern viewer for forum threads (discussion thread) at the ConwayLife.com forums
- ↑ Chris Rowett (January 26, 2019). Re: Pattern viewer for forum threads (discussion thread) at the ConwayLife.com forums
- ↑ Chris Rowett (December 20, 2019). Re: Pattern viewer for forum threads (discussion thread) at the ConwayLife.com forums
- ↑ Chris Rowett (October 15, 2019). Re: Pattern viewer for forum threads (discussion thread) at the ConwayLife.com forums
External links
- LifeViewer at the Life Lexicon
Forum threads
- LifeViewer - Life simulator in HTML5 (discussion thread) at the ConwayLife.com forums
- Pattern viewer for forum threads (discussion thread) at the ConwayLife.com forums