Lauren Park – Project – 07 – Curves

sketch

//Lauren Park
//ljpark@andrew.cmu.edu
//Section D
//Project-07-Curves

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

function draw() {
  background(10);
  
  drawHypotrochoid();
  drawHypocycloid();
}

function drawHypotrochoid() {
  var x;
  var y;
  
  //mouse controls color change for stroke
  var r = constrain(mouseX, 0, 300);
  var g = constrain(mouseY, 0, 300);
  var b = 150;
  
  push();
  fill('#53E9FF');
  stroke(r, g, b);
  strokeWeight(3);
  translate(width/2, height/2);
  
  //control hypotrochoid
  var ha1 = map(r, 0, width, 0, 100);
  var ha2 = map(g, 0, height, 0, 100);
  
  beginShape();
  for (var i = 0; i < 480; i+=3) {
    var angle1 = map(i, 0, 250, 0, 360);
  
  //equation of hypotrochoid from MathWorld curves site
  x = (ha1 - ha2)* cos(angle1) + b * cos((ha1 - ha2 * angle1));
  y = (ha1 - ha2)* sin(angle1) - b * sin((ha1 - ha2 * angle1));
  vertex(x, y);
  }
  endShape();
  pop();
}

function drawHypocycloid() {
  var x;
  var y;
  
  //mouse controls color change for stroke
  var r = map(mouseX, 0, width, 50, 255);
  var g = map(mouseY, 0, height, 50, 255);
  
  push();
  fill(254, 193, 255, 140);
  stroke(r, g, 255);
  strokeWeight(0.3);
  translate(width/2, height/2);
  
  //control hypocycloid
  var hy1 = map(mouseX, 0, width, 0, 300);
  var hy2 = map(mouseY, 0, height, 0, 300);
  
  beginShape();
  for (var a = 0; a < 200; a+=3) {
    var angle2 = map(a, 0, 100, 0, 360);
    
    //equation of hypocycloid from MathWorld curves site
    x = (hy1 + hy2)* cos(angle2) + hy2* cos((hy1 + hy2)*angle2);
    y = (hy1 + hy2)* sin(angle2) - hy2* sin((hy1 + hy2)*angle2);
    vertex(x, y);
  }
  endShape();
  pop();
}

My idea for this project initially came from visuals of a rotating flower. However, throughout this process of figuring out this project, I became more interested in intricate patterns within this flower shape. And so, I was more focused on adding different color changes and perspectives when the mouse moves, to show off different designs of this form. When the mouse is somewhere near the top left edge of the canvas, I want to show the two different curves separately to represent seed-like forms, so that when the mouse moves in other directions, then the flower can gradually grow and spread to a wider view. Overall, it was very challenging but very satisfying to create patterns that remind of the kaleidoscope effect.

Lauren Park – Looking Outwards – 07

Artist Aaron Koblin visualized using bright colors and overlapping shapes to mark the many different pathways across North America by air travel. This project was originally developed by Scott Hessels and Gabriel Dunne for a project called “Celestial Mechanics” and uses data from the US Federal Aviation Administration (FAA) to help track these planes. This piece conceptualizes these pathways for over a 24 hour period.

I enjoy the visuals of this time-lapse animation piece because these colorful routes remind me of fireworks and show where each route starts and ends. It also paints a bigger picture for me to see how much the US relies on planes and how many airports we have. With the data collected from the FAA, the information was translated into these visuals through an open source programming called Processing.

The artist was highly successful in effectively displaying and color coding flights depending on each different type of flight. In contrast with the dark background, these bright colors also depict the relationship between humans and the technology we rely on. The way these pathways all come together to form a broad shape of the US is really powerful in communicating to viewers that we are systematically a part of this process of air travel.

“Flight Pattern” time-lapse animation (2005) by Aaron Koblin

Lauren Park-Project-06-Abstract Clock

sketch

var sun = 220;
var moon = 235;
var cloud = 260;

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

function draw() {
    background(0);
    noFill();
  
    if (second % 2 === 0) {
    if (hour >= 8 & hour < 13) {
      background(182, 224, 239);
      // base()
      // morning()
    } else if (hour >= 13 & hour < 17) {
      background(141, 194, 214);
      // base()
      // afternoon()
    } else if (hour >= 17 & hour < 22) {
      background(79, 130, 150);
      // base()
      // twilight()
    } else if (hour >= 22 & hour < 23.5) {
      background(34, 79, 96);
      // base()
      // night();
    }
    } else if (hour >= 0 & hour < 8) {
      base()
    }
  
    //minutes
    for (var j = 0; j < minute(); j ++){
      sun = map(j, 0, 70, 220, 255);
      moon = map(j, 0, 60, 125, 255);
      cloud = map(j, 0, 50, 280, 255);
      stroke(sun, moon, cloud);
      fill(37, 179, 255);
      ellipse(240, 240, 8*j, 8*j);
    } 
     push();
  
    //seconds
     noFill();
     translate(width/2, height/2);
    for (var i = 0; i < second(); i ++) {
      sun = map(i, 0, 70, 210, 71);
      moon = map(i, 0, 60, 345, 204);
      cloud = map(i, 0, 50, 0, 234);
      stroke(sun, moon, cloud);
      stroke(50, 75, 255);
      rotate(radians(3));
      ellipse(0, 0, 30, 450);
    } 
    
      pop();
  
      
    {
      
    } 
   
     strokeWeight(2);
     noFill();
     translate(width/2, height/2);
    //hours
    for (var k = 0; k < hour(); k ++){
      sun = map(k, 0, 70, 255, 255);
      moon = map(k, 0, 60, 255, 255);
      cloud = map(k, 0, 60, 102, 255);
      stroke(sun, moon, cloud, 190);
      rotate(radians(8));
      ellipse(0, 0, 150, 400);
      
        
    }		
    
}

For my abstract clock, I initially started with an idea revolving around an outer space theme. I wanted to use ellipses to form loophole-like forms and a harmonious shape overalls that move in rhythm to a ticking clock. It was really difficult figuring out how to implement time and speed with these shapes I wanted to incorporate. However, it was really enjoyable to experiment and finally create an artwork that changes depending on how much time has passed, and that the image will not stay the same.

Lauren Park-Looking Outwards-06

Nicolas Ménard directed a television commercial for a brand called “Habito”, produced at Nexus Studios. This commercial contains multiples images of different randomized algorithms. This series is a “metaphorical visualization of the brand’s powerful mortgage matching algorithm”. I really admire the audio and the narrative that harmonizes with the series of algorithms. These visuals becomes more like scenes that informs the audience about Habito and what the brand does.

Using variable.io for coding, the artist created instructions that were then translated into versatile Web apps by Marcin Ignac and Nick Nikolov, in order to change and play around with the visuals and speed of algorithms. Additionally, sound was also incorporated in the same way.

By collaborating with David Kamp, the sound designer, and many others to finalize this commercial at the end, I think Nicolas Ménard was very successful in creating those layers of algorithms that build up a storyline for viewers to understand about easy mortgage. Although the algorithms started off randomized in the process, they look to be very orderly and organized in the commercial overall. And with all these random, colored algorithms, along with the narrative, it shows how complex and confusing figuring out mortgage can be in the beginning of the commercial. This is very crucial for Nicolas Ménard’s goal of getting the message across that unlike these generated algorithms, the people at Habito can help simplify the mortgage process. 

Nicolas Ménard (Nexus Studios), “Habito” commercial, 201

Lauren Park – Project-05 – Wallpaper

sketch

var px =50;// x of first circle design
var py = 50;// y of first circle design

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

function draw() {
  background('#368A5A');
  stroke(230);
  
  for (var y = 0; y < 10; y++) {
    for (var x = 0; x < 11; x++) {
      var sx = px + x *50;//x of circle pattern 
      var sy = py + y *50;//y of circle pattern
      
      //circle flower pattern
      noFill(); 
      arc(sx-50, sy-50, 97, 97,0, PI, HALF_PI+QUARTER_PI);
      arc(sx-50, sy-50, 97, 97, PI, 0.1*QUARTER_PI,PI);
          
      //flower center
      fill('#F5EB61');
      ellipse(sx-50, sy-50, 15, 15);
              
        }
   }
}
   

For my wallpaper pattern, I was thinking about a floral design initially. However, I wanted to use other geometric elements like the ellipse to create a more abstract pattern that shows repetition, floral aspects, and other different forms that come together. I then incorporated my favorite color and wanted to include smaller, yellow circles to make the design stand out more. I mainly found it challenging when I adjusted these arcs to create a flowing pattern, so that each intricate detail shows. But, overall I enjoyed this project, in trying to create a design that I would wear.

Lauren Park – Looking Outwards – 05

“Flowing City Map” (2014) by Chaotic Atmospheres

Artist by the name of Chaotic Atmospheres created a series of images for an exhibition that was held in Venice on December 2014. This series focused on how cities and its occupants influence their surroundings, portrayed by fluid-like patterns. I really admire how this artist takes different locations and give each of these cities more individuality in a way that shows how they impact what is around them. The lined patterns also give not only the geographical aspect of maps, but also visualizes these impacts.By using World Machine, a tool to help create 3D terrain, the artist used city maps and procedural terrains to produce this flow of erosion. The artist then used photoshop afterwards to continue working and to identify each city.The artist was very successful in providing visuals of historical significance by using the lines from the erosion flow to show cities’ influences. The images are not merely geographical maps, but tell a story through the colors and bodies of lines that also give movement to each city.

https://www.behance.net/gallery/21743579/Flowing-City-Map

Lauren Park – Project 04 – String Art

sketch

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

function draw() {
  background(10);
  
  for(var a = 0; a < 400; a+=8){
    stroke('#3FABA2');
    line(a, mouseY, 400, a);
  }
  
  for(var b = 0; b < 400; b +=8){
    stroke('#5AE6AC');
    line(b, mouseX, 0, b)
  }
  
  for(var c = 0; c < 400; c +=8){
    stroke(250);
    line(c, mouseX, b, 300)
  }
  
  for(var d = 0; d < 400; d +=8){
    stroke('#D0E778');
    line(d, mouseY, c, 300);
  }
    
  
}

I was interested in exploring how I can create the movement of waves with curves. By using different curve shapes and different colors and have them combine by moving the mouse and flow like a water ripple.

Lauren Park- Looking Outwards -04

“Cycling Wheel” performance (2017) by Keith Lam, Seth Hon and Alex Lai

“Cycling Wheel” is inspired by Marcel Duchamp’s Bicycle Wheel, but takes this project on a new level of interactive performance that creates light and music. Using the mechanics of this instrument, the sound and visuals are generated by using a software made from computational language called “Processing”, along with three other units that control light bean, music, and LED strips.

I found it really impressive and interesting that the artists chose to take Duchamp’s sculptural piece and transform it into a new way of experimenting with the bicycle wheels and add another element of audio to it as well. Inspired by a very physical, tangible artwork, these artists create abstract patterns using lights and smoke that really made this experience exciting. What is important is that these artists did not only create an interactive instrument, but also used it to hold a performance for an audience.

Lauren Park- Project-03- Dynamic Drawing

sketch

function setup() {
  createCanvas(640, 480);
  noStroke();
   
}
 
function draw() {
  background(random(mouseX, mouseY));
  fill(random(355,300,150));
  
  var colorR = (mouseX, mouseY);
  var colorB =  (mouseX, mouseY);
  var colorG = (random, mouseY);
  
  //background color changes as mouse moves right
   if (mouseX < 0){
    background(0);
        }
   if (mouseX > 0){
    background(0);
        }
   if (mouseX > 100){
    background(colorG, 270, 37);
        }
   if (mouseX > 300){
    background(250, 150, colorB);
        }
     
    var moveX = random(0, mouseX/5);
    var moveY = random(0, mouseY/5);
    var shakeX = (0, mouseX/7);
  
   //vibrates from 0 to 530 and above when mouse moves right
   if (mouseX > 0){
      var moveX=0;
        }
   if (mouseX > 0){
      var moveY=0
        }
   if (mouseX > 0){
    var shakeX = 0
        }
   if (mouseX > 15){
       var shakeX = (0, mouseX/100);
        }
   if (mouseX > 70){
       var moveX = random(0, mouseX/30);
        }
   if (mouseX > 250){
       var moveX = random(0, mouseX/15);
        }
   if (mouseX > 400){
       var moveX = random(0, mouseX/5);
        }
   if (mouseX > 530){
       var moveX = random(0, mouseX/2);
        }
  
  
   //increases and shakes bubbles when mouse move right
   fill(211, 242, 255);
   if (mouseX > 300)   
   ellipse(10+ moveX, 150 + moveY, 110 + moveX, 110 +          moveY); //light blue
   fill(281, colorG, 255);
   if (mouseX > 200)
   ellipse (80 + moveX, 235 + moveY, 130 + moveX, 130 + moveY);
   fill(129, 255, 104);
   if (mouseX > 350)
   ellipse(270 + moveX, 320 + moveY, 90 + moveX, 90 + moveY);         //green
   fill(57, 189, 232);
   if (mouseX > 300)
   ellipse(380 + moveX, 250 + moveY, 65 + moveX, 65 +   moveY); //blue
   fill(57, 232, 179);
   if (mouseX > 350)
   ellipse( 420 + moveX, 70 + moveY, 150 + moveX, 150 + moveY); //dark green
   fill(255, 142, 210);
   if (mouseX > 450)
   ellipse( 475 + moveX, 320 + moveY, 100 + moveX, 100 + moveY); //pink
  
  
   fill(81, 238, 255);
   if (mouseX > 450)
   ellipse(65 + moveX, 75 + moveY, 150 + moveX, 150 + moveY);
   fill(255, 251, 98);
   if (mouseX > 550)
   ellipse( 530 + moveX, 180 + moveY, 130 + moveX, 130 + moveY);
  
    
   //duck facial features shake when mouse moves right
    stroke(0);
    strokeWeight(2);   
    fill(255);
    // hair
    ellipse(305 + shakeX, 355 + moveY, 12 + moveX, 25 + moveY) 
    fill(255);
    ellipse(295 + shakeX, 355 + moveY, 12 + moveX, 30 + moveY)
    //face
    fill(255);
    ellipse(300 + shakeX, 460 + moveY, 270 + moveY, 190 + moveX);
    // beak
    fill(255, 184, 56);
    ellipse(297 + shakeX, 460 + moveY, 90 + moveX, 30 + moveY);
    // eyes
    fill(0);
    ellipse(350 + shakeX, 435 + moveY, 20 + moveX, 18 + moveY);
    fill(0);
    ellipse(240 + shakeX, 435 + moveY, 20 + moveX, 18 + moveY);
    //pupils
    fill(255);
    ellipse(350 + shakeX, 434 + moveY, 15 + moveX, 13 + moveY) 
    ellipse(240 + shakeX, 434 + moveY, 15 + moveX, 13 + moveY); 
    //mouth line
    stroke(0);
    strokeWeight(2);
    line(320 + shakeX, 460 + moveY, 253 + moveX, 460 + moveY);
   
  
    
    //number of text increases and shakes when mouse moves     right
    fill('red');
    stroke(237,206,229);
    strokeWeight(2);
  
    if (mouseX > 50) {
    textFont('Helvetica');
    textSize(47);
    text('HUNGRY?', 100 + moveX, 150 + moveY);
    if (mouseX > 100) 
    text('HUNGRY?', 360 + moveX, 100 + moveY); //dark green
    if (mouseX > 200) 
    text('HUNGRY?', 190 + moveX, 325 + moveY);
    if (mouseX > 300) 
    text('HUNGRY?', 400 + moveX, 340 + moveY); 
    if (mouseX > 300) 
    text('HUNGRY?', 20 + moveX, 250 + moveY); //light pink
    if (mouseX > 400) 
    text('HUNGRY?', 310 + moveX, 250 + moveY);
    if (mouseX > 500) 
  
    text('HUNGRY?', 10 + moveX, 80 + moveY);
    
  }
  
  


   
      
}

This project was very interesting in ways where I was able to create more of a story by having objects change and be put into motion by moving the mouse. I wanted to express a feeling of hunger through the image. It was a difficult and challenging process to have the image move back and forth with the mouse, but also to have them vibrate to express hunger and more of an emotion.

Lauren Park-Looking Outwards-03

3D printed physical objects
Artist: The Mediated Matter Group

This project takes 2D data or digital information and converts it into 3D models and physical forms using 3D printing. I really admire this project and the way creative material is made using color and shape to represent data. This is because of how important it is to not only be able to analyze information and graphs or maps by looking at screens, but have an easier understanding of what this image would look like when it is visualized in real life, or off-screen. Multi-material 3D printing is mainly used to to transfer and convert various kinds of data, such as medical information like an MRI, visualized on the screen to physical objects. The artists satisfy the need and curiosity of how people can benefit from using tangible data the just digitally. All such complex information can be combined or put together to create a more sensible image for the brain to understand.

https://www.media.mit.edu/projects/making-data-matter/overview/

Project: Making Data Matter: Voxel-printing for the digital fabrication of data across scales and domains

Artist: The Mediated Matter Group