Project-07-Curves

Trying to get the curve was pretty difficult. The website had a lot of equations on it and I picked through them to get the information I needed. Once I got the curve I wanted, the issue rose of how to implement it in the code. After experimenting for a bit and looking at the code given on the assignment instructions for reference, I eventually figured it out. After getting the curve to work, I changed some values so that it changed along with the mouse, making it interactive. I also added and changed other elements to make the image prettier, such as adding colors and flowers.

sketchsal

var num_points = 100;//number of points being drawn

function setup() {
    createCanvas(480, 480);
    frameRate(25);
}

function draw() {
    var hW = width / 2;//half of width
    var hH = height / 2;//half of height
    background("pink");
    for(var i = 0; i < 3; i++){//draws rows of elements
        for(var g = 0; g < 3; g++){//drawns columns of elements
        ellipse((width / 2) * i,(height / 2) * g, (mouseX / 4) * 1,
            (mouseX / 4) * 1);//circles being drawn
        }

    }
    //circles
    noStroke();
    fill(255, 232, 232);
    ellipse(120,120, 10,10);//upper left
    ellipse(360,120, 10,10);//upper right
    ellipse(120,360, 10,10);//lower left
    ellipse(360,360, 10,10);//lower right
    //flowers
    fill(255, 69, 69);
    ellipse(120,120, 5,15);//upper left
    ellipse(360,120, 5,15);//upper right
    ellipse(120,360, 5,15);//lower left
    ellipse(360,360, 5,15);//lower right

    fill(255, 117, 117);
    ellipse(120,120, 15,5);//upper left
    ellipse(360,120, 15,5);//upper right
    ellipse(120,360, 15,5);//lower left
    ellipse(360,360, 15,5);//lower right
    fill('red');//makes circles red
    stroke(0);//makes everything outlined

    //draw curve (Astroid) 
    push();
    translate(width / 2, height / 2);//(240,240)
    drawAstroid();
    pop();
}
function drawAstroid() {//function that draws curve
    var x;//calls x
    var y;//calls y
    var vx = mouseX / 5.0;//value of mouseX divided by 5 
    fill(255, 200, 200);//pink
    beginShape();//makes it so that the lines don't stay after being drawn
    //(there isn't a bunch of overlapping blackness)
    for (var i = 0; i < num_points; i++) {//increments elements from 0 to 100
        var t = map(i, 0, num_points, 0, TWO_PI);//runs curve from 0 to 2 pi
        
        x = vx * pow(cos(t * vx),3);//formula for x values
        y = vx * pow(sin(t * vx),3);//formula for y values
        vertex(x, y);
    }
    endShape(CLOSE);//ends shape
}

Before adding curve and circles
Finished product

Sydney Salamy: Looking Outwards-07

Herald Harbinger is a piece created by Jer Thorp in 2018. The piece is a number of columns made up of bars of screens. These screens visualize both the human activity that occurs outside the plaza (ie: movements of people and of vehicles) and the real-time activity of the Bow Glacier located in the Canadian Rockies, and the glacier activity is made audible outside the plaza as well. These visualized data feeds are supposed to contrast with and show the relationship between each other (human activity vs. natural activity).

 

  • I admire how much effort is put into the project to get it to work. Not only did they have to go all the way to an iceberg to get the sounds, but instead of just getting a recording and leaving, they decided to set up their equipment so that the sound is collected in real time. I also like the idea of humans vs. nature. The way Thorp used moving lights to portray this relationship was interesting, and resulted in a pretty piece. I like their decision to play the sounds of the glacier outside the building. Since it’s an urban area, there isn’t much of a chance for interaction with nature, especially nature of this type, making the choice much more impactful and interesting.

 

  • I don’t know much about the algorithms that generated the work, but I assume it’s relatively complicated. The algorithms would need to be able to convert the information they are receiving from the two very separate areas into lights to be portrayed on the screens. I’m not sure if specific sounds got specific positions and/or colors on the screens, or whether it was all random, but this would have to have been written in the algorithms as well. This conversion would also have to be done in real time. 

 

  • Thorp’s work revolves around data, and he is one of the world’s most well-known data artists. Herald Harbinger uses data collected from the equipment near the glacier and the urban area outside the plaza the piece is in to create the piece itself. The data is what is shown interacting on the screens.
Video demonstrating the art piece Herald Harbinger. It shows the piece in action, lights changing in correspondence to the changes in the sound that are being played during the video. It also shows outside the building where the sounds of the glacier is being played and where the sounds of human life are being taken from.
Equipment used to gather the sound data from the Bow Glacier in the Canadian Rockies. Pictured is a number of crates with wires and other equipment inside, along with a stand holding up pannels.

Sydney Salamy: Project-06-Abstract-Clock

Because of the time of year, I decided to make mine about Halloween. I based my design on the Charlie Brown Halloween special “It’s The Great Pumpkin, Charlie Brown”. I looked up a bunch of photos from this special and started taking what I liked from them and mixing them into my sketch. I had my sketch be of the pumpkin patch where the kids would wait for the Great Pumpkin, and would have the sun and moon tell what time of day it was. I also decided to have the sky change color in response to these. I used if statements and the hour() variable in order to accomplish this. I then went about creating the patch, using for loops to create lots of leaves and also the lines dividing a fence. I individually created each pumpkin in the patch, making the main one the kids are behind the largest and bumpiest.

My Rough Draft

sketchssal

function setup(){
    createCanvas(480,480);	 
}

var backColorR = 168;//red value
var backColorG = 215;//green value
var backColorB = 255;//blue value
var lSW = 10;//leaf width
var lSH = 10;//leaf height
var gSP = 20;//space between columns
var vSP = 20;//space between rows
var gA = 20;//# added to g
var vA = 350;//# added to v
var dotX = 213;//x value of girl's dot
var dotY = 352;//y valye of girl's dot
var lineX = 244;//x value of first stripe point
var lineY = 345;//y value of first stripe point
var bFaceX = 258;//x value of center of boy's head
var bFaceY = 316;//y value of center of boy's head
var gFaceX = 211;//x value of center of girl's head
var gFaceY = 316;//y value of center of girl's head

function draw() {
    var H = hour();
    //"clock" part
    push();
    noStroke();
    //sky colors
    //changes sky color according to real hours
    if(H > 20){//black
        backColorR = 0;
        backColorG = 0;
        backColorB = 0;
    } 
    else if(H > 16){//dark blue
        backColorR = 1;
        backColorG = 25; 
        backColorB = 145;
    }
    else if(H > 12){//blue
        backColorR = 143; 
        backColorG = 182;
        backColorB = 255;
    }
    else if(H > 8){//light blue
        backColorR = 168;
        backColorG = 215;
        backColorB = 255;
    }
    else if(H > 4){//yellow
        backColorR = 255; 
        backColorG = 227;
        backColorB = 143;
    }
    else{//pink
        backColorR = 255;
        backColorG = 94;
        backColorB = 129;
    }
    pop();
    
    background(backColorR,backColorG,backColorB);//sky
    //fence 
    fill("white");
    rect(367,300, 112,70);//fence
    for(var i = 0; i < 7; i++){//fence dividers
        line((i * 16) + 367,300, (i * 16) + 368, 370);//draws dividers
    }
    //sun
    //changes sun position and color according to real hours
    if(H > 12 & H < 19){//13 and above
        fill(255, 219, 56);
        ellipse(width / 2, (H * 23), (width / 2) - 10,(height / 2) - 10);         
     }
     //moon
    else if(H > 18){//19 to 0/24
        fill(255, 217, 79); 
        ellipse(width / 2, height - (H * 15), (width / 2) - 10,
            (height / 2) - 10);
    }
    //sun
    else{//0 to 12
        fill(255, 219, 56);
        ellipse(width / 2, height - (H * 30), (width / 2) - 10,
            (height / 2) - 10);
     }
    pop();
    noLoop();
    //decorations
    push();
    strokeWeight(.2);
    line(374,308, 374,318);//fence line (FL) 1
    line(378,310, 378,330);//FL2
    line(390,334, 390,346);//FL3
    line(405,305, 405,315);//FL4
    line(410,311, 410,330);//FL5
    pop();
    push();
    fill("green");
    noStroke();
    rect(0,360, 480,120);//grass background
    ellipse(width / 2,393, 640,100);//grass hill
    pop();    
    //leaves on the ground
    push();
    noStroke();
    for(var g = 0; g < 20; g++){//increments elements
        for(var v = 0; v < 10; v++){//draws ellipses
            fill(2, 84, 24);//darkest green
            ellipse((g * (gSP + 7)) + (gA - 10),(v * (vSP - 5)) + (vA + 7), 
                lSW,lSH + 2);
            ellipse((g * (gSP + 7)),(v * (vSP - 5)) + (vA + 20), lSW,lSH - 4);
            ellipse((g * (gSP + 7)) + gA,(v * (vSP - 5)) + (vA + 15), 
                lSW,lSH + 1);
            ellipse(((g + (gA - 1)) * (gSP - 3)) - (gA * 12.5),(v * (vSP - 5))
             + vA, lSW,lSH + 1);
            fill(15, 99, 56);//dark green
            ellipse((g * (gSP + 9)) + gA,(v * (vSP - 5)) + (vA + 7), 
                lSW,lSH + 2);
            ellipse((g * (gSP * 2.25)),(v * (vSP - 5)) + (vA + 20), lSW,
                lSH + 3);
            ellipse((g * (gSP * 1.75)) + gA,(v * (vSP - 5)) + (vA + 15), 
                lSW,lSH);
            fill(158, 83, 2);//dark orange
            ellipse((g * (gSP * 2.5)) + (gA + 7),(v * (vSP * 2)) + (vA + 7), 
                lSW + 3,lSH);
            ellipse((g * (gSP * 1.5)) - (gA - 5),(v * (vSP * 2.25)) + 
                (vA + 25), lSW,lSH - 3);
            fill(2, 158, 43);//green
            ellipse((g * (gSP * 1.75)) + (gA + 7),(v * vSP) + (vA + 7), 
                lSW,lSH);
            ellipse((g * (gSP * 2)) - (gA / 4),(v * (vSP * 2.5)) + (vA + 20), 
                lSW,lSH);
            fill(158, 18, 2);//red
            ellipse((g * (gSP * 3.4)) + (gA - 10),(v * (vSP + 5)) + (vA + 4), 
                lSW,lSH - 1);
            fill(122, 108, 26);//olive green
            ellipse((g * (gSP * 2.25)) + (gA + 7),(v * vSP) + (vA + 7), 
                lSW,lSH);
            ellipse((g * (gSP * 1.5)) - (gA / 4),(v * (vSP + 15)) + (vA + 3), 
                lSW,lSH - 2);
        }
    }
    pop();
    //characters 
    push();
    noStroke();
    //_girl's hair
    fill("yellow");
    ellipse(gFaceX,gFaceY - 1, 26,26);//main hair
    ellipse(gFaceX + 5,gFaceY, 28,20);////right hair
    ellipse(gFaceX - 5,gFaceY + 2, 28,20);//left hair
    ellipse(gFaceX - 2,gFaceY - 17, 10,10);//main bun
    ellipse(gFaceX - 2,gFaceY - 16, 15,7);//left and right buns
    //-skin-
    fill(250, 217, 162);//skin color
    //boy skin 
    quad(bFaceX - 5,330,bFaceX - 3.5,328, bFaceX + .5,328,
        bFaceX + 1,331);//boy's neck
    ellipse(bFaceX,bFaceY, 22,25);//boy's head 
    ellipse(bFaceX - 3,bFaceY + 2, 24,20);//boy's cheek
    quad(268,332,275,331, 276,335,269,338);//boy's right arm
    quad(244,330,236,328, 235,332,241,336);//boy's left arm
    ellipse(278,332, 7,7);//boy's right hand
    ellipse(233,329, 7,7);//boy's left hand
    ellipse(bFaceX + 11,bFaceY + 4, 5,5);//right ear
    ellipse(bFaceX - 13,bFaceY - 1, 5,5);//left ear
    //girl skin
    quad(gFaceX + 1.5,332,gFaceX + 2,327, gFaceX + 4,327,
        gFaceX + 6.5,331);//girl's neck
    ellipse(gFaceX,gFaceY, 24,24);//girl's head 
    triangle(206,338, 222,370, 226,336);//right and left arm
    ellipse(gFaceX + 12,gFaceY - 1, 5,5);//right ear
    ellipse(gFaceX - 12,gFaceY + 2, 5,5);//left ear
    pop();
    //-clothes-
    //boy clothes
    fill("red");
    quad(238,355,252,331, 260,332,266,355);//boy's shirt
    quad(260,332,267,332, 268,338,263,342);//right shirt sleeve
    quad(252,331,245,330, 242,336,246.5,340);//left shirt sleeve
    //girl clothes
    fill("lightBlue");
    ellipse(222,336, 7,7);//right shirt sleeve
    ellipse(210,338, 7,7);//left shirt sleeve
    quad(209,360,212,333, 218,332,232,354);//girl's shirt
    ellipse(212,302.5, 5,8);//right side of bow
    ellipse(206,303, 5,8);//left side of bow    
    //_boy's hair
    line(bFaceX - 3,bFaceY - 13, bFaceX - 6,bFaceY - 10);
    line(bFaceX,bFaceY - 13, bFaceX - 3,bFaceY - 10);
    line(bFaceX + 3,bFaceY - 12, bFaceX,bFaceY - 9);
    line(bFaceX + 6,bFaceY - 10, bFaceX + 3,bFaceY - 7);
    line(bFaceX + 9,bFaceY - 7, bFaceX + 6,bFaceY - 5);
    line(bFaceX + 10,bFaceY - 4, bFaceX + 7,bFaceY - 2);
    line(bFaceX + 10,bFaceY - 1, bFaceX + 8,bFaceY);
    push();
    //-small details-
    strokeWeight(1.5);
    //_eyes
    //boy
    point(bFaceX + 2,bFaceY - 2);//boy left eye
    point(bFaceX - 6,bFaceY - 4);//boy right eye
    //girl
    point(gFaceX - 5,gFaceY - 4);//girl left eye
    point(gFaceX + 3,gFaceY - 5);//girl right eye
    //_on clothes
    //boy's stripes
    line(244,345, 264,350);//bottom
    line(lineX + 2,lineY - 4, lineX + 19,lineY + 1);//2
    line(lineX + 5,lineY - 7, lineX + 18,lineY - 3);//3
    line(lineX + 7,lineY - 11, lineX + 17,lineY - 8);//top
    line(lineX + 20,lineY - 12, lineX + 21,lineY - 5);//right sleeve
    line(lineX + 5,lineY - 14, lineX + .5,lineY - 7);//left sleeve
    //girl's dots
    point(dotX,dotY);//left 
    point(dotX + 6, dotY - 6);//middle
    point(dotX + 7, dotY - 12);//right
    point(dotX + 2, dotY - 17);//right
    point(dotX + 10, dotY - 18);//right sleeve
    point(dotX - 3, dotY - 14);//left sleeve
    point(dotX - 8, dotY - 50);//bow left
    point(dotX, dotY - 48);//bow right
    point(dotX - 2, dotY - 52);//bow right top
    push();
    //_smiles
    //boy's
    fill("red");
    arc(255,320, 7, 6, 0, PI, CHORD);
    //girl's
    noFill()
    arc(211,319, 8, 6, 0, PI, OPEN);
    pop();
    pop();
    //-pumpkins-
    push();
    fill("orange");
    //main pumpkin
    ellipse(width / 2, (height / 2) + 132, 40,47);//middle bump
    ellipse((width / 2) - 11, (height / 2) + 133, 47,46);//left bump
    ellipse((width / 2) + 11, (height / 2) + 133, 47,46);//right bump
    ellipse(width / 2, (height / 2) + 135, 55,45);//big pumpkin base
    ellipse((width / 2) - 10, (height / 2) + 135, 35,45);//left inner gump
    ellipse((width / 2) + 10, (height / 2) + 135, 35,45);//right inner gump
    ellipse((width / 2), (height / 2) + 137, 20,45);//most inner bump lines
    //other pumpkins
    fill(224, 132, 4);
    ellipse(width - 140,height - 30, 20,18);//1 (medium)
    ellipse(width - 140,height - 30, 10,18.5);//1 middle part
    fill(227, 127, 27);
    ellipse((width / 2) - 40,height - 30, 40,48);//2 (long / big)
    ellipse((width / 2) - 40,height - 30, 20,48);//2 middle part
    fill(227, 104, 27);
    ellipse((width / 2) - 50,height - 100, 9,7);//3 (small)
    ellipse((width / 2) - 50,height - 100, 5,7);//3 middle part
    fill(255, 81, 0);
    ellipse(width - 25,height - 130, 30,35);//4 (upper right)
    ellipse(width - 25,height - 130, 20,35);//4 middle part
    fill(224, 96, 4);
    ellipse(width / 8,height - 60, 40,30);//5 (left)
    ellipse(width / 8,height - 60, 20,30);//5 middle part
    fill(255, 86, 48);
    ellipse(width / 12,height - 110, 20,17);//6 (upper left)
    ellipse(width / 12,height - 110, 10,17);//6 middle part
    fill(242, 59, 22);
    ellipse(width - 180,height - 70, 15,15);//7 (right of main)
    ellipse(width - 180,height - 70, 10,15);//7 middle part
    fill(227, 98, 7);
    ellipse(width - 15,height - 15, 20,20);//8 (left corner)
    ellipse(width - 15,height - 15, 12,20.5);//8 middle part
    pop();
}

Sydney Salamy: Looking Outwards-06

The work is called Schotter (Gravel Stones) by Georg Nees, created in 1966. It is a vertical piece with a slightly tilted rectangle made of little clear squares that slowly separates and comes apart as the viewer looks further down it. It was meant to show the effects of change and relationship between order and disorder.

  • I really like the simplicity of the piece. It’s hard to explain why, I just like how Nees was able to do what he did with so little. I also like how despite the simplicity, he was able to still convey his message about order developing into disorder and vice versa (depending how the viewer looks at it). A lot of times, art this simple, if it has any meaning at all, tends to be very obscure, leaving it all up to the viewer. Here, the piece is still simple and leaves some interpretation, but there is still pretty clear intention and meaning behind it.
  • According to Media Art Net, the piece was produced by the programming language ALGOL, and was created by random generators. It was made by “invoking the SERIE procedure” (which controls the composition process), with the “non-parametric procedure QUAD”. QUAD is located in lines four through 15 of the generator and generates the squares with constant lengths and random locations along with varying angles. The position of the squares at certain points are influenced by random generators, such as J1, and the angles by J2. Counter index 1, invoked by each QUAD call, controls the “successively increasing variation between the relative coordinates P and Q, and the angle position PSI of a given square…” So essentially, Nees had influence over his work, creating an outline for what it would look like, but the end result was left up to the pseudo-random numbers.
  • Georg Nees is considered a founder of computer art and graphics. He seemed to experiment with what he was given, using languages like ALGOL, made for scientific computers, to create his works. He experimented quite a bit with random numbers. A lot of his work seemed to involve basic clear shapes and/or lines, along with a little pseudo-randomness. This can all be seen in Schotter, since the shapes being used are simple squares, and there is a bit of randomness to things like their placement and angles.
Art with lots of squares by Georg Nees
Schotter By Georg Nees

Sydney Salamy: Project-05-Wallpaper

sketch-ssalamy

var dx = (500/4);//width divided by # of lilies per row
var dy = (500/4);//height divided by # of lilies per column

function setup(){
    createCanvas(500,500);
    noLoop();	 
}

function draw() {
    //background(66, 85, 255);
    background(35, 57, 252);//blue
    noStroke();
    //for loops
    for(var w = 0; w < 4; w++){ //draws horizontal rows of lilies
        for(var h = 0; h < 4; h++){ //draws vertical columns of lilies
            //lily pads
            fill(101, 224, 150);//green
            arc((dx / 2) * (2 * w + 1),(dy / 2) * (2 * h + 1), dx / 1.3, dy / 1.3,
              -0.4, 1.4 * PI + QUARTER_PI, PIE);//main lily pads (largest)
            fill(58, 201, 168);//bluer green
            arc((dx / 2) * (2 * w + 1) + 30,(dy / 2) * (2 * h + 1) + 55, dx / 5, dy / 5,
              -0.3, 1.4 * PI + QUARTER_PI, PIE);//lily pads 1 (largest of the side ones)
            fill(58, 201, 191);//bluer bluer green
            arc((dx / 2) * (2 * w + 1) + 48,(dy / 2) * (2 * h + 1) + 35, dx / 8, dy / 8,
              -0.3, 1.4 * PI + QUARTER_PI, PIE);//lily pads 2
            fill(58, 196, 201);//light blue
            arc((dx / 2) * (2 * w + 1) + 56,(dy / 2) * (2 * h + 1) + 17, dx / 10, dy / 10,
              -0.3, 1.4 * PI + QUARTER_PI, PIE);//lily pads 3
            fill(58, 175, 201);//blue
            arc((dx / 2) * (2 * w + 1) + 57,(dy / 2) * (2 * h + 1) + 0, dx / 12, dy / 12,
              -0.3, 1.4 * PI + QUARTER_PI, PIE);//lily pads 4 (smallest)
            //lily pad flowers (pink)
            fill(255, 199, 217);
            ellipse((dx / 2) * (2 * w + 1) + 30,
            (dy / 2) * (2 * h + 1) + 55, 25,10);//horizontal lily pads 1
            ellipse((dx / 2) * (2 * w + 1) + 30,
            (dy / 2) * (2 * h + 1) + 55, 10,25);//vertical lily pads 1
            fill(255, 140, 177);
            ellipse((dx / 2) * (2 * w + 1) + 48,
            (dy / 2) * (2 * h + 1) + 35, 15,7);//horizontal lily pads 2   
            ellipse((dx / 2) * (2 * w + 1) + 48,
            (dy / 2) * (2 * h + 1) + 35, 7,15);//vertical lily pads 2
            fill(255, 105, 153);
            ellipse((dx / 2) * (2 * w + 1) + 56,
            (dy / 2) * (2 * h + 1) + 17, 10,5);//horizontal lily pads 3
            ellipse((dx / 2) * (2 * w + 1) + 56,
            (dy / 2) * (2 * h + 1) + 17, 5,10);//vertical lily pads 3
            fill(255, 66, 127);
            ellipse((dx / 2) * (2 * w + 1) + 57,
            (dy / 2) * (2 * h + 1) + 0, 8,4);//horizontal lily pads 4
            ellipse((dx / 2) * (2 * w + 1) + 57,
            (dy / 2) * (2 * h + 1) + 0, 4,8);//vertical lily pads 4
            //lily pad flower (white)
            fill(255);
            ellipse((dx / 2) * (2 * w + 1),
            (dy / 2) * (2 * h + 1), 28,13);//horizontal lily pads 1
            ellipse((dx / 2) * (2 * w + 1),
            (dy / 2) * (2 * h + 1), 13,28);//vertical lily pads 1
        }
  }
    
}

I decided to make my designs plant based and chose ferns as one of the plants. I then realized those would be complicated, so I chose lily pads and flowers instead. I decided to vary the sizes of my lilies to make them prettier and give my design variation. I then varied the colors as well. After, I added flowers and also varied the colors and sizes of them. I changed the colors throughout to make them complement each other more and make the piece as a whole more aesthetically pleasing. For example, my background was originally very dark brown.

Picture of my rough drafts
My Rough Drafts

Sydney Salamy: Looking Outwards-05

The piece I chose to discuss wasn’t really given a name, but was described as procedural mesh splitting using tyFlow, created in 2019 by Tyson Ibele. tyFlow being a particle simulation tool used for 3ds Max and created by  Ibele (instagram username _tyflow_). The work is a video showing a series of limbs and a face. These are slowly torn apart to reveal the insides, which are a gold substance that acts like a balloon.

  • I really enjoyed the work for the imagery. It starts off with what looks like a pretty realistic limb with a long gold cut on it. But then expectations are subverted as the limb pulls apart into two. This goes on throughout the video, with the only things really changing being the parts being ripped and the angle of the shot. So I guess what I admire about it is the subversion of expectations and what it’s caused by. Ibele takes something familiar like body parts and then makes them act very differently from how they’re supposed to act. I like how this kind of idea can be applied to so many different things and be taken in so many different directions. It  allows interesting imagery. No one would be able to see an arm or face act like this anywhere else. The way the gold parts reform really caught my as well eye since the result was stuff like a leg with three feet on the end, again, something that couldn’t really be see in real life.
  • I suppose the algorithms that generated/rendered the work must have been pretty complicated. The imagery in the video was very detailed, and the “jiggling” physics of the body parts seemed realistic, with a lot of different movements having to be generated.
  • The creator Ibele works a lot with 3D graphics, and his artistic sensibilities can be seen in the similarities between these works. Looking at his his pieces, it seems many of them kind of deal with “subverting expectations”. What I mean by this is that he’ll show something like a person or objects like Legos, and then he’ll make them act in unexpected ways. For example, he’ll have the person be made of ribbons, and as they walk they’ll unravel and fall apart. Or he’ll show water being poured or a small explosion taking place, but they will be made of Legos.

Sydney Salamy: Project-04-String-Art

My process started with trying to figure out how to get the strings to “curve” (or have the illusion to curve). After drawing a bunch of hatch marks didn’t work, I studied the photos on the blog of the 7th grade teacher until I understood the pattern. After a bit of experimentation, I was able to get the formula for my for loop. Then I just kept modifying it and adding colors till I was satisfied.

sketchsydsal

    var lx = 20;//width divided by 20
    var ly = 15;//height divided by 20

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

function draw() {
    background(255, 150, 213);

    //red heart
    fill("red");
    noStroke();
    ellipse(width/2 - 23, height/2, 50,50);//left heart bulb
    ellipse(width/2 + 23, height/2, 50,50);//right heart bulb
    triangle((width / 2) - 55,height / 2 + 10, width / 2,(height / 2) 
        + 60, (width / 2) + 55,height / 2 + 10);//base of heart
    
    //makes curve on top right
    for(var i = 0; i < lx; i += 1){//sets up increment and # of elements
        stroke(247, 25, 25);
        line(width - lx * i,0, width,height - ly * i);//draws lines
    }
    //makes curve on top left
    for(var j = 0; j < lx; j += 1){//sets up increment and # of elements
        stroke(250, 90, 96);
        line(0 + lx * j,0, 0,height - ly * j);//draws lines
    }
    //makes curve on bottom left
     for(var t = 0; t < lx; t += 1){//sets up increment and # of elements
        stroke(255, 150, 175);
        line(width - lx * t,height, 0,height - ly * t);//draws lines
    }
    //makes second curve on bottom right
     for(var z = 0; z < lx; z += 1){//sets up increment and # of elements
        stroke(255, 201, 201);
        line(height - lx * z,height, 0,height - ly * z);//draws lines
    }
    //makes second curve on top right
     for(var z = 0; z < lx; z += 1){//sets up increment and # of elements
        stroke(255, 201, 201);
        line(height - lx * z,0, width,height - ly * z);//draws lines
    }
}

My Sketches/Rough Drafts

Sydney Salamy: Looking Outwards-04

The project I chose to write about is Weather Thingy by Adrien Kaeser. It was made in 2018 with help from Cyril Diagne, Gaël Hugo, Christophe Guignard, Laura Perrenoud, Tibor Udvari, Pietro Alberti, and Marc Dubois. The project is a sound controller that uses the weather to make music. The device converts things like rain, wind, and sunlight into midi data which instruments can then interpret. It gets this data with its rain gauge, brightness sensor, and wind anemometer and vane. The other part of the piece is a controller that’s responsible for the transforming of the weather data.

 

  • I really like the idea of incorporating natural events into manmade activities. The device allows for there to be input from the musician but also allows for a significant amount of randomness from the weather. I like the idea of mixing natural and manmade things because they are essentially opposite things, so having them brought together to create something pretty is a nice idea to me. The random aspect to some of the music is interesting as well. Leaving some stuff up to chance is exciting because no one can really guess what the end product will sound like. 
  • I don’t know much about the algorithms that generated the work. However, I assume they are moderately complicated. Kaeser would have had to assign certain notes and other musical aspects to certain wind speeds, direction, and brightness.
  • The artist seems to have a minimalist aesthetic. I assume this because the final form is very simple yet effective. The video demonstrating is also minimalist looking (although I don’t know how much creative power he had over that). If the music he creates is counted as part of the final product, then it also shows his artistic sensibilities. He is able to play his own notes on the keyboard that he came up with, with the weather music added to it. Also, the different weather events cause different kinds of sounds, so he obviously imagined those events sounding a certain way and then incorporated that into the product.
Video Demonstrating The Music Of “Weather Thingy”

Sydney Salamy: Project-03-Dynamic-Drawing

My project was pretty tricky to make. Trying to get the ellipses to expand and stop at different points took a while, and I had to settle for them all moving at once, and there was a lot of trial and error. My end result is a Day to Night transition.

My Original Draft For The Project

ssalsketch

var centX = 320;//center x value
var centY = 240;//center y value
var dTopY = 335;//diamond top
var dBottomY = 145;//diamond bottom
var dRightX = 415;//diamond right
var dLeftX = 225;//diamond left
var x = 13;//slows triangles down through division



function setup() {
    createCanvas(640,480);    
}

function draw() {
    background(6, 2, 240);//blue sky
    noStroke();

//sunlight layer variables
var starAngle = mouseX;
var l1 = 190;//layer 1
var l2 = mouseX + 1 * 24;//layer 2
var l3 = mouseX + 1 * 30;//layer 3
var l4 = mouseX + 1 * 18;//layer 4
var l5 = mouseX + 1 * 47;//layer 5
var l6 = mouseX + 1 * 81;//layer 6
var l7 = mouseX + 1 * 106;//layer 7
var l8 = mouseX + 1 * 140;//layer 8

    //blue layers behind sunlight layers
    fill(25, 22, 240);
    ellipse(320,240, 600,480);//outer

    fill(38, 35, 235);
    ellipse(320,240, 440,410);

    fill(45, 71, 237);
    ellipse(320,240, 330,320);

    fill(67, 99, 240);
    ellipse(320,240, 260,260);

    fill(77, 137, 240);
    ellipse(320,240, 245,245);

    fill(103, 164, 245);
    ellipse(320,240, 220,220);

    //rotating stars
    push();
    fill(255);
    translate(20,20);
    rotate(radians(mouseX));
    ellipse(0,0, 10,20);
    rotate(radians(mouseX + 1));
    ellipse(0,0, 20,10);
    pop();

    push();
    fill(255);
    translate(200,360);
    rotate(radians(mouseX));
    ellipse(0,0, 10,20);
    rotate(radians(mouseX + 1));
    ellipse(0,0, 20,10);
    pop();

    push();
    fill(255);
    translate(390,90);
    rotate(radians(mouseX));
    ellipse(0,0, 10,20);
    rotate(radians(mouseX + 1));
    ellipse(0,0, 20,10);
    pop();

    push();
    fill(255);
    translate(420,300);
    rotate(radians(mouseX));
    ellipse(0,0, 10,20);
    rotate(radians(mouseX + 1));
    ellipse(0,0, 20,10);
    pop();

    push();
    fill(255);
    translate(50,80);
    rotate(radians(mouseX));
    ellipse(0,0, 10,20);
    rotate(radians(mouseX + 1));
    ellipse(0,0, 20,10);
    pop();

    push();
    fill(255);
    translate(480,220);
    rotate(radians(mouseX));
    ellipse(0,0, 10,20);
    rotate(radians(mouseX + 1));
    ellipse(0,0, 20,10);
    pop();

    push();
    fill(255);
    translate(400,400);
    rotate(radians(mouseX));
    ellipse(0,0, 10,20);
    rotate(radians(mouseX + 1));
    ellipse(0,0, 20,10);
    pop();

    push();
    fill(255);
    translate(600,470);
    rotate(radians(mouseX));
    ellipse(0,0, 10,20);
    rotate(radians(mouseX + 1));
    ellipse(0,0, 20,10);
    pop();

    push();
    fill(255);
    translate(65,300);
    rotate(radians(mouseX));
    ellipse(0,0, 10,20);
    rotate(radians(mouseX + 1));
    ellipse(0,0, 20,10);
    pop();

    push();
    fill(255);
    translate(600,60);
    rotate(radians(mouseX));
    ellipse(0,0, 10,20);
    rotate(radians(mouseX + 1));
    ellipse(0,0, 20,10);
    pop();

    push();
    fill(255);
    translate(200,30);
    rotate(radians(mouseX));
    ellipse(0,0, 10,20);
    rotate(radians(mouseX + 1));
    ellipse(0,0, 20,10);
    pop();

    //yellow sunlight layers
    fill(254, 255, 209);
    ellipse(centX,centY, l8,l8);//outer//800

    fill(255, 240, 148);
    ellipse(centX,centY, l7,l7);//7//600,480

    fill(255, 235, 110);
    ellipse(centX,centY, l6,l6);//6//440,410

    fill(255, 230, 69);
    ellipse(centX,centY, l5,l5);//5//330,320

    fill(255, 226, 3);
    ellipse(centX,centY, l4,l4);//4//260

    fill(255, 213, 3);
    ellipse(centX,centY, l3,l3);//3//245

    fill(255, 205, 3);
    ellipse(centX,centY, l2,l2);//210
    
    //triangles expand outward to create Sun rays
    fill(252, 132, 33);
    triangle(320 + mouseX / x,dTopY, dRightX + mouseX / x,240,
    320 + mouseX / x,dBottomY);//triangle right
    triangle(320 - mouseX / x,dTopY, dLeftX - mouseX / x,240,
    320 - mouseX / x,dBottomY);//triangle left
    triangle(dLeftX,240 + mouseX / x, 320,dTopY + mouseX / x,
    dRightX,240 + mouseX / x);//triangle top
    triangle(dLeftX,240 - mouseX / x, 320,dBottomY - mouseX / x,
    dRightX,240 - mouseX / x);//triangle bottom

    fill(252, 186, 3);
    ellipse(centX,centY, l1,l1);//Sun

    //causes gradient shift to Moon
    if(mouseX <= 200){
        fill(239, 189, 53);
        ellipse(centX,centY, l1,l1);//darker Sun
    }
    if(mouseX <= 160){
        fill(226, 197, 103);
        ellipse(centX,centY, l1,l1);//darker Sun 2
    }
    if(mouseX <= 120){
        fill(213, 205, 153);
        ellipse(centX,centY, l1,l1);//darker Sun 3
    }
    if(mouseX <= 80){
        fill(200, 213, 203);
        ellipse(centX,centY, l1,l1);//darker Sun 4
    }
    if(mouseX <= 40){
        fill(187, 221, 253);
        ellipse(centX,centY, l1,l1);//darker Sun 5
    }
    if(mouseX <= 5){
        fill(184, 226, 255);
        ellipse(centX,centY, l1,l1);//Moon
    }
}

proj3suntomoon

A video in case the code doesn’t load

Sydney Salamy: Looking Outwards-03

The project Wanderers from 2014 is a collaboration between Christoph Bader, Neri Oxman and the Mediated Matter Group. The first part is a video demonstrating a computational growth process they designed. The video shows a series of computational objects that transform in very interesting ways as time goes on. They then used this growth process to create a sort of “clothing”. This clothing looks almost like glass sculptures except they seem almost organic and are made for wearing.

 

  • I enjoy a lot about this project. First off, the pieces look very beautiful. The designs are varied and interesting, and look like glass sculptures found in museums. The experimentation with organic things like intestines gave the pieces a very unique look. Some of them, especially “Otaared”, looked like an exotic plant or creature found creeping along the darker parts of the ocean. The colors were also very aesthetically pleasing, with a tendency towards bright colors and pretty gradients as well. The mix of clear and opaque material also added something nice to the pieces. I admire this because I like art, so seeing how much effort was put into their looks makes me enjoy them even more, especially considering the looks were unnecessary. I say unnecessary because apparently the aim of the pieces was to have organic matter embedded into them in order to help sustain humans. They could have just been for practical use and not look pretty, but the creators still decided to put effort into the artistic side of the project. It’s also smart since it will cause people to want to buy them more. Their goal was very interesting to me. I liked the little descriptions for each of the four pieces, how each one was for a different planet or for the moon, and then how the pieces were made to fit the specific environments of those places. Most clothing doesn’t have a greater purpose like that. The idea of creations where the environment interacts beneficially with humans is also one I think is great. Whenever there is talk about humans and the environment, it always seems negative, like a one versus the other relationship. So the idea of having organic matter like algae live in clothing to help humans breath is a nice change.
  • I haven’t seen the algorithm that generated the work. However, I do know it was meant to imitate natural growth behavior. I assume it is a pretty advanced algorithm considering the results it created, especially since the results vary greatly in their looks.
  • The artistic sensibilities of the artist are pretty much all mentioned above in the “what I admire about it” section. Their interest in organic forms can be seen in the final products. Instead of following the colors of these organic forms, they brightened up the pieces with varied color use and use of gradient.
One of the pieces from "Wanderer" called "Otaared"
One of the pieces from “Wanderer” called “Otaared”