grgroup={{1,0}{5,1},{1,1}{5,0},{2,0}{1,0},{2,1}{3,1},{3,0}{1,0},{3,1}{4,1},{4,0}{5,0},{4,1}{2,1},{5,0}{5,0},{5,1}{5,1}};
FAApply[rule_,s0_,list_]:=FoldList[{First[#1],#2}/.rule&,{s0},list]
FAStep[rule_,s0_,list_]:=Map[Last,Rest[FoldList[{First[#1],#2}/.rule&,{s0},list]]]
FAEvolveList[rule_,s0_,init_,t_]:=NestList[FAStep[rule,s0,#]&,init,t]
GFAEvolveList[rule_,seq_,init_]:=FoldList[FAStep[rule,#2,#]&,init,seq]
ToFARule[n_Integer,{s_Integer,k_Integer}]:=Flatten[MapIndexed[{1,-1}#2+{0,k}Mod[Quotient[#1,{k,1}],{s,k}]+{1,0}&,Partition[IntegerDigits[n,sk,sk],k],{2}]]
RasterGraphics[data_]:=Graphics[Raster[1-Reverse[data]],AspectRatioAutomatic]
RasterGraphics[data_,lab_]:=Graphics[Raster[1-Reverse[data]],AspectRatioAutomatic,PlotLabellab]
This is what happens with random initial conditions, as well as a random word.
Show[RasterGraphics[GFAEvolveList[grgroup,Table[Random[Integer,{1,5}],{100}],Table[Random[Integer],{20}]]]];
Show[GraphicsArray[Partition[Table[RasterGraphics[GFAEvolveList[ToFARule[i,{2,2}],Table[Random[Integer,{1,2}],{50}],Table[Random[Integer],{20}]],i],{i,0,255}],8]]];