pursuitString[ k_] := (Quiet@ ToExpression[ "Clear[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,\ F,G,H,J,L,M,P,Q,R,S,T,U,V,W,X,Y,Z,\[Alpha],\[Beta],\[Gamma],\[Delta],\ \[CurlyEpsilon],\[Zeta],\[Eta],\[Theta],\[Iota],\[Kappa],\[Lambda],\ \[Chi],\[Nu],\[Xi],\[Omicron],\[Rho],\[Sigma],\[Tau],\[Upsilon],\ \[CurlyPhi],\[Chi],\[Psi],\[Omega],\[CapitalAlpha],\[CapitalBeta],\ \[CapitalGamma],\[CapitalDelta],\[CapitalEpsilon],\[CapitalZeta],\ \[CapitalEta],\[CapitalTheta],\[CapitalIota],\[CapitalKappa],\ \[CapitalLambda],\[CapitalMu],\[CapitalNu],\[CapitalXi],\ \[CapitalOmicron],\[CapitalPi],\[CapitalRho],\[CapitalSigma],\ \[CapitalTau],\[CapitalUpsilon],\[CapitalPhi],\[CapitalChi],\ \[CapitalPsi],\[CapitalOmega],midpt,newpt,scale,plots,li,abs];\ \[IndentingNewLine]midpt[pc_,pd_]:=(Tr/@Thread@{pc,pd})/2;\ \[IndentingNewLine]newpt[pa_,pc_,pd_]:=Module[{pb,pnew,xnew,ynew,pab},\ \[IndentingNewLine]pb=midpt[pc,pd];\[IndentingNewLine]pab={pb[[1]]-pa[\ [1]],pb[[2]]-pa[[2]]};\[IndentingNewLine]xnew=If[pab[[1]]\[Equal]0,pa[\ [1]],Sign[pab[[1]]] \ 1/Sqrt[1+(pa[[2]]-pb[[2]])^2/(pa[[1]]-pb[[1]])^2]+pa[[1]]];\ \[IndentingNewLine]ynew=If[pab[[1]]\[Equal]0,pa[[2]]+Sign[pab[[2]]] \ 1,pa[[2]]+(xnew-pa[[1]]) \ #[[2]]/#[[1]]&@pab];\[IndentingNewLine]pnew=If[EuclideanDistance[pa,\ pb] "{" <> StringDrop[ StringJoin@ Thread[{("a" <> ToString[#] & /@ Range@#), Array["," &, #]}], -1] <> "}" <> "=scale*N@RandomSample[CirclePoints[\[Zeta]],\[Zeta]];plots=\ With[{\[Rho]=(*Hue[#]&/@Table[CDF[NormalDistribution[0,1],x],{x,-#,#,(\ 2#)/25.}]&[2]*)Array[Black&," <> ToString[#] <> "],\[Eta]=4,\[Theta]=3,\[Iota]=5,\[Kappa]=0},Flatten[{\ Graphics[{PointSize[.02]," <> StringDrop[ StringDrop[(",Nest[Lighter,\[Rho][[1]],\[Eta]],Line[{" <> ToString[#[[1]]] <> ",midpt[" <> ToString[#[[2]]] <> "," <> ToString[#[[3]]] <> "]}],Line[{" <> ToString[#[[2]]] <> "," <> ToString[#[[3]]] <> "}],Circle[" <> ToString[#[[1]]] <> ",1],\[IndentingNewLine]Nest[Lighter,\[Rho][[1]],\ \[Theta]],Point@" <> ToString[#[[1]]] <> ", Nest[Lighter,\[Rho][[1]],\[Iota]],Point@midpt[" <> ToString[#[[2]]] <> "," <> ToString[#[[3]]] <> "], Nest[Lighter,\[Rho][[1]],\[Kappa]],Point@newpt[" <> ToString[#[[1]]] <> "," <> ToString[#[[2]]] <> "," <> ToString[#[[3]]] <> "]," & /@ (Partition[ "a" <> ToString[#] & /@ Flatten[{Range@#, Range@2}], 3, 1])), -1] <> ",Frame\[Rule]True}],(" <> "{" <> StringDrop[ StringJoin@ Thread[{("b" <> ToString[#] & /@ Range@#), Array["," &, #]}], -1] <> "}" <> "=Chop/@N/@Quiet[li=Module[{li},li=" <> "{" <> StringDrop[ StringJoin@ Thread[{("a" <> ToString[#] & /@ Range@#), Array["," &, #]}], -1], 1] <> "}" <> ";newpt[#[[1]],#[[2]],#[[3]]]&/@Thread@{li,RotateLeft[li,1],\ RotateLeft[li,2]}]];" <> "{" <> StringDrop[ StringJoin@ Thread[{("a" <> ToString[#] & /@ Range@#), Array["," &, #]}], -1] <> "}" <> "=" <> "{" <> StringDrop[ StringJoin@ Thread[{("b" <> ToString[#] & /@ Range@#), Array["," &, #]}], -1] <> "}" <> ";" <> "Quiet[Graphics[{PointSize[.02]," <> StringDrop[(",Nest[Lighter,\[Rho][[1]],\[Eta]],Line[{" <> ToString[#[[1]]] <> ",midpt[" <> ToString[#[[2]]] <> "," <> ToString[#[[3]]] <> "]}],Line[{" <> ToString[#[[2]]] <> "," <> ToString[#[[3]]] <> "}],Circle[" <> ToString[#[[1]]] <> ",1],\[IndentingNewLine]Nest[Lighter,\[Rho][[1]],\[Theta]\ ],Point@" <> ToString[#[[1]]] <> ", Nest[Lighter,\[Rho][[1]],\[Iota]],Point@midpt[" <> ToString[#[[2]]] <> "," <> ToString[#[[3]]] <> "], Nest[Lighter,\[Rho][[1]],\[Kappa]],Point@newpt[" <> ToString[#[[1]]] <> "," <> ToString[#[[2]]] <> "," <> ToString[#[[3]]] <> "]," & /@ (Partition[ "a" <> ToString[#] & /@ Flatten[{Range@#, Range@2}], 3, 1])), -1] <> "},PlotRange\[Rule]abs@li,Frame\[Rule]True]])&/@Range[Floor[\ \[Zeta] Sqrt[\[Zeta]]]]}]];\[IndentingNewLine]Manipulate[Show[plots[[\ var]],Frame\[Rule]True],{var,1,Length@plots,1,AnimationRate\[Rule]10}]\ "] &[k]); (*eg implementation for any k: pursuitString[20]*)