100x100 Computational Design Challenge

Throughout 2020 I created 100 computational designs in 100 days as a way to learn creative coding and explore generative art

Day 80 - Dream Catcher

dream-catcher-7.png

It was a full day at work today - I was up before the sun, but finished feeling energized and accomplished and very very ready for the long weekend. As such, keeping it simple for today’s sketch. Another variation of the stringy woven patterns I’ve been playing with for the last few days. This one reminded me of a dream catcher that hung in my bedroom window when I was a kid, I remember it feeling like magic. Eighty down, only twenty more to go!

Sketch:

https://editor.p5js.org/chelseamwatson/present/H3rhFUMhL


Drawings:


Code:

x1 = 110;
y1 = 100;
x2 = 100;
y2 = 110;
xoff = 0;
count = 0;

function setup() {
  createCanvas(700, 700);
  background(233, 228, 222);
  yShape = int(random(1, 3));
  xShape = int(random(1, 3));
  noStroke();
  fill(0);
  r1 = int(random(150, 550));
  r2 = int(random(150, 550));
  r3 = int(random(150, 550));
  r4 = int(random(150, 550));
}

function draw() {

  xoff = xoff + 0.03;
  n = noise(xoff) * 2;

  if (yShape == 1) {
    //thin vertical line with ellipses
    s1 = 1;
    if (y1 == r1 || y1 == r2) {
      let shades = ["#403224", "#A02A2B", "#F2F2F2", "#B4951F", "#3E546C"];
      let shade = random(shades);
      cS = color(shade);
      fill(cS);
      ellipse(x1 + n, y1 - 3, 10);
      y1 = y1 + 1;
    } else {
        fill("#D4C4A6");
        ellipse(x1 + n, y1 - 3, s1);
        y1 = y1 + 1;
    }

  }

  if (yShape == 2) {
    //thin vertical line
    fill("#D4C4A6");
    s1 = 1;
    ellipse(x1 + n, y1, s1);
    y1 = y1 + 1;
  }

  if (xShape == 1) {
    //thin horizontal line with ellipses
    s2 = 1;
    if (y1 == r3 || y1 == r4) {
      let shades = ["#403224", "#A02A2B", "#F2F2F2", "#B4951F", "#3E546C"];
      let shade = random(shades);
      cS = color(shade);
      fill(cS);
      ellipse(x2 + n, y2, 10);
      y1 = y1 + 1;
    } else {
        fill("#D4C4A6");
        ellipse(x2 + n, y2, s2);
        x2 = x2 + 1;
    }

  }

  if (xShape == 2) {
    //thin horizontal line
    fill("#D4C4A6");
    s2 = 1;
    ellipse(x2, y2 + n, s2);
    x2 = x2 + 1;
  }


  if (y1 > height - 100) {
    y1 = 100;
    x1 = x1 + s1 + random(15, 30);
    yShape = int(random(1, 3));
    r1 = int(random(150, 550));
    r2 = int(random(150, 550));
  }
  if (x2 > width - 100) {
    x2 = 100;
    y2 = y2 + s2 + random(15, 30);
    xShape = int(random(1, 3));
    r3 = int(random(150, 550));
    r4 = int(random(150, 550));
  }
  if (y2 > height - 110) {
    x2 = 900;
  }
  if (x1 > width - 110) {
    y1 = 900;
  }
}

Chelsea Watson