Program in a Program?

@colouredmirrorball, there’s no need to clone the PGraphics main canvas of the other PApplet by calling the PImage::get() method. You can simply use it via PApplet::getGraphics(). :wink:

Also, remove that useless synchronized () {} block.
It just makes your sketch slower w/o any concurrency guarding benefit whatsoever in this particular case. :roll_eyes:

And a plural or collective name is better for containers such as the array:

static final int WINDOWS = 4;
final PWindow[] windows = new PWindow[WINDOWS];

void draw() {
  for (final PWindow window : windows) {
    final PGraphics canvas = window.getGraphics();
    final PVector coords = window.winPos;
    set(coords.x, coords.y, canvas);
  }
}