fractalkitty looking for math? fractalkitty.com

codepen challenges

pixellar automata

#random#image#pixels#interactive#animation#accumulates#poem#cellular-automata#wcc#codepen-challenge

seedseed1acremyNeighbors


let seed,seed1;
let acre=[];//we plant into a canvas
let d = 200;//with a density
let cnt = 0;//and anticipation of change
function preload() {
  seed = loadImage("/assets/Enlight45.jpg")
  seed1 = loadImage("/assets/IMG_4895.PNG");
  seed2 = loadImage("/assets/IMG_5822.PNG")
  
}
function setup() {
	
  c = min(windowWidth,windowHeight)*0.9;//a plot size
  createCanvas(c,c);
  noStroke();//without too much definition
	background(0)
  for (let i = 0;i<d;i++){
    acre[i]=[]
    for (let j = 0;j<d;j++){
        acre[i][j] = seed.get(i*seed.width/d,j*seed.width/d);
      fill(acre[i][j])
      if(i>0&&i<d-1&&j>0&&j<d-1){
      circle(i*c/d,j*c/d,c/d)//sow these pixels
      }
  }
  }
  frameRate(1)//don't rush this - be present
}
function draw() {
  for (let i = 1;i<d-1;i++){
    for (let j = 1;j<d-1;j++){
      myNeighbors(i,j)
    }
  }
}

function myNeighbors(i,j){
  cnt=0
  if(i>0&&i<d-1&&j>0&&j<d-1){
    redS = (acre[i-1][j][0]+acre[i+1][j][0]+acre[i][j-1][0]+acre[i][j+1][0]+acre[i-1][j-1][0]+acre[i-1][j+1][0]+acre[i+1][j-1][0]+acre[i+1][j+1][0])/8
    greenS = (acre[i-1][j][1]+acre[i+1][j][1]+acre[i][j-1][1]+acre[i][j+1][1]+acre[i-1][j-1][1]+acre[i-1][j+1][1]+acre[i+1][j-1][1]+acre[i+1][j+1][1])/8
    blueS = (acre[i-1][j][2]+acre[i+1][j][2]+acre[i][j-1][2]+acre[i][j+1][2]+acre[i-1][j-1][0]+acre[i-1][j+1][2]+acre[i+1][j-1][2]+acre[i+1][j+1][2])/8
  }
  
  if (redS<50 && redS%cnt!=0){
    acre[i][j][0] = redS+greenS
  }else if(redS>=50&&redS<100&& redS%cnt!=0){
    acre[i][j][0] = round(redS*1.2)
  }else if(redS%cnt===0){
    acre[i][j][0] = redS
  }else if(redS>=100&&redS<200&& redS%cnt!=0){
    acre[i][j][0] = acre[i][j][0]/2
  }else if(redS>=200&&redS<255&& redS%cnt!=0){
    acre[i][j][0] = redS/cnt
  }
  if (greenS<50 && greenS%cnt!=0){
    acre[i][j][1] = greenS+blueS
  }else if(greenS%cnt===0){
    acre[i][j][0] = round(greenS*1.5)
  }else if(greenS>=50&&greenS<100&& greenS%cnt!=0){
    acre[i][j][1] = greenS
  }else if(greenS>=100&&greenS<200&& greenS%cnt!=0){
    acre[i][j][1] = acre[i][j][1]
  }else if(greenS>=200&&greenS<255&& greenS%cnt!=0){
    acre[i][j][1] = greenS/cnt
  }
   if (blueS<50 && blueS%cnt!=0){
    acre[i][j][2] = blueS+redS
   }else if(blueS%cnt===0){
    acre[i][j][0] = round(blueS*1.5)
   }else if(blueS>=50&&blueS<100&& blueS%cnt!=0){
    acre[i][j][2] = blueS
  }else if(blueS>=100&&blueS<200&& blueS%cnt!=0){
    acre[i][j][2] = acre[i][j][2]
  }else if(blueS>=200&&blueS<255&& blueS%cnt!=0){
    acre[i][j][2] = blueS/cnt
  }
  
  fill(acre[i][j])
  circle(i*width/d,j*width/d,width/d)
}


function keyPressed(){
  d = int(random(3,60))*11
  setup()
  draw()
}

function windowResized(){
  c = min(windowWidth,windowHeight)*0.9;
  resizeCanvas(c,c)
}