nahyunk1 – Project 10 Landscape

sketch

//NaHyun Kim
//section B
//nahyunk1@andrew.cmu.edu
//Project 10 - landscape

var tSpeed = 0.0013;
var tDetail = 0.002;
var stars = [];
var r = 255;
var g = 255;
var b = 255;

function setup() {
    createCanvas(400, 500);
    frameRate(10);

    for (var s=0; s<1; s++){
      var place = random(width);
      stars[s] = makeStars(place);
    }
}

function draw() {
  var Col = color(25,0,51) //dark purple;
  var Col2 = color(51, 0, 102)// lighter purple;
  //background color
  for (var i=0; i < height; i++) {
   var gradi = map(i, 90, 300, 0, 1);
   var Lerp = lerpColor(Col, Col2, gradi);
    stroke(Lerp);
    line(0, i, width, i);
   }

   //stardust
  updateAndDisplayStars();
  removeStars();
  starGenerate();
  starDisplay();

   //moon
   for (var c=0; c<10; c++){
     noStroke();
     fill(217,154,100,(10-c)*1)
     ellipse(310, 30, 40+(10*c), 40+(10*c));
     noStroke();
     fill(255, 223, 181);
     ellipse(310, 30, 50, 50);
     fill(252, 240, 224);
     ellipse(313, 30, 45, 45);
   }

   //rolling mountains behind
   strokeWeight(0.1);
   stroke(random(0,r), random(0,g), random(0,b));
   fill(20);
   beginShape();
     for (var x = 0; x < width; x++) {
       var t = (5*x * tDetail) + (millis() * tSpeed/10);
       var y = map(noise(t/4), 0, 1, 0, 600);
       curveVertex(x, y);
     }
   curveVertex(500, 1000);
   curveVertex(0,width);
   endShape(CLOSE);

  noStroke();
  fill(0);  //rolling mountain tops
  beginShape();
    for (var x = 0; x < width; x++) {
        var t = (5*x * tDetail) + (millis() * tSpeed/2);
        var y = map(noise(t/2), 0,1, 1, 600);
        curveVertex(x, y);
     }
  curveVertex(500, 10000);
  curveVertex(0,width);
  endShape(CLOSE);
}

function updateAndDisplayStars(){
    // Update and display stars
    for (var i = 0; i < stars.length; i++){
        stars[i].move();
        stars[i].display();
    }
}

function removeStars(){
       var starsKeep = [];
       for (var i = 0; i < stars.length; i++){
           if (stars[i].x + stars[i].breadth > 0) {
               starsKeep.push(stars[i]);
           }
       }
       stars = starsKeep; //remaining stars.
}
function starGenerate() {
       // add stars
       var likelyStar = 0.009;
       if (random(0,1) < likelyStar) {
           stars.push(makeStars(width));
       }
   }
//update position
function starsMove() {
       this.x += this.speed;
   }
function starDisplay() {
       strokeWeight(random(0.5,3));
       fill(random(0,r), random(0,g), random(0,b));
       stroke(random(0,r), random(0,g), random(0,b));
       push();
       translate(this.x, 20);
       for (var i = 0; i < stars.length; i++) {
           point(random(10,200), random(10,200));
       }
       pop();
   }
function makeStars(birthLocationX) {
     var starr = {x: birthLocationX,
                 breadth: 30,
                 speed: -0.003,
                 move: starsMove,
                 display: starDisplay}
     return starr;
 }

I created this image based on the time when I was looking out the window of a car at night on a highway next to mountainous forests. I had multichromatic stars appear and disappear which made it seem like they were actual stars and had the background of the mountain respond to the starlights to emphasize the surreal scenery. I also created the brightness effect of the moon by creating a series of ellipses with fading hues of the color of the moon.

aerubin-LookingOutwards-10-Section-C

One of Claudia Hart’s many Installations featuring “The Dolls House”

Claudia Hart is a computational fine artist that turns photographs into digital moving art. Originally from New York, New York, she attended school at New York University earning a BA in art history in 1978. She then studied architecture at the Columbia University Graduate School of Architecture and earned her MS is 1984. After exhibiting with the Pat Hearn Gallery, she received an NEA Fellowship in 1989 and moved her practice to Europe where she spent ten years and received many awards and fellowships such as the Kunstfond Bonn, the Stiftung Luftbruekendank Grant, and the Arts International Foundation Grant.

One of her many projects that I found notable portrayed one of her major themes: the blend of technology and nature. The piece is titled “Noh-timeGarden” and it is the third in a series of instillations. These works feature two side by side screens that portray nature in the form of animation. In this particular piece, she portrays a garden from two different points of views that are moving towards one another. Utilizing algorithms and a computer, she is able to digitize nature realistically enough that it appears three dimensional, although it still has the smoothness and perfection of being computationally rendered – seen in the smooth ground and perfectly green pointed leaves. I really admire her ability to make a social statement of nature and technology through her art.

More about “The Doll House”

More about Claudia Hart

looking-outward 10 Thomas Wrabetz

The Breathing Column is an architecture prototype by Caitlin Morris. It is a large installation that reacts to nearby people by turning, expanding and contracting in a lifelike fashion. The prototype is from 2010- I was not able to find a video of the finished installation. In any case, it is an interesting combination of architecture and computing that challenges the perception of buildings as static.

enwandu_Looking Outwards-10

Filipa Valente – creator of dynamic light architecture

Filtered Transparencies (2014 & 2015)  —  User immersed in created space

Filipa Valente is a Portuguese architect/environmental designer, based in the Los Angeles, California. She specializes in architecture and new media, interactive and experience design, furniture, and exhibition design. Valente completed her BSc and Masters in Architecture at the Bartlett School of Architecture in London, then went on to receive her Masters in Media Art and Architecture at SciArc in Los Angeles. Valente has created a name for herself over the years, holding design and project management positions at some of the world most prestigious architectural practices such as Zaha Hadid Architects, Amanda Levete Architects, Wilkinson Eyre Architects, and Belzberg Architects and Synthesis Design + Architecture. She is part of the organization limiLAB, which has had work exhibited in the Architecture + Design museum of L.A., at the Lisbon Experiment Design Biennale in 2009, and the ISEA 2012 (International Electronics Art Symposium).

Valente and her work with limiLAB stems from an interest in immediate space (architecture, rooms, cities, people), leading to the creation of these magnificent interactive art and installation pieces. Broadly speaking her work exists as an exploration of how technology connects to all these spaces with each other and their surrounding environments. Her work is truly admirable from an aesthetic standpoint. A lot of the work is visually stunning, and that combined with her thought process of incorporating elements of environmental design, really echo through her work. I think her project ‘Filtered Transparencies’ really represents her ideas about exploring the relationships between the environment, architecture and the body, by using layered light, space and sound to create an immersive experience.

rkondrup-Looking-Outwards-10

Jenny Sabin is principal of Jenny Sabin Studio LLC in Ithaca, New York who specializes in computational experimental form making and spatial organization. Her studio pushes the boundaries for parametric design to generate forms which, as a collective, produce a space which is complex and entirely unique. The studio likely utilizes Grasshopper for Rhino software to generate complex curvatures using modular base geometries that are repeated and varied according to the main organizational geometries of the flow surface, as in the following photo.
Considering the role of Cornell University as a leader in cutting-edge architectural design and research, Jenny Sabin’s strong connections to the Jenny Sabin Design Lab at Cornell’s School of Art, Architecture, and Planning are a strong propellant in the drive toward a more modern future in computational architectural design.

ablackbu-Project-10-Generative Landscape

sketch

var terrainSpeed = 0.0008;
var terrainDetail = 0.008;
var fiX = 450;
var fi2X = 500;
var fi3X = 475;
var scooba;
var scoobaX = 450


function preload() {
    scooba = loadImage('https://i.imgur.com/8HhJZHY.png')
}

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

}
 
function draw() {
    background(70,200,250);
    //draw terrain
    terrain();
    //draw sub
    sub();
    //draw fish
    fish();
    //sand
    fill(226,226,176)
    rect(0,height-20,width,20)
    //scooba diver
    scoobaD();
    



}

function terrain() {
    noFill(); 
    beginShape(); 
    stroke(40,120,40)
    strokeWeight(2)
    for (var x = 0; x < width; x++) {
        var t = (x * terrainDetail) + (millis() * terrainSpeed);
        var y = map(noise(t), 0,1, 0, height);
        vertex(x, y); 
        
        

        //terrain
        push();
        fill(40,120,40);
        ellipse(x,y+25,20,20); //thick black hill
        ellipse(x,y+55,10,10); //thin black hill

        stroke(20,80,18);
        strokeWeight(1);
        if(x%2){
            line(x,y,x,y+200) //white lines
        }
        pop();

        
    }
    endShape();
}


function sub() {
        //sub
    push();
    rotate(random(-.01,.01));
    strokeWeight(0);
    fill('yellow');
    
    rect(170,100,70,35,15); //body
    rect(185,89,30,30,5); //top
    rect(150,107,15,20,3); //tail
    rect(162,112,10,10); //connector
    rect(190,85,5,10); //airtube
    ellipse(225,117.5,43,35); //nose


    fill(200);
    //windows
    ellipse(188,115,12,12);
    ellipse(205,115,12,12);
    ellipse(223,115,12,12);

    fill(100);
    //inside windows
    ellipse(188,115,9,9);
    ellipse(205,115,9,9);
    ellipse(223,115,9,9);
    pop();
}

function fish() {

    var fiS = 3.5;
    var fi2S = 2;
    var fi3S = 3;

    strokeWeight(0);
    fill(0);
    //fish1
    ellipse(fiX,50,25,10);
    triangle(fiX+10,50,fiX+16,45,fiX+16,55);
    fiX = fiX-fiS;
    if(fiX < 0){
        fiX = 450;
    }
    //fish2
    ellipse(fi2X,60,25,10);
    triangle(fi2X+10,60,fi2X+16,55,fi2X+16,65);
    fi2X = fi2X-fi2S;
    if(fi2X < 0){
        fi2X = 500;
    }
    //fish3
    ellipse(fi3X,70,25,10);
    triangle(fi3X+10,70,fi3X+16,65,fi3X+16,75);
    fi3X = fi3X-fi3S;
    if(fi3X < 0){
        fi3X = 475;
    }
}  

function scoobaD(){
    var scoobaS = 3.5;
    push();
    scale(.6);
    translate(50,10);
    image(scooba,scoobaX,0);
    //move scooba across screen
    scoobaX = scoobaX - scoobaS;
    if(scoobaX < -150){
        scoobaX = 550;
    }
    pop();
} 
    

For this project I wanted to play off of the Beatles’ song “Yellow Submarine.” I used some code from the example to generate the landscape which I then manipulated to create details in the underwater mountains. The sub in the middle is rotating a tenth of a degree every frame to create a turbulent look. fish and a scuba diver go past at randomly generated speeds.

What I learned while doing this project is that making separate functions for each part and then calling them in the draw function is a great way to change code and manipulate it.

heeseoc-Project-10-Landscape

sketch

//Steph Chun
//15-104 section #A
//heeseoc@andrew.cmu.edu
//Project-10

var buildings = [];
var terrainSpeed = 0.0005;
var terrainDetail = 0.008;
var c1, c2;
var lc1, lc2, lc3, lc4;

function setup() {
    createCanvas(480, 480); 
    //background gradient color
    c1 = color(60,1,29);
  	c2 = color(205,100,70);
  	//gradient color for reflected streetlight
  	lc1 = color(255,230,109,30);
  	lc2 = color(255,230,109,0);
  	//gradient color for reflected buildings
    lc3 = color(random(180,200), random(100,150), random(100,150), 50);
  	lc4 = color(random(180,200), random(100,150), random(100,150), 0);

    for (var i = 0; i < 10; i++){
        var rx = random(width);
        buildings[i] = makeBuilding(rx);
    }
    frameRate(20);
}

function draw() {
    setGradient(0, 0, width, height/2+50, c1, c2, 1);
    updateBuildings();
    removeBuildings();
    addBuildings(); 
    makeBushes();
    riverDisplay();
}

//gradient for the background(sky)
function setGradient(x, y, w, h, c1, c2, axis) {
  noFill();
    for (var i = y; i <= y+h; i++) {
      var inter = map(i, y, y+h, 0, 1);
      var c = lerpColor(c1, c2, inter);
      stroke(c);
      line(x, i, x+w, i);
    } 
}

//
function updateBuildings(){
    for (var i = 0; i < buildings.length; i++){
        buildings[i].move();
        buildings[i].display();
    }
}

//remove buildings when they're out of frame
function removeBuildings(){
    var buildingsToKeep = [];
    for (var i = 0; i < buildings.length; i++){
        if (buildings[i].x + buildings[i].breadth > 0) {
            buildingsToKeep.push(buildings[i]);
        }
    }
    buildings = buildingsToKeep;
}

//introduce new buildings
function addBuildings() {
    var newBuilding = 0.008; 
    if (random(0,1) < newBuilding) {
        buildings.push(makeBuilding(width));
    }
}

//move the buildings
function buildingMove() {
    this.x += this.speed;
}

//draw multiple buildings
function buildingDisplay() {
    var floorHeight = 20;
    var bHeight = this.nFloors * floorHeight; 
    push();
    noStroke();
    fill(this.bColor); 
    translate(this.x, height - 190);
    rect(0, -bHeight, this.breadth, bHeight);
    stroke(200); 
    for (var y = 0; y < this.nFloors; y++) {
    	for (var x = 0; x < 6; x++){
    		noStroke();
    		fill(random(165,255), random(180,255), random(200,220));
    		rect(x*10+8, -10-(y*floorHeight), 4, 7);
    	}
	}
    pop();
}

//determine the shape and movement of the building
function makeBuilding(birthLocationX) {
    var bldg = {x: birthLocationX,
                breadth: 70,
                speed: -1.2,
                bColor: color(random(180,200), random(100,150), random(100,150)),
                nFloors: round(random(3,10)),
                move: buildingMove,
                display: buildingDisplay}
    return bldg;
}

//make bushes
function makeBushes(){
    noStroke(); 

    //the farthest bush
    beginShape();
    for (var x = 0; x < width; x++) {
    	fill(93,15,11);
        var t = (terrainDetail * x) + (millis() * terrainSpeed);
        var y = map(noise(t*2), -.5, 1, 370, height/2-30);
        curveVertex(x, y); 
    }
    curveVertex(width, height);
    curveVertex(0,width);
    endShape(CLOSE); 

    //second to the front 
    beginShape();
	for (var x = 0; x < width; x++) {
        fill(61,0,4);
        var t2 = (terrainDetail * x) + (millis() * terrainSpeed);
        var y2 = map(noise(t2*2), -.5, 1, 390, height/2-30);
        curveVertex(x, y2); 
    }
    curveVertex(width, height);
    curveVertex(0,width);
    endShape(CLOSE);   

    //closest(darkest) bush
    beginShape();
	for (var x = 0; x < width; x++) {
        fill(31,7,6);
        var t3 = (terrainDetail * x) + (millis() * terrainSpeed);
        var y3 = map(noise(t3*2), -.7, 1.1, 420, height/2-10);
        curveVertex(x, y3); 
    }
    curveVertex(width, height);
    curveVertex(0,width);
    endShape(CLOSE); 
}

function riverDisplay(){

	//river and road
    fill(31,4,9);
    rect(0, height/2+50, width, height/2+50); 
    fill(120,6,41);
    rect(0, height/2+50, width, 5);
    fill(161,12,44);
    rect(0, height/2+53, width, 2);

    for (var s = 0; s < width; s++) {

    	//streetlight
    	strokeWeight(1.3);
    	stroke(255,216,205);
    	line(s*80-7, height/2+30, s*80+7, height/2+30);
    	stroke(217,136,109);
    	line(s*80, height/2+50, s*80, height/2+30);
    	noStroke();
    	fill(255,246,109,60);
    	quad(s*80-7, height/2+30, s*80+7, height/2+30, s*80+15, height/2+50, s*80-15, height/2+50);
    	
    	//gradient for the reflected streetlights
    	setlGradient(s*80-8, height/2+55, 16, height/2-55, lc1, lc2, 1);
    	setl2Gradient(s*80-15, height/2+55, 30, height/2-55, lc1, lc2, 1);

    	//gradient for the reflected buildings 
    	setl3Gradient(s*30+(random(10,70)), height/2+55, 10, height/2-55, lc3, lc4, 2);
    }

    //road detail
    fill(31,4,9,80);
    rect(0, height/2+53, width, 10); 
 
}

//gradient for the reflected streetlights
function setlGradient(x, y, w, h, lc1, lc2, axis) {
	noFill();
	for (var i = y; i <= y+h; i++) {
	    var inter = map(i, y, y+h, 0, 1);
	    var lc = lerpColor(lc1, lc2, inter);
	    stroke(lc);
	    line(x, i, x+w, i);
    } 
}
function setl2Gradient(x, y, w, h, lc1, lc2, axis) {
	noFill();
	for (var i = y; i <= y+h; i++) {
	    var inter = map(i, y, y+h, 0, 1);
	    var lc = lerpColor(lc1, lc2, inter);
	    stroke(lc);
	    line(x, i, x+w, i);
    } 
}

//gradient for the reflected buildings 
function setl3Gradient(x, y, w, h, lc3, lc4, axis) {
	noFill();
	for (var i = y; i <= y+h; i++) {
	    var inter = map(i, y, y+h, 0, 1);
	    var lc = lerpColor(lc3, lc4, inter);
	    stroke(lc);
	    line(x, i, x+w, i);
    } 
}




I created a cityscape at night, with the lights reflected on the river. I immediately came up with the image when I first read the instructions, and then noticed that the sample code would be super helpful for me to get started on this. I modified the code so that the shapes are visually more pleasing, and played around a lot with gradients to achieve the reflected city on the surface of the water. I wanted to have multiple layers of buildings, but for some reason, my code got broken whenever I tried adding more. So I just settled with varying the colors of the building to be more random.

katieche-looking outwards 10

NEUROTiQ

The sensoree NEUROTiQ spa was headed by Kristin Neidlinger, a biomedia concept designer. It consists of a headpiece that “animates” your brain by illuminating and mapping brain waves using color. It was applied in the setting of a yoga class, as an experimental project. The headpiece uses the Muse Brain Sensing Headband to identify activity and brain wave patterns of the user, and then animated the headpiece to display colors according to the user’s cognition levels, attention, resting rate, meditation and sense of deep sleep.

This technology would be used in notifying people of their more relaxed states of mind, which would promote mental well being.

akluk-SectionA-LookingOutwards-10


For this week’s looking outwards, I have chosen to report on Nova Jiang’s project Landscape Abbreviated. It is a kinematic maze constructed with modular planters with the capability of rotation which forms new paths and routes, while being a beautiful garden.

Image of the project

The parts of the maze is rotated and reconstructs is maze is controlled a computer program that obeys and follows certain mathematical algorithms. This makes the maze dynamic and ever changing, which encourages the audience to appreciate it from different angles and perspectives. I really appreciate that this project combines both natural and mechanical components. Nova Jiang holds a masters at UCLA. She seems to be currently an independent artist who creates projects that encourages the tactile and creative participation of the audience, resulting in structurally open systems in which joy, disorder and improvisation can thrive. Attached below is a link to the project.
Link

yushano_Looking Outwards 10

Website

“We Make the Weather is an interactive breath-controlled installation created for New Cinema program hosted by Eyebeam and The Creator’s Project. Inspired by Hurricane Sandy, it uses seam carving, breath detection, motion capture, and the Unity game engine to explore the human impact on the environment”.
Karolina Sobecka is one of the main designers in this project. This project is teamed up by filmmakers, creative coders, artists, designers and motion graphics specialists to investigate the future of cinematic storytelling in the New Cinema hackathon. In We Make The Weather, the viewer wears a headset with a microphone sensor that monitors his or her breath and tracks its ebb and flow, and level of intensity, then uses this information to controls a virtual figure crossing a never-ending bridge, powering the visuals and sound within the 3D animated landscape.
I think this project is really amazing because it combines narrative and interactive themes together. It blends their idea that human beings are actually influencing and changing the environment no matter what you are doing, even breathing, into the movie-like scene. This project puts audience into a movie scene and let the audience feel and sense the effects that they can impose to the environment. The project idea is really amazing and meaningful. Also, the technology that they use are very broad. They use 3D animation tool, virtual reality technologies and so on to create the interactive scene. Such installation with both narrative and interactive theme should be more widely spread.