LifeViewer: Difference between revisions
Atavoidirc (talk | contribs) →Grid and neighbourhood support: Typo correction |
No edit summary |
||
| (26 intermediate revisions by 4 users not shown) | |||
| Line 7: | Line 7: | ||
|image = true | |image = true | ||
}} | }} | ||
'''LifeViewer''' is a browser-based scriptable pattern viewer and editor used to simulate [[Life]] and a wide range of other 1D and 2D [[cellular automata]]. | :''Not to be confused with the calendar app also called LifeViewer.'' | ||
'''LifeViewer''' is a free, [https://github.com/rowett/lifeviewer open-source], browser-based scriptable pattern viewer and editor used to simulate [[Life]] and a wide range of other 1D and 2D [[cellular automata]]. | |||
* If you are looking for script instructions, see [[LifeViewer/Scripts]] | * If you are looking for script instructions, see [[LifeViewer/Scripts]] | ||
| Line 46: | Line 47: | ||
* Ability to step back to earlier generations for all patterns and reverse playback for reversible Margolus and PCA patterns. | * Ability to step back to earlier generations for all patterns and reverse playback for reversible Margolus and PCA patterns. | ||
* Random pattern and rule generation. | * Random pattern and rule generation. | ||
* Real time auto-scaling [[# | * Real time auto-scaling [[LifeViewer/User_Interface#Population_Graph|population graph]]. | ||
* [[#Annotations|Pattern annotation]] with Labels, Arrows, Lines and Polygons. | * [[LifeViewer/Scripts#Annotations|Pattern annotation]] with Labels, Arrows, Lines and Polygons. | ||
* Programatically pasting cells onto the grid at defined intervals (for example: glider injection). | * Programatically pasting cells onto the grid at defined intervals (for example: glider injection). | ||
* Ability to build patterns from RLE recipes with transformations. | * Ability to build patterns from RLE recipes with transformations. | ||
| Line 65: | Line 66: | ||
* [[Alternating rule]]s. | * [[Alternating rule]]s. | ||
* [[Partitioned cellular automata]] (PCA) rules. | * [[Partitioned cellular automata]] (PCA) rules. | ||
* [https://mathworld.wolfram.com/ElementaryCellularAutomaton.html Elementary] cellular automata | * [https://mathworld.wolfram.com/ElementaryCellularAutomaton.html Elementary] cellular automata. | ||
* [[LifeHistory|[R]History]] rules. | * [[LifeHistory|[R]History]] rules. | ||
* [https://conwaylife.com/forums/viewtopic.php?f=7&t=4279#p88223 <nowiki>[R]Super</nowiki>] rules. | * [https://conwaylife.com/forums/viewtopic.php?f=7&t=4279#p88223 <nowiki>[R]Super</nowiki>] rules. | ||
* [R]Investigator rules (a generalisation of [[Rule:StateInvestigator|StateInvestigator]]). | |||
* [http://golly.sourceforge.net/Help/formats.html#rule RuleTable] rules (either inline or from a [[#Repository Rules|Rule Repository]]). | * [http://golly.sourceforge.net/Help/formats.html#rule RuleTable] rules (either inline or from a [[#Repository Rules|Rule Repository]]). | ||
* Non-deterministic rules. | * Non-deterministic rules. | ||
| Line 134: | Line 136: | ||
[[ ZOOM 4 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]}} | [[ ZOOM 4 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]}} | ||
: [https://mathworld.wolfram.com/ElementaryCellularAutomaton.html Elementary] cellular automata | : [https://mathworld.wolfram.com/ElementaryCellularAutomaton.html Elementary] cellular automata. | ||
:: Example: Wolfram 30 (W30) {{LV:Viewer|x = 1, y = 1, rule = W30:P100,40 | :: Example: Wolfram 30 (W30) {{LV:Viewer|x = 1, y = 1, rule = W30:P100,40 | ||
o! | o! | ||
| Line 140: | Line 142: | ||
[[ ZOOM 4 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]}} | [[ ZOOM 4 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]}} | ||
: [[LifeHistory|[R]History]] rules. | |||
:: Example: LifeHistory {{LV:Viewer|x = 457, y = 155, rule = LifeHistory | |||
59.3B64.B125.B$58.BFBF2B60.4BF122.3B$58.6BF.B.F.F.B.F.F.B.F.F.B.F.F.B | 59.3B64.B125.B$58.BFBF2B60.4BF122.3B$58.6BF.B.F.F.B.F.F.B.F.F.B.F.F.B | ||
.F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F7B5.BF.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F. | .F.F.B.F.F.B.F.F.B.F.F.B.F.F.B.F7B5.BF.B.F.F.B.F.F.B.F.F.B.F.F.B.F.F. | ||
| Line 414: | Line 416: | ||
2.2O25.2S3.S.S.S.S3.2S8.2O3.O.O.O.O3.2O! | 2.2O25.2S3.S.S.S.S3.2S8.2O3.O.O.O.O3.2O! | ||
[[ ZOOM 1 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]}} | [[ ZOOM 1 THUMBNAIL THUMBSTART EXCLUSIVEPLAY ]]}} | ||
: [R]Investigator rules. | |||
:: Example: B3S23Investigator {{LV:Viewer|x = 98, y = 57, rule = B3S23Investigator | |||
35.R26.R$35.E26.E8$51.E$25.E20.E25.E$24.E21.E7.C18.E$23.E28.EBDE18.E$ | |||
45.CE5.2E$21.CD2.DE43.2ED2.DC$19.E3.DE18.C22.E3.D3ED3.E$42.EDBE4.ER | |||
13.3E3.E$44.2E15.E3.D2.E2.D14.C.ECB$13.C30.ED3.E12.E3.E3.D.E11.CE.D2. | |||
E$8.D4.D30.E3.E14.E2.D2E.C13.D.E.D$7.E4.D2.E28.D2.E17.D16.E2.D3.E$12. | |||
E3.E28.D19.C15.E3.E$12.ED3.E27.C21.E12.E3.DE$13.E10.2E39.2DE4.2E10.E | |||
6.E$11.E12.ED3.E34.3E.E3.DE$5.E17.2E3.E4.DE28.ED4.E3.2E17.E$10.E4.E7. | |||
CD2.E3.CD2.DE24.ED2.DC3.E2.DC7.E4.E$14.E10.D46.D10.E$9.E3.E11.CE5.2E | |||
19.E10.2E5.EC11.E3.E$26.D5.D.E14.E3.D9.E.D5.D$DA8.ECD2.DE9.ED3.DE2.E | |||
14.E3.2E6.E2.ED3.DE9.ED2.DCE8.AD$DA11.DE4.2A6.CD.DC19.E2.DE10.CD.DC6. | |||
2A4.ED11.AD$18.E.A2.C.E4.C22.D13.C.C4.C2.A.E$4.E6.E5.ED6.D2.E.E7.2A | |||
13.2C3.2A7.E11.DE5.E6.E$5.E4.ED5.DE4D.E6.E5.E.A2.C12.C2.A.E5.E8.4DED | |||
5.DE4.E$10.2ED3.DE.4EB.C6.E4.D22.D4.E8.B3E2.ED3.D2E$6.E3.DECD.DEC2.DE | |||
2.E8.E3.E4D14.4DE3.E8.E6.CED.DCED3.E$7.E3.E.2E4.E5.C11.5EB12.B5E11.C | |||
10.2E.E3.E$8.E2.D.CD5.D.EC.D4.ED2.DCE2D21.D.CD2.DE4.D2.ED6.DC.D2.E$ | |||
10.D.2E.DC3.E3.D2.E4.ED26.D3.DE4.E2.D3.E3.CD.2E.D$10.CE3.E4.E2.2E3.E | |||
5.2E24.E.2E5.E3.2E7.E3.EC$10.E5.E7.ED3.E3.E25.C4.E3.E3.DE7.E5.E$10.D | |||
5.D2.E4.2E6.E5.E26.E6.2E4.E2.D5.D$10.ED3.DE2.D3.E2.E4.E6.DE26.E4.E2.E | |||
3.D2.ED3.DE$11.CD.DC2.E3.E4.E7.E3.EDEC11.CEDE4.E7.E4.E3.E2.CD.DC$12.C | |||
.CE2.D2.E7.CD2.DE6.DE2.C5.C2.ED7.ED2.DC7.E2.D2.EC.C$16.2E.D11.D3E7.D | |||
2.D5.D2.D8.E.ED11.D.2E$12.E5.EC10.E2.EDE7.ED7.DE7.EDE2.2E10.CE5.E$12. | |||
D5.D4.EDE2.EDE2.E.DC.E3.DECE.E.E.ECED3.E.CD.E2.EDE2.EDE5.D5.D$12.ED3. | |||
DEDE.C2.DC.E.DC4.DC3.DCE9.ECD3.CD4.CD.E.CD5.EDED3.DE$12.CED.DC2.DC2E | |||
2.D4.D8.DE2.2D5.2D2.ED8.D4.D5.CD2.CD.DEC$15.3E3.D5.E4.E3.DC2.D4.ED3.D | |||
E4.D2.CD3.E4.E4.ECD3.3E$15.DC5.E3.D4.D3.DC3.C4.CED.DC5.C3.CD3.D4.D10. | |||
CD$13.CD6.D.E.DC3.DC.EDE12.3E10.EDE.CD3.CD3.CD6.DC$20.DC.EDE2.EDE17.D | |||
C16.EDE2.EDE2.CD$18.EDE25.CD29.EDE$49.A! | |||
[[ ZOOM 2 THUMBNAIL THUMBSTART EXCLUSIVEPLAY Y -9 LOOP 900 ]]}} | |||
: [http://golly.sourceforge.net/Help/formats.html#rule RuleTable] rules from a [https://conwaylife.com/wiki/Special:AllPages?namespace=3794 repository]. | : [http://golly.sourceforge.net/Help/formats.html#rule RuleTable] rules from a [https://conwaylife.com/wiki/Special:AllPages?namespace=3794 repository]. | ||
| Line 421: | Line 453: | ||
: Non-deterministic rules. | : Non-deterministic rules. | ||
:: Example: Non-deterministic Soldier Bugs {{LV:Viewer|x = 113, y = 113, rule = R7,C2,S64-113,B65-95, | :: Example: Non-deterministic Soldier Bugs {{LV:Viewer|x = 113, y = 113, rule = R7,C2,S64-113,B65-95,P100,#,# | ||
49b4o$47b7o$46b10o$45b12o$45b13o19b2o$44b3o5b6o17b6o$22b3o19b3o5b6o16b | 49b4o$47b7o$46b10o$45b12o$45b13o19b2o$44b3o5b6o17b6o$22b3o19b3o5b6o16b | ||
9o$20b7o17b3o5b6o15b11o$19b9o16b3o5b6o14b3ob9o$18b12o15b3o2b8o14b3o4b | 9o$20b7o17b3o5b6o15b11o$19b9o16b3o5b6o14b3ob9o$18b12o15b3o2b8o14b3o4b | ||
| Line 440: | Line 472: | ||
7o4b3o14b8o2b3o15b12o$28b9ob3o14b6o5b3o16b9o$29b11o15b6o5b3o17b7o$30b | 7o4b3o14b8o2b3o15b12o$28b9ob3o14b6o5b3o16b9o$29b11o15b6o5b3o17b7o$30b | ||
9o16b6o5b3o19b3o$32b6o17b6o5b3o$34b2o19b13o$56b12o$57b10o$59b7o$60b4o! | 9o16b6o5b3o19b3o$32b6o17b6o5b3o$34b2o19b13o$56b12o$57b10o$59b7o$60b4o! | ||
[[ ZOOM 1 THUMBNAIL THUMBSTART EXCLUSIVEPLAY RANDSEED | [[ ZOOM 1 THUMBNAIL THUMBSTART EXCLUSIVEPLAY RANDSEED 1695741111763 LOOP 1000 ]]}} | ||
</div> | </div> | ||
</div> | </div> | ||
Native support for [[BSFKL]], [[Extended Generations]] and [[deficient]] rules is also planned.<ref name="post68678" /><ref name="post68691" /><ref name="post86409" /> Support for 1D totalistic rules and multiple neighbourhoods rules may also be planned.<ref name="post84188" /><ref name="post75775" /> | |||
=== Repository Rules === | === Repository Rules === | ||
| Line 449: | Line 483: | ||
format rules. Typically @TREE rules run much faster so if possible ensure there is an @TREE version of the rule before the @TABLE | format rules. Typically @TREE rules run much faster so if possible ensure there is an @TREE version of the rule before the @TABLE | ||
version (if present). | version (if present). | ||
LifeViewer | |||
=== Inline Rules === | |||
If LifeViewer does not recognize the rule specified in the pattern header then it will first search the pattern comments after the pattern to see | |||
if there is an inline rule definition. This must be in [http://golly.sourceforge.net/Help/formats.html#rule RuleTable] format. If there is no inline | |||
rule then it will attempt to retrieve the rule from the Rule Repository. | |||
=== Aliases === | === Aliases === | ||
| Line 515: | Line 553: | ||
* Cross-surface | * Cross-surface | ||
* Sphere (either diagonal) | * Sphere (either diagonal) | ||
For range 2+ neighbourhoods only Plane and Torus (without shift) are supported. | For range 2+ neighbourhoods, hexagonal, triangular, PCA and Margolus rules only Plane and Torus (without shift) are supported. | ||
== User Interface == | == User Interface == | ||
| Line 2,123: | Line 2,159: | ||
== Pattern Identification == | == Pattern Identification == | ||
LifeViewer is able to identify [[spaceships]], [[oscillators]] and [[still-life]] patterns. For oscillators it can display a table and graphical map of periods per cell. | LifeViewer is able to identify [[spaceships]], [[oscillators]] and [[still-life]] patterns. For oscillators it can display a table and graphical [[map]] of periods and frequencies per cell. | ||
[[File: | [[File:Identify-results.png]] | ||
[[File: | [[File:Identify-table.png]] | ||
[[File: | [[File:Identify-map.png]] | ||
== Scripts == | == Scripts == | ||
| Line 2,139: | Line 2,175: | ||
== Planned features == | == Planned features == | ||
The following features and functionalities are planned for future builds of LifeViewer: | The following features and functionalities are planned for future builds of LifeViewer: | ||
* Theme support for [R]Super<ref>https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=129493#p129493</ref> | * Theme support for [R]Super<ref>https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=129493#p129493</ref> | ||
== Possible future features == | |||
<div class="mw-collapsible mw-collapsed"> | <div class="mw-collapsible mw-collapsed"> | ||
Click on "Expand" to the right to view the list of other requested features that ''may'' appear at some stage. | Click on "Expand" to the right to view the list of other requested features that ''may'' appear at some stage. | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
=== Rules === | |||
* Native support for [[BSFKL]] rules<ref name="rulespaces1">https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=86409#p86409</ref> | |||
* Native support for [[Extended Generations]]<ref name="rulespaces1"/> | |||
* Native support for 1D totalistic rules<ref>https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=84188#p84188</ref> | |||
* Native support for higher-range Margolus rules<ref>https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=82121#p82121</ref> | |||
* Native support for one-dimensional rules with a range greater than 2<ref>https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=82283#p82283</ref> | |||
* Native support for alternating rules with more than 3 constituent rules<ref>https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=129157#p129157</ref> | |||
=== Non-square grids/selections === | |||
* Diagonal/von Neumann-like selections<ref>https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=70959#p70959</ref> | * Diagonal/von Neumann-like selections<ref>https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=70959#p70959</ref> | ||
* Selection shapes which are more useful for hexagonal and triangular grids<ref name="hextri1">https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=78941#p78941</ref><ref name="hextri2">https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=80331#p80331</ref><ref name="hextri3">https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=87226#p87226</ref> | * Selection shapes which are more useful for hexagonal and triangular grids<ref name="hextri1">https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=78941#p78941</ref><ref name="hextri2">https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=80331#p80331</ref><ref name="hextri3">https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=87226#p87226</ref> | ||
* Selection flip/rotate transformations for hexagonal and triangular grids<ref name="hextri2"/> | * Selection flip/rotate transformations for hexagonal and triangular grids<ref name="hextri2"/> | ||
* Directions of spaceships on hexagonal and triangular grids from Identify<ref>https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=84510#p84510</ref> | * Directions of spaceships on hexagonal and triangular grids from Identify<ref>https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=84510#p84510</ref> | ||
* Calculating the mod of oscillators and spaceships on hexagonal and triangular grids in Identify<ref name="hextri3"/> | * Calculating the mod of oscillators and spaceships on hexagonal and triangular grids in Identify<ref name="hextri3"/> | ||
=== [R]Super/[R]History === | |||
* KILLGLIDERS functionality in [R]Super<ref name="Apr2021">https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=129156&hilit=backlog#p129156</ref> | * KILLGLIDERS functionality in [R]Super<ref name="Apr2021">https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=129156&hilit=backlog#p129156</ref> | ||
* History/ | * Support for pasting in [R]History/[R]Super-exclusive cells<ref>https://conwaylife.com/forums/viewtopic.php?p=93893#p93893</ref> | ||
* Selection inversion support for [R]History and [R]Super<ref name="Apr2021"/> | * Selection inversion support for [R]History and [R]Super<ref name="Apr2021"/> | ||
</div> | </div> | ||
</div> | </div> | ||
== Known bugs == | == Known bugs == | ||
{{main|LifeViewer/Known bugs}} | |||
== References == | == References == | ||
<references> | <references> | ||
<ref name="post68678">{{LinkForumThread | <ref name="post68678">{{LinkForumThread | ||
|format = ref | |format = ref | ||
Latest revision as of 18:35, 24 February 2025
| LifeViewer | ||
| Homepage | Click here | |
|---|---|---|
| Purpose | Life simulation | |
| Created by | Chris Rowett | |
| Platform | HTML5 / Javascript | |
- Not to be confused with the calendar app also called LifeViewer.
LifeViewer is a free, open-source, browser-based scriptable pattern viewer and editor used to simulate Life and a wide range of other 1D and 2D cellular automata.
- If you are looking for script instructions, see LifeViewer/Scripts
- If you want instructions for using the user interface, see LifeViewer/User Interface
- If you want to use LifeViewer on your own site, see Tutorials/LifeViewer JavaScript plug-in
LifeViewer features
- Smooth non-integer zoom with anti-aliasing and rotation.
- Colour themes with cell history and longevity.
- Square, hexagonal and triangular grids.
- Pseudo 3D layers and stars.
- Multiple ways to automatically track patterns with the camera as they evolve.
- Script language that allows many features to be customized including Waypoint animations.
- Support for multiple embedded LifeViewers and/or a single popup LifeViewer.
- Ability to step back to earlier generations for all patterns and reverse playback for reversible Margolus and PCA patterns.
- Random pattern and rule generation.
- Real time auto-scaling population graph.
- Pattern annotation with Labels, Arrows, Lines and Polygons.
- Programatically pasting cells onto the grid at defined intervals (for example: glider injection).
- Ability to build patterns from RLE recipes with transformations.
- Identification of still life patterns, oscillator and spaceship periods.
- Automatic scaling for high DPI displays including smartphones and tablets.
- Editor with unlimitied undo/redo and multiple clipboards.
Rule support
LifeViewer supports the following rule families:
Built-in rules
- 2-state Margolus rules.
- 2-state outer-totalistic Life-like cellular automata (from ranges 1 to 500, supporting a wide variety of pre-programmed neighbourhood families, as well as custom neighbourhoods and weighted neighbourhoods).
- 2-state isotropic non-totalistic cellular automata (for range-1 Moore and range-1 hexagonal).
- 2-state non-isotropic cellular automata (for range-1 Moore, hexagonal and von Neumann).
- Generations rules (as an extension of the outer-totalistic, non-totalistic and non-isotropic rulespaces).
- Alternating rules.
- Partitioned cellular automata (PCA) rules.
- Elementary cellular automata.
- [R]History rules.
- [R]Super rules.
- [R]Investigator rules (a generalisation of StateInvestigator).
- RuleTable rules (either inline or from a Rule Repository).
- Non-deterministic rules.
Click on "Expand" to the right to view example patterns for each rule family.
- 2-state Margolus rules.
- Example: Critters (M15,14,13,3,11,5,6,1,7,9,10,2,12,4,8,0)
- 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 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 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.
- Example: Wolfram 30 (W30)
- Example: Wolfram 30 (W30)
- [R]History rules.
- Example: LifeHistory
- Example: LifeHistory
- [R]Super rules.
- Example: LifeSuper
- Example: LifeSuper
- [R]Investigator rules.
- Example: B3S23Investigator
- Example: B3S23Investigator
- RuleTable rules from a repository.
- Example: Byl-loop
- Example: Byl-loop
- Non-deterministic rules.
- Example: Non-deterministic Soldier Bugs
- Example: Non-deterministic Soldier Bugs
Native support for BSFKL, Extended Generations and deficient rules is also planned.[1][2][3] Support for 1D totalistic rules and multiple neighbourhoods rules may also be planned.[4][5]
Repository Rules
LifeViewer can load rules from the Rule: namespace here on LifeWiki. The rules must be in RuleTable format. LifeViewer supports both @TABLE and @TREE format rules. Typically @TREE rules run much faster so if possible ensure there is an @TREE version of the rule before the @TABLE version (if present).
Inline Rules
If LifeViewer does not recognize the rule specified in the pattern header then it will first search the pattern comments after the pattern to see if there is an inline rule definition. This must be in RuleTable format. If there is no inline rule then it will attempt to retrieve the rule from the Rule Repository.
Aliases
LifeViewer contains a large list of alias names for particular rules. This list of rule name aliases can be found by clicking the Aliases button under Help.
Grid and neighbourhood support
LifeViewer supports many different neighbourhoods on square, hexagonal or triangular grids.
Click on "Expand" to the right to view the full list of supported neighbourhoods per grid type.
- square tiling:
- outer-totalistic:
- Moore
- von Neumann
- circular
- cross
- L2
- saltire
- star
- checkerboard
- aligned checkerboard
- hash
- custom (CoordCA)
- Gaussian
- custom weighted
- far corners/edges
- non-totalistic R1 Moore
- non-isotropic
- Margolus
- PCA
- outer-totalistic:
- hexagonal or offset-square grid:
- outer totalistic:
- hexagonal
- tripod
- asterisk
- custom (CoordCA)
- custom weighted
- non-totalistic
- non-isotropic
- outer totalistic:
- triangular grid:
- outer totalistic:
- triangular Moore
- triangular edges
- triangular vertices
- triangular inner
- triangular outer
- triangular biohazard
- triangular radiation
- custom (CoordCA)
- custom weighted
- outer totalistic:
Bounded grid types
LifeViewer supports patterns on "unbounded" grids (maximum 16384x16384 in size) and the following bounded grid types:
- Plane
- Cylinder (with optional shift)
- Torus (with optional shift)
- Klein-bottle (with optional shift)
- Cross-surface
- Sphere (either diagonal)
For range 2+ neighbourhoods, hexagonal, triangular, PCA and Margolus rules only Plane and Torus (without shift) are supported.
User Interface
- Main article: LifeViewer/User Interface
Themes
Themes are used to define the colours of cells, the background and the grid lines for 2-state and Generations patterns. Some Themes also specify whether major grid lines are used and if so on what interval.
Themes are primarily used to provide a visual representation of cell history and longevity.
The default Theme is "Blues" but this can be changed by clicking Theme in the Settings menu or with the THEME script command.
Grid
Some Themes define specific GridLine colours for standard and Major GridLines and also the major GridLine interval.
GRID: grid line colour
GRIDMAJOR: major grid line colour and interval
Two-state Themes
For two-state Themes there are five colours that are used for defining the cell colours:
| Key | Description |
| BACKGROUND | cell never occupied |
| ALIVE | cell just born |
| ALIVERAMP | cell alive for at least AGESTATES generations (default 63) |
| DEAD | cell just died |
| DEADRAMP | cell dead for at least HISTORYSTATES generations (default 63) |
New cells are drawn in the ALIVE colour.
If cells stay alive they fade from the ALIVE colour to the ALIVERAMP colour over the next AGESTATES (default 63) generations. This provides a visual representation of cell longevity.
Cells are drawn in the DEAD colour when they die.
If they stay dead they fade from the DEAD colour to the DEADRAMP colour over the next HISTORYSTATES (default 63) generations. This provides a visual representation of cell history.
Click on "Expand" to the right to see the definitions of the available two-state Themes.
| Mono | |||||
|---|---|---|---|---|---|
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 255 | 255 | 255 | White | |
| DEAD | 0 | 0 | 0 | Black | |
| Blues | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 0 | 255 | 255 | Aqua | |
| ALIVERAMP | 255 | 255 | 255 | White | |
| DEAD | 0 | 0 | 255 | Blue | |
| DEADRAMP | 0 | 0 | 47 | ||
| Fire | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 255 | 144 | 0 | ||
| ALIVERAMP | 255 | 255 | 0 | Yellow | |
| DEAD | 160 | 0 | 0 | ||
| DEADRAMP | 32 | 0 | 0 | ||
| Poison | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 0 | 255 | 255 | Aqua | |
| ALIVERAMP | 255 | 255 | 255 | White | |
| DEAD | 0 | 128 | 0 | Green | |
| DEADRAMP | 0 | 24 | 0 | ||
| Yellow | |||||
| BACKGROUND | 0 | 32 | 128 | ||
| ALIVE | 255 | 255 | 0 | Yellow | |
| ALIVERAMP | 255 | 255 | 255 | White | |
| DEAD | 128 | 0 | 128 | Purple | |
| DEADRAMP | 0 | 47 | 0 | ||
| Gray | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 176 | 176 | 176 | ||
| ALIVERAMP | 240 | 240 | 240 | ||
| DEAD | 104 | 104 | 104 | ||
| DEADRAMP | 16 | 16 | 16 | ||
| Inverse | |||||
| BACKGROUND | 255 | 255 | 255 | White | |
| ALIVE | 0 | 0 | 0 | Black | |
| DEAD | 255 | 255 | 255 | White | |
| Day | |||||
| BACKGROUND | 255 | 255 | 255 | White | |
| ALIVE | 0 | 0 | 255 | Blue | |
| ALIVERAMP | 0 | 0 | 0 | Black | |
| DEAD | 0 | 255 | 255 | Aqua | |
| DEADRAMP | 240 | 240 | 240 | ||
| Occupied | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 240 | 240 | 240 | ||
| DEAD | 240 | 240 | 240 | ||
| Red | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 240 | 240 | 240 | ||
| DEAD | 160 | 0 | 0 | ||
| LifeHistory | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 0 | 240 | 0 | ||
| ALIVERAMP | 16 | 255 | 16 | ||
| DEAD | 0 | 0 | 160 | ||
| DEADRAMP | 0 | 0 | 96 | ||
| Generations | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 255 | 255 | 0 | Yellow | |
| ALIVERAMP | 255 | 255 | 255 | White | |
| DEAD | 255 | 0 | 0 | Red | |
| DEADRAMP | 64 | 0 | 0 | ||
| Golly | |||||
| BACKGROUND | 48 | 48 | 48 | ||
| ALIVE | 255 | 255 | 255 | White | |
| DEAD | 48 | 48 | 48 | ||
| GRID | 80 | 80 | 80 | ||
| GRIDMAJOR | 112 | 112 | 112 | ||
| GRIDMAJOR | 10 | ||||
| MCell | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 255 | 255 | 0 | Yellow | |
| DEAD | 0 | 0 | 0 | Black | |
| GRID | 64 | 0 | 0 | ||
| GRIDMAJOR | 99 | 3 | 1 | ||
| GRIDMAJOR | 5 | ||||
| Catagolue | |||||
| BACKGROUND | 192 | 255 | 238 | ||
| ALIVE | 0 | 0 | 0 | Black | |
| DEAD | 160 | 221 | 204 | ||
| GRID | 160 | 221 | 204 | ||
| GRIDMAJOR | 160 | 221 | 204 | ||
| GRIDMAJOR | 0 | ||||
| Caterer | |||||
| BACKGROUND | 54 | 57 | 62 | ||
| ALIVE | 255 | 255 | 255 | White | |
| DEAD | 54 | 57 | 62 | ||
| GRID | 0 | 0 | 0 | Black | |
| GRIDMAJOR | 0 | 0 | 0 | Black | |
| GRIDMAJOR | 0 | ||||
| Life32 | |||||
| BACKGROUND | 255 | 255 | 255 | White | |
| ALIVE | 0 | 0 | 128 | Navy | |
| DEAD | 255 | 255 | 255 | White | |
| GRID | 192 | 192 | 192 | Silver | |
| GRIDMAJOR | 128 | 128 | 128 | Gray | |
| GRIDMAJOR | 5 | ||||
| Margolus | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 255 | 255 | 0 | Yellow | |
| ALIVERAMP | 255 | 255 | 255 | White | |
| DEAD | 0 | 0 | 128 | Navy | |
| DEADRAMP | 0 | 0 | 47 | ||
| GRID | 32 | 32 | 255 | ||
| GRIDMAJOR | 64 | 64 | 128 | ||
| GRIDMAJOR | 2 | ||||
| PCA | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 176 | 176 | 176 | ||
| ALIVERAMP | 240 | 240 | 240 | ||
| DEAD | 64 | 64 | 64 | ||
| DEADRAMP | 24 | 24 | 24 | ||
| Book | |||||
| BACKGROUND | 255 | 255 | 255 | White | |
| ALIVE | 0 | 0 | 0 | Black | |
| DEAD | 192 | 220 | 255 | ||
| DEADRAMP | 255 | 220 | 192 | ||
| GRID | 192 | 192 | 192 | Silver | |
| GRIDMAJOR | 209 | 209 | 209 | ||
| GRIDMAJOR | 0 |
Multi-state Themes
Multi-state Themes are used for Generations rules and there are six colours that are used for defining the cell colours:
| Key | Description |
| BACKGROUND | cell never occupied |
| ALIVE | cell alive |
| DYING | cell just started dying |
| DYINGRAMP | cell about to die |
| DEAD | cell just died |
| DEADRAMP | cell dead for at least HISTORYSTATES generations (default 63) |
New cells are drawn in the ALIVE colour.
Cells are drawn in the DYING colour when they start to die. They then fade to the DYINGRAMP colour over the number of generations defined in the rule.
Once cells reach the DYINGRAMP colour then on the next generation they die and become the DEAD colour.
If they stay dead they fade from the DEAD colour to the DEADRAMP colour over the next HISTORYSTATES (default 63) generations. This provides a visual representation of cell history.
Click on "Expand" to the right to see the definitions of the available multi-state Themes.
| Mono | |||||
|---|---|---|---|---|---|
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 255 | 255 | 255 | White | |
| DYING | 255 | 255 | 255 | White | |
| DYINGRAMP | 0 | 0 | 0 | Black | |
| DEAD | 0 | 0 | 0 | Black | |
| Blues | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 0 | 255 | 255 | Aqua | |
| DYING | 0 | 255 | 255 | Aqua | |
| DYINGRAMP | 0 | 0 | 255 | Blue | |
| DEAD | 0 | 0 | 128 | Navy | |
| DEADRAMP | 0 | 0 | 47 | ||
| Fire | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 255 | 144 | 0 | ||
| DYING | 255 | 144 | 0 | ||
| DYINGRAMP | 240 | 0 | 0 | ||
| DEAD | 160 | 0 | 0 | ||
| DEADRAMP | 32 | 0 | 0 | ||
| Poison | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 0 | 255 | 255 | Aqua | |
| DYING | 0 | 255 | 255 | Aqua | |
| DYINGRAMP | 0 | 192 | 0 | ||
| DEAD | 0 | 128 | 0 | Green | |
| DEADRAMP | 0 | 24 | 0 | ||
| Yellow | |||||
| BACKGROUND | 0 | 32 | 128 | ||
| ALIVE | 255 | 255 | 0 | Yellow | |
| DYING | 255 | 255 | 0 | Yellow | |
| DYINGRAMP | 192 | 64 | 64 | ||
| DEAD | 128 | 0 | 128 | Purple | |
| DEADRAMP | 0 | 47 | 0 | ||
| Gray | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 240 | 240 | 240 | ||
| DYING | 240 | 240 | 240 | ||
| DYINGRAMP | 160 | 160 | 160 | ||
| DEAD | 104 | 104 | 104 | ||
| DEADRAMP | 16 | 16 | 16 | ||
| Inverse | |||||
| BACKGROUND | 255 | 255 | 255 | White | |
| ALIVE | 0 | 0 | 0 | Black | |
| DYING | 0 | 0 | 0 | Black | |
| DYINGRAMP | 255 | 255 | 255 | White | |
| DEAD | 255 | 255 | 255 | White | |
| Day | |||||
| BACKGROUND | 255 | 255 | 255 | White | |
| ALIVE | 0 | 0 | 255 | Blue | |
| DYING | 0 | 0 | 255 | Blue | |
| DYINGRAMP | 0 | 255 | 255 | Aqua | |
| DEAD | 0 | 192 | 192 | ||
| DEADRAMP | 240 | 240 | 240 | ||
| Occupied | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 240 | 240 | 240 | ||
| DYING | 240 | 240 | 240 | ||
| DEAD | 240 | 240 | 240 | ||
| Red | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 255 | 255 | 255 | White | |
| DYING | 160 | 160 | 160 | ||
| DEAD | 160 | 0 | 0 | ||
| LifeHistory | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 16 | 255 | 16 | ||
| DYING | 16 | 255 | 16 | ||
| DYINGRAMP | 0 | 128 | 160 | ||
| DEAD | 0 | 0 | 160 | ||
| DEADRAMP | 0 | 0 | 96 | ||
| Generations | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 255 | 255 | 0 | Yellow | |
| DYING | 255 | 255 | 0 | Yellow | |
| DYINGRAMP | 255 | 0 | 0 | Red | |
| DEAD | 128 | 0 | 0 | Maroon | |
| DEADRAMP | 64 | 0 | 0 | ||
| Golly | |||||
| BACKGROUND | 48 | 48 | 48 | ||
| ALIVE | 255 | 255 | 0 | Yellow | |
| DYING | 255 | 255 | 0 | Yellow | |
| DYINGRAMP | 255 | 0 | 0 | Red | |
| DEAD | 48 | 48 | 48 | ||
| MCell | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 255 | 255 | 0 | Yellow | |
| DYING | 255 | 255 | 0 | Yellow | |
| DYINGRAMP | 0 | 255 | 0 | Lime | |
| DEAD | 0 | 0 | 0 | Black | |
| Catagolue | |||||
| BACKGROUND | 192 | 255 | 238 | ||
| ALIVE | 0 | 0 | 0 | Black | |
| DYING | 2 | 129 | 2 | ||
| DYINGRAMP | 96 | 192 | 139 | ||
| DEAD | 160 | 221 | 204 | ||
| Caterer | |||||
| BACKGROUND | 54 | 57 | 62 | ||
| ALIVE | 255 | 170 | 0 | ||
| DYING | 255 | 170 | 0 | ||
| DYINGRAMP | 255 | 85 | 0 | ||
| DEAD | 54 | 57 | 62 | ||
| Life32 | |||||
| BACKGROUND | 255 | 255 | 255 | White | |
| ALIVE | 0 | 0 | 128 | Navy | |
| DYING | 0 | 0 | 128 | Navy | |
| DYINGRAMP | 0 | 0 | 64 | ||
| DEAD | 255 | 255 | 255 | White | |
| Margolus | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 255 | 255 | 0 | Yellow | |
| DYING | 255 | 255 | 0 | Yellow | |
| DYINGRAMP | 64 | 64 | 128 | ||
| DEAD | 0 | 0 | 128 | Navy | |
| DEADRAMP | 0 | 0 | 47 | ||
| PCA | |||||
| BACKGROUND | 0 | 0 | 0 | Black | |
| ALIVE | 240 | 240 | 240 | ||
| DYING | 240 | 240 | 240 | ||
| DYINGRAMP | 160 | 160 | 160 | ||
| DEAD | 64 | 64 | 64 | ||
| DEADRAMP | 24 | 24 | 24 | ||
| Book | |||||
| BACKGROUND | 255 | 255 | 255 | White | |
| ALIVE | 0 | 0 | 0 | Black | |
| DYING | 128 | 128 | 128 | Gray | |
| DYINGRAMP | 24 | 24 | 24 | ||
| DEAD | 192 | 220 | 255 | ||
| DEADRAMP | 255 | 220 | 192 |
Pattern Identification
LifeViewer is able to identify spaceships, oscillators and still-life patterns. For oscillators it can display a table and graphical map of periods and frequencies per cell.
Scripts
- Main article: LifeViewer/Scripts
LifeViewer supports a large number of script commands than can be used to control playback, the camera, labels and annotations, colours and many other aspects.
Info
LifeViewer engine information and details about the currently loaded pattern can be found by pressing 'I', or clicking the Info button under Help.
Planned features
The following features and functionalities are planned for future builds of LifeViewer:
- Theme support for [R]Super[6]
Possible future features
Click on "Expand" to the right to view the list of other requested features that may appear at some stage.
Rules
- Native support for BSFKL rules[7]
- Native support for Extended Generations[7]
- Native support for 1D totalistic rules[8]
- Native support for higher-range Margolus rules[9]
- Native support for one-dimensional rules with a range greater than 2[10]
- Native support for alternating rules with more than 3 constituent rules[11]
Non-square grids/selections
- Diagonal/von Neumann-like selections[12]
- Selection shapes which are more useful for hexagonal and triangular grids[13][14][15]
- Selection flip/rotate transformations for hexagonal and triangular grids[14]
- Directions of spaceships on hexagonal and triangular grids from Identify[16]
- Calculating the mod of oscillators and spaceships on hexagonal and triangular grids in Identify[15]
[R]Super/[R]History
Known bugs
- Main article: LifeViewer/Known bugs
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
- ↑ Chris Rowett (May 6, 2019). Re: Pattern viewer for forum threads (discussion thread) at the ConwayLife.com forums
- ↑ https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=129493#p129493
- ↑ 7.0 7.1 https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=86409#p86409
- ↑ https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=84188#p84188
- ↑ https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=82121#p82121
- ↑ https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=82283#p82283
- ↑ https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=129157#p129157
- ↑ https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=70959#p70959
- ↑ https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=78941#p78941
- ↑ 14.0 14.1 https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=80331#p80331
- ↑ 15.0 15.1 https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=87226#p87226
- ↑ https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=84510#p84510
- ↑ 17.0 17.1 https://conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=129156&hilit=backlog#p129156
- ↑ https://conwaylife.com/forums/viewtopic.php?p=93893#p93893
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
| |||||||||||||||||


