Min Jun Kim- Project 9 Portrait

Image gets clearer over time!

/*
Min Jun Kim
minjunki@andrew.cmu.edu
15104-B
Project 9
*/

var img; //sets the variable for the image to go into

//loads the image into the program
function preload() {
    img = loadImage("https://i.imgur.com/kt8Qs81.jpg");
    
}

function setup() {
    createCanvas(365, 480);
    background(250);
    //loads the pixels and sets the frame rate
    img.loadPixels();
    frameRate(10000000)
    
}

var dec = 0 //variable in which the decrease the size
var increment = 0.01 // the rate of decreasing
var scaley = 0.2 //scales the image

function draw() {
	//variable that moves the pixels
	var randaddx= random(200)
	var randaddy= random(200)
	//variable that determiens the size of pixels
	var randsize = random(30-dec)
	
	//scales the image down
    scale(scaley,scaley)
    noStroke()
    //draws starting points on canvas
    for (i = 0; i < height*1/scaley; i += 100) {
    	for (x = 0; x < width*1/scaley; x += 100) {
    		//finds the color
    		var c = img.get(x+randaddx, i+randaddy);
    		//sets pixel = to color
    		fill(c);	
    		//draws the pixels
    		rect(x+randaddx,i+randaddy,randsize,randsize)
    	}
    } 
    //makes it so that image gets more clear over time
    dec += increment
    if (dec > 25) {
    	increment =0 
    }
    
}

I wanted my pixel portrait to load fast and be rather accurate, so I used for loops to draws initial starting points of the canvas then used random values to move the points in order to draw the canvas. Initially, I increased the for loop variables by a low number of 20, which resulted in the picture loading too fast and too accurately, which defeated the point of the pixel art. So I set up a parameter where the size of the pixels decreased over time. This way there are less gap points (because the starting size is big) and adds an interesting layer to the whole piece.

Process:

original photo credits to my gf

Process 1
program about 30 seconds in

Tanvi Harkare – Project 09 – Portrait

tanvi09

/* Tanvi Harkare
tharkare@andrew.cmu.edu
Section B
Project-09*/

var img;
var ix;
var iy;
var px;
var py;
var sizeC = 10;
var colAtLoc;

function preload(){
    var url = "https://i.imgur.com/yJADhdn.jpg"
    img = loadImage(url);
}

function setup() {  
    createCanvas(480, 480);
    background(255);
    img.loadPixels();
}

function draw() {
    //x and y locations for ellipses
    px = int(random(0, 480));
    py = int(random(0, 480));
    //saving x and y locations of mouse
    ix = mouseX;
    iy = mouseY;
    //colors for circle and text
    colAtLocCircle = img.get(px, py);
    colAtLocText = img.get(ix, iy);
    //drawing text based on mouseX and mouseY
    noStroke();
    fill(colAtLocText);
    textSize(6); 
    text("PK", ix - 3, iy + 3); //so mouse is in center of text
    //setting random size and drawing circles
    randomSize();
    fill(colAtLocCircle);
    ellipse(px, py, sizeC, sizeC);
}

function randomSize(){
    sizeC = int(random(0, 10));
}

For this project I chose a picture of my friend Prerana that I took myself last year! Circles appear on the canvas in a random order, and also vary in size because of the randomSize function. In addition to the points, if you run the mouse over the canvas, her initials appear in the color of wherever the mouse position is located based off the image pixel color.

original photo
If the circles were set to the same size each frame
how the final image could potentially look

Lingfan Jiang – Looking Outwards 09

I looked through Kai Zhang’s posts. One of them talked about the making of Movie CGI Effects in Doctor Strange in 2016. The video attached is very interesting to look at. Here’s the link for that.

It is surprising that the process of CGI making is not all about 3D generated objects. A lot of the times it is a combination of 2D and 3D layers that make up the full imagery.

It is also amazing to see how much software is capable now. Being an architecture student myself, it is still really difficult for me to imagine rendering one frame of the movie. Although the process is a lot different from each other, the final product is still fascinating to look at.

I think in the original post, Kai really explained the process really well. For me, on the other hand, I am interested in what it means to have those amazing effects. First of all, being a Marvel movie, Doctor Strange is a movie with great fighting scenes and fancy looks. However, with those effects, actors had to act based on their imagination and acting experience. As for the movies themselves, we like to watch these kinds of visual effects. In order to not let people feel bored, more and more money is invested to create better effects. As a result, the characters’ emotions become less important in those movies. They are definitely nice movies to watch, but normally we do not learn from them anymore.  Image result for doctor strange cgi

Here is the original post.

Kai Zhang-Looking Outwards-05

 

 

Victoria Reiter – Looking Outwards – 09

This week I looked at the Looking Outwards post of my classmate Samantha (October 5th, 2018), from her Week 6 Looking Outwards post. In this post, she reviews the Randomly Generated Insect Species project created by Chaotic Atmospheres, specifically Geneva-based artist Istvan.

The Cloaked Chrysalid, insect designed by artist Istvan

Istvan created several species with distinct characteristics, such as a certain number of legs, wings, etc. as the basis for his insects, then adjusted parameters on deformers to allow for the variations between species.

The Longhorn Mismisa

I think his project is interesting because all his insects, although distinct, follow a similar aesthetic style, making them look like they really do all come from some like alternate planet…or DIMENSION.

I also found out that he posts his insects as trade-able art trading cards on the website NeonMob, which I thought was really cool!

A bio on Istvan can be found here.

Lingfan Jiang – Project 09 – Portrait

sketch

// Lingfan Jiang
// Section B
// lingfanj@andrew.cmu.edu
// Project-09

var x = [50, 61, 83, 69, 71, 50, 29, 31, 17, 39];
var y = [18, 37, 43, 60, 82, 73, 82, 60, 43, 37];
var underlyingImage;

function preload() {
    var myImageURL = "https://i.imgur.com/U0XImSh.jpg";
    underlyingImage = loadImage(myImageURL);
}

function setup() {
    createCanvas(480, 480);
    frameRate(10);
    //translate the origin a little to make the canvas filled
    translate(-20, -20);
    background(187, 230, 235);
    underlyingImage.loadPixels();
}

function drawStar(sx,sy){
    push()
    translate(sx - 20, sy - 20)
    var nPoints = x.length;

    //draw stars based on the two arrays stated at the beginning
    //also use random function to let the stars have slightly different shapes
    beginShape();
    for (var i = 0; i < nPoints; i++) {
        var ssx = x[i] + random(-3, 3);
        var ssy = y[i] + random(-3, 3);
        scale(0.85)
        vertex(ssx,ssy);
    }
    endShape(CLOSE);
    pop()
}


function draw() {
    //create random points width the size of (500, 500) 
    //to make sure the stars can reach the edge
    var px = random(width + 20);
    var py = random(height + 20);
    var ix = constrain(floor(px), 0, width + 20);
    var iy = constrain(floor(py), 0, height + 20);
    //get color from the underlying image
    var theColorAtLocationXY = underlyingImage.get(ix, iy);

    noStroke();
    fill(theColorAtLocationXY);
    //draw stars based on px, py
    drawStar(px, py);
}



This is a very interesting project which reminds me of the first portrait project we did for the course. It is amazing how much I learned along the way.

For this project specifically, I decided to use the star shape we learned how to do earlier as my pixel. The result turns out very good in the end.

Victoria Reiter – Project 09 – Portrait

sketch

/*
Victoria Reiter
Section B
vreiter@andrew.cmu.edu
Project-09-Portrait
*/

var img;

// preoloads photo of my friend Shirley!
function preload() {
    var myImgURL = "https://i.imgur.com/n0vEZ2z.png?2";
    img = loadImage(myImgURL);
}


function setup() {
    createCanvas(480, 480);
    angleMode(DEGREES);
    background(89, 10, 201);
    imageMode(CENTER);
    img.loadPixels();
}

function draw() {
    // chooses a random x value located near the cursor
    var randomX = floor(random(mouseX - 15, mouseX + 15));
    // chooses a random y value located near the cursor
    var randomY = floor(random(mouseY - 15, mouseY + 15));
    // selects the color from a pixel at a random point near the cursor
    fill(img.get(randomX, randomY));
    // draws a flower at that point
    flower(randomX, randomY);
}

// creates flower shape
function flower(x, y) {
    push();
    noStroke();
    translate(x, y);
    ellipse(0, 2, 2, 6);
    rotate(45);
    ellipse(5, 0, 2, 6);
    rotate(90);
    ellipse(5, 0, 2, 6);
    rotate(135);
    ellipse(-8, 5, 2, 6);
    rotate(180);
    ellipse(8, 4, 2, 6);
    rotate(225);
    ellipse(-6, 11, 2, 6);
    rotate(270);
    ellipse(-6, -11, 2, 6);
    rotate(-45);
    ellipse(0, -13, 2, 6);
    pop();
}

这个周末我决定了创造我的朋友Shirley的画像。因为她很艺术的,所以我觉得可能是最好的题材。她很优雅的,所以我决定了创造花来代表这个她的性格的方面。她是我在上海留学的时候的语伴,现在在墨尔本,澳大利亚上大学。你好Shirley!!

This week I decided to make a portrait of my friend Shirley. She is very artistic, so I thought she would be the perfect subject for the project. She is very pretty and elegant, so I decided to create flowers to represent this aspect of her personality. She was my language partner when I studied abroad in Shanghai, and now she attends school in Melbourne, Australia. Hi Shirley!!

I added an aspect where you use the mouse to “paint” the flowers on the screen, and thus be able to control how the portrait is revealed. I think this is interesting, because it allows you to decide how you explore the portrait, and makes the process feel a little more intimate. You can also draw with the mouse in the earlier frames and create swirls and shapes on the screen by revealing the colors of the portrait below.

Romi Jin – Looking Outwards 09

For this week’s looking outwards post, I looked at Ying’s looking outward-05. She is my architecture mentee and posts a lot about interesting architecture projects. What especially intrigued me was this post about a three-dimensional rendering project called Somerset Isle by Tomer Meltser. It is fascinating to see how much is put into this rendered landscape:


Sample image of the rendered landscape.

Architecture set placed in the rendering.

Foliage set used throughout the rendering.

One day I’d love to do something like this; it seems like so much fun to create and to see the final outcome come together so beautifully created like Meltser’s final rendering video. This makes me think of how far an architect can take their drawings and ideas — into a realistic three-dimensional journey that displays in depth details of each plant, landscape element, building, objects, etc.

Romi Jin – Project-09-Portrait

sketch

/*
Romi Jin
Section B
rsjin@andrew.cmu.edu
Project-09
*/

var img;

function preload() {

    var imgur = "https://i.imgur.com/tbSmZ90.jpg";
    img = loadImage(imgur);
}

function setup() {

    createCanvas(360, 479); //resize image in photoshop
    background(255, 225, 225);
    imageMode(CENTER);
    frameRate(500); //speed that pixels are drawn 
    img.loadPixels();
    noStroke();

}

function draw() {

    var x = constrain(floor(random(width)), 0, width); //constrains random x values of pixels
    var y = constrain(floor(random(height)), 0, height); //constrains random y values of pixels

    var rgb = img.get(x, y); //extracts colors from image pixels

    fill(rgb);
    ellipse(x, y, 7); //circles drawing the image

}

For this project, I used an image of my best friend from home, Mina! It was a lot easier than I expected! From just a few lines of code, you can produce such a cool animated image! I am excited to try this out with different images and shapes in the future.

Shirley Chen-Looking Outwards-09

Meandering River is an project that tried to capture the gradual changes and movements of our world rather than just one single snapshot. Based on the sound generated from the river, Onformative used a custom-written algorithm that reinterprets fluctuating river patterns in order to translate the subtle changes in our nature to a visual effect. For me it is very fascinating that they visualized something that is subtle, gradual, easy-to-ignore but certainly happening in our world using computing method. Also, it is fascinating that their ability to deal with the sound data and other senses that are not sight related but eventually visualize these data. For them, art is not a still snapshot of one moment, but a mutative testimony of time, space, and nature.


Meandering River


Details of the Surface


Details of the Surface

The other project they did for sound is the Unnamed Soundsculpture. This moving sound sculpture is based on the recorded motion data of a dancer. They used 3 different Microsoft Kinect cameras and recorded the movement into 3d pointclouds that were synced and exported as one large data set. The final visual effect produced is that particles moving and forming shapes according to the movement of the dancer, which coordinated with the music.

Unnamed Soundsculpture
https://onformative.com/work/unnamed-soundsculpture
Onformative’s Website
https://onformative.com/work

looking outwards 8

Eyeo 2014 – Darius Kazemi from Eyeo Festival on Vimeo.

Programmer Darius Kazemi’s work focuses mostly on building autonomous bots and generative toys that do random and absurd things. His intention for these projects is mostly to make himself laugh but in the end he finds the bots doing interesting unexpected things on the internet. He has created a twitter bot called “Autocharts” where once a day it tweets an absurd flow chart and he has also created a tumblr bot called “Scenes from the Wire”. His best known project “Amazon Shopper randomizer” is a program that he gives a 50 dollar amazon gift card once a month and the program buys random items, specifically books, cds, and dvds and nails it to his house. He made the bot’s amazon account from scratch and essentially the program works with amazon’s algorithms from the recommended list to create a personality for the bot as he keeps buying every month. Kazemi creates this interesting dynamic between the bot, amazon and himself as the bot delivers $50 worth of content that he can watch, read or listen to each month. In his programming work Kazemi makes a point about composing for infinity – meaning that a simple for loops ( in a few seconds) can generate more information than a human being can consume in a lifetime. This is a fact that creative programmers confront when making art with code and what the difference between the traditional creative process.