Put phase info in the mesh structure....
In[]:=
GraphicsColumn[ArrayPlot[{#},ColorRules->{0->White,1->Lighter[Orange],2->Darker[Orange]},ImageSize->{Automatic,20},Mesh->True]&/@Map[First,ResourceFunction["BlockCellularAutomaton"][{{{2,2}{1,1},{1,1}{2,2},{1,2}{1,2},{2,1}{2,1},{2,0}{0,2},{1,0}{1,0},{0,2}{2,0},{0,1}{0,1},{0,0}{0,0}},2},{CenterArray[{1,1},8],0},10]]]
Out[]=
In[]:=
GraphicsColumn[ArrayPlot[{#},ColorRules->{0->White,1->Lighter[Orange],2->Darker[Orange]},ImageSize->{Automatic,20},Mesh->True]&/@Map[First,ResourceFunction["BlockCellularAutomaton"][{{{2,2}{1,1},{1,1}{2,2},{1,2}{1,2},{2,1}{2,1},{2,0}{0,2},{1,0}{1,0},{0,2}{2,0},{0,1}{0,1},{0,0}{0,0}},2},{CenterArray[#,8],0},10]]]&/@Tuples[{1,2},2]
Out[]=
,
,
,
GraphicsGrid[Partition[ArrayPlot[Map[First,ResourceFunction["BlockCellularAutomaton"][{{{2,2}{1,1},{1,1}{2,2},{1,2}{1,2},{2,1}{2,1},{2,0}{0,2},{1,0}{1,0},{0,2}{2,0},{0,1}{0,1},{0,0}{0,0}},2},{CenterArray[#,20],0},40]],ColorRules->{0->White,1->Lighter[Orange],2->Darker[Orange]}]&/@Take[Tuples[{1,2},8],128],UpTo[24]]]
In[]:=
ResourceUpdate["BlockCellularAutomaton"]
Out[]=
ResourceObject
In[]:=
ArrayPlot[First/@#,ImageSize->60]&/@cyclePaths
Out[]=
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
In[]:=
ListLinePlot[Length/@(Counts/@Transpose[Map[Sign[First[#]]&,ResourceFunction["BlockCellularAutomaton"][{{{2,2}{1,1},{1,1}{2,2},{1,2}{1,2},{2,1}{2,1},{2,0}{0,2},{1,0}{1,0},{0,2}{2,0},{0,1}{0,1},{0,0}{0,0}},2},{CenterArray[#,12],0},30]]&/@Tuples[{1,2},6]]),PlotRange->All,Frame->True,Filling->Axis,AspectRatio->1/3,PlotStyle->$SecondLawColors["Blues",1],FillingStyle->$SecondLawColors["Blues",3]]
Out[]=
In[]:=
With[{val=6,length=12,op=ResourceFunction["BlockCellularAutomaton"][{{{2,2}{1,1},{1,1}{2,2},{1,2}{1,2},{2,1}{2,1},{2,0}{0,2},{1,0}{1,0},{0,2}{2,0},{0,1}{0,1},{0,0}{0,0}},2}]},evols=ResourceFunction["BlockCellularAutomaton"][{{{2,2}{1,1},{1,1}{2,2},{1,2}{1,2},{2,1}{2,1},{2,0}{0,2},{1,0}{1,0},{0,2}{2,0},{0,1}{0,1},{0,0}{0,0}},2},{CenterArray[#,12],0},13]&/@Tuples[{1,2},val];]
In[]:=
uniquePathGraphs=PathGraph[#,DirectedEdges->True]&/@evols;
In[]:=
cgPaths=VertexReplace[#,x_:>Sign[First[x]]]&/@uniquePathGraphs
Out[]=
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
In[]:=
g1=Apply[GraphUnion,cgPaths]
Out[]=