FOR INTERACTIVE SKETCH, CLICK HERE.
^the program runs too slow on this page…
Vertex Landscape series, 2015-current.
Rendered with code in Processing.
float shade = 255; // color fill each vertex , shade = shade+shadeincrease;
float shadeR = 255;
float shadeG = 255;
float shadeB = 255;
float randR = random(0, 50);
float randG = random(0, 50);
float randB = random(0, 50);
float shadeincrease = -.75; // delta shade/ vertex
float sWeight = .25; // strokeWeight , sWeight = random (.25, yRandom*2);
float outline = 255; // outline = outline-shadeincrease;
float accelerator = 1.01;
float linespacing = 64; // range: 9 - 100 , linespacing = linespacing*accelerator;
float xspacing = 1; // rigid/smooth , xspacing = xspacing*accelerator;
float xRandom = .01; // range: .1 - .5
float yRandom = .2; // range .1 - .4
int wide = 8;
int tall = wide;
int points =100; // range: 9+
//declare arrays
float [] xArray = new float [points];
float [] yArray = new float [points];
float [] xArrayNew = new float [points];
float [] yArrayNew = new float [points];
float firstPtY; // keep track of y Pos
void setup () {
size (320, 500);
background(200, 200, 250);
smooth ();
for (int i = 0; i < points; i++) {
xArray[i] = i-(points/2);
}
for (int i = 0; i < points; i++) {
yArray[i] = -10;
}
}
void draw () {
if (firstPtY <= 500) {
translate (wide, tall-wide);
for (int i = 0; i < points; i++) {
xArrayNew[i] = xArray[i] + random (-xRandom, xRandom);
}
for (int i = 0; i < points; i++) {
yArrayNew[i] = yArray[i] + random (-yRandom, yRandom);
}
fill (shadeR+randR*random(1, 2), shadeG+randG*random(1, 2), shadeB+randB*random(1, 2)); //main fill
stroke (shade);
strokeWeight (sWeight);
beginShape ();
vertex (-50, 500);
for (int i = 0; i < points; i++) {
curveVertex (xspacing*11*xArrayNew[i], linespacing+11*yArrayNew[i]);
firstPtY = linespacing+11*yArrayNew[0];
}
vertex (500, 500);
vertex (-50, 500);
endShape (CLOSE);
//reset arrays
for (int i = 0; i < points; i++) {
xArray[i] = xArrayNew[i];
}
for (int i = 0; i < points; i++) {
yArray[i] = yArrayNew[i];
}
//accelerate
linespacing = linespacing*accelerator;
xspacing = xspacing*accelerator*1.0005;
yRandom = yRandom*accelerator;
//design change
shade = shade+shadeincrease*1.5; //incremental , shade = mouseY/2;
shadeR = shade+shadeincrease*.2; //incremental , shade = mouseY/2;
shadeG = shade+shadeincrease*.2; //incremental , shade = mouseY/2;
shadeB = shade+shadeincrease*.2; //incremental , shade = mouseY/2;
outline = outline-shadeincrease*1.9;
sWeight = random (.75, yRandom*4);
}
}
void mousePressed() {
reset();
}
void reset() {
//background(255);
shade = 255;
shadeincrease = -.55;
sWeight = .25;
outline = 128; //outline = outline-shadeincrease;
accelerator = 1.01;
linespacing = 64; //range: 9 - 100
xspacing = random(0, 16); //rigid/smooth
xRandom = .01; // range: .1 - .5
yRandom = .2; // range .1 - .4
wide = 8; // range: 100- 500
tall = wide; // range: 16/7- 6/9
points =100; // range: 9+
xArray = new float [points];
yArray = new float [points];
xArrayNew = new float [points];
yArrayNew = new float [points];
for (int i = 0; i < points; i++) {
xArray[i] = i-(points/2); //range: points/2- points/9
}
for (int i = 0; i < points; i++) {
yArray[i] = -16; //reset new lineY to mouseY
}
randR = random(0, 50);
randG = random(0, 50);
randB = random(0, 50);
firstPtY = 0;
}
Seriously, don’t open the code on your phone.