Code viewer for World: Coding Project 13
function setup() {
  createCanvas(windowWidth, windowHeight)
  angleMode(DEGREES)

  noLoop()
}

function draw() {
  background(100)
  
  translate(width / 2, height / 2 + 200)

  branch(100)
}

function branch(len) {
  push()
  if (len > 10) {
    strokeWeight(map(len, 10, 100, 1, 15))
    stroke(70, 40, 20)
    line(0, 0, 0, -len)
    translate(0, -len)
    rotate(random(-20, -30))
    branch(len * random(0.7, 0.9))
    rotate(random(50, 60))
    branch(len * random(0.7, 0.9))
  } else {
    var r = 80 + random(-20, 20)
    var g = 120 + random(-20, 20)
    var b = 40 + random(-20, 20)
    fill(r, g, b, 200)
    noStroke()

    beginShape()
    for (var i = 45; i < 135; i++) {
      var rad = 15
      var x = rad * cos(i)
      var y = rad * sin(i)
      vertex(x, y)
    }
    for (var i = 135; i > 40; i--) {
      var rad = 15
      var x = rad * cos(i)
      var y = rad * sin(-i) + 20
      vertex(x, y)
    }
    endShape(CLOSE)
  }
  pop()
}