import processing.opengl.*; // animated perlin clouds // use random start position in the 3d noise space // once initialised, perlin noise has defined fixed values at every coordinate // so by moving through the space, we can create animations float yoff=random(600); float xoff=random(600); float zoff=10; float xyScale=0.003f; // constants for the cloud filter float CLOUD_COVER = 0.15f; float CLOUD_SHARPNESS = 0.9f; void setup() { size (600,600); noiseDetail(2); } void draw() { // move slowly through the noise space // use mouse to steer xoff+=((width/2)-mouseX)*0.001; yoff+=((height/2)-mouseY)*0.01; // always move forward zoff+=0.01; // var to store noise value int nV; // reset index in pixel buffer int index=0; // used for speed optimisation float currYOff; loadPixels(); for(int y=0; y