Difference between revisions of "Larger than Life"

From LifeWiki
Jump to navigation Jump to search
(→‎Further reading: New section)
 
(58 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{{Glossary}}
{{Glossary}}
'''Larger than Life''' (abbreviated as '''LTL''' or '''LtL''') is an algorithm that supports a family of [[rule]]s with an extendable [[neighbourhood]], as defined by [[Kellie Michele Evans]] in her 1996 thesis.
'''Larger than Life''' (abbreviated as '''LTL''' or '''LtL''') is an algorithm that supports a specific family of [[higher-range outer-totalistic cellular automata]] with an extendable [[neighbourhood]], as defined by [[Kellie Michele Evans]] in her 1996 thesis.


Larger than Life rules are supported by [[Golly]] 3.0b1 and onwards, using the following notation, created by [[Mirek Wójtowicz]] for [[Mirek's Cellebration|MCell]]:
Larger than Life rules are supported by [[Golly]] 3.0 and onwards and [[LifeViewer]] build 260 and onwards.


:<tt>Rr,Cc,Mm,Ss<sub>min</sub>..s<sub>max</sub>,Bb<sub>min</sub>..b<sub>max</sub>,Nn</tt>
== Notation ==
The following notation was created by [[Mirek Wójtowicz]] for [[Mirek's Cellebration]] (MCell):
 
: <tt>Rr,Cc,Mm,Ss<sub>min</sub>..s<sub>max</sub>,Bb<sub>min</sub>..b<sub>max</sub>,Nn</tt>


Here:
Here:


* <tt>Rr</tt> specifies the range (<tt>r</tt> is from 1 to 50 in Golly; 1 to 10 in [[Mirek's Cellebration|MCell]]).
* <tt>Rr</tt> specifies the range (<tt>r</tt> is from 1 to 500 in Golly and LifeViewer; 1 to 10 in MCell).
* <tt>Cc</tt> specifies the number of states (<tt>c</tt> is from 0 to 255 in both Golly and MCell{{refn|group=note|The documentation for [[Mirek's Cellebration|MCell]] specifies a maximum of 25 states; this is a typo.}})
* <tt>Cc</tt> specifies the number of states (<tt>c</tt> is from 0 to 255 in Golly, LifeViewer and MCell{{refn|group=note|The documentation for MCell specifies a maximum of 25 states; this is a typo.}})
* <tt>Mm</tt> specifies if the middle cell is included in the neighborhood count (<tt>m</tt> is 0 or 1).
* <tt>Mm</tt> specifies if the middle cell is included in the neighborhood count (<tt>m</tt> is 0 or 1).
* <tt>Ss<sub>min</sub>..s<sub>max</sub></tt> specifies the count limits for a state 1 cell to survive.
* <tt>Ss<sub>min</sub>..s<sub>max</sub></tt> specifies the count limits for a state 1 cell to survive.
* <tt>Bb<sub>min</sub>..b<sub>max</sub></tt> specifies the count limits for a dead cell to become a birth.
* <tt>Bb<sub>min</sub>..b<sub>max</sub></tt> specifies the count limits for a dead cell to become a birth.
* <tt>Nn</tt> specifies the extended neighborhood type (<tt>n</tt> is <tt>M</tt> for [[Moore neighbourhood|Moore]] or <tt>N</tt> for [[von Neumann neighbourhood|von Neumann]] in Golly; <tt>NM</tt> or <tt>NN</tt> respectively in [[Mirek's Cellebration|MCell]]).
* <tt>Nn</tt> specifies the extended neighborhood type. MCell only supports [[Moore neighbourhood|Moore]] and [[von Neumann neighbourhood|von Neumann]]. Cannot be omitted.


This diagram shows the extended Moore and von Neumann neighborhoods for range 3:
This diagram shows the extended Moore and von Neumann neighborhoods for range 3:


{| style="margin-left: auto; margin-right: auto;"
{| style="margin-left: auto; margin-right: auto;"
|-
| [[File:Moore neighbourhood (range 3).png]]
| [[File:Mooreneighbourhood range3.png]]
| [[File:Von Neumann neighbourhood (range 3).png]]
| [[File:Vonneumannneighbourhood range3.png]]
|}
|}


If the number of states (specified after <tt>C</tt>) is greater than 2, then states 1 and above don't die immediately but gradually decay. Note that state values above 1 are not included in the neighborhood counts and thus play no part in deciding the survival of a state 1 cell, nor the birth of an empty cell. <tt>C0</tt> and <tt>C1</tt> are equivalent to <tt>C2</tt>.  
=== HROT notation ===
 
However, the notation above is now superseded by the general [[higher-range outer-totalistic]] notation:
 
: <tt>Rr,Cc,Ss<sub>ranges</sub>,Bb<sub>ranges</sub>,Nn</tt>
 
Here:
 
* <tt>Rr</tt> specifies the range (<tt>r</tt> is from 1 to 500 in Golly and LifeViewer; 1 to 10 in MCell).
* <tt>Cc</tt> specifies the number of states (<tt>c</tt> is from 0 to 255 in Golly and LifeViewer)
* <tt>Ss</tt> specifies the survival conditions, which are numbers separated by commas. Ranges of consecutive numbers can be contracted via dashes; e.g. S6,7,8,13,14,18 can be expressed as S6-8,13-14,18
* <tt>Bb</tt> specifies the birth conditions, which are numbers separated by commas. Ranges of consecutive numbers can be contracted via dashes; e.g. B6,7,8,13,14,18 can be expressed as B6-8,13-14,18
* <tt>Nn</tt> specifies the extended neighborhood type (<tt>n</tt> is <tt>M</tt> for [[Moore neighbourhood|Moore]] or <tt>N</tt> for [[von Neumann neighbourhood|von Neumann]]. Golly and LifeViewer also support <tt>C</tt> for Circular neighborhood, <tt>2</tt> for L2, <tt>+</tt> for Cross, <tt>X</tt> for Saltire and <tt>*</tt> for Star neighborhoods, <tt>@</tt> for custom neighbourhoods and more). For Moore, this parameter is omitted.


==Examples==
The difference between Larger than Life rules and other higher-range outer-totalistic cellular automata is mostly in the birth and survival condition. While the former defines only one continuous range of birth and one continuous range of survival conditions, the latter allows for '''any''' list of birth and survival conditions to be defined.
The <tt>Patterns/Larger-than-Life</tt> folder included with [[Golly]] 3.0b1 contains a number of example patterns (mostly from the [[Mirek's Cellebration|MCell]] collection). The following table shows a number of example rules along with their commonly used names:  
 
If the number of states (specified after <tt>C</tt>) is greater than 2, then states 1 and above don't die immediately but gradually decay. Note that state values above 1 are not included in the neighborhood counts and thus play no part in deciding the survival of a state 1 cell, nor the birth of an empty cell. <tt>C0</tt> and <tt>C1</tt> are equivalent to <tt>C2</tt>.
 
== Examples ==
The <tt>Patterns/Larger-than-Life</tt> folder included with [[Golly]] contains a number of example patterns (mostly from the [[Mirek's Cellebration|MCell]] collection). The following table shows a number of example rules (expressed using outer-totalistic notation rather than Larger than Life notation for brevity) along with their commonly used names:  


{| class="wikitable" style="margin-left: auto; margin-right: auto;"
{| class="wikitable" style="margin-left: auto; margin-right: auto;"
|-
! Rule
! Rule
! B/S equivalent
! B/S equivalent
Line 35: Line 52:
! Remarks
! Remarks
|-
|-
| <tt>R1,C0,M0,S2..3,B3..3,NM</tt>
| <tt>R1,C2,S2-3,B3</tt>
| B3/S23
| B3/S23
| [[Conway's Game of Life|Life]]
| [[Conway's Game of Life|Life]]
| the default rule for this algorithm in Golly.
| the default rule for this algorithm in Golly.
|-
|-
| <tt>R5,C0,M1,S34..58,B34..45,NM</tt>
| <tt>R1,C2,S0,B1,NN</tt>
| B1/S0V
| {{rl|Gnarl}}
| an exploding rule by [[Kellie Evans]].
|-
| <tt>R4,C2,S40-80,B41-81</tt>
| &mdash;
| &mdash;
| [[Bugs]]
| {{rl|Majority}}
| a stable rule by [[David Griffeath]].
|-
| <tt>R5,C2,S33-57,B34-45</tt>
| &mdash;
| {{rl|Bosco's Rule}}
| a chaotic rule by [[Kellie Evans]].
| a chaotic rule by [[Kellie Evans]].
|-
|-
| <tt>R10,C0,M1,S123..212,B123..170,NM</tt>
| <tt>R7,C2,S99-199,B75-170</tt>
| &mdash;
| {{rl|Waffle}}
| an expanding rule by [[Kellie Evans]].
|-
| <tt>R7,C2,S112-224,B113-225</tt>
| &mdash;
| &mdash;
| [[Bugsmovie]]
| {{rl|Majorly}}
| a chaotic rule by [[David Griffeath]].
| an expanding rule by [[David Griffeath]].
|-
|-
| <tt>R8,C0,M0,S163..223,B74..252,NM</tt>
| <tt>R8,C2,S163-223,B74-252</tt>
| &mdash;
| &mdash;
| [[Globe]]
| {{rl|Globe}}
| an expanding rule by [[Mirek Wójtowicz]].
| an expanding rule by [[Mirek Wójtowicz]].
|-
|-
| <tt>R1,C0,M1,S1..1,B1..1,NN</tt>
| <tt>R10,C2,S122-211,B123-170</tt>
| B1/S0V
| &mdash;
| [[Gnarl]]
| {{rl|Bugsmovie}}
| an exploding rule by [[Kellie Evans]].
| a chaotic rule by [[David Griffeath]].
|-
| <tt>R10,C255,S1-2,B3</tt>
| &mdash;
| {{rl|ModernArt}}
| a chaotic rule by [[Charles A. Rockafellor]].
|-
|-
| <tt>R4,C0,M1,S41..81,B41..81,NM</tt>
| <tt>R2,C2,S4,6-9,B6-8,N@03ddef</tt>
| &mdash;
| &mdash;
| [[Majority]]
| {{rl|Marine}}
| a stable rule by [[David Griffeath]].
| a chaotic rule by [[MathAndCode]].
|-
|-
| <tt>R7,C0,M1,S113..225,B113..225,NM</tt>
| <tt>R3,C2,S2,B3,N+</tt>
| &mdash;
| &mdash;
| [[Majorly]]
| [https://conwaylife.com/forums/viewtopic.php?f=11&t=6166 Factorio]
| an expanding rule by [[David Griffeath]].
| a semistable rule by [[H. H. P. M. P. Cole]].
|-
|-
| <tt>R10,C255,M1,S2..3,B3..3,NM</tt>
| <tt>R4,C2,S9,14,16-17,21,23-24,30-31,37-38,44-45,51-52,58-59,B3,10,17,21,24,31,38,45,52,59,
 
NW100010001000000000000000000000777000100707001000777000000000000000000000100010001</tt>
| &mdash;
| &mdash;
| [[ModernArt]]
| [https://conwaylife.com/forums/viewtopic.php?f=11&t=5174 Coexistence]
| a chaotic rule by [[Charles A. Rockafellor]].
| a chaotic rule by [[bubblegum]].
|-
|-
| <tt>R7,C0,M1,S100..200,B75..170,NM</tt>
| <tt>R2,C2,S4-6,B5-6,N#
| &mdash;
| &mdash;
| [[Waffle]]
| [https://conwaylife.com/forums/viewtopic.php?f=11&t=6202 Hash]
| an expanding rule by [[Kellie Evans]].
| a chaotic rule by [[b-engine]].
|}
|}
Notable patterns which are frequently found within Larger than Life rules include "bugs", which are patterns (usually spaceships, but sometimes oscillators) which are hollow, characterised by those from {{rl|Bosco's Rule}}, "solid ships", which are typically extremely slow circular spaceships first noted in 2002 (such as {{LinkCatagolue|xq1846_wgoosqssuuuutvusogz83tvvvvvvvvvvvvvvvvhzwjfvvvvvvvvvvvvvvvvczx17fvvvfff777b731|rule=r10b133t265s154t262|patternname=this one|style=raw}}), and "roomba bugs", travelling patterns that usually stabilise into low-period oscillators after intense amounts of generations but are infrequently found to be real spaceships.
== Alternative rule notations ==
Golly and LifeViewer also allow rules to be entered using the notation defined by [[Kellie Evans]] in her thesis. The range, birth limits and survival limits are specified by five integers separated by commas:
: <tt>r,bmin,bmax,smin,smax</tt>
[[Catagolue]], [[apgsearch]] and LifeViewer use a related notation in which the letter <tt>t</tt> ("to") is used to indicate birth/survival condition ranges; the initial <tt>g</tt>''C'' is optional, with the number of states defaulting to two:
: <tt>g</tt>''C''<tt>r</tt>''R''<tt>b</tt>''B<sub>min</sub>''<tt>t</tt>''B<sub>max</sub>''<tt>s</tt>''S<sub>min</sub>''<tt>t</tt>''S<sub>max</sub>''
These notations assume an extended [[Moore neighbourhood]] in which a live middle cell is included in the neighbourhood count. For example, [[Conway's Game of Life|Life]] can be entered as <tt>1,3,3,3,4</tt> in Evans' notation.


==Alternative rule notation==
== Generalizing LtL rules to different amounts of neighbors ==
Golly also allows rules to be entered using the notation defined by [[Kellie Evans]] in her thesis. The range, birth limits and survival limits are specified by five integers separated by commas:
Larger than Life rules can be generalized ("converted") to different ranges and even neighborhoods. To convert the range-''r<sub>0</sub>'' ''n<sub>0</sub>''-neighborhood rule <tt>Rr<sub>0</sub>,Cc,Mm,Ssmin<sub>0</sub>..smax<sub>0</sub>,Bbmin<sub>0</sub>..bmax<sub>0</sub>,Nn<sub>0</sub></tt> to a range-''r<sub>1</sub>'' ''n<sub>1</sub>''-neighborhood rule:


:<tt>r,bmin,bmax,smin,smax</tt>
# Compute ''N'' to equal the ratio of the number of neighbors in a range-''r<sub>1</sub>'' ''n<sub>1</sub>''-neighborhood to the number of neighbors in a range-''r<sub>0</sub>'' ''n<sub>0</sub>'' neighborhood.
# Multiply the original rule's minimum and maximum birth/survival conditions by ''N'' and round off, to wit:
## Compute ''smin<sub>1</sub>'' = round(''smin<sub>0</sub>'' &middot; ''N'').
## Compute ''smax<sub>1</sub>'' = round(''smax<sub>0</sub>'' &middot; ''N'').
## Compute ''bmin<sub>1</sub>'' = round(''bmin<sub>0</sub>'' &middot; ''N'').
## Compute ''bmax<sub>1</sub>'' = round(''bmax<sub>0</sub>'' &middot; ''N'').


This notation assumes an extended [[Moore neighbourhood]] in which a live middle cell is included in the neighbourhood count (ie. [[Life-like cellular automaton|semi-totalistic]]). For example, [[Conway's Game of Life|Life]] can be entered as <tt>1,3,3,3,4</tt>.  
The converted rule is <tt>Rr<sub>1</sub>,Cc,Mm,Ssmin<sub>1</sub>..smax<sub>1</sub>,Bbmin<sub>1</sub>..bmax<sub>1</sub>,Nn<sub>1</sub></tt>.


==Grid topology and size limits==
=== Example ===
Unlike Golly's other [[algorithm]]s, Larger than Life uses a [[finite universe]]. The [[topology]] can be either a [[torus]] or a [[plane]] and is specified by appending a suitable suffix to the rule. For example, <tt>R5,C0,M1,S34..58,B34..45,NM:T500,40</tt> creates a 500 by 40 torus using the [[Bugs]] rule, and <tt>1,3,3,3,4:P300,200</tt> creates a 300 by 200 plane using [[Conway's Game of Life|Life]].
For example, converting the range-2 rule <tt>R2,C2,M1,S5..9,B7..9,NM</tt> to range 7 with the same neighborhood, with the formula for the number of neighbors in a range-''r'' Moore neighborhood being (2 &middot; ''r'' + 1)<sup>2</sup>,  we obtain:


The maximum grid size allowed in Golly is 100 million cells. The minimum width and height is twice the range. If a given rule has no suffix, then the grid will be a torus with a default size of 400 by 400 cells.  
# ''N'' = (2 &middot; 7 + 1)<sup>2</sup> / (2 &middot; 2 + 1)<sup>2</sup> = 225 / 25 = 9.
# ''smin<sub>1</sub>'' = 5 &middot; 9 = 45.
# ''smax<sub>1</sub>'' = 9 &middot; 9 = 81.
# ''bmin<sub>1</sub>'' = 7 &middot; 9 = 63.
# ''bmax<sub>1</sub>'' = 9 &middot; 9 = 81.


Note that Golly's canonical version of a Larger than Life rule uses the [[Mirek's Cellebration|MCell]] syntax and always includes a suffix showing the topology and the grid size.  
The converted rule is, therefore, <tt>R7,C2,M1,S45..81,B63..81,NM</tt>.


==Golly-related trivia==
== See also ==
*It is the first set of rules to have an entirely new algorithm made for it.
* [[Generations]]
**Andrew had to make it from scratch, that is why it is on a bounded grid (He wanted to "keep it simple")
* [[Higher-range outer-totalistic cellular automaton]]
**There ''might'' be support for infinite grids in the future.


==Notes==
== Notes ==
<references group="note" />
<references group="note" />


==References==
== References ==
{{LinkMirek|filename=rullex_lgtl.html|title=Cellular Automata rules lexicon: Family: Larger than Life}}
* {{LinkMirek|filename=rullex_lgtl.html|title=Cellular Automata rules lexicon: Family: Larger than Life}}
* [[Kellie Michele Evans]]: [http://www.csun.edu/~kme52026/thesis.html Larger than Life: ''it's so nonlinear''] (1996 Ph.D. thesis)
* [[Kellie Michele Evans]]: [http://www.csun.edu/~kme52026/thesis.html Larger than Life: ''it's so nonlinear''] (1996 Ph.D. thesis)


==Further reading==
== Further reading ==
* [[Kellie Michele Evans]]: ''Larger than Life's Extremes: Rigorous Results for Simplified Rules and Speculation on the Phase Boundaries'', in: [[Andrew Adamatzky]] (ed.), ''Game of Life Cellular Automata'', Springer (London) (2010), ISBN 978-1-84996-216-2, OCLC 619946115
* [[Kellie Michele Evans]]: ''Larger than Life's Extremes: Rigorous Results for Simplified Rules and Speculation on the Phase Boundaries'', in: [[Andrew Adamatzky]] (ed.), ''Game of Life Cellular Automata'', Springer (London) (2010), ISBN 978-1-84996-216-2, OCLC 619946115
* [[Kellie Michele Evans]]: ''Larger than Life'', in: [[Andrew Adamatzky]], [[Genaro J. Martínez]] (eds.): ''Designing Beauty: The Art of Cellular Automata'', Springer (2016), ISBN 978-3-319-27269-6, OCLC 934720008
* [[Kellie Michele Evans]]: ''Larger than Life'', in: [[Andrew Adamatzky]], [[Genaro J. Martínez]] (eds.): ''Designing Beauty: The Art of Cellular Automata'', Springer (2016), ISBN 978-3-319-27269-6, OCLC 934720008


==External links==
== External links ==
{{LinkForumThread|f=11|t=2933|title=Larger than Life}}
* {{LinkGollyHelp|filename=Algorithms/Larger_than_Life.html}}
{{LinkForumThread|f=7|t=2932|title=Golly 3.0b1}}
* {{LinkForumThread|f=11|t=2933|title=Larger than Life}}


[[Category:Algorithms]]
[[Category:Algorithms]]
__NOTOC__
[[Category:Cellular automata]]
[[Category:Higher-range outer-totalistic cellular automata|*]]

Latest revision as of 03:08, 18 January 2024

Larger than Life (abbreviated as LTL or LtL) is an algorithm that supports a specific family of higher-range outer-totalistic cellular automata with an extendable neighbourhood, as defined by Kellie Michele Evans in her 1996 thesis.

Larger than Life rules are supported by Golly 3.0 and onwards and LifeViewer build 260 and onwards.

Notation

The following notation was created by Mirek Wójtowicz for Mirek's Cellebration (MCell):

Rr,Cc,Mm,Ssmin..smax,Bbmin..bmax,Nn

Here:

  • Rr specifies the range (r is from 1 to 500 in Golly and LifeViewer; 1 to 10 in MCell).
  • Cc specifies the number of states (c is from 0 to 255 in Golly, LifeViewer and MCell[note 1])
  • Mm specifies if the middle cell is included in the neighborhood count (m is 0 or 1).
  • Ssmin..smax specifies the count limits for a state 1 cell to survive.
  • Bbmin..bmax specifies the count limits for a dead cell to become a birth.
  • Nn specifies the extended neighborhood type. MCell only supports Moore and von Neumann. Cannot be omitted.

This diagram shows the extended Moore and von Neumann neighborhoods for range 3:

Moore neighbourhood (range 3).png Von Neumann neighbourhood (range 3).png

HROT notation

However, the notation above is now superseded by the general higher-range outer-totalistic notation:

Rr,Cc,Ssranges,Bbranges,Nn

Here:

  • Rr specifies the range (r is from 1 to 500 in Golly and LifeViewer; 1 to 10 in MCell).
  • Cc specifies the number of states (c is from 0 to 255 in Golly and LifeViewer)
  • Ss specifies the survival conditions, which are numbers separated by commas. Ranges of consecutive numbers can be contracted via dashes; e.g. S6,7,8,13,14,18 can be expressed as S6-8,13-14,18
  • Bb specifies the birth conditions, which are numbers separated by commas. Ranges of consecutive numbers can be contracted via dashes; e.g. B6,7,8,13,14,18 can be expressed as B6-8,13-14,18
  • Nn specifies the extended neighborhood type (n is M for Moore or N for von Neumann. Golly and LifeViewer also support C for Circular neighborhood, 2 for L2, + for Cross, X for Saltire and * for Star neighborhoods, @ for custom neighbourhoods and more). For Moore, this parameter is omitted.

The difference between Larger than Life rules and other higher-range outer-totalistic cellular automata is mostly in the birth and survival condition. While the former defines only one continuous range of birth and one continuous range of survival conditions, the latter allows for any list of birth and survival conditions to be defined.

If the number of states (specified after C) is greater than 2, then states 1 and above don't die immediately but gradually decay. Note that state values above 1 are not included in the neighborhood counts and thus play no part in deciding the survival of a state 1 cell, nor the birth of an empty cell. C0 and C1 are equivalent to C2.

Examples

The Patterns/Larger-than-Life folder included with Golly contains a number of example patterns (mostly from the MCell collection). The following table shows a number of example rules (expressed using outer-totalistic notation rather than Larger than Life notation for brevity) along with their commonly used names:

Rule B/S equivalent Name Remarks
R1,C2,S2-3,B3 B3/S23 Life the default rule for this algorithm in Golly.
R1,C2,S0,B1,NN B1/S0V Gnarl an exploding rule by Kellie Evans.
R4,C2,S40-80,B41-81 Majority a stable rule by David Griffeath.
R5,C2,S33-57,B34-45 Bosco's Rule a chaotic rule by Kellie Evans.
R7,C2,S99-199,B75-170 Waffle an expanding rule by Kellie Evans.
R7,C2,S112-224,B113-225 Majorly an expanding rule by David Griffeath.
R8,C2,S163-223,B74-252 Globe an expanding rule by Mirek Wójtowicz.
R10,C2,S122-211,B123-170 Bugsmovie a chaotic rule by David Griffeath.
R10,C255,S1-2,B3 ModernArt a chaotic rule by Charles A. Rockafellor.
R2,C2,S4,6-9,B6-8,N@03ddef Marine a chaotic rule by MathAndCode.
R3,C2,S2,B3,N+ Factorio a semistable rule by H. H. P. M. P. Cole.
R4,C2,S9,14,16-17,21,23-24,30-31,37-38,44-45,51-52,58-59,B3,10,17,21,24,31,38,45,52,59,

NW100010001000000000000000000000777000100707001000777000000000000000000000100010001

Coexistence a chaotic rule by bubblegum.
R2,C2,S4-6,B5-6,N# Hash a chaotic rule by b-engine.

Notable patterns which are frequently found within Larger than Life rules include "bugs", which are patterns (usually spaceships, but sometimes oscillators) which are hollow, characterised by those from Bosco's Rule, "solid ships", which are typically extremely slow circular spaceships first noted in 2002 (such as this one), and "roomba bugs", travelling patterns that usually stabilise into low-period oscillators after intense amounts of generations but are infrequently found to be real spaceships.

Alternative rule notations

Golly and LifeViewer also allow rules to be entered using the notation defined by Kellie Evans in her thesis. The range, birth limits and survival limits are specified by five integers separated by commas:

r,bmin,bmax,smin,smax

Catagolue, apgsearch and LifeViewer use a related notation in which the letter t ("to") is used to indicate birth/survival condition ranges; the initial gC is optional, with the number of states defaulting to two:

gCrRbBmintBmaxsSmintSmax

These notations assume an extended Moore neighbourhood in which a live middle cell is included in the neighbourhood count. For example, Life can be entered as 1,3,3,3,4 in Evans' notation.

Generalizing LtL rules to different amounts of neighbors

Larger than Life rules can be generalized ("converted") to different ranges and even neighborhoods. To convert the range-r0 n0-neighborhood rule Rr0,Cc,Mm,Ssmin0..smax0,Bbmin0..bmax0,Nn0 to a range-r1 n1-neighborhood rule:

  1. Compute N to equal the ratio of the number of neighbors in a range-r1 n1-neighborhood to the number of neighbors in a range-r0 n0 neighborhood.
  2. Multiply the original rule's minimum and maximum birth/survival conditions by N and round off, to wit:
    1. Compute smin1 = round(smin0 · N).
    2. Compute smax1 = round(smax0 · N).
    3. Compute bmin1 = round(bmin0 · N).
    4. Compute bmax1 = round(bmax0 · N).

The converted rule is Rr1,Cc,Mm,Ssmin1..smax1,Bbmin1..bmax1,Nn1.

Example

For example, converting the range-2 rule R2,C2,M1,S5..9,B7..9,NM to range 7 with the same neighborhood, with the formula for the number of neighbors in a range-r Moore neighborhood being (2 · r + 1)2, we obtain:

  1. N = (2 · 7 + 1)2 / (2 · 2 + 1)2 = 225 / 25 = 9.
  2. smin1 = 5 · 9 = 45.
  3. smax1 = 9 · 9 = 81.
  4. bmin1 = 7 · 9 = 63.
  5. bmax1 = 9 · 9 = 81.

The converted rule is, therefore, R7,C2,M1,S45..81,B63..81,NM.

See also

Notes

  1. The documentation for MCell specifies a maximum of 25 states; this is a typo.

References

Further reading

External links