Experimental Aesthetics

Jon Bobrow


Based on: Untitled 4 by Reiner Schneeberger, 1978

Category: direct


Description:

Untitled #5 is part of a 10 piece series, intended to test viewers perception of art and composition. The section is titled "Experimental Esthetics with Computer Graphics -- Analyses of Viewers Impressions

of Computer Graphics." This code is running in the browser.






/* 
Part of the ReCode Project (http://recodeproject.com)
Based on "Untitled 4" by Reiner Schneeberger
Originally published in "Computer Graphics and Art" vol3 no2, 1978
Copyright (c) 2012 Jon Bobrow - OSI/MIT license (http://recodeproject/license).
*/
// 
// Untitled #5 is part of a 10 piece series, intended to test viewers
// perception of art and composition. The section is titled "Experimental
// Esthetics with Computer Graphics -- Analyses of Viewers Impressions 
// of Computer Graphics."
//
//
// note: .f enforces float division, dividing by an int would automatically round down
// i.e. 1/2 = 0 , 1/2.f = .5

int gridSize = 30;
int density = 7;

void setup(){
  size(480, 720);
  background(255);
  
  stroke(0);
  strokeWeight(1);
  float padding = gridSize/(float)density;    // even spacing for lines
          
  int rows = height/gridSize;
  int cols = width/gridSize;
  
  for(int i = 0; i < rows; i++){        // iterate over the # of rows (top to bottom)
    for(int j = 0; j < cols; j++){      // iterate over the # of columns (left to right)
      
      pushMatrix();
      translate(j*gridSize, i*gridSize);      // move to grid location
      translate(gridSize/2.f, gridSize/2.f);  // move to rotate around center
      if(random(1) < .5) 
        rotate(PI/2);        // rotate vertical or horizontal
      else 
        rotate(PI);
      
      for(int k = 0; k < density; k++){          // draw # of lines based on density with even spacing
        float _x = (k - density/2.f) * padding;  
        line(_x, -gridSize/2.f, _x, gridSize/2.f);
      }
      popMatrix();
    }
  }
}