aswartzell.net Spectrum

void setup() {
  size(470, 940);
  background(255);
  smooth();
  colorMode(HSB, height, width/2, width/2);
  noFill();
  noStroke();

  for (int x = 0; x < width; x++) {
    for (int y = 0; y < height; y++) {
      int s;
      int b;
      if (x<width/2) {
        b = width/2;
        s = x;
      }
      else {
        b = width-x;
        s = width/2;
      }
      set(x, y, color(y, s, b));
    }
  }
  noLoop();
}

void draw() {
  if (mousePressed) {
    fill(get(mouseX, mouseY));
    ellipse(mouseX, mouseY, 50, 50);
  }
}

void mousePressed() {
  loop();
}

void mouseReleased() {
  noLoop();
}

Click anywhere. Joseph Albers may have liked this.