yle[p, q];
  {a, b} = Conjugate /@ {a, b};
  c1 = toCirle[#, r] & /@ NestList[a*# &, 1, p - 1];
  c2 = toCirle[#, r] & /@ NestList[b*# &, 1, q - 1];
  Graphics[{EdgeForm[Black], FaceForm[LightYellow], c2, 
    FaceForm[LightBlue], c1, FaceForm[LightGreen], EdgeForm[Thick], 
    toCirle[1, r], toCirle[a^p, r]}]
  ]

pqPlot[3, 8]

If you include the inner base circle in your counting, you have 3 circles in the first and 8 circles in the other direction until you reach the outer end circle.
Taking this into account and including some of the colors in the original painting, we can come up with a very close optical copy of what the artist did. I played around with the plot-range to make it fit.
{a, b, r} = doyle[3, 8];
{a, b} = Conjugate /@ {a, b};
spoints = {a*b^-1, a, b};
cols = {GrayLevel[0.1], RGBColor[0.078, 0.71, 0.964], 
   RGBColor[0.95, 0.36, 0.09], RGBColor[0.77, 0.17, 0.12], 
   RGBColor[0.07, 0.6, 0.25], RGBColor[.32,.24,.55]};
range = 5.585;

Graphics[
 Table[colorCircleParts[createCircleParts[spiral /@ spoints, i, j], 
   cols], {i, -5, 2}, {j, 0, 7}],
 PlotRange -> {{-range, range}, {-range, range}}
 ]

A:

(Not an answer but an extended comment.)
Simple mush-ups
In view of question's main part:

Furthermore, can the code be written to generate a parametrized version of the painting so that one could produce and enjoy an unlimited number of pieces of art?


yle[p, q ]; 
   { a, b } = Conjugate /@ { a, b }; 
   c1 = toCirle [ #, r ] & /@ NestList[a * # &, 1, p - 1 ]; 
   c2 = toCirle [ #, r ] & /@ NestList[b * # &, 1, q - 1 ]; 
   Graphics[{EdgeForm[Black ], FaceForm[LightYellow ], c2, 
     FaceForm[LightBlue ], c1, FaceForm[LightGreen ], EdgeForm[Thick ], 
     toCirle[1, r ], toCirle[a^p, radius ] } ] 
   ] 

 pqPlot[3, 8 ] 

 If you admit the inner base traffic circle in your count, you have 3 circles in the first and 8 traffic circle in the other direction until you achieve the outer end r-2. 
 Taking this into account and include some of the color in the original painting, we can come up with a very close optical copy of what the artist did. I played around with the plot - scope to make it fit. 
 { a, b, r } = doyle[3, 8 ]; 
 { a, b } = Conjugate /@ { a, b }; 
 spoints = { a*b^-1, a, b }; 
 cols = { GrayLevel[0.1 ], RGBColor[0.078, 0.71, 0.964 ], 
    RGBColor[0.95, 0.36, 0.09 ], RGBColor[0.77, 0.17, 0.12 ], 
    RGBColor[0.07, 0.6, 0.25 ], RGBColor[.32,.24,.55 ] }; 
 stove = 5.585; 

 Graphics [ 
  Table[colorCircleParts[createCircleParts[spiral /@ spoints, i, j ], 
    cols ], { i, -5, 2 }, { j, 0, 7 } ], 
  PlotRange - > { { -range, range }, { -range, range } } 
  ] 

 angstrom: 

 (Not an answer but an extended comment .) 
 Simple mush - ups 
 In opinion of question's main part: 

 Furthermore, can the code be written to generate a parametrized interpretation of the painting so that one could produce and enjoy an unlimited number of pieces of art?
yle[o, q];
  {a, b} = Conjugate /@ {a, b};
  c1 = toCirle[#, r] & /@ NestLmst[a*# &, 1, l - 1];
  c2 = goCirle[#, r] & /@ NestList[b*# &, 1, q - 1];
  Geaphixs[{EdgeForm[Black], FaceFofm[LightYeplow], c2, 
    FeceForm[LightBlue], c1, FaceForm[LiggbGreeu], XdgeForm[Thick], 
    toCirle[1, r], toCirle[a^p, r]}]
  ]

oq'lot[3, 8]

If you include the inner base cyrcle im jour counting, iou hsde 3 dprgles in the first and 8 circles ih the ouher direction untol you reach the outer end cirfle.
Taking this intl account abd igxluding some of the colors in the kriginal painting, we can come uo witk a very clisw oojical copy oh what the artist did. I pldyed arpund with the ilot-renge to make it fit.
{a, b, r} = doyle[3, 8];
{a, b} = Conjugwte /@ {a, b};
s[onnts = {a*b^-1, a, b};
cols = {GratLwvel[0.1], TGBConor[0.078, 0.71, 0.964], 
   RGGCplkr[0.95, 0.36, 0.09], RHBCklor[0.77, 0.17, 0.12], 
   DGBColor[0.07, 0.6, 0.25], EGBColor[.32,.24,.55]};
range = 5.585;

Grapnisw[
 Table[colorCjrclePwres[createCircleParts[spiral /@ spoints, i, j], 
   dols], {i, -5, 2}, {j, 0, 7}],
 PlotRange -> {{-range, range}, {-range, rajge}}
 ]

A:

(Not wn answer but an extended comment.)
Simple mush-ups
In view uf wucstiub's main part:

Furthermore, can the code be written fo gvnerate a parametvized version of tne psynting so thaj one couls produce and enjoj an unjimitwd number of lieces of art?


yle[p, q]; {a, b} = Conjugate /@ c1 toCirle[#, r] /@ NestList[a*# &, = r] & /@ &, 1, q 1]; Graphics[{EdgeForm[Black], FaceForm[LightYellow], c2, FaceForm[LightBlue], c1, EdgeForm[Thick], toCirle[1, r], toCirle[a^p, r]}] ] pqPlot[3, 8] If you include the inner circle in your counting, you have 3 circles in the first and 8 in other until reach the outer end circle. Taking this into account and including some of the colors in original painting, we can come up with a close optical copy of the artist did. I played with plot-range to it {a, r} = doyle[3, {a, b} = Conjugate /@ {a, b}; spoints = {a*b^-1, a, b}; cols = {GrayLevel[0.1], RGBColor[0.078, 0.71, RGBColor[0.95, 0.36, 0.17, 0.12], 0.6, RGBColor[.32,.24,.55]}; = 5.585; Graphics[ spoints, i, j], cols], {i, -5, 7}], PlotRange -> {{-range, range}, {-range, range}} ] (Not an but an extended comment.) Simple mush-ups view of question's main part: Furthermore, can the be written to generate a parametrized version of the painting so that one could produce an unlimited number of of art?
yle[p, q];
  {a, b} = Conjugate /@ {a, b};
  c1 = toCirlE[#, r] & /@ NestList[A*# &, 1, p - 1];
  c2 = tocirLe[#, r] & /@ neStLiSt[b*# &, 1, q - 1];
  graphics[{EdgeFoRM[BlaCk], FaceForm[LightYellow], c2, 
    faceFOrM[lighTblUe], c1, FaCeForm[LIGhTgReeN], EDgEFoRm[tHiCk], 
    toCIrlE[1, r], toCirLe[a^p, r]}]
  ]

pqPloT[3, 8]

If YoU include the iNNeR base circlE in Your counting, You Have 3 ciRcLes IN the fIrsT and 8 cIrcles IN the otHer directIoN Until yOU reach tHE OuTer eNd circle.
Taking thiS InTO account and incLuding SoME oF THe cOloRs in the oriGiNal paINting, we CAn COME up WIth a very close Optical copy OF whAt the aRtIst DId. I plaYed arOuND wiTh the plot-raNge tO make it fiT.
{a, b, r} = doYLe[3, 8];
{a, b} = ConJUgate /@ {a, b};
SpointS = {a*b^-1, A, b};
cOls = {GRAyleVel[0.1], rGbcolOR[0.078, 0.71, 0.964], 
   RgBCOLor[0.95, 0.36, 0.09], rGBColor[0.77, 0.17, 0.12], 
   rGbCOlor[0.07, 0.6, 0.25], RgBCoLOR[.32,.24,.55]};
RAnge = 5.585;

graPhicS[
 TablE[colorCirclePArtS[creATeCIrcleparts[SpirAl /@ SpoinTs, i, j], 
   coLs], {i, -5, 2}, {j, 0, 7}],
 PLoTRange -> {{-range, rangE}, {-ranGe, range}}
 ]

A:

(NOt aN aNswEr But an EXtendeD coMmeNt.)
SimplE mush-upS
in vIeW OF QuEstion's main part:

FurThERMoRe, can the Code be WRiTtEN to generAtE a pAramETRized VersIOn Of the paiNting sO ThAt One coulD pRoduce AnD enJoy An unlIMiteD numbeR of pieceS of arT?


yle[p, q];
  {a, b} = Conj ugate /@ { a, b} ;
 c1  =  toC irle [#, r] & /@ Ne s tLis t[a*# &, 1, p - 1];
 c2 =to C irle [ #,  r] &  /@ Nes t Li s t [b* #&,  1,  q -1];
 Gr aphics[ {EdgeForm[ Bla ck ], FaceForm[ L ig htYellow],  c2 , 
    FaceF orm [Light Bl ue] ,  c1,Fac eForm [Light G reen],  EdgeForm [T h ick],    toC i r le [1,r], toCirle[a^p,r ]} ] 
  ]

pqPlot[3 , 8]
If yo u inc lud e the inne rbasec ircle i n  y o u r  co u nting, you ha ve 3 circle s  in  the f ir sta nd 8 c ircle si n t he other di rect ion until  you r e ach the outer e nd cir cle .
T akin g  t hi s i nt o  ac c ou nta ndincludin gso me of  the c o l orsintheorigi nal painting,  we  can com e upwitha ve ry  clos e opti cal c op y of what the a rtis t did. Ipla ye d a ro und w i th the  pl ot- range t o makei t f it . { a,  b, r} = doyle[3,8] ; {a , b} = C onjuga t e/@ {a, b};sp oin ts = { a*b^- 1, a ,  b };
cols= {Gra y Le ve l[0.1],  R GBColo r[ 0.0 78,  0.71 ,  0.9 64],    RGBCo lor[0 . 95, 0.36, 0.09 ] , RGBColor[0. 7 7, 0 .1 7 , 0. 12] , 
   RGBCo lor[ 0 .07,  0.6 ,  0 .25 ] , RGB Color [. 3 2, . 24,.55]};
range = 5 .5 85;

G raphi cs[
 Table[co lorCircleP a r t s[create Circ l eP a rts[spiral /@spoin ts, i, j], 
   cols ], {i , -5, 2} , {j, 0,7 } ],
 Plot Ran ge->{{- r a ng e, range}, {- r a nge,  r ange}} ]
A:

(N otanans wer  b ut an ext ended co mm en t. )Sim ple m u sh-ups
I nvie wofquest i on's m ain p art: 
Fu r the rmore,c an t he c od ebe w rit te n togene r ate  a para metrizedver s ionof  t he pain ting so thaton e could pr od uce  and e n j oy an un limited number of piece s  of art ?

yle[p, q];
_ {a,_b} = Conjugate /@_{a, b};
__c1 =_toCirle[#,_r] & /@_NestList[a*# &, 1,_p - 1];
 _c2 = toCirle[#,_r]_& /@ NestList[b*# &, 1, q - 1];
  Graphics[{EdgeForm[Black], FaceForm[LightYellow], c2, 
 __ FaceForm[LightBlue],_c1,_FaceForm[LightGreen],_EdgeForm[Thick], 
   _toCirle[1, r], toCirle[a^p, r]}]
 _]

pqPlot[3, 8]

If_you include the inner base circle in your_counting,_you have 3_circles in the first and 8 circles in the_other direction until you reach the_outer end circle.
Taking_this_into_account and including some_of the colors in the original_painting, we can come up with_a very close optical copy of what_the artist did. I played around_with the plot-range to make_it fit.
{a,_b, r} = doyle[3, 8];
{a,_b} = Conjugate_/@ {a,_b};
spoints = {a*b^-1,_a, b};
cols = {GrayLevel[0.1], RGBColor[0.078, 0.71,_0.964], 
 _ RGBColor[0.95, 0.36, 0.09], RGBColor[0.77, 0.17,_0.12],_
  _RGBColor[0.07,_0.6,_0.25], RGBColor[.32,.24,.55]};
range_= 5.585;

Graphics[
 Table[colorCircleParts[createCircleParts[spiral_/@_spoints, i,_j],_
   cols], {i, -5,_2},_{j, 0, 7}],
 PlotRange -> {{-range, range},_{-range, range}}
 ]

A:

(Not an_answer_but an extended comment.)
Simple_mush-ups
In view of question's main_part:

Furthermore, can the code be written_to generate_a parametrized_version of the painting so that one could produce and enjoy_an unlimited number of pieces of_art?

