// Weave by John Clavin void setup() { size(780, 482); frameRate(6); background(255); strokeCap(SQUARE); strokeWeight(14); } int rVert = int(random(50, 200)); int gVert = int(random(50, 200)); int bVert = int(random(50, 200)); int rHorz = int(random(50, 200)); int gHorz = int(random(50, 200)); int bHorz = int(random(50, 200)); boolean rVertDir = true; boolean gVertDir = true; boolean bVertDir = false; boolean rHorzDir = false; boolean gHorzDir = true; boolean bHorzDir = false; void draw() { rVertDir = directionChk(rVert, rVertDir); rVert = sequence(rVert, rVertDir); gVertDir = directionChk(gVert, gVertDir); gVert = sequence(gVert, gVertDir); bVertDir = directionChk(bVert, bVertDir); bVert = sequence(bVert, bVertDir); for(int x = 0; x <= width; x = x + 20) { stroke(rVert, gVert, bVert); line(x, 0, x, height); } rHorzDir = directionChk(rHorz, rHorzDir); rHorz = sequence(rHorz, rHorzDir); gHorzDir = directionChk(gHorz, gHorzDir); gHorz = sequence(gHorz, gHorzDir); bHorzDir = directionChk(bHorz, bHorzDir); bHorz = sequence(bHorz, bHorzDir); for(int y = 0; y <= height; y = y + 40) { stroke(rHorz, gHorz, bHorz); int widthAcum1 = 0; int widthAcum2 = 0; line(0, y + 20, 13, y + 20); for(int index = 7; index <= width; index = index + 40) { widthAcum1 = index; widthAcum2 = widthAcum1 + 26; line(widthAcum1, y, widthAcum2, y); widthAcum1 = index + 20; widthAcum2 = widthAcum1 + 26; line(widthAcum1, y + 20, widthAcum2, y + 20); } } } int sequence(int number, boolean direction) { if(direction == true) { number = number + 1; } else { number = number - 1; } return number; } boolean directionChk(int number, boolean direction) { if(3 > random(800)) direction = !direction; if(number > 245) direction = false; if(number < 10) direction = true; return direction; }