serinal – looking outward 02

Title: Visual Sounds of the Amazon

Year: 2017 (3 weeks ago to be a little more exact, sounds for actual piece were recorded in 2016)

Artist: Andy Thomas

Andy Thomas’s “Visual Sounds of the Amazon” is an extremely cool installment. It involves an array of colored visual shapes that are based on noises or the sounds of the Amazon rainforest. The piece attempts to capture the sounds of the different Amazonian birds in some sort of visual formation. This installment will be presented at a festival in Lima, Peru called “Render”. I really especially love the way he talks about his work, he says, “I see sounds as moving shapes and colours in my imagination. Bringing these to life is the challenging part. There are many countless hours drawing sketches and testing particle effects. Some of the results are more refined and closely match my imagination than others.” It is refreshing to see an artist openly acknowledging their work into something refined and something that could use more work to be similar to their vision.

Visual Sounds of the Amazon from Andy Thomas on Vimeo.

The algorithm of the piece relies mainly on the sound waves of the birds or animals in the Amazon. Thomas does some really impressive things with the 3D soften programs in link with digital audio software. I think the impressive thing is how well-matched the sounds go with the imagery and vice versa. The colors chosen and the shapes that are manipulated are all very detail oriented towards its’ matched sound. I am also really glad that Thomas uses these forms of art as a way to not only raise awareness about the deterioration of the Amazonian rainforest, but also donates money towards the WWF-Australian foundation. I also find it admirable when artists use new found technology and methods to not only influence a new wave of looking and presenting art, but use it for things they are passionate about (or a good cause).

Alternative Links:

 

ashleyc1-Section C-Looking Outwards-02

Waves is a generative art installation created in 2016 by LIA. It was shown in part with a live concert, “Blades,” by @c. There is little information about this particular work but it’s given that the waves are generated through sin functions that slowly build on top of each other to create more complex forms and movements. What I personally am attracted to in this piece is how abstract it is. Even though there is the color scheme and motions that reference waves, it doesn’t seem like a literal representation. There are moments where the lines almost look pixel-y and scale-like because of how sharp the edges of the line become due to distortion of the functions.

Waves by LIA. Photo provided by LIA-something on Flickr.

This distortion is part of the artistic style. I think it’s a conceptual nod to the characteristics of generative art: how we are now using technology to replicate nature and abstract beauty. While it’s impressive to create completely generative installations, it’s also nice to be reminded that technology can’t perfectly replicate nature so characteristics like pixels are highlighted. I do not however agree with the choice for it to serve as a literal backdrop to the band. I felt like it cheapened the value of the artwork itself as it went from having a conceptual purpose to being a background to a main performance. But maybe I wouldn’t think this if the documentation included the music of the band to create a more atmospheric experience.

Links:

Waves

http://www.at-c.org/

http://www.at-c.org/?p=173

https://www.flickr.com/photos/lia_lia/sets/72157675567646274/with/32267611511/

 

Bettina-SectionC-Project-02-VariableFace

bettina-randomface-teal

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

//import math; 
/*head coordinates*/
var TLx=120; //top left x
var TLy=100; //top left y
var TRx=400; //top right x
var TRy=270; //top right y
var BRx=330; //bottom right x
var BRy=500; //bottom right y
var BLx=160; //bottom left x
var BLy=490; //bottom left y
/*eye coordinates*/
var LEx=110; //left eye x
var LEy=280; //left eye y
var REx=300; //right eye x
var REy=260; //right eye y
var eye=50
/*eyebrows*/
var high= 50; //how much higher than eyes
var BrowAngle=0; //angle of brows
var BrowThick=10;  //how thick brows
var lineStart= 60;//left starting x of brows
var lineLength= 30; //length of brows
var LBstart=60; //left brow start
var RBstart=275; //right brow start
var LBangle=0;
var RBangle=0
/*nose*/
var noseBLx=150;
var noseBLy=320;
var noseBRx=200;
var noseBRy=350;
var noseMx=180;
var noseMy=200;
/*mouth*/
var mouthTLx=150;
var mouthTLy=400;
var mouthWidth=100;
var mouthHeight=100;
var MouthRound=20;


function draw() { 
  background(255);
  strokeWeight(6);
/*face*/
  noFill();
  stroke(90,196,186); //teal
  beginShape();
    curveVertex(BRx,BRy);//ones on the ends are the "handles"
    curveVertex(BRx,BRy);//first point (bottom right)
    curveVertex(TRx,TRy);//top right
    curveVertex(TLx,TLy);//top left
    curveVertex(BLx,BLy);//bottom left
    curveVertex(BRx,BRy);//bottom right
    curveVertex(TRx,TRy);// last point (top right)
    curveVertex(TRx,TRy);//ones on the ends are the "handles"
  endShape();;
  
/*eyes*/
  stroke(119,117,224); //indigo
  ellipse(REx,REy,eye);//right eye
  ellipse(LEx,LEy,eye); //right eye
/*eyebrows*/
  strokeWeight(BrowThick);
  line(LBstart,LEy-high,LBstart+lineLength,(LEy-high)+LBangle); //left brow
  line(RBstart,REy-high,RBstart+lineLength,(REy-high)+RBangle); //right brow
/*nose*/
  strokeWeight(6);
  stroke(232,117,106);//red
  triangle(noseBLx,noseBLy,noseMx,noseMy,noseBRx,noseBRy);
/*mouth*/
  rect(mouthTLx,mouthTLy,mouthWidth,mouthHeight,MouthRound);

}

function mousePressed() {
/*face*/
  TLx=random(80,200);
  TLy=random(100,300);
  TRx=random(300,440);
  TRy=random(80,310);
  BLx=random(80,200);
  BRx=random(310,440);
/*eyes*/
  REx=random((TRx/2)+40,TRx);
  LEx=random(TLx,((TRx/2)-40));
  eye=random(10,45);
  REy=random(TLy,BLy);
  LEy=REy+random(-10,10);
/*eyebrows*/
  lineStart=random(-20,20);
  LBstart= (LEx-(eye/2)+lineStart);
  lineLength=random(30,80);
  BrowThick=random(6,14);
  RBstart=(REx-(eye/2)+lineStart);
/*nose*/
  noseBLx=random(LEx+20,LEx+((REx-LEx)/2));
  noseBRx=noseBLx+random(10,60);
  noseBLy=random(LEy+eye,BRy);
  noseBRy=noseBLy;
  noseMy=random((noseBLy-50),noseBLy);
  noseMx=random(noseBLx,noseBRx);
/*mouth*/
  mouthTLx=random(Math.max(TLx,BLx),(noseMx-20));
  mouthTLy=random((noseBLy+20),BLy);
  mouthWidth=random(20,150);
  mouthHeight=random(0,80);
  MouthRound=random(10,50);
  BrowCounter=3;
  LBangle=random(-30,31);
  RBangle=random(-30,31);
  }

I was inspired by Moka piece, which felt playful and childish. I wanted to challenge myself to create more organic lines as opposed to geometric ones I did for my first project. After a lot of math and quadrants, and bringing a bit of Math.min and Math.max, I was able to set enough rules for the randomization so the facial features were in believable positions.

I intended for each face to have the energy of children’s drawings, incorporating near primary colors for the lines. My concept was that generative art is not about creating a single perfect piece, but instead a system. Thus, while each face on it’s own seems laughable, I intended to present the outcome as patterns, showing the theme and variation throughout my system.

For the time being, I could not implement enough rules to draw all these faces in one program (my code was getting messy and I could not figure out how to put in conditionals), so I modified the program above to make the face outline different colors, add an additional curve vertex, as well as add an additional translated outline.

 

myoungsh-Project01-face

I worked with a simple circle face and started my process suing only eclipses and rectangles initially as that was all I was able to execute day 1. Slowly I added features using more complex commands I learned in an attempt to add to the realism emotion and some aesthetic qualities of the illustration.

myoungshsketch

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

function draw() {
    background(195, 210, 245);
    
    strokeWeight(0)
    fill(240, 200, 160)
    rect(225, 300, 150, 300); //neck

    strokeWeight(0)
    fill(170, 70, 50)
    ellipse(300, 250, 360, 400); //top hair

    strokeWeight(0)
    fill(195, 210, 245)
    rect(0, 0, 200, 600); //haircut

    strokeWeight(0)
    fill(0, 0, 0)
    ellipse(300, 550, 400, 100); //shoulders

    strokeWeight(0)
    fill(0, 0 ,0)
    rect(100, 550, 400, 50) //torso
    
    strokeWeight(0)
    fill(240, 200, 160)
    ellipse(300, 500, 150, 25); //crew neck

    strokeWeight(0)
    fill(170, 70, 50)
    arc(300, 300, 350, 400, PI, 0, OPEN); //hair+beard
    
    strokeWeight(0)
    fill(170, 70, 50)
    arc(300, 300, 350, 350, 0, PI, OPEN); //hair+beard

    strokeWeight(0)
    fill(240, 200, 160)
    ellipse(300, 300, 330, 300); //face

    strokeWeight(0)
    fill(0, 170, 190)
    arc(225, 300, 20, 20, 0, PI, OPEN); //left eye

    strokeWeight(0)
    fill(0, 170, 190)
    arc(375, 300, 20, 20, 0, PI, OPEN); //right eye

    strokeWeight(0)
    fill(0, 150, 170)
    arc(225, 300, 10, 10, 0, PI, OPEN); //left eye inner

    strokeWeight(0)
    fill(0, 150, 170)
    arc(375, 300, 10, 10, 0, PI, OPEN); //right eye inner
    
    strokeWeight(0)
    fill(230, 190, 150)
    arc(225, 320, 50, 25, 0, PI, OPEN); //left eyebag shadow
    
    strokeWeight(0)
    fill(240, 200, 160)
    arc(225, 320, 40, 15, 0, PI, OPEN); //left eyebag 
    
    strokeWeight(0)
    fill(230, 190, 150)
    arc(375, 320, 50, 25, 0, PI, OPEN); //right eyebag shadow
    
    strokeWeight(0)
    fill(240, 200, 160)
    arc(375, 320, 40, 15, 0, PI, OPEN); //right eyebag 

    strokeWeight(0)
    fill(210, 130, 130)
    arc(300, 415, 80, 30, 0, PI, OPEN); // lower lip

    strokeWeight(0)
    fill(200, 120, 120)
    arc(300, 415, 45, 15, 0, PI, OPEN); //lower lip inner 
    
    strokeWeight(0)
    fill(200, 160, 120)
    arc(300, 365, 50, 25, 0, PI, OPEN); //nose shaddow

    strokeWeight(0)
    fill(240, 200, 160)
    arc(300, 365, 40, 15, 0 , PI, OPEN); //nose 

    strokeWeight(0)
    fill(220, 180, 140)
    rect(305, 300, 5, 50); //nose side shadow
    
    strokeWeight(0)
    fill(220, 180, 140)
    ellipse(mouseX+25, mouseY+15, 10, 10); //freckle
    
    strokeWeight(0)
    fill(220, 180, 140)
    ellipse(mouseX-20, mouseY, 10, 10); //freckle
    
    strokeWeight(0)
    fill(220, 180, 140)
    ellipse(mouseX+20, mouseY-5, 10, 10); //freckle
    
    strokeWeight(0)
    fill(220, 180, 140)
    ellipse(mouseX-10, mouseY+5, 10, 10); //freckle
    
    strokeWeight(0)
    fill(220, 180, 140)
    ellipse(mouseX, mouseY-15, 10, 10); //freckle
    }  

ikrsek- Looking Outwards -1

United, Fragmented, Repeated and Impermanent World 

teamLab, 2013, Interactive Digital Work, Endless, 8 channels, Sound: Hideaki Takahashi

teamLab’s installations in the Japan Society’s 2013/2014 exhibition, “Garden of Unearthly Delights” was my first introduction to the use of code/computer based programming as an artistic medium. Specifically, the work that comes to mind is an installation known as United, Fragmented, Repeated and Impermanent World which was an interactive wallpaper of sorts. The room in which it was installed  was lit only by the projections spanning across each wall – which were a plethora of intensely pigmented, pixelated depictions of flowers, trees, water, and nature. As you approached, depending on how you would move your hand or head, cameras would register the movement and respond with blooming flowers, unfurling vines and rippling water (a soft humming tune also played in the background along with some auditory feedback matching the reactions the wallpaper environment had to your presence). It was an amazing interaction, particularly since I’d never seen or let alone heard of code in such a context before, and is what inspired me to take this course and pursue HCI alongside my art career.

teamLab itself is a group of creators: artists, programmers, architects,engineers, CG animators, mathematicians, etc. who collaborate in order to create moving pieces of work that marry the boundaries between art, science, and technology through a unifying creativity. They always have a multitude of people working on projects and as such, have many different sources of inspiration – but what seems to be the most prominent source of inspiration for them is their own drive to create things that go beyond the traditional confines of what we consider art or science, and in doing so – to change people’s minds about the possibilities around them, expand horizons if you will. They have multiple locations (In Japan, Singapore, and Hong Kong), and are fairly well known amongst the new media world.

 

below is a link to the teamLab website: https://www.teamlab.art

karinac-Project-01

karinac-portrait

function setup() {
	createCanvas(500,600);
	background(172,214,234);
	}

function draw() {
	//hair
	stroke(25,0,0);
	strokeWeight(10);
	fill(40,0,0);
	arc(225,250,300,250,PI,PI);
	rect(75,250,300,300);

	//shirt
	noStroke();
	fill(250,242,140);
	rect(100,525,250,125);
	stroke(150,150,150);
	strokeWeight(3);
	arc(225,525,250,150,PI,PI);

	//neck
	stroke(194,141,109);
	strokeWeight(4);
	fill(207,165,141);
	rect(175,400,108,70);
	stroke(150,150,150);
	strokeWeight(7);
	fill(207,165,141);
	arc(229,460,112,140,0,PI);

	//face
	stroke(194,141,109);
	strokeWeight(5);
	fill(207,165,141);
	ellipse(225,300,250,275);

	//left eye
	noStroke();
	fill(250,250,250);
	ellipse(170,310,50,50);
	fill(30,0,0);
	ellipse(175,305,35,35);

	//right eye
	noStroke();
	fill(250,250,250);
	ellipse(281,310,50,50);
	fill(30,0,0);
	ellipse(286,305,35,35);

	//left eyebrow
	noFill();
	stroke(0);
	strokeWeight(3);
	arc(170,275,60,10,PI,PI);

	//right eyebrow
	noFill();
	stroke(0);
	strokeWeight(3);
	arc(280,275,60,10,PI,PI);

	//nose
	noStroke();
	fill(194,141,109);
	triangle(200,365,225,320,250,365,20);

	//smile
	stroke(0);
	strokeWeight(2);
	fill(250,250,250);
	arc(225,380,110,80,0,PI);
	line(170,380,280,380);


	//headphones
	noFill();
	stroke(165,10,10);
	strokeWeight(20);
	arc(225,303,315,372,PI,PI);
	stroke(110,10,10);
	strokeWeight(35);
	arc(225,170,220,90,PI,PI);
	line(65,275,65,355);
	line(385,275,385,355);
	noStroke();
	fill(165,10,10);
	rect(30,265,40,100,30);
	rect(380,265,40,100,30);
	stroke(250,250,250);
	strokeWeight(5);
	line(65,372,65,405);
	line(65,405,85,415);
	line(85,415,55,435);
	line(55,435,85,460);
	line(85,460,55,485);
	line(55,485,85,492);
	line(85,492,85,600);

	//music note
	fill(0);
	stroke(0);
	strokeWeight(5);
	line(420,92,420,137);
	line(390,95,390,140);
	strokeWeight(6);
	line(390,95,420,92);
	strokeWeight(5);
	ellipse(380,140,20,10);
	ellipse(410,138,20,10);
	strokeWeight(3);
	line(457,25,457,60);
	ellipse(450,60,15,8);
	
	//hair-top
	fill(40,0,0);
	stroke(34,0,0);
	strokeWeight(3);
	rotate(QUARTER_PI-.13);
	ellipse(270,95,90,230);


}

I knew from the beginning that in addition to coding a self-portrait I wanted to display something that represented who I am.  So naturally, even though it took extra time and effort, I had to include the headphones since music has always been a huge part of my life.

The most challenging ad time-consuming feature was the front bangs of the hair layered on top of the headphones. The process consisted of a lot of trial and error as I struggled with the orientation of the ellipse.

Overall, I learned a lot through this process and I’m happy with how it turned out.

ikrsek- Project 1- Self-portrait

For the self-portrait I wanted to try to create a pixelated looking portrait, and it was much more time consuming than I initially assumed it would be (mostly because of the time it took to plot points and adjust colors). However, regardless of the time it took up it was still a pretty gratifying process and thankfully the final product turned out fairly well.

sketch

// Isadora Krsek  
// Ikrsek@andrew.cmu.edu
// Project #1: Self-Portrait

function setup() {
  createCanvas(450,450);
  background(255);
}
function draw() {
  //background color
  fill(207,225,204);
  noStroke();
  rect(84,54,340,300);
  //base skin color 
  noStroke();
  fill(255,215,192);
  rect(180,130,160,158);
  rect(200,280,120,40);
  //rect(,,20,20);
  //baseshadow color cheeks
  fill(173,122,97)
  rect(180,260,20,28)
  rect(160,198,20,52) //ear
  //mid skintone 1 - nose 
  fill(196,151,128)
  rect(160,188,20,20)
  rect(180,220,20,20)
  rect(220,300,20,20)
  rect(200,320,20,20)
  rect(242,198,14,65)
  rect(256,248,20,15)
  //mid skintone 2
  fill(219,165,137)
  rect(220,320,80,20)
  //skin highlight
  fill(244,199,173)
  rect(280,300,40,40)
  //hair base
  fill(44,25,24)
  rect(160,128,20,80)
  rect(180,108,40,80)
  rect(210,88,40,80)
  rect(230,88,40,42)
  rect(250,88,90,42)
  rect(320,120,40,40)
  rect(164,260,20,165); //longest hair
  rect(154,275,20,130);//second longest hair
  rect(180,300,40,20)
  rect(180,288,20,100);
  rect(200,300,20,45);
  rect(190,345,20,30);
  rect(170,375,20,30);
  rect(140,365,20,30);
  rect(126,345,40,30);
  rect(114,325,40,30);
  rect(130,304,40,40);
  rect(146,275,30,80);
  rect(160,250,20,52);
  rect(148,198,15,10); //hair flip
  rect(155,188,15,10);
  //left side swoops and long
  rect(335,130,25,40);
  rect(340,170,20,170);
  rect(320,288,40,32);
  rect(350,280,20,60);
  rect(360,300,20,40);
  rect(320,320,72,20);
  //eyebrows
  rect(290,178,34,7);
  rect(198,178,34,7)
  //eyes and glasses
  fill(255)
  rect(180,188,60,52)
  rect(280,188,60,52)
  fill(68,65,64)
  rect(240,194,40,20)
  fill(38,24,23);
  rect(204,203,25,15);
  rect(196,199,8,4);
  rect(293,203,25,15);
  rect(318,199,8,4);
  //lips
  fill(255,156,159)
  rect(245,276,32,20)
  //jewlery
  fill(240,205,129);
  rect(155,212,12,7);
  rect(155,224,12,7);
  rect(170,245,7,10);
  //beauty mark
  fill(164,110,78);
  rect(282,273,3,3);
  //frame
  strokeCap(SQUARE);
  stroke(201,199,195);
  strokeWeight(25);
  line(219.5,350,430,350);
  strokeWeight(18);
  line(210,354,430,354);
  strokeWeight(25);
  line(430,362.5,430,54);
  line(442.5,54,71.5,54);
  line(84,54,84,362.5);
  line(84,350,113.5,350);
  strokeWeight(8);
  line(84,359,126,359);
}

Laura Rospigliosi Looking Outwards (week 1 – Portrait)

Laura R Portrait

//Laura Rospigliosi
//Section C
//lrospigl@andrew.cmu.edu
//Assignment-01
function setup() {
  createCanvas(600,600)
  background (125,155,245);
}

function draw() {
  background (125,155,245);
  //hair
  strokeWeight(0)
  fill (110,72,39)
  rect(140,140,320,400,70);
  
  strokeWeight(0)
  fill (110,72,39)
  rect(140,190,320,350,20);
  
  strokeWeight(0)
  fill (95,60,39)
  rect(180,190,240,350);
  
  //shirt
  strokeWeight(0)
  fill (0,0,0)
  rect(130,500,340,280,70);
  
  //neck
  strokeWeight(0)
  fill (254,213,192)
  rect(257,300,90,230,40);
  
  strokeWeight(0)
  fill (224,192,176)
  rect(257,300,90,170,50);
  
  //face
  strokeWeight(0)
  fill (254,213,192)
  rect(160,160,280,280,70);
  
  //eyes
  strokeWeight(0)
  fill (109,120,72)
  rect(230,240,20,35,10);
  
  strokeWeight(0)
  fill (109,120,72)
  rect(350,240,20,35,10);
  
  //nose
  fill (224,192,176)
  triangle(285, 320, 320, 320, 303, 305)
  /*
  //inner eyes
  strokeWeight(0)
  fill (0,0,0)
  rect(235,245,10,10,10);
  
  strokeWeight(0)
  fill (0,0,0)
  rect(355,245,10,10,10);
  */  
  
  //mouth
  fill (246,180,211) 
  //arc(300, 360, 70, 70, 0, HALF_PI+HALF_PI);
  arc(mouseX, mouseY, 70, 70, 0, HALF_PI+HALF_PI);
  
}

 

myoungsh looking outwards 1

I fell in love with a company this summer called CW&T they caught my attention with a pen they designed that totally blew my mind with its precision machining and how visually stunning it was. After seeing this first product I looked at their other stuff and found a project they did with some coding as well as engineering involved. Simply it is a counter, a button and a display that records all the button presses up to 999,999 and then it stops. Each individual element of the construction is rated to last the perfect amount of time, as well as the code having a self destruct function set to run after 999,999 presses.

Nothing Lasts Forever