Gretchen Kupferschmid-Project 06-Abstract Clock

sketch

//Gretchen Kupferschmid

function setup() {
    createCanvas(480,480);
    
}
 function draw (){
    
    //gradient picking color
    var gradient1 = color(223, 202, 252); 
    var gradient2 = color(202, 252, 238); 
    createGradient(gradient1, gradient2); 

    //creating time veriaples 
    var h = hour();
    var m = minute();
    var s = second();
    
    //mapping time variables
    var dripsS = map(s, 0, 59, 200, height);
    var colorLemon = map(m, 0, 59, 0, 30);
    var highLight = map(h, 0, 23, 110, 240);
    
     
    //lemon shadow
    noStroke();
    fill(211,180,117);
    ellipse(235,274,124,33);
     
    //changing color of lemon with minutes
    var Yellow= color(244-colorLemon,216-colorLemon, 100-colorLemon);
    fill(Yellow);
    noStroke();
    ellipse(211,181,161,208);
    ellipse(289,182,28,19);
     

    //drawing lemon interior
    noStroke();
    fill(247,234,181);
    ellipse(182,185,107,208);
    strokeWeight(2);
    stroke(196,141,32);
    fill(244,226,149);
    ellipse(182,185,73,178);
    strokeWeight(1);
    line(181,95,181,274);
    line(209,126,153,240);
    line(145.5,185,218,173);
    line(153.3,130,213.3,229.3);
    
    //lemon highlight every hour
    noStroke();
    fill(255);
    ellipse(193,highLight,8,18);
     
    //drip goes down every second
    fill(247,223,119);
    ellipse(170, dripsS, 10.5, 31);
    
    //text of time
    fill(255);
    text(h+":"+m+":"+s,350,50);
 
    
 }

 //background 
function createGradient(top, bottom) {
    for(var i = 0; i <= height; i++) {
      var mapColor = map(i, 0, height, 0, 1);
      var interA = lerpColor(top, bottom, mapColor);
      stroke(interA);
      line(0, i, width, i);
    }
}

As I tried to decide what form to make my clock, I based it heavily on my love for simple graphic elements such as lemons and the simplicity that comes from them. I wanted to also try various techniques for showing the time in the illustration itself from the drip of the lemon, to the hue of the actual lemon itself. It was important to me to show time in subtle ways that didn’t take away from the illustration but added to it in a form of animation.

Gretchen Kupferschmid-Looking Outward-06

Artist Manolo Gamboa Naon from Argentina creates art from the randomness of computational algorithm he creates. His art looks very intentional and involves lots of hard shapes and geometry, yet the idea of randomness is very fluid, so its interesting to see these two styles intersecting. I enjoy how the art itself is very reminiscent of mid-century art and feels as it could fit right in place with the 60s style art that relied so heavily on paint and traditional materials. His abstract and random work is grounded through shapes and color. By using just a circle and triangle, Naon is able create a piece of art by color changing and object placement.

https://www.artnome.com/news/2018/8/8/generative-art-finds-its-prodigy

Cathy Dong-06-Abstract-Clock

sketch

/* Cathy Dong
   Section D
   yinhuid@andrew.cmu.edu
   Project: abstract clock
*/

//color scheme
var wall = '#D6C9C9';
var light = '#DDE1E4';
var dark = '#8C9A9B';
var sunset = '#D2AB99';
var coffee = '#60463E';
var table = '#2F2F2F';
var curtainC = '#CEB5A7';

//time variable
var s; //seconds
var m; //minutes
var h; //hours


//coffee cup
var cupGap = 10;
var cupWidth = 28;
var cupHeight = 60;
var coffeeHeight = 0;
var coffeeX = 10;


//curtain
var curtainHeight = 0;

//deco
var deco1X = 100;
var deco1Y = 100;
var deco1Size = 0;
var deco2X = 150;
var deco2Y = 80;
var deco2Size = 0;
var deco3X = 160;
var deco3Y = 160;
var deco3Size = 0;


function setup() {
    createCanvas(470, 480);
    background(0);


}

function draw() {
    //set time variables
    s = second();
    m = minute();
    h = hour();
    coffeeHeight = s;

    //wall & table setting
    noStroke();
    fill(wall);
    rect(0, 0, width, height);
    fill(table);
    rect(0, height - height / 5, width, height / 5);

    //call functions
    coffeeLevel();
    
    cup();
    skyColor();
    curtain();
    deco();
}

//cup outline don't change
function cup() {
    for (var i = 0; i < 12; i++) {
    stroke(0);
    strokeWeight(2);
    noFill();
    var cupX = cupGap * (i + 1) + cupWidth * i;
    var cupY = height - height / 5 - cupHeight;
    rect(cupX, cupY - 10, cupWidth, cupHeight + 10);
    }
}

// coffee level changes every second
function coffeeLevel() {
    noStroke();
    fill(coffee);
    //coffee level increase per second
    for (var j = 0; j < 12; j++) {
        var coffeeY = height - height / 5 - coffeeHeight;
        var coffeeX = cupGap * (j + 1) + cupWidth * j; 
        rect(coffeeX, coffeeY, cupWidth, coffeeHeight);   
    }
}

// sky changes color based on hours
function skyColor() {
    stroke(255);
    strokeWeight(5);
    if ((h > 6) & (h < 15)) {
        fill(light); //morning
    }
    else if ((h > 14) & (h <17)) {
        fill(sunset); //dawn
    }
    else {
        fill(dark); //night
    }
    rect(width / 5 * 3, height / 4, width / 4, height / 3);
}

//curtain height changes based on hours
function curtain() {
    stroke(0);
    strokeWeight(1);
    fill(curtainC);
    var curtainX = width / 5 * 3;
    var curtainY = height / 4;
    var curtainWidth = width / 4;
    var curtainHeight = h * 5;
    rect(curtainX, curtainY, curtainWidth, curtainHeight);
}

//decoration size changes based on minutes
//color changed based on hours (matching sky color)
function deco() {
    stroke(255);
    strokeWeight(3);
    //morning
    if ((h > 6) & (h < 15)) {
        fill(light);
    }
    //dawn
    else if ((h > 14) & (h <17)) {
        fill(sunset);
    }
    //night
    else {
        fill(dark);
    }   
    deco1Size = m * 2;
    deco2Size = m;
    deco3Size = m * 3 / 2;
    circle(deco1X, deco1Y, deco1Size);
    circle(deco2X, deco2Y, deco2Size);
    circle(deco3X, deco3Y, deco3Size);
}

initial sketch

The abstract clock is an animation changes based on time in the day. There will not be any repetitions anytime in the same day. The coffee levels in the cups change based on seconds. The hour decides color of the sky and decoration elements and height of the curtain, whereas decoration dimensions change based on the minute.

There are three color modes: day time as light blue, evening as dark blue, and sunset as pale orange. 7 AM to 2 PM are considered as day time, 3 PM to 4 PM are sunset, and 5 PM to 6 AM are evening. 

SooA Kim: Looking Outwards – 06


Takeshi Murata is an American media artist and one of his works, Monster Movie (2005), uses a digital file that has been datamoshed. In his work, he tends to use video and animation techniques to create this datamosh effect. I enjoy watching the randomness of images or pixels popping out from the result of datamoshing. I believe he was able to achieve this effect by manipulating different kinds of frames, which are I-frames, P-frames, and B-frames. He removes one of those types of frames in this process, where the video player generates the video without realizing that the actual image content has been changed. This results as datamoshing with abstract motion of pixels with other types of frames in the video to continue with the next frame pixels.

Crystal Xue-LookingOutwards-06

Rami Hammour: A text of random meaning!

The text-like black and white visualization is a mapping of a ‘Register and Taps” random number generator in action. Rami Hammour is an architect graduated from RISD. Utilizing three integers in the script, Rami Hammour is able to show randomness with limited input values

The definition of randomness is known as “a non-repeating, non-biased, non-patterned sequence of values” . And randomness in computational art is finding a tool to record the irregular pattern.

I think in any form of randomness art. There should be logical representation used to project the randomness. Otherwise, the randomness will just be unable to read and lost its meaning.

Minjae Jeong-Looking Outwards-06

I found the installation by John Cage in Kettle’s Yard gallery in Cambridge as very interesting art using randomness.

https://www.facebook.com/pg/kettlesyard/photos/?tab=album&album_id=436476306159

The randomness used in his installation was computer generated random coordinates, and Cage hung up the pictures on the generated coordinates, and reinstalling them according to the newly generated coordinates. When we integrate art with technology, there are many more ways that we can get creative. I thought the creative process of art is to think what to draw, but another creative process to think is what to draw with.

Kristine Kim- Project 06- Abstract-Clock


sketch

//Kristine Kim
//Section D
//younsook@andrew.cmu.edu
//Project -06- Abstract Clock


var prevSec;

//cloud
var dx = 0;
var x = 30
var y = 110;
var db = 120


function setup() {
    createCanvas(480, 380);
    secondRolloverTime = 0;
    noStroke();
}

function draw() {
    background('lightblue'); // sky
    


//grass
    var grassTop = 330;
    var grassBottom = 380;
    var grassTilt = 30;


    for(var g = 0 - 30; g < 530; g = g + 10){
        stroke(3, 168, 50);
        strokeWeight(3);
        line(g + grassTilt, grassTop, g, grassBottom);
        line(g - grassTilt, grassTop + 10, g, grassBottom);
  }
    
   

//clock part

    var H = hour();
    var M = minute();
    var S = second();
    
    // Reckon the current millisecond, 
    // particularly if the second has rolled over.
    // Note that this is more correct than using millis()%1000;

    if (prevSec != S) {
        secondRolloverTime = millis();
    }
    prevSec = S;

    var mils = floor(millis() - secondRolloverTime);

   
    var hourballoonheight   = map(H, 0, 23, 0, height);
    var minuteballoonheight = map(M, 0, 59, 0, height);
    var secondballoonheight = map(S, 0, 59, 0, height);

    
    // // Make a bar which *smoothly* interpolates across 1 minute.
    // // We calculate a version that goes from 0...60, 
    // // but with a fractional remainder:

    var secondsWithFraction   = S + (mils / 1000.0);
    var secondballoonheightSmooth  = map(secondsWithFraction, 0, 60, 0, height);


    
   
    //hour balloon (green)
    stroke(255);
    strokeWeight(5);
    line(80,330 - hourballoonheight, 80, 500 - hourballoonheight)

    noStroke();
    fill(138, 199, 107);
    triangle(80, 330 - hourballoonheight, 50 ,  390 - hourballoonheight , 110,  390 - hourballoonheight);
    
    fill(168, 247, 129);
    stroke(138, 199, 107);
    strokeWeight(5);
    ellipse(80, 300 - hourballoonheight, db, db + 30);


    //minute balloon (pink)
    strokeWeight(5);
    stroke(255);
    line(240,330 - minuteballoonheight, 240, 500 - minuteballoonheight)

    noStroke();
    fill(214, 152, 227);
    triangle(240, 330 - minuteballoonheight, 210 ,  390 - minuteballoonheight , 270,  390 - minuteballoonheight);
    
    fill(247, 209, 255);
    stroke(214, 152, 227);
    strokeWeight(5);
    ellipse(240, 300 - minuteballoonheight, db, db + 30);

    //seconds balloon(yellow)
    stroke(255);
    line(400,330 - secondballoonheightSmooth, 400, 500 - secondballoonheightSmooth)

    noStroke();
    fill(196, 209, 96);
    triangle(400, 330 - secondballoonheightSmooth, 370 ,  390 - secondballoonheightSmooth , 430,  390 - secondballoonheightSmooth);
    
    stroke(196, 209, 96);
    strokeWeight(5);
    fill(246, 255, 176);
    ellipse(400, 300 - secondballoonheightSmooth, db,db + 30);


    translate(dx,0);
    dx ++;

    for(var c = 0; c < 3; c++){
        fill(245);
        noStroke()
        ellipse(c * x *-1, y, 50, 50);
        ellipse(c * x + 160 * -1, y - 80, 50, 50);
        ellipse(c *x + 300 * -1, y + 35, 50, 50);
        //if (dx -50 > width){
            //dx = -100;
        if ( dx - 350 > width){
        dx = -50
        }
    } 
      


    }



When I was brainstorming for this project, I saw a balloon fly outside my window and that sparked an idea in my head; to represent time with balloons flying. I didn’t want just the balloons to be the only things in the canvas so I put them in a setting. I created grass and clouds to make my abstract clock more interesting. I struggled with having the balloons and the triangles move according to the hour/minute/second variables the most. I am very glad I added those elements because it resulted in an animation for my abstract clock . 

Jina Lee – Project 06

This was my draft about what I wanted my abstract clock to be like.

My clock is of a pizza and soda. At first, I wanted the hours to portrayed by slices, so as the hours go by, a slice of the pizza gets eaten. While doing so, I realized that the seconds and minutes did not have much space when the hours went by. The seconds and minutes were the topics of the pizza. Due to that issue, I changed it so that the minutes and seconds continues to be added on to the pizza, while the hours was a separate object. I created a soda so that the drink can do down as the time gets closer to 12:00. Once it hits 12:00, the drink is refilled. I really enjoyed this project because there was so much you could do with it.

sketch

//Jina Lee
//jinal2@andrew.cmu.edu
//Section E
//Project 06

var h;
var s;
var m;
var g;
var pepperonix = [];
var pepperoniy = [];
var greenPepperx = [];
var greenPeppery = [];

function setup() {
    createCanvas(480, 480);
    background(176, 223, 229);

    //seconds
    //clarifying there are 60 seconds
    for (i = 0; i <= 59; i++) {
        //random location of pepperonix
        pepperonix[i]= random(60, 270);
        //random location of pepperoniy
        pepperoniy[i] = random(70, 250);
    }

    //minutes
    //clarifying there are 60 minutes
    for (g = 0; g <= 59; g++) {
        //random location of pepperonix
        greenPepperx[g]= random(60, 270);
        //random location of pepperoniy
        greenPeppery[g] = random(70, 250);
    }
}

function draw() {
    //the hours are in 12 not 24
    h = hour() % 12;
    s = second();
    m = minute();
    //variable that fits the hours to specific area
    var mapH = map(h, 12, 0, height / 3, 0);

    //light blue
    background(176, 223, 229);

    //crust
    noStroke();
    fill(128, 90, 70);
    ellipse(170, 170, 300, 300);
    fill(174, 141, 103);
    ellipse(170, 170, 260, 260);

    //cheese
    fill(248, 222, 126)
    ellipse(170, 170, 200, 200);
    fill(248, 222, 126)
    ellipse(170, 170, 200, 200);
    ellipse(100, 100, 80, 80);
    ellipse(200, 130, 150, 150);
    ellipse(200, 200, 150, 200);
    ellipse(220, 170, 150, 200);
    ellipse(150, 170, 200, 200);
    ellipse(160, 200, 200, 200);

    //drink
    fill(255);
    rect(340, 260, 100, 200);
    fill(176, 223, 229);
    rect(350, 260, 80, 190);
    fill(63, 32, 6);
    rect(350, 303, 80, 147);

    //straw
    strokeWeight(9);
    stroke(141, 2, 31);
    line(420, 240, 370, 430);
    line(420, 240, 460, 240);

    //hour
    //as the hours go on the drink slowly goes away
    //once the hour hits 12, the drink refills
    fill(176, 223, 229);
	  noStroke();
	  rect(350, 303, 80, mapH);

    //straw
    strokeWeight(9);
    stroke(141, 2, 31);
    line(420, 240, 370, 430);
    line(420, 240, 460, 240);

    //ice cube
    push();
    rotate(PI / 10.0);
    noStroke();
    fill(200);
    rect(500, 250, 20, 20);
    rect(440, 160, 20, 20);
    pop();
    push();
    noStroke();
    rotate(PI / 5);
    fill(200);
    rect(510, 70, 20, 20);
    pop();

    //number of seconds on clock
    //each pepproni is a second
    for (i = 0; i < s; i++) {
        //pepperoni
		    fill(141, 2, 31);
		    ellipse(pepperonix[i], pepperoniy[i], 5, 5);
	  }

    //number of minutes on clock
    //each greenpepper is a minute
    for (g = 0; g < m; g++) {
        //green pepers
		    stroke("green");
        arc(greenPepperx[g], greenPeppery[g], 10, 10, 0, PI + QUARTER_PI);
	  }
}

Kristine Kim – Looking Outward-06

Path, Casey Reas, 2001

Casey Reas is a generative artist and owns a website that is filled with variety of different types of generative art but the ones that I was most drawn into was Path and Tissues. They are both executed and created in a similar technique and are built around the ideas of neuroanatomist Valentino Braitenberg. They are a series of prints and images that documents the movement of synthetic neural systems. Each line in the image reveals the history of one system’s movement as it navigates its environment. I love these projects because of the textures its creating randomly and also the rapid movement it captures. I think the idea behind the works are executed very well. I personally admire Path a little bit more than Tissues because of its’ color palette. The combination of both cool and warm color makes the piece more livid and interesting. There is no end to observing these prints because there are so many details and “paths” that leads the audience into, but I love that about Path and Tissues. Rea’s website contains many more generative arts and prints that are very admirably and interesting. 

http://reas.com/path_p/

Tissues, Casey Reas, 2002

Carly Sacco – Project 6 – Abstract Clock

sketch

//Carly Sacco
//Section C
//csacco@andrew.cmu.edu
//Project 6 - Abstract Clock

function setup() {
	createCanvas(450, 450);	
}
	
function draw() {
	var sec = second();
	var min = minute();
	var hr = hour();
	var start = 140; //start is how far over on x axis you start drawing
	var diameter = 20; 

	background(225, 244, 252);
	
	//leaf
	fill(96, 163, 140);
	stroke(96, 163, 140);
	bezier(400, 150, 350, 400, 250, 450, 100, 400); //bottom of leaf
	bezier(400, 150, 250, 200, 250, 150, 100, 400); //top of leaf
	
	fill(151, 209, 185);
	bezier(400, 150, 325, 200, 400, 350, 100, 400);
	bezier(400, 150, 200, 250, 250, 250, 100, 400);

	//caterpillar
	k = hr % 12 
	for(i = 1; i <= k; i +=1) {
		noStroke();
		fill(217, 56, 102);
		ellipse(start + ((diameter)*(i)), 385 - (i * 18), diameter, diameter);
	}
	
	//caterpillar face
	fill(255, 231, 153);
	ellipse(155, 365, 5, 5);
	ellipse(160, 370, 5, 5);
	
	//antennas
	noFill();
	stroke(0);
	bezier(160, 360, 162, 360, 165, 355, 170, 354);
	bezier(165, 365, 162, 363, 164, 362, 170, 360);
	
	//nose
	noStroke();
	fill(255, 195, 186);
	ellipse(155, 370, 7, 7);
	
	//fly
	var wingy = 90
	var flyBodyY = 100
		
		noStroke();
		let flyBodyX = map(min, 0, 60, 0, 450); // makes the x position correspond to the minute
												//and the width of the canvas
		if (sec % 2 == 0) {//makes the fly bounce every second
		//fly wing
		fill(162, 166, 168);
		ellipse(flyBodyX, wingy, 45, 15);
		
		//fly body
		fill(208, 212, 214)
		ellipse(flyBodyX, flyBodyY, 50, 20);	
		
		//fly eye
		fill(0);
		ellipse(flyBodyX + 15, wingy + 5, 5, 5);
		
		} else {
		//wing
		fill(162, 166, 168);
		ellipse(flyBodyX, wingy + 5, 45, 15);
		
		//body
		fill(208, 212, 214)
		ellipse(flyBodyX, flyBodyY + 5, 50, 20);
		
		//fly eye
		fill(0);
		ellipse(flyBodyX + 15, wingy + 10, 5, 5);		
		}
}

When I was thinking about what to make for this project a fly had landed on my computer. I then thought about a creative way to use insects to represent the time. I thought an easy way to represent hour was by using a caterpillars body, and each circle of his body could represent the hour. The fly flapping every second was my next idea and then by letting him move across the screen to represent the minutes I thought was a cute way to add more motion to the screen.

I at first had trouble with how to convert the actual time to numbers to run in the code, but after solving those minor issues, I enjoyed drawing on the face and adding the leaf.