SMWXGraphics[history_,fac_:2.5]:=Graphics[{MapIndexed[frx[Last[#1],-facFirst[#2],-fac(First[#2]+1)+1,0]&,Rest[history]],MapIndexed[erx[First[#1],-facFirst[#2]]&,history]},AspectRatio->Automatic]
SMWXGraphicsStreamed[history_,fac_:2.5,opts___]:=Graphics[{MapIndexed[erxp[First[#1],-facFirst[#2]]&,history],MapIndexed[qrx[#1,-facFirst[#2],-fac(First[#2]+1)+1]&,Rest[history]],MapIndexed[frx[Last[#1],-facFirst[#2],-fac(First[#2]+1)+1,0]&,Rest[history]]},opts,AspectRatio->Automatic]
SMWXGraphicsNetwork[history_,fac_:2.5,opts___]:=Graphics[{MapIndexed[erxp[First[#1],-facFirst[#2],"nw"]&,history],MapIndexed[qrx[#1,-facFirst[#2],-fac(First[#2]+1)+1,"nw"]&,Rest[history]],MapIndexed[frx[Last[#1],-facFirst[#2],-fac(First[#2]+1)+1,.3,"nw"]&,Rest[history]]},opts,AspectRatio->Automatic]
Show[SMWXGraphicsNetwork[SMWEvolveListX[{"ABA""BAAB","BBBB""AA"},"ABAAB",15]]]
⁃Graphics⁃
qrx[{s_,pos_},y1_,y2_,opts___]:=Module[{si=(First[ToCharacterCode[#]]-65)&/@Characters[s],t},t=DeleteCases[qrx0/@Partition[Join[{{0,0}->{0,0}},pos,{({1,1}(Length[si]+1-If[pos=!={},pos[[-1,-1,-1]]-pos[[-1,1,-1]],0]))->({1,1}(Length[si]+1))}],2,1],{}];qrx1[si,#,y1,y2,opts]&/@t]
qrx0[{{_,b_}->{_,d_},{ap_,_}->{cp_,_}}]:=If[b+1>ap-1,{},{d-b,{d+1,cp-1}}]
qrx1[si_,{d_,{i0_,i1_}},y1_,y2_]:=Table[{CharColor[si〚i〛],Polygon[{{i-d,y1},{i+1-d,y1},{i+1,y2},{i,y2}}],Flatten[{GrayStyle,Line[{{i-d,y1},{i,y2}}],Line[{{i+1-d,y1},{i+1,y2}}]}]},{i,i0,i1}]
qrx1[si_,{d_,{i0_,i1_}},y1_,y2_,"nw"]:=With[{w=.15},Table[{CharColor[si〚i〛],Polygon[{{i-d+.5-w,y1},{i+.5+w-d,y1},{i+.5+w,y2},{i+.5-w,y2}}],Flatten[{GrayStyle,Line[{{i-d+.5-w,y1},{i+.5-w,y2}}],Line[{{i+.5+w-d,y1},{i+.5+w,y2}}]}]},{i,i0,i1}]]
erxp[s_,y_]:=MapIndexed[erxp0[{First[#2],y},{First[#2]+1,y+1},CharColor[First[ToCharacterCode[#]]-65],GrayStyle]&,Characters[s]]
erxp[s_,y_,"nw"]:=With[{w=.15},MapIndexed[erxp0[{First[#2]+.5-w,y},{First[#2]+.5+w,y+1},CharColor[First[ToCharacterCode[#]]-65],GrayStyle]&,Characters[s]]]
erxp0[{x1_,y1_},{x2_,y2_},g_,e_]:=Flatten[{g,Rectangle[{x1,y1},{x2,y2}],e,Line[{{x1,y1},{x1,y2}}],Line[{{x2,y1},{x2,y2}}]}]
CharColor[i_,opts___?OptionQ]:= Module[{colortable},{colortable}={CharColorTable}/.{opts}/.Options[CharColor]; If[Length[#]==1,GrayLevel@@#,RGBColor@@#]&[If[i+1<=Length[colortable],colortable〚i+1〛,{0}]]]
Options[CharColor]:={CharColorTable->{{1,1,1},{0,0,0},{.5,0,0},{0,.5,0},{0,0,.5},{.5,.5,0},{.5,0,.5},{0,.5,.5},{.25,.75,0}}}
Options[CharColor]:={CharColorTable->{{.85},{0},{.5,0,0},{0,.5,0},{0,0,.5},{.5,.5,0},{.5,0,.5},{0,.5,.5},{.25,.75,0}}}
frx[list_,y1_,y2_,thin_]:=frx0[#,y1,y2,thin]&/@list
frx[list_,y1_,y2_,thin_,"nw"]:=frx0[#,y1,y2,thin]&/@list
frx0[{a_,b_}->{c_,d_},y1_,y2_,thin_]:=EdgedPolygon[{{a+thin,y1},{b+1-thin,y1},{d+1-thin,y2},{c+thin,y2},{a+thin,y1}},GrayLevel[.5],GrayStyle]
Show[SMWXGraphicsNetwork[SMWEvolveListX[ "CGAHC"->"CHAGC","CGAHD"->"CHBGD", "DGBHE"->"DHBGE","DGBHF"->"DHBGF", "EGAHC"->"EHBGC","EGAHD"->"EHAGD", "FGBHE"->"FHAGE","FGBHF"->"FHAGF", "AGCHA"->"AHCGA","AGDHA"->"AHCGA", "AGEHA"->"AHCGA","AGFHA"->"AHCGA", "AGCHB"->"AHDGB","AGDHB"->"AHDGB", "AGEHB"->"AHDGB","AGFHB"->"AHDGB", "BGCHA"->"BHEGA","BGDHA"->"BHEGA", "BGEHA"->"BHEGA","BGFHA"->"BHEGA", "BGCHB"->"BHFGB","BGDHB"->"BHFGB", "BGEHB"->"BHFGB","BGFHB"->"BHFGB", "IHA"->"IHCGA","IHB"->"IHDGB", "IHC"->"IHAGC","IHD"->"IHBGD", "AGI"->"AHCGI","BGI"->"BHEGI", "CGI"->"CHAGI","EGI"->"EHBGI","IHDGBHEGI",6]]]
⁃Graphics⁃
Show[SMWXGraphicsStreamed[SMWEvolveListX[ "CGAHC"->"CHAGC","CGAHD"->"CHBGD", "DGBHE"->"DHBGE","DGBHF"->"DHBGF", "EGAHC"->"EHBGC","EGAHD"->"EHAGD", "FGBHE"->"FHAGE","FGBHF"->"FHAGF", "AGCHA"->"AHCGA","AGDHA"->"AHCGA", "AGEHA"->"AHCGA","AGFHA"->"AHCGA", "AGCHB"->"AHDGB","AGDHB"->"AHDGB", "AGEHB"->"AHDGB","AGFHB"->"AHDGB", "BGCHA"->"BHEGA","BGDHA"->"BHEGA", "BGEHA"->"BHEGA","BGFHA"->"BHEGA", "BGCHB"->"BHFGB","BGDHB"->"BHFGB", "BGEHB"->"BHFGB","BGFHB"->"BHFGB", "IHA"->"IHCGA","IHB"->"IHDGB", "IHC"->"IHAGC","IHD"->"IHBGD", "AGI"->"AHCGI","BGI"->"BHEGI", "CGI"->"CHAGI","EGI"->"EHBGI","IHDGBHEGI",35]]]
⁃Graphics⁃
SMWEvolveList[ "CGAHC"->"CHAGC","CGAHD"->"CHBGD", "DGBHE"->"DHBGE","DGBHF"->"DHBGF", "EGAHC"->"EHBGC","EGAHD"->"EHAGD", "FGBHE"->"FHAGE","FGBHF"->"FHAGF", "AGCHA"->"AHCGA","AGDHA"->"AHCGA", "AGEHA"->"AHCGA","AGFHA"->"AHCGA", "AGCHB"->"AHDGB","AGDHB"->"AHDGB", "AGEHB"->"AHDGB","AGFHB"->"AHDGB", "BGCHA"->"BHEGA","BGDHA"->"BHEGA", "BGEHA"->"BHEGA","BGFHA"->"BHEGA", "BGCHB"->"BHFGB","BGDHB"->"BHFGB", "BGEHB"->"BHFGB","BGFHB"->"BHFGB", "IHA"->"IHCGA","IHB"->"IHDGB", "IHC"->"IHAGC","IHD"->"IHBGD", "AGI"->"AHCGI","BGI"->"BHEGI", "CGI"->"CHAGI","EGI"->"EHBGI","IHDGBHEGI",20]