void setup(){ size(800,600); noLoop(); } void draw(){ for( int i = 0; i < width; i++ ){ for ( int j = 0; j < height; j++ ){ int c = int(255 * pattern(new PVector(i,j))); set( i, j, c<<16|c<<8|c|0xff000000 ); } } } float pattern( PVector p ){ PVector q = new PVector( fbm( PVector.add(p, new PVector(0.0,0.0))), fbm( PVector.add( p, new PVector(5.2,1.3) ) ) ); q.mult(4.0); p.add( q ); return fbm( p ); } float fbm( PVector p ){ float total = 0; float frequency = 1.0/100; float lunacity = 2.0; float amplitude = 0.5; float gain = 0.5; for ( int k = 0; k < 4; k++ ){ total += noise(p.x*frequency, p.y*frequency)*amplitude; frequency *= lunacity; amplitude *= gain; } return total; }