Elena Deng Project 10-Generative Landscape

Who lives in a pineapple under the sea

/*Elena Deng
Section E
  edeng1@andrew.cmu.edu
  Project-10
}
*/
var Pineapples = [];
var col;
var frameB = 1;
var bubbles= [];


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

    // create an initial collection of Pineapples
    for (var i = 0; i < 10; i++){
        var rx = random(width);
        Pineapples[i] = makePineapple(rx);
    }
    for (var i = 0; i < 20; i++) {
    	var newBub = makeBubbles(random(width));
    	bubbles.push(newBub);
    }
    frameRate(38);
}


function draw() {

    background(243,233,126);
    displayHorizon();
    waveOne();
    waveTwo();
    waveFour();
    waveThree();

    updateAndDisplayPineapples();
    removePineapplesThatHaveSlippedOutOfView();
    addNewPineapplesWithSomeRandomProbability();
    for (var i = 0; i < bubbles.length; i++) {
		bubbles[i].draw();
		bubbles[i].move();

//adds the new bubbles
    if ((frameB % 5 == 0) & (random(1) < .2)) {
		newBub = makeBubbles(width);
		bubbles.push(newBub);

	}
	}
}

function waveOne(){
  var waterSpeed = 0.0002;
  var waterDetail = 0.004;
  stroke(100,200,254);
  beginShape();
  for (var x = 0; x < width; x++) {
      var t = (x * waterDetail/4) + (millis() * waterSpeed*2);
      var y = map(noise(t), 0, 1, 0, 100);
      line(x, y, x, height);
  }
  endShape();
}


function waveTwo(){
  var waterSpeed = 0.0002;
  var waterDetail = 0.004;
  stroke(20,100,254,70);
  push();

  beginShape();
  for (var x = 0; x < width; x++) {
      var t = (x * waterDetail) + (millis() * waterSpeed*2);
      var y = map(noise(t), 0, 1, 100, 140);
      line(x, y, x, height);
  }
  endShape();
  pop();
}
function waveFour(){
  var waterSpeed = 0.0002;
  var waterDetail = 0.004;
  stroke(20,100,254,70);
  push();
  beginShape();
  for (var x = 0; x < width; x++) {
      var t = (x * waterDetail/6) + (millis() * waterSpeed*2);
      var y = map(noise(t), 0, 1, 100, 300);
      line(x, y, x, height+400);
  }
  endShape();
  pop();
}

function waveThree(){
  var waterSpeed = 0.0002;
  var waterDetail = 0.004;
  stroke(198,186,146);
  push();
  beginShape();
  for (var x = 0; x < width; x++) {
      var t = (x * waterDetail/6) + (millis() * waterSpeed/6);
      var y = map(noise(t), 0, 1, 200, 300);
      line(x, y+160, x, height+150);
  }
  endShape();
  pop();
}

function updateAndDisplayPineapples(){
    // Update the Pineapple's positions, and display them.
    for (var i = 0; i < Pineapples.length; i++){
        Pineapples[i].move();
        Pineapples[i].display();
    }
}

function makeBubbles(origin) {
	var bubble = {
		x: origin,
		y: random(height),
		velX: random(-2, 1.5),
		velY: random(-3, 1),
		sizeF: random(20),
		draw: drawBubble,
		move: moveBubble
	}
	return bubble;
}

function removePineapplesThatHaveSlippedOutOfView(){
    // If a Pineapple has dropped off the left edge,
    // remove it from the array.  This is quite Cutcky, but
    // we've seen something like this before with particles.
    // The easy part is scanning the array to find Pineapples
    // to remove. The Cutcky part is if we remove them
    // immediately, we'll alter the array, and our plan to
    // step through each item in the array might not work.
    //     Our solution is to just copy all the Pineapples
    // we want to keep into a new array.
    var PineapplesToKeep = [];
    for (var i = 0; i < Pineapples.length; i++){
        if (Pineapples[i].x + Pineapples[i].breadth > 0) {
            PineapplesToKeep.push(Pineapples[i]);
        }
    }
    Pineapples = PineapplesToKeep; // remember the surviving Pineapples
}


function addNewPineapplesWithSomeRandomProbability() {
    // With a very tiny probability, add a new Pineapple to the end.
    var newPineappleLikelihood = 0.01;
    if (random(0,1) < newPineappleLikelihood) {
        Pineapples.push(makePineapple(width));
    }
}
//draws the bubbles that appear at beginning
function drawBubble() {
  noFill();
  strokeWeight(2);
	stroke(255, 255, 255, 80);
	ellipse(this.x, this.y, this.sizeF * 1.5, this.sizeF * 1.5);
}

function moveBubble() {
	this.x -= 1.5;
	this.x += this.velX;
	this.y += this.velY;
}


// method to update position of Pineapple every frame
function PineappleMove() {
    this.x += this.speed;
}


// draw the Pineapple decorations door and leaves
function PineappleDisplay() {

    var CutHeight = 20;
    var bHeight = this.nCuts * 20;
    // var bWidth = this.nCuts * 30;

    push();

    noStroke();
    //draws leaves of Pineapple
    fill(155,182,59);
    translate(this.x, height - 40);
    rect(10,-bHeight-20,this.breadth/2,bHeight,30);
    rect(30,-bHeight-20,this.breadth/2,bHeight,30);

    fill(122,167,59);
    rect(40,-bHeight-30,this.breadth/4,bHeight);

    fill(122,167,59);
    rect(20,-bHeight-30,this.breadth/2,bHeight,30);

    fill(122,167,59);
    rect(40,-bHeight-50,this.breadth/4,bHeight,20);

    fill(88,150,59);
    rect(10,-bHeight-40,this.breadth/4,bHeight);

    fill(88,150,59);
    rect(15,-bHeight-50,this.breadth/4,bHeight,10);

    fill(61,150,59);
    rect(30,-bHeight-60,this.breadth/4,bHeight);

    //draws the actual pineapple
    fill(255,196,74);
    stroke(230,170,50);
    strokeWeight(2);
    rect(0,-bHeight, this.breadth+15,bHeight,40);

    //draw the decorations of the pineapple/grooves
    noStroke();
    fill(230,170,50);
      ellipse(18,-20,10,10);
      ellipse(33,-20,10,10);
      ellipse(48,-20,10,10);
      ellipse(33,-40,10,10);
      ellipse(18,-40,10,10);
      ellipse(48,-40,10,10);
      ellipse(33,-60,10,10);
      ellipse(18,-60,10,10);
      ellipse(48,-60,10,10);
    //draws the door of the pineapple
    fill(0)
      rect(20,-bHeight/2, 20,40,20)

    pop();

}


function makePineapple(LocationX) {
    var pin = {x: LocationX,
                breadth: 50,
                speed: -1.0,
                nCuts: round(random(4,7)),
                move: PineappleMove,
                display: PineappleDisplay}
    return pin;
}

function displayHorizon(){
  function setup() {
}

}

I had a lot of fun with this project! I really loved Spongebob as a child and I was really excited to have a reason to do this subject because of the wavelike forms the the terrain tool given to us creates. If I had more time I would make the pineapple details look more like pineapples and maybe include a random sponge bob around!

Experimented in the beginning with Shrek heads and Pineapples

Jisoo Geum – Looking Outwards – 10

Pussykrew is a new media duo formed by contemporary multi-disciplinary artists Tikul and mi$ gogo. The two were born in Poland but met in Dublin and began merging their artistic and technological strengths to create groundbreaking 3D digital imageries. Their works are usually surreal, hyperrealistic, and at times grotesque. Although they both came from the fine arts background, specializing in paintings and drawings, they immediately emerged into the mobile and graphics aspects of the new media. They learned visual programming, physical computing, and many other areas of digital media at Newcastle University, and self-taught the skills they had to know for 3D/CGI animations.

SEVDALIZA – THAT OTHER GIRL (2015)

A music video work commissioned by an Iranian-Dutch singer, Sevdaliza.  

https://www.youtube.com/watch?v=koAtzvSBvfE

Since I am very interested in 3D rendered images and animation, every work made by the duo were very admiring. I appreciate the hyperrealistic and detailed depiction of curves of the human body as well as various textures rendered into the surface. Their overwhelming visualization, use of color, and composition all encaptivated me. Another reason why I was drawn to Pussykrew was that of this interesting quote:

“The internet and digital tools can be seen as a utopian environment that gives you freedom from social constructs such as gender. Technology can be used as a vehicle for the dissolution of sex and gender as well as a means to link the body with machines.” —Pussykrew

I think this quote truly depicts their artistic vision: grotesque yet beautiful and addicting imageries as a reflection of current human relationship with technology.

Audrey Zheng – Looking Outwards – 10

Lauran McCarthy is goals: she is a new media artist and creator/lead-developer of p5.js. Her work examines how issues of surveillance, automation, and network culture affect our social relationships.

Accomplishments
Lauren’s work has been exhibited internationally, at places such as Ars Electronica, Fotomuseum Winterthur, SIGGRAPH, Onassis Cultural Center, IDFA DocLab, and the Japan Media Arts Festival. Lauren is an Assistant Professor at UCLA Design Media Arts. She is a Sundance Institute Fellow and was previously a resident at CMU STUDIO for Creative Inquiry, Eyebeam, Autodesk, NYU ITP, and Ars Electronica / QUT TRANSMIT³.

Schooling
She graduated from MIT with a BS in Computer Science and Art and Design and also holds an MFA from UCLA.

Example Project: Facebook Mood Manipulator
Facebook Mood Manipulator is a browser extension that lets you choose how you want to feel and filters your Facebook Feed accordingly.

Facebook Mood Manipulator Extension
It is based on Facebook’s research into massive-scale emotional contagion through social networks. The linguistic analysis is done with Linguistic Inquiry Word Count (LIWC), the same system used in the Facebook study. Studies show that browsing social media sites such as Facebook for extended periods can lead to a depressive mood.

 

For more information, visit Lauren’s website: http://lauren-mccarthy.com/

Justin Yook – Project 10

genland

// Justin Yook
// jyook@andrew.cmu.edu
// Section C
// Project 10

var milk = [];
var milkCol;

function setup() {
    createCanvas(480, 200);
    milkCol = [color(255, 0, 0), color(255, 255, 0), color(0, 0, 255), color(0, 255, 0)];

    for (var i = 0; i < 10; i++) {
        var rx = random(width); // random x location within width
        milk[i] = makeMilk(rx);
    }

    frameRate(60);
}

function draw() {
    background(200, 233, 243);

    displayFloor();

    updateAndDisplayMilk();
    removeMilk();
    addMilkRandom();
}

function displayFloor(){
    stroke(152, 196, 209);
    strokeWeight(3);
    line(0, height - 30, width, height - 30);
}

function makeMilk(spawnX) {
    var mlk = {x: spawnX,
               space: 50,
               speed: -1.0,
               move: milkMove,
               col: random(milkCol),
               display: milkDisplay}
    return mlk;
}

function milkMove() {
    this.x += this.speed;
}

function milkDisplay() {
    fill(255);
    stroke(0);
    strokeWeight(1);
    rect(this.x, height - 90, 40, 70);

    fill(this.col);
    rect(this.x, height - 90, 40, 10);

    fill(this.col);
    rect(this.x, height - 30, 40, 10);

    fill(255);
    quad(this.x, height - 90, this.x + 5, height - 100, this.x + 35, height - 100, this.x + 40, height - 90);

    fill(255);
    rect(this.x + 5, height - 105, 30, 5);
}

function addMilkRandom() {
    var newMilkProb = .007;
    if (random(0, 1) < newMilkProb) {
        milk.push(makeMilk(width));
    }
}

function removeMilk() {
    var milkeep = [];
    for (var i = 0; i < milk.length; i++) {
        if (milk[i].x + milk[i].space > 0) {
            milkeep.push(milk[i]);
        }
    }
    milk = milkeep;
}

function updateAndDisplayMilk() {
    for (var i = 0; i < milk.length; i++) {
        milk[i].move();
        milk[i].display();
    }
}

I chose to do a generative landscape of the inside of a refrigerator. The object I defined is the milk quart. Each milk quart has a color that is randomly picked from an array of pre-selected colors. I was inspired when I went to buy some groceries, and I saw that different types of milk had different colors on their packaging. If I were to add to this project, I would include different heights for each milk quart, and other food products (objects) such as eggs, and yogurt. The concept for this project was the hardest to think of by far,  because I could not find inspiration for a long time during the week.

Initial sketches

Lingfan Jiang – Looking Outwards 10

The project I chose for this week is “Filtered Transparencies 2.0” done by Filipa Valente in 2015.

Filipa is a female creator of dynamic light architectures. As for this project specifically, it is an interactive installation that uses layered light, space, and sound to create an immersive experience. It uses projected imagery and a maze of transparent screens to blur physical spatial boundaries and transports its users into an augmented hologram-like environment. The reason I admire her work is that to me, the most important aspect of architecture is the human experience. Instead of using solid walls to create spatial conditions, she used light to create a completely different world. Hologram is being used a lot in fictional movies, but not many architects are trying to combine those technologies into architecture. Therefore, I think she did a really good job in that area.

Filipa Valente is a Portuguese architect/ environmental designer based in LA. She completed her BSc and Masters in Architecture at the Bartlett School of Architecture in London and the Masters in Media Art and Architecture MEDIASCAPES at SciArc in LA. She has held design and project management positions at different prestigious architectural practices around the world such as Zaha Hadid Architects.

 

Justin Yook – Looking Outwards 10

 

Minicade display

Chloe Varelidi’s Minicade project uses a simple approach to teach people how to make mini games. I think that Minicade is not only an education tool but also serves as an inspiration that can convince other people to branch out further from the web-app and create their own video games. Varelidi’s career started out when she pursued a Master in Fine Art at Parson’s Design and Technology Program. After acquiring the degree, she worked for various video game developer studios as creative director, and senior game designer. Later, she set up her own company called Humans Who Play, a business that encourages doing good with play. Minicade was developed when she was a member of LittleBits.

Sources:

http://www.minica.de/

http://varelidi.com/

Sharon Yang Looking Outwards 10

The project developed by a woman practitioner of the computational arts is Kate Hartman’s Botanicall, first started in 2006, and now in display in Museum of Modern Arts in New York through many iterations. It is still an on-going project with a collaboration with three other artists that are Rob Faludi, Kati London, and Rebecca Bray. Its purpose was to embody a connection between the humans and the nature in both literal and figurative sense. Botanicalls is a networked sensing communication system with which the houseplants is able to make use of the channels of human communication such as telephone calls or Twitter. The conditions and the needs of the plants can be communicated. She and the collaborators developed the Botanicall kit; the first kit was a set of Arduino shields, the second included a custom, leaf-shaped PCB design. I admire the artist’s innovative idea of a device that enables the communication between plants and humans, which is something you would only see in sci-fi books or movies. It is also amazing how she was able to implement it with the technology that is available to her. Other works of Kate Hartman include Lilypad XBee, a sewable radio transceiver that allows your clothing to communicate. She is based in Toronto, OCAD University where she is the Associate Professor of Wearable & Mobile Technology and Director of the Social Body Lab. Her work spans the fields of physical computing, wearable electronics, and conceptual art.


Botanicalls Kit


Phone communication through Botanicall


Botanicall being used on a houseplant

Sources: http://www.katehartman.com/about/

Botanicalls

Sarah Yae – Project 10 – Section B

sketch

//Sarah Yae
//smyae@andrew.cmu.edu
//Section B
//Project 10 

var nails = [];

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

    //Creation of initial nail polish
    for (var i = 0; i < 10; i++) {
        var rx = random(width);
        nails[i] = makeNails(rx);
    }
    frameRate(30);
}

function draw() {
    background(color(255,231,218));

    displayText();
    updateAndDisplayNails();
    removeOldNails();
    addNewNails();

    //Tabletop 
    noStroke();
    fill(230);
    rect(0, 260, width, height);
}

function displayText() {
    textSize(25);
    textAlign(CENTER);
    textStyle(BOLD);
    fill("Salmon");
    text("Welcome to Sarah's Nail Salon!", width / 2, 50);
}

function updateAndDisplayNails() {
    for (var i = 0; i < nails.length; i++) {
        nails[i].move();
        nails[i].display();
    }
}

function removeOldNails() {
    var nailskeep = [];
    for (var i = 0; i < nails.length; i++) {
        if (nails[i].x + 50 > 0) {
            nailskeep.push(nails[i]);
        }
    }
    nails = nailskeep;
}

function addNewNails() {
    var chance = 0.01;
    if (random(0,1) < chance) {
        nails.push(makeNails(width));
    }

}

function nailsMove() {
    this.x += this.speed;
}

function nailsDisplay() {
    var nailbody = 90;
    var nailtip = 60;

    noStroke();

    push();
    translate(this.x, height - 40);

    //Body of Nail Polish
    fill(this.randomColor);
    rect(this.x, -nailbody, this.bodybreadth, nailbody); 

    //Tip of Nail Polish
    fill(80);
    rect(this.x + 7, -nailbody - nailtip, this.tipbreadth, nailtip); 

    pop(); 

}

function makeNails(birthlocationX) {
    var nails = {x: birthlocationX, 
        bodybreadth: 40,
        tipbreadth: 25,
        speed: -1.0,
        randomColor: color(random(255), random(255), random(255)),
        move: nailsMove,
        display: nailsDisplay}
    return nails;
}


This project was difficult to tackle; I did not have any idea on which animation I wanted to do, nor did I have too much technical knowledge on where to start. However, I got inspired from my friend’s nail kit. My friends and I would go to her room and do each other’s nails sometimes- and I thought it would be a cool idea to display different nail polishes that circulate. For the code, I referred to the template to get initial ideas on where to develop my code. Overall, this was an interesting project!

Sketch of ‘Nail Salon’
My friend’s nail polish kit

 

Looking Outwards 10- Jaclyn Saik

 

Heather Dewey-Hagborg is a self described “transdisciplinary artist and educator”: basically, she’s doing a lot. I was drawn to her because she is interested in using art as research, something I really don’t hear that much about since most of the time people separate these two worlds. She is most well known for “biopolitical art”, where she will use biological research to inform her practice or activist art. Dewey-Haborg is well-known for controversial projects where she uses found human DNA and her own algorithms to create sculptures and figures.

One project of hers that stood out to me is called “DNA Spoofing”. I picked it because I don’t think I’ve seen many people make jokes out of human DNA before, so this was intriguing. She takes a “playful” approach to genetic surveillance by discussing the different ways that humans shed their genetic material in public, and the ways in which is could possibly be harvested and used. She created an entire exhibit (which was shown in a lot of museums across the US and Europe) that includes a video example of how human’s shed DNA, as well as a display of the daily common objects that facilitate this.
I love this work because it sits at the intersection between science and art, particularly biology, which I’ve always been interested in. I also like how she is identifying the ways in which we accidentally volunteer our own genetic information to strangers, something I’ve never really thought about before and makes me a little uncomfortable (I think good art should do that). From a technology standpoint, this project is interesting because it’s talking about something she herself does as an artist/researcher.

The exhibit on display at the Ohio Museum of Contemporary Art, where users can interact with these objects while viewing the video.
The actresses in the video, posed in front of the everyday objects they then demonstrate with

Robert Oh- Looking Outwards-10

Caption: Phoenix Perry’s Bot Party (2017)

For this week’s Looking Outwards Post, I decided to talk about “Bot Party”, created by Phoenix Perry in 2017. Bot Party is an educational tool that Perry created to teach children about how sounds get created. The boxes are able to detect when a person is holding them. Furthermore, if two people who are both holding these boxes hold hands, the bots are able to detect this and create sounds. I really admire the fact that Perry created this fun, interactive game to educate children.

Perry is the head of MA independent gaming, Goldsmiths, University of London (she is also a lecturer under the department of computing). Perry has created other educational games to teach younger children. I really appreciate the work she has put in to make education more fun.