Persistent Structures in Rule 110

The known families of persistent structures in the Rule 110 elementary cellular automaton

Originator: Stephen Wolfram

These structures were given on pages 292 through 296 of Stephen Wolfram’s “A New Kind Of Science”.

This resource also contains specifications for the collisions between structures shown on pages 294 through 296.

(6 columns, 16 rows)

Examples

Basic Examples

Retrieve the resource:

In[1]:=
ResourceObject["Persistent Structures in Rule 110"]
Out[1]=

Retrieve the default content:

In[2]:=
ResourceData["Persistent Structures in Rule 110"]
Out[2]=

Get the initial conditions for a block of “background” in the evolution:

In[3]:=
ResourceData["Persistent Structures in Rule 110", All]["Background"]
Out[3]=

Generate a sample of “background” evolution:

In[4]:=
ArrayPlot[
 CellularAutomaton[110, 
  Flatten[Table[
    ResourceData["Persistent Structures in Rule 110", All][
     "Background"], 10]], 60]]
Out[4]=

Generate images of the evolution for the first 5 structures:

In[5]:=
With[{
  bkg = ResourceData["Persistent Structures in Rule 110", All][
    "Background"],
  structs = 
   Normal@ResourceData["Persistent Structures in Rule 110"]},
 ArrayPlot[
    CellularAutomaton[110,
     Flatten[{
       Table[bkg, 8], #Cells, Flatten[Table[bkg, 8]]
       }],
     250],
    ImageSize -> {Automatic, 300},
    PixelConstrained -> 1] & /@ Take[structs, 5]
 ]
Out[5]=

Create a composite images similar to the one on page 292:

In[6]:=
With[{
  bkg = ResourceData["Persistent Structures in Rule 110", All][
    "Background"],
  structs = Normal@ResourceData["Persistent Structures in Rule 110"]
  },
 ArrayPlot[
  CellularAutomaton[110,
   Flatten@
    Replace[
     Append[
      Prepend[Riffle[Alphabet[][[;; Length@structs - 1]], 2], 12], 20],
     {
      i_Integer :> Table[bkg, i],
      l_String :> structs[[LetterNumber[l], "Cells"]]
      },
     1],
   {320, All}],
  ImageSize -> {800, 300},
  PixelConstrained -> 1]
 ]
Out[6]=

Generate the images from page 294:

In[7]:=
With[{
  bkg = ResourceData["Persistent Structures in Rule 110", All][
    "Background"],
  collisions = 
   Normal@ResourceData["Persistent Structures in Rule 110", All][
     "Collisions"]
  },
 ArrayPlot[
    CellularAutomaton[110,
     #,
     {300, 200 + {-100, 100}}],
    ImageSize -> {Automatic, 400},
    PixelConstrained -> 1
    ] & /@ collisions[[1, "InitialConditions"]]
 ]
Out[7]=

Wolfram Research, "Persistent Structures in Rule 110" from the Wolfram Data Repository. (2017) https://doi.org/10.24097/wolfram.75532.data

Source Metadata