let rainbow=['#64A23B','#A2413B','#3BA280','#3B84A2','#623BA2'];
let warmSpectrum=['#900C3F','#FAA040','#FC6486','#FF9A00','#C11418'];
let coolSpectrum=['#3544FE','#B600FF','#7F4FE4','#815CF9','#2D9EF6'];
let grassySpectrum=['#5EF62D','#5FBF5F','#098C07','#91C091','#72FF81'];
let spectrumArray = [rainbow, warmSpectrum,coolSpectrum,grassySpectrum];
shadeOdds = int(random(1,100));
if(shadeOdds>55){shadeSide = 'south' }
else if (shadeOdds>10) { shadeSide = 'east'}
else {shadeSide = 'none' }
tinyTown = int(random(1,150));
if(tinyTown>100){ towns = "just a few"}
else if(tinyTown>50){ towns = "some"}
else if(tinyTown>10){ towns = "decent amount of towns"}
uniformityLvl = int(random(1,20));
if(uniformityLvl>10){uniformity='uniform'}
else if(uniformityLvl>5){uniformity='semi-uniform'}
else {uniformity='mayhem'}
paletteNum = int(random(0,spectrumArray.length));
palette = spectrumArray[paletteNum];
if(paletteNum==0){paletteNum='rainbow'}
else if(paletteNum==1){paletteNum='warm'}
else if(paletteNum==2){paletteNum='cool'}
else if(paletteNum==3){paletteNum='grassy'}
if(random(1,20)>19){faded='faded'}
createCanvas(width,height);
console.log('Main color : ' + paletteNum )
console.log('Shade Side : ' + shadeSide);
console.log('Mini grids : ' + towns);
console.log('Uniformity : ' + uniformity);
console.log('Sobriety : ' + faded);
if(faded=='sober'){strokeWeight(.5);}
else if(faded=='faded'){strokeWeight(8);}
if(uniformity=='uniform'){lineWidth = random([height/6,height/12,height/24]); }
while(currentY<height+lineWidth*2){
if(uniformity=='semi-uniform'){lineWidth = random([height/6,height/12,height/24]); }
while(currentX<width+lineWidth*1.5){
if(uniformity=='mayhem'){lineWidth = random([height/6,height/12,height/24]); }
currentX=currentX+lineWidth;
currentY=currentY+lineWidth/2;
if(random(0,tinyTown)>tinyTown-1){
currentFill = palette[int(random(0,palette.length))];
stumpHeight = int(random(50,100))
currentX+lineWidth,currentY,
currentX,currentY+lineWidth/2,
currentX-lineWidth,currentY+lineWidth/2);
quad(currentX,currentY-stumpHeight,
currentX+lineWidth,currentY-stumpHeight,
currentX,currentY-stumpHeight+lineWidth/2,
currentX-lineWidth,currentY-stumpHeight+lineWidth/2);
if(shadeSide=='east'){fill('#303030');}
quad(currentX,currentY-stumpHeight+lineWidth/2,
currentX,currentY+lineWidth/2,
currentX+lineWidth,currentY,
currentX+lineWidth,currentY-stumpHeight);
if(shadeSide=='south'){fill('#303030');}
quad(currentX,currentY-stumpHeight+lineWidth/2,
currentX,currentY+lineWidth/2,
currentX-lineWidth,currentY+lineWidth/2,
currentX-lineWidth,currentY-stumpHeight+lineWidth/2);
subPalette = spectrumArray[int(random(0,spectrumArray.length))];
while(subCurrentY<currentY+lineWidth){
subLineWidth = random([lineWidth/2,lineWidth/4,lineWidth/8]);
while(subCurrentX<currentX+lineWidth){
subCurrentX=subCurrentX+subLineWidth;
subCurrentY=subCurrentY+subLineWidth/2;
currentFill=subPalette[int(random(0,subPalette.length))];
stumpHeight = int(random(75,125));
quad(subCurrentX,subCurrentY,
subCurrentX+subLineWidth,subCurrentY,
subCurrentX,subCurrentY+subLineWidth/2,
subCurrentX-subLineWidth,subCurrentY+subLineWidth/2);
quad(subCurrentX,subCurrentY-stumpHeight,
subCurrentX+subLineWidth,subCurrentY-stumpHeight,
subCurrentX,subCurrentY-stumpHeight+subLineWidth/2,
subCurrentX-subLineWidth,subCurrentY-stumpHeight+subLineWidth/2);
if(shadeSide=='east'){fill('#303030');}
quad(subCurrentX,subCurrentY-stumpHeight+subLineWidth/2,
subCurrentX,subCurrentY+subLineWidth/2,
subCurrentX+subLineWidth,subCurrentY,
subCurrentX+subLineWidth,subCurrentY-stumpHeight);
if(shadeSide=='south'){fill('#303030');}
quad(subCurrentX,subCurrentY-stumpHeight+subLineWidth/2,
subCurrentX,subCurrentY+subLineWidth/2,
subCurrentX-subLineWidth,subCurrentY+subLineWidth/2,
subCurrentX-subLineWidth,subCurrentY-stumpHeight+subLineWidth/2);