Page 1 of 1

Various cellular automata discovered on graphing calculators

Posted: November 6th, 2018, 8:17 pm
by REDsEngineer
These were discovered on the TI-84 Plus Graphing Calculator. They all have unknown rules, since they were made by screwing around with a faulty program, and it isn't exactly straightforward, despite how it may seem, to translate them into GoL rules.
Names: Segmentations, Target, Runes, Shine, Growing Crystallization, and Glint.
Code for "Segmentations":

Code: Select all

:Plot1(Scatter,X,Y,.
:∟X→P
:∟Y→Q
:Repeat getKey or S<2
:∟P→X
:∟Q→Y
:DispGraph
:DelVar ∟P
:DelVar∟Q
:1→S
:For(X,min(∟X)-1,1+max(∟X
:For(Y,min(∟Y)-1,1+max(∟Y
:sum(1=max(abs(∟X-X),abs(∟Y-Y
:1=Ans or 2=Ans-max(∟X=X and ∟Y=Y
:If Ans
:Then
:X→∟P(S
:Y→∟Q(S
:S+1→S
:End
:End
:End
:End
:PlotsOff
:ClrHome
:"
Code for "Target":

Code: Select all

:Plot1(Scatter,X,Y,.
:∟X→P
:∟Y→Q
:Repeat getKey or S<2
:∟P→X
:∟Q→Y
:DispGraph
:DelVar ∟P
:DelVar∟Q
:1→S
:For(X,min(∟X)-1,1+max(∟X
:For(Y,min(∟Y)-1,1+max(∟Y
:sum(1=max(abs(∟X-X),abs(∟Y-Y
:2=Ans or 2=Ans-max(∟X=X and ∟Y=Y
:If Ans
:Then
:X→∟P(S
:Y→∟Q(S
:S+1→S
:End
:End
:End
:End
:PlotsOff
:ClrHome
:"
Code for "Runes":

Code: Select all

:Plot1(Scatter,X,Y,.
:∟X→P
:∟Y→Q
:Repeat getKey or S<2
:∟P→X
:∟Q→Y
:DispGraph
:DelVar ∟P
:DelVar∟Q
:1→S
:For(X,min(∟X)-1,1+max(∟X
:For(Y,min(∟Y)-1,1+max(∟Y
:sum(1=max(abs(∟X-X),abs(∟Y-Y
:1=Ans or 2=Ans-max(∟X=X and ∟Y=Y
:If Ans
:Then
:X→∟P(S
:Y→∟Q(S
:S+1→S
:End
:End
:End
:End
:PlotsOff
:ClrHome
:"
Code for "Shine":

Code: Select all

:Plot1(Scatter,X,Y,.
:∟X→P
:∟Y→Q
:Repeat getKey or S<2
:∟P→X
:∟Q→Y
:DispGraph
:DelVar ∟P
:DelVar∟Q
:1→S
:For(X,min(∟X)-1,1+max(∟X
:For(Y,min(∟Y)-1,1+max(∟Y
:sum(1=max(abs(∟X-X),abs(∟Y-Y
:2=Ans or 4=Ans-max(∟X=X and ∟Y=Y
:If Ans
:Then
:X→∟P(S
:Y→∟Q(S
:S+1→S
:End
:End
:End
:End
:PlotsOff
:ClrHome
:"
Code for "Growing Crystallization":

Code: Select all

:Plot1(Scatter,X,Y,.
:∟X→P
:∟Y→Q
:Repeat getKey or S<2
:∟P→X
:∟Q→Y
:DispGraph
:DelVar ∟P
:DelVar∟Q
:1→S
:For(X,min(∟X)-1,1+max(∟X
:For(Y,min(∟Y)-1,1+max(∟Y
:sum(1=max(abs(∟X-X),abs(∟Y-Y
:3=Ans or 2=Ans-max(∟X=X and ∟Y=Y
:If Ans
:Then
:X→∟P(S
:Y→∟Q(S
:S+1→S
:End
:End
:End
:End
:PlotsOff
:ClrHome
:"
Code for "Glint":

Code: Select all

:Plot1(Scatter,X,Y,.
:∟X→P
:∟Y→Q
:Repeat getKey or S<2
:∟P→X
:∟Q→Y
:DispGraph
:DelVar ∟P
:DelVar∟Q
:1→S
:For(X,min(∟X)-1,1+max(∟X
:For(Y,min(∟Y)-1,1+max(∟Y
:sum(1=max(abs(∟X-X),abs(∟Y-Y
:4=Ans or 2=Ans-max(∟X=X and ∟Y=Y
:If Ans
:Then
:X→∟P(S
:Y→∟Q(S
:S+1→S
:End
:End
:End
:End
:PlotsOff
:ClrHome
:"
Evolution of a blinker in &quot;Segmentations&quot; until the 6th generation (this took 3 minutes and 18 seconds to record)
Evolution of a blinker in "Segmentations" until the 6th generation (this took 3 minutes and 18 seconds to record)
6 generations of Segmentations.gif (214.24 KiB) Viewed 9193 times

Re: Various cellular automata discovered on graphing calculators

Posted: November 7th, 2018, 12:06 am
by toroidalet
I don't know how to read TI-84 Plus code, but "Segmentations" is definitely in between B12ac/S1e3a and B123-ir4-cin5-i6-i78/S012-i34-air5-i678:

Code: Select all

x = 3, y = 1, rule = B12ac/S1e3a
3o!

Code: Select all

x = 3, y = 1, rule = B123-ir4-cin5-i6-i78/S012-i34-air5-i678
3o!

Re: Various cellular automata discovered on graphing calculators

Posted: November 7th, 2018, 11:21 am
by REDsEngineer
toroidalet wrote:I don't know how to read TI-84 Plus code, but "Segmentations" is definitely in between B12ac/S1e3a and B123-ir4-cin5-i6-i78/S012-i34-air5-i678:

Code: Select all

x = 3, y = 1, rule = B12ac/S1e3a
3o!

Code: Select all

x = 3, y = 1, rule = B123-ir4-cin5-i6-i78/S012-i34-air5-i678
3o!
Wait, what do the letters (besides the capital B and S, I know they're for the begin and stay requirements) mean? Also, this is a description of the commands in the "Segmentations" code:
"Plot1(Scatter,X,Y,." turns on the first plot and sets it to a scatter plot with one-pixel point markers with X and Y lists called "X" and "Y" respectively
"∟X→P" stores list "X" to the variable "P"
"∟Y→Q" stores list "Y" to the variable "Q"
"Repeat getKey or S<2" starts a loop that lasts until a key is pressed or the variable "S" is less than 2
"∟P→X" stores list "P" to the variable "X"
"∟Q→Y" stores list "Q" to the variable "Y"
"DispGraph" displays the graph
"DelVar ∟P" deletes list "P"
"DelVar ∟Q" deletes list "Q"
"1→S" stores the number 1 to the variable "S"
"For(X,min(∟X)-1,1+max(∟X)" makes the minimum value of the variable "X" 1 less than the current lowest value of the variable "X" and the maximum value of the variable "X" 1 more than the current greatest value of the variable "X"
"For(Y,min(∟X)-1,1+max(∟Y)" makes the minimum value of the variable "Y" 1 less than the current lowest value of the variable "Y" and the maximum value of the variable "Y" 1 more than the current greatest value of the variable "Y"
"sum(1=max(abs(∟X-X),abs(∟Y-Y))"... actually I don't know what it does
"1=Ans or 2=Ans-max(∟X=X and ∟Y=Y" seems to change the rules in some way. I don't know exactly how.
"If Ans" returns true if there is an answer
"Then" executes the following code if the previous command returned true
"X→∟P(S" stores the variable "X" to the list "P". I think the "(S" part puts the variable "S" in list "P".
"Y→∟Q(S" stores the variable "Y" to the list "Q". I think the "(S" part puts the variable "S" in list "Q".
"S+1→S" increments the variable "S" by 1.
"End" (first instance) marks the end of the list of commands that are started by "Then" if "If Ans" returns true.
"End" (second instance) marks the end of the loop started by "Repeat getKey or S<2". The program goes back to "Repeat getKey or S<2". If "Repeat getKey or S<2" doesn't start the loop, the program skips to the next command.
I don't know what the next two instances of "End" are ending.
I don't know what the last command does.

Re: Various cellular automata discovered on graphing calculators

Posted: November 7th, 2018, 11:38 am
by Gamedziner
"B" and "S" stand for "birth" and "survival." The letters after that specify exact birth/survival requirements added to the number. For example, B4 has the following specifications (as does S4): ("o" is a live cell; "b" is a dead cell; "$" is a line break; "!" is the end of the pattern)

Code: Select all

x = 3, y = 3, rule = B4c/S
obo$
bbb$
obo!

Code: Select all

x = 3, y = 3, rule = B4e/S
bob$
obo$
bob!

Code: Select all

x = 3, y = 3, rule = B4k/S
obo$
obb$
bob!

Code: Select all

x = 3, y = 3, rule = B4a/S
ooo$
bbo$
bbb!

Code: Select all

x = 3, y = 3, rule = B4i/S
obo$
obo$
bbb!

Code: Select all

x = 3, y = 3, rule = B4n/S
ooo$
bbb$
obb!

Code: Select all

x = 3, y = 3, rule = B4y/S
obo$
bbo$
obb!

Code: Select all

x = 3, y = 3, rule = B4q/S
oob$
obb$
bbo!

Code: Select all

x = 3, y = 3, rule = B4j/S
oob$
bbo$
bob!

Code: Select all

x = 3, y = 3, rule = B4r/S
oob$
obo$
bbb!

Code: Select all

x = 3, y = 3, rule = B4t/S
ooo$
bbb$
bob!

Code: Select all

x = 3, y = 3, rule = B4w/S
oob$
bbo$
bbo!

Code: Select all

x = 3, y = 3, rule = B4z/S
2o2$
b2o!
These birth/survival conditions will also work with any configuration rotated a multiple of 90 degrees from the original:

Code: Select all

x = 3, y = 3, rule = B4a/S
3o4bo7b2o$2bo4bo2bo4bo$6b2o2b3o2bo!

Re: Various cellular automata discovered on graphing calculators

Posted: November 7th, 2018, 12:02 pm
by Redstoneboi
REDsEngineer wrote: Wait, what do the letters (besides the capital B and S, I know they're for the begin and stay requirements) mean?
First off, wrong. They’re for “Birth” and “Survival”, but they do still make sense.
For more information about the letter notation, click [HERE].
Basically the letters stand for the formation of the neighbors, regardless of rotation or reflection for example 2a means there are 2 neighbors in an “a” arrangement which are any of these: (don’t mind yellow)

Code: Select all

x = 17, y = 17, rule = /2a/3
4.9B$4.B2A3B2AB$4.2B.3B.2B$4.9B$17B$BA3B7.3BAB$BA.2B7.2B.AB$5B7.5B$5B
7.5B$5B7.5B$BA.2B7.2B.AB$BA3B7.3BAB$17B$4.9B$4.2B.3B.2B$4.B2A3B2AB$4.
9B!

Re: Various cellular automata discovered on graphing calculators

Posted: November 7th, 2018, 2:35 pm
by REDsEngineer
Redstoneboi wrote:
REDsEngineer wrote: Wait, what do the letters (besides the capital B and S, I know they're for the begin and stay requirements) mean?
First off, wrong. They’re for “Birth” and “Survival”, but they do still make sense.
Close enough for me. Anyways, I found my TI-84 Plus, so I'm gonna update it now.

Re: Various cellular automata discovered on graphing calculators

Posted: November 7th, 2018, 4:31 pm
by Hooloovoo
Segmentations is B12/S13
target is b2/s23
runes looks to be the same as segmentation
shine is b24/s23
Growing Crystallization is b23/s3
glint is b24/s34

When coding in TI-BASIC for things like cellular automata, a faster way of storing data than a list of pixels that are 'on' is to simply use the pixels themselves, with Pxl-test. One thing you have to keep in mind is that the you can't update the pixels as you're scanning across, so you need to save a row or two in a list.

One problem with the speed of your program is the list operations (list-int, min(, etc) aren't very fast, and to show one frame, you need to do a lot of them.

The TI-84+ is a great platform for learning to program on. Mine (well, one of them) was my first computer. I know M. I. Wright has much experience as well.

Re: Various cellular automata discovered on graphing calculators

Posted: November 7th, 2018, 5:04 pm
by 77topaz
toroidalet wrote:

Code: Select all

x = 3, y = 1, rule = B123-ir4-cin5-i6-i78/S012-i34-air5-i678
3o!
Out of curiosity, what is the inverse rule of this (i.e. that being simulated by the dead cells in the expanding block of live cells)? It has some neat pseudo-Margolus oscillators.

Re: Various cellular automata discovered on graphing calculators

Posted: November 7th, 2018, 7:40 pm
by Gamedziner
77topaz wrote:
toroidalet wrote:

Code: Select all

x = 3, y = 1, rule = B123-ir4-cin5-i6-i78/S012-i34-air5-i678
3o!
Out of curiosity, what is the inverse rule of this (i.e. that being simulated by the dead cells in the expanding block of live cells)? It has some neat pseudo-Margolus oscillators.

This rule:

Code: Select all

x = 3, y = 1, rule = B3i4air6i/S2i3i4cin5ir8
20o$20o!

Re: Various cellular automata discovered on graphing calculators

Posted: November 7th, 2018, 8:55 pm
by 77topaz
Nice! :) Looking at it carefully, it's not actually pseudo-Margolus, but Margolus rule 11:

Code: Select all

x = 19, y = 1, rule = B2c4c/S
obobobobobobobobobo!

Re: Various cellular automata discovered on graphing calculators

Posted: November 9th, 2018, 6:35 pm
by REDsEngineer
Hooloovoo wrote:Segmentations is B12/S13
target is b2/s23
runes looks to be the same as segmentation
shine is b24/s23
Growing Crystallization is b23/s3
glint is b24/s34

When coding in TI-BASIC for things like cellular automata, a faster way of storing data than a list of pixels that are 'on' is to simply use the pixels themselves, with Pxl-test. One thing you have to keep in mind is that the you can't update the pixels as you're scanning across, so you need to save a row or two in a list.

One problem with the speed of your program is the list operations (list-int, min(, etc) aren't very fast, and to show one frame, you need to do a lot of them.

The TI-84+ is a great platform for learning to program on. Mine (well, one of them) was my first computer. I know M. I. Wright has much experience as well.
The Segmentations rule is wrong.
Also, the Target rule appears to be closer to Growing Crystallization.
Also, Runes is not the same as Segmentations.
Also, the Shine rule is completely wrong; the Blinker evolves into an "cartoon sparkle" shaped oscillator after 2 turns in Shine. It doesn't explode.
Also, you literally just posted the Conway's Game of Life rules for Growing Crystallization. Seriously dude.
Also, Glint is supposed to be similar to what Shine is supposed to be.
I didn't make the program, I got it by fixing the code listed here: http://tibasicdev.wikidot.com/game-of-life
BTW, you're free to help me make it faster, I had to stop the recording at 3 minutes 18 seconds because only 5.333% of my hard drive is free and I'm not willing to get rid of any of my stuff.

Re: Various cellular automata discovered on graphing calculators

Posted: November 9th, 2018, 6:38 pm
by REDsEngineer
REDsEngineer wrote:
REDsEngineer wrote:
Hooloovoo wrote: runes looks to be the same as segmentation
That's actually not possible, as they behave differently. While Segmentations slowly increases the number of blocks of pixels before starting to draw TIE fighters, Runes just draws dingbats the entire time it's active.
Also, the Segmentations rule is wrong.
Also, the Target rule appears to be closer to Growing Crystallization.

Re: Various cellular automata discovered on graphing calculators

Posted: November 9th, 2018, 6:41 pm
by REDsEngineer
REDsEngineer wrote:
REDsEngineer wrote:
REDsEngineer wrote: runes looks to be the same as segmentation
That's actually not possible, as they behave differently. While Segmentations slowly increases the number of blocks of pixels before starting to draw TIE fighters, Runes just draws dingbats the entire time it's active.
Also, the Segmentations rule is wrong.
Also, the Target rule appears to be closer to Growing Crystallization.
Also, the Shine rule is completely wrong; the Blinker evolves into an "cartoon sparkle" shaped oscillator after 2 turns in Shine. It doesn't explode.

Re: Various cellular automata discovered on graphing calculators

Posted: November 9th, 2018, 6:43 pm
by REDsEngineer
REDsEngineer wrote:
REDsEngineer wrote:
REDsEngineer wrote: Also, the Segmentations rule is wrong.
Also, the Target rule appears to be closer to Growing Crystallization.
Also, the Shine rule is completely wrong; the Blinker evolves into an "cartoon sparkle" shaped oscillator after 2 turns in Shine. It doesn't explode.
Also, you literally just posted the Conway's Game of Life rules for Growing Crystallization. Seriously dude.

Re: Various cellular automata discovered on graphing calculators

Posted: November 9th, 2018, 6:44 pm
by REDsEngineer
REDsEngineer wrote:
REDsEngineer wrote:
REDsEngineer wrote: Also, the Target rule appears to be closer to Growing Crystallization.
Also, the Shine rule is completely wrong; the Blinker evolves into an "cartoon sparkle" shaped oscillator after 2 turns in Shine. It doesn't explode.
Also, you literally just posted the Conway's Game of Life rules for Growing Crystallization. Seriously dude.
Also, Glint is supposed to be similar to what Shine is supposed to be.

Re: Various cellular automata discovered on graphing calculators

Posted: November 9th, 2018, 6:47 pm
by REDsEngineer
Hooloovoo wrote:Segmentations is B12/S13
One problem with the speed of your program is the list operations (list-int, min(, etc) aren't very fast, and to show one frame, you need to do a lot of them.
I didn't make the program, I got it by fixing the code listed here: http://tibasicdev.wikidot.com/game-of-life
BTW, you're free to help me make it faster, I had to stop the recording at 3 minutes 18 seconds because only 5.333% of my hard drive is free and I'm not willing to get rid of any of my stuff.

Re: Various cellular automata discovered on graphing calculators

Posted: November 9th, 2018, 7:05 pm
by Gamedziner
REDsEngineer, please edit your posts instead of double, triple, quadruple, etc. posting.

Re: Various cellular automata discovered on graphing calculators

Posted: November 10th, 2018, 5:36 pm
by 77topaz
REDsEngineer wrote: Also, you literally just posted the Conway's Game of Life rules for Growing Crystallization. Seriously dude.
Nope, you're the one who's wrong here. CGoL is B3/S23, not B23/S3.
Gamedziner wrote:REDsEngineer, please edit your posts instead of double, triple, quadruple, etc. posting.
^Indeed, please take note of this!

Re: Various cellular automata discovered on graphing calculators

Posted: November 12th, 2018, 2:32 pm
by REDsEngineer
77topaz wrote:
REDsEngineer wrote: Also, you literally just posted the Conway's Game of Life rules for Growing Crystallization. Seriously dude.
Nope, you're the one who's wrong here. CGoL is B3/S23, not B23/S3.
Gamedziner wrote:REDsEngineer, please edit your posts instead of double, triple, quadruple, etc. posting.
^Indeed, please take note of this!
OK.