Project-06-Abstract-Clock

For this project, I used driving as the way of demonstrating time, which the driver will drive endlessly during day and night.

-The position of the car represents every second within a minute, moving from left to right (0-59).

-The position of the Tree represents every minute within an hour, moving from left to right (0-59).

-The Sun and light clouds demonstrate it’s the first 12 hours, while the Moon and the dark clouds demonstrate the 13th-24th hours.

-The amount of day bars (light blue) demonstrates how many hours it’s into the first 12 hours, while the amount of night bars (dark gray) demonstrates how many hours it’s into the 13th to 24th hours. All bars appear from left to right.

-The day bars are background of the sky in the nights, while the night bars are background of the sky in the day.

-The clouds are just dynamic decorations.

sketchDownload
/* Jiayi Chen
   jiayiche    Section A */
var h  //hours
var s  //seconds
var m  //minutes
var dayColor
var nightColor
var boxColor=[]
var cloudAndStarX=[]
var cloudAndStarY=[]
var cloudAndStarL=[]
var cloudAndStarH=[]
function setup() {
    createCanvas(480, 480);
    h = hour();
    s = second();
    m = minute();
    dayColor= color(135,206,250);
    nightColor= color(112,128,144);
    for(var i=0; i<12;i++){
        if(h < 12){
            boxColor[i]=nightColor;   //color of the day
        }else if(h>11){
        boxColor[i]=dayColor; //color of the night
        }
    }

    for(var i=0; i<17;i++){
        cloudAndStarX[i]=random(0,width-240);
        cloudAndStarY[i]=random(0,140);
        cloudAndStarL[i]=random(30,120)
        cloudAndStarH[i]=random(30,100)
    }
}

function draw() {
    //The Sky that represent hours
    //change the number of box to represent hours in night tmie
    h = hour();
    s = second();
    m = minute();
    background('gray');
    push();
    if (h < 12){ 
        for (var i=0; i<h;i++){
            boxColor[i]=dayColor
        }  
    //change the number of box to represent hours in night tmie
    }else if(h >= 12){
        for (var i=0; i<(h-12);i++){
            boxColor[i]=nightColor;
        }

    }

    for (var i=0; i<12;i++){  //Background sky colors changing base on day or night
        fill(boxColor[i])
        rect(i*width/12,0,width/12,height/2);
    }
    pop();

    //grass
    push();
    fill(0,255,127);
    rect(0,240,width,70)
    rect(0,height-65,width,65)
    pop();
    //road
    for (var i=0; i<5;i++){ 
        rect(i*100,350,50,25);
    }

    //The Car represent seconds
    car(s/60*width,360);


    //The Tree Represent minutes
    tree(m/60*width,200);


    //clouds and sun
    push();
    if(h<12){
        fill(255,69,0)   // the colors and shape for sun
        circle(60,60,50)
        for (var i=0; i<5;i++){
            fill(255,255,255,100) //clouds in day
            rect(cloudAndStarX[i]+s/60*width/4,cloudAndStarY[i],cloudAndStarL[i],cloudAndStarH[i]);   
        }
    //Clouds and a full moon 
    }else if(h>11){
        fill(246, 241, 213)   // the colors and shape for moon
        circle(width-50,60,50)
        for (var i=0; i<5;i++){
            fill(0,0,0,150) // clouds in night
            rect(cloudAndStarX[i]+s/60*width/4,cloudAndStarY[i],cloudAndStarL[i],cloudAndStarH[i]);   
        }
    }
    pop();

}


function car(cx,cy){
    //car body
    push();
    fill('red')
    rect(cx,cy,100,40);//main body
    rect(cx+25,cy-30,40,30);//middle
    triangle(cx+65,cy,cx+65,cy-30,cx+95,cy);//right
    triangle(cx+5,cy,cx+25,cy-30,cx+25,cy);//left

    //Weels
    fill('gray') //outer weels
    circle(cx+25,cy+40,25);
    circle(cx+75,cy+40,25);
    fill('ivory')//inner weels
    circle(cx+25,cy+40,17);
    circle(cx+75,cy+40,17);

    //windows
    fill('azure');
    rect(cx+28,cy-27,34,24);
    triangle(cx+68,cy-3,cx+68,cy-27,cx+92,cy-3);
    triangle(cx+10,cy-3,cx+22,cy-25,cx+22,cy-3);

    //lights
    fill('gold');//back lights and sub lights
    rect(cx+80,cy+20,20,5);
    rect(cx,cy+3,10,15);
    fill('yellow');//front light
    rect(cx+90,cy+5,10,12);
    pop();
}


function tree(tx,ty){
    push();
    push();
    fill('green');//leaves
    rect(tx-30,ty,90,50);
    rect(tx-15,ty-30,60,30);
    pop();
    fill(139,69,19);//tree log
    rect(tx,ty+20,30,80);
    pop();
}


Project 06

l

sketch
//Keng Pu (Paul) Li
//section A 

var minuteX = [];
var minuteY = [];
var minuteColor = [];
var sec;
var mnth;
var hr;

function setup() {
    createCanvas(300,400);
    rectMode(CENTER);
    //assigns array for minute fn

}

function draw() {
    background(40,10,10);
    sec = second()+1;

    //allows minute circles to produce jittering effect
     for(var i = 0; i<=minute(); i++){
        minuteX[i] = min(56+i*random(2.5,3),245);
        minuteY[i] = max(340-i*random(3,5),100);
        minuteColor[i] = minute()*4;
    }

    timeMonth();
    timeHours();
    timeMinutes();
    frameRate(sec); //higher the second faster the frame-> quickker jitters
}

function timeMonth(){
    mnth = month();
    noStroke();
    //changes color depending to season, fall = orange, winter =  blue, spring =  pink, summer = green, code in that order
    //also places circle on diff corner of that color depending on the season
    if(mnth>=9 & mnth<12){
        fill(255,160,70);
        circle(20,20,30);
    } else if(mnth>=12 & mnth<3){
        fill(18,130,210);
        circle(width-20,20,30);
    } else if(mnth>=3 & mnth<6){
        fill(255,100,220);
        circle(width-20,height-20,30);
    }else{
        fill(30,230,70);
        circle(20,height-20,30);
    }
    rect(width/2,height/2,200,300);
}


// draws a strike every hour and resets every 12 hr on top of the orange cube,, resets to 0 strikes each 24 hr

function timeHours(){
    hr = hour();
    var strikeW = (200/24) - 13;
    var strikeH = 30;
    fill(255,40,40);
    stroke(0.5);
    if(hr<24){
        for (var i = 0; i<hr; i++){
            rect((55+strikeW/2)-i*(strikeW-200/48),50-strikeH/2,strikeW,strikeH);
        }
    }else{
        var i = 0;
        for (var i = 0; i<hr; i++){
            rect((55+strikeW/2)-i*(strikeW-200/48),50-strikeH/2,strikeW,strikeH);
        }
    }
}

//for every minute, a ball is added into the orange box, and as time goes on the color of the balls get lighter, the spread also goes further ddepending on time

function timeMinutes(){
    noStroke();
    fill(0,0,0,0);
   for(var i = 0; i<=minute(); i++){
        circle(minuteX[i],minuteY[i],10);
        fill(minuteColor[i]);
    }
   

}

Randomness Blog

For this blog, I found “Eternal Connection” by Claus O.Wilke very interesting. In the series of work, he dives not only a generative method using parameters, but he also employs randomness to aid his iterations that are now available as NFT’s. His method of creating these included Javascript and WebAssembly that allows for the art to “run live in the browser”. Moreover, there were multiple strategies of generating these connections, including Perplexity progression, Random seed progression, and color palette progression. Each of these variates one single starting piece that progresses step by step in very different ways. For the random seed progression, it uses a code very similar to noise in Java, meaning between every step in the 2D or 3D noise, taking different combination of input data types Each version is different but still very closely related, creating gradual but powerful changes over a “randomizer’’ that remains constant over the course of a loop. Through combining the different progressions, the system can alter the shape, concentration, and color of the patterns. Wilke uses this to generate grids that show similar variations side by side to create interesting patterns, whether it is the changing colors, shapes, or density.

https://clauswilke.com/art/project/eternal-connection

Looking Outwards 06 :  Randomness

The work of MARK J. STOCK, the “The Yin and Yang Are Fractal #4” have inspired me with its random, dynamic motion that represents the concept of Yin and Yang in Tai Chi, which is a part of Chinese culture. It’s inspiring to see how the concept of Yin and Yang changing and interacting with each other in various layers and various sizes, and it gave me a sense of special beauty from the dynamic ink painting. The algorithms that generate its randomness also interest me with its simple code that forms the complicated structure and shapes of the art itself. According to Mark, the “color is passed from pixel to pixel in a regular grid using a very specific set of instructions.” The code generates randomness among pixels within a limited range, while it tries to adhere to a general shape, like a circle, at the beginning. Then the pixels randomly interact with nearby pixels in a certain range to create the art we saw. The creator’s artistic sensibilities manifest in the final form of random Yin and Yang interactions in the form of generated ink art, where Yin and Yang seem to be randomly blended together.

Videos: “The Yin and Yang Are Fractal #4” by MARK J. STOCK, produced in 2015

“The Yin and Yang Are Fractal #4” by MARK J. STOCK, produced in 2015
Link: Mark J. Stock (markjstock.com)

Link: Mark J. Stock (markjstock.com)

Project-06

This is my abstract clock:

In the sunflower I draw, I use its stem to represent the hour, that as time goes, the sunflower will gradually be taller; I use the petal of the flower to represent the minute; I use the color change of the leaf and the text to represent the second.

sketch

function setup() {
    createCanvas(300, 400);
    background(255);
}



function draw() {

    noStroke();
    background(242, 226, 204);

    //background leaf -- represent second
    if (second()%2 == 0) {
        fill(123, 142, 31);
    } else {
        fill(230, 143, 89)
    }

    push();
    translate(140, 200);
    rotate(radians(30))
    ellipse(-10, 0, 50, 15);
    rotate(radians(-60));
    ellipse(10, 30, 40, 10);
    pop();
    
    //base-flowerpot
    var pX = 150;
    var pY = 250
    var pHeight = 8;
    
    fill(187, 160, 133);
    beginShape();
    vertex(pX-50, pY);
    vertex(pX-60, pY+pHeight);
    vertex(pX-50, pY+2*pHeight);
    vertex(pX+50, pY+2*pHeight);
    vertex(pX+60, pY+pHeight);
    vertex(pX+50, pY)
    endShape();

    fill(170,119, 98)
    beginShape();
    vertex(pX-50, pY+2*pHeight);
    vertex(pX-30, pY+10*pHeight);
    vertex(pX+30, pY+10*pHeight);
    vertex(pX+50, pY+2*pHeight);
    endShape();


    //flower stem -- represents hour
    var sWidth = 10
    var sHeight= 50
    sHeight += hour();
    fill(123, 142, 31)
    beginShape();
    curveVertex(pX-sWidth, pY);
    curveVertex(pX-sWidth, pY);
    curveVertex(pX-sWidth/2, pY-sHeight);
    curveVertex(pX-sWidth*2, pY-2*sHeight);
    curveVertex(pX-sWidth, pY-2*sHeight);
    curveVertex(pX+sWidth/2, pY-sHeight);
    curveVertex(pX, pY);
    curveVertex(pX, pY);
    endShape();

    //sunflower petal -- represent minute
    push();
    translate(pX-sWidth, pY-2*sHeight);
    noStroke();
    for (var i=0; i<minute(); i++) {
        rotate(radians(6));
        fill(252, 171, 1);
        ellipse(0, 20, 5, 65);
        fill(228, 121, 1);
        ellipse(0, 20, 3, 35);
    }

    //seeds
    fill(41, 5, 2);
    circle(0, 0, 60);
    fill(37, 22, 1);
    circle(0, 0, 30);
    fill(34, 28, 0);
    circle(0, 0, 20);
    pop();
    
    //Text -- represent second
    if (second() %2 == 0) {
        textSize(25);
        fill(254, 203, 1, 220);
        text('Have A Good Day!', 40, 40);
    } 
   
}


Looking Outwards-06

The project I found this week is Aaron Tobey’s “Visualizing Randomness”, which would be an excellent example of using randomness in the computation of art. The two pictures I’m specifically interested in are ‘Graphic random number generator run matrix(1min)’ and ‘Graphic random number generator run matrix process’. When the generator starts working, the random white lines that appear on the black background begin to create a spatial feeling and balance of density. Abstractness shown in the lines creates visual artistry and there are many possibilities for future development in this drawing.

Another interesting point of randomness art is that computers could satisfy the need for surprise in the artwork. If the Visualizing Randomness is created by hand, though a good artist can also achieve great hierarchy and order in the drawing, there would be details that the artist hasn’t considered. With the incorporation of digital tools, the content can be more subconscious and balanced.

here is the link to more information:

https://aarontobey.com/Visualizing-Randomness

Looking Outwards 06

Kenneth Martin’s Chance and Order incorporates aspects of randomness through a combination of chance events and artistic decisions. In order to create each pair of lines, Martin draws numbers (two at a time), randomly from a bag starting counter-clockwise. I admire the pure simplicity of the piece, along with the concrete repetition of lines across the canvas. Chance and Order offers a new perspective of the scientific and artistic world through incorporating creative elements and those of mathematical probability.

The points of intersection on the art are also written and randomly chosen from small cards, and a line is made between each successful pair of numbers picked out. The title, “Chance and Order” also symbolizes the greater process behind the work, a product of random events and ordering procedures. I admire Martin’s ability to hand-draw so precisely, and create these nearly computer-generated forms of media in the collections.

Hannah Wyatt

Looking Outwards-05

One project that I found to be very interesting was Tentacle Tower by Yoichiro Kawaguchi, created in 2005. It’s abstract and interactive, allowing viewers to walk around it. I find myself lost in the design while looking at it, and find the complex shapes and patterns to be fascinating. The medium is a Lenticular 30 picture light box, and was the first time that such a huge-scale Lenticular image has been used to cover four surfaces. While I’m not completely sure about the algorithm, the website says that it is a high-res image composed of 15 serial flames. Kawaguchi’s artistic sensibilities has to be very specific in order to convey such a complex work of art. A lot of thought had to go into all the different shapes and patterns and how they would interact with each other, and the effort and time that it took to make is obvious.

See and learn about the work here.

looking outwards – 06

Robbie Barrat – AI paintings

AI Generated Landscape #6 – Robbie Barrat, 2018

Robbie Barrat, a Stanford researcher, has become a cultural phenom in the world of fashion and computer-generated art with AI-generated paintings fetching huge sale prices and his collaborating with renowned fashion brands like Acne Studio and Balenciaga. There’s something utterly jarring the moment your eye hits the “canvas” of a Barrat work; it’s quite other-worldly in the best sense possible–in the most computer sense possible. Just like how the Van Gogh’s and Monet’s of the art world cemented their place in cultural history through the inherent motif inculcated in their “style,” i.e., the stylistic elements that immediately separate their works from others in a purely aesthetic way (e.g., how their brush strokes in a particular way, how those patterns culminate, etc.). Weirdly enough, Barrat clearly puts in the effort in his program to be able to do something similar as it takes two weeks for such paintings to be generated, and when you look at enough of them, you can easily recognize the stylistic elements we could call Barratian. The beautiful drippiness, haziness, euphoric fuzziness, and heavy-like “brush-strokes” make for a hyperreal, thick, layered oil painting with textures that are impossible to create with real paint. His AI is able to do this by analyzing the thousands of painting examples Barrat has fed into its system in order to make these paintings. Those examples along with the AI guidance constitute the probability distributions of the program, but otherwise you can see how random the AI can get with how vastly different the paintings are aesthetically. I feel like Barrat truly made something special here and am very interested in seeing where he ends up in either the computer or art world.

https://www.bloomberg.com/news/articles/2018-05-17/ai-made-incredible-paintings-in-about-two-weeks

Looking Outwards – 05

I don’t know if this counts as video game graphics as it’s related but not used for game purposes. The tool I’ll be looking at is an AI called Nokemon, this is an AI crated using a database of 3D Pokemon models, and tries generating a new 3D Pokemon model using filters such as Pokemon typings, the main color of the Pokemon, and if it is a rare legendary or not. I appreciate this as while I do enjoy Pokemon, I think it more comments on the sophistication of creating non-human characters. As Pokemon can be designed from an object, animal, etc, watching AI try to identify these human-designers inspirations and make their it’s own Pokemon based off those inspirations. I’m supposing that the AI uses the same engine 3D modelers use, and analyzes how each shape, color, and property of each model is related to each other, and tries to create something similar. As you can see from using the tool, the AI is’t that great at creating Pokemon, they seem heavily uninspired and nonsensical, but watching what elements the AI pulls from pre-existing models is quite interesting.

https://nokemon.eloie.tech/