Ghalya Alsanea – Project 05 – Wallpaper

sketch

//Ghalya Alsanea
//Section B
//galsanea@andrew.cmu.edu;
//Project-05

var density = 20;     //grid density
var tile;

function setup() {
    createCanvas(600, 600); 
    noLoop();
    tile = width / density;   //find tile dimension
}

function draw() {
    background(200);

    //create a grid 
    for (var gridY = 0; gridY <= density; gridY++) {
        for (var gridX = 0; gridX <= density; gridX++) {

            //random color generator
            array = ["DarkSalmon", "DarkSeaGreen", "LightCoral", "MediumAquaMarine"];
            colorSeed = int(random(0, 4));
            var color = array[colorSeed];
            stroke (color);
            strokeWeight(1);

            //define the grid's X and Y positions
            var posX = tile * gridX;
            var posY = height / density * gridY;

            //randomizer
            var toggle = int(random(0, 3));
            //randomize which direction the diagonal is drawn
            //whether it's (\) or (/)
            if (toggle == 0) {
                line(posX, posY, posX + tile, posY + height / density);
            }
            if (toggle == 1) {
                strokeWeight(2);
                line(posX, posY + tile, posX + height / density, posY);
            }
            // if it's not / or \ then draw a dot
            if (toggle == 2) {
                noStroke();
                fill(color);
                circle(posX, posY, tile / 4)

            }
            // if it's not / or \ or a dot then it becomes a torus flower
            else {
                noFill();
                stroke(color);
                strokeWeight(1);
                circle(posX, posY, tile / 3);                
                push();
                translate(posX, posY);
                for (i = 0; i < 6; i++) {
                    fill(255, 100);
                    circle(tile / 6, 0, tile / 3);
                    rotate(radians(60));
                }
                pop();
            }
        }
    }
}

function mousePressed() {
    //redraw the wallpaper when you click your mouse
    redraw();
}

A sketch showing my thought process and the layering of different types of graphics on the grid.

I started by creating a grid and then creating a maze like pattern based on a random toggle (i.e. if the line goes \ or /). I wanted to create a more fun pattern so I added to the conditional to add a flower or a dot in the places where there was no line. I was challenging myself to find a balance between structure and randomness. There’s also a random color associated with each graphic that is placed in the grid. Hence, every time you click your mouse a completely new wallpaper is drawn unlike the one before.

Claire Lee – Looking Outwards – 05

  • Please discuss the project. What do you admire about it, and why do you admire these aspects of it?
  • What do you know (or what do you suppose) about the algorithms that generated and/or rendered the work?
  • It what ways are the creator’s artistic sensibilities manifest in the final form?
  • Link (if possible) to the work. To the best of your abilities, be sure to provide the creator’s name, title of the work, and year of creation.
  • Embed an image, sound, and/or a YouTube/Vimeo video of the project.

I decided to write about a program called the Persistence of Vision (POV) Ray Tracer, which uses millions of mathematical calculations to generate a 2-dimensional scene from a text description. This isn’t necessarily an “artwork” but rather a program that pioneered the process of transcribing 3-dimensional images to a 2-d visual artwork using a software. I’m not entirely sure how the algorithms work, but it has something to do with manipulating “solids” in a “3-D space” within the program. The images that this program produces are fascinating, because of the “perfect” nature of the pieces: it’s computer-generated, so there isn’t any human error to speak of, and the images produced often look like photographs. It’s unsettling, in a way, because they are so precise. It’s also interesting to note that because these images are completely generated through text, they require no artistic capability in the traditional sense.

The Lovers by Gilles Tran, 2001.
Bonsai Life by Jeremy M. Praay, 2008.

POV-ray was first conceptualized in the late 1980’s by David K. Buck, but has since then taken on a life of its own. As the creators have kept it an open-source software, numerous users have utilized it in their individual projects. The two artists I have included in this post are Jeremy M. Praay and Gilles Tran.

Emma NM-LO-06

Perlin noise was created by Ken Perlin in 1983 for a film he was working on, Tron. It helps to add randomness to CG renderings of natural elements like smoke, fire, and water. I admire that he created something most people don’t consider. When people watch movies, we don’t think to ourselves “hey that smoke looks random.” He created something that people “take for granted” as we watch movies and see realistic fire. The algorithms don’t use the random() function, but works to interpolate between random values which creating smoother transitions. The creator’s artistic sensibilities come through knowing when he/she has reached randomness that looks aesthetic, or in Perlin’s case, realistic.

Alec Albright – Project 05 – Wallpaper

sketch

// Alec Albright
// aalbrigh@andrew.cmu.edu
// Section B
// Project 5 - Wallpaper

var diamondH = 10; // height of the diamonds
var diamondW = 10; // width of the diamonds
var diaMargin = 5; // space between a diamond and its outline
var thickStripe = 20; // stroke weight of the thick stripe
var thinStripe = 3; // stroke weight of the thin stripe

function setup(){
    createCanvas(500, 500);
    angleMode(DEGREES);
}

function draw(){
    background("skyblue");

    // drawing the diamonds
    // controling rows
    for(x = 0; x < 550; x += 25){
        // controlling number of diagonal lines
        for(y = -500; y < 500; y += 175){
            drawDiamond(x + y , x);
        }
    }

    // drawing the stripes
    for(x = -100; x < 550; x += 175){
        for(y = 0; y < 500; y += 175){
            drawStripes(x, y);
        }
    }
    noLoop();
}

// draws one diamond and its outline
function drawDiamond(x, y){
    strokeWeight(1);
    stroke("black")
    push();
    translate(x, y);

    rotate(135);
    // diamond
    fill("orange");
    rect(diaMargin, diaMargin, diamondW, diamondH);

    // outline
    // makes the rectangle transparent
    fill(0, 0, 0, 0);
    rect(0, 0, diamondW, diamondH);

    pop();
}

// draws big and little stripes to fill gaps of the diamonds
function drawStripes(x, y){
    // drawing first big stripe
    stroke("white");
    strokeWeight(thickStripe);
    line(x, y, x + 500, y + 500);

    // little stripe
    stroke("orange");
    strokeWeight(thinStripe);
    line(x + 30, y, x + 530, y + 500)

    // other big stripe
    stroke("white");
    strokeWeight(thickStripe);
    line(x + 60, y, x + 560, y + 500);
}


I originally sketched this to include less frequent diagonals of the diamonds, but upon creation I really liked the contrast between the horizontal positioning of the diamonds and the diagonal positioning of the stripes. I also wanted to implement a vibrant color palette, which manifested itself as light blue, orange, and white. My biggest difficulty in creating this wallpaper was dealing with replicating the diagonals. Particularly, the diamonds were difficult because I rotated them upon drawing them, so their coordinate system became harder to keep track of.

Below is my original sketch:

Original sketch

Chelsea Fan-Looking Outward-05

Chaotic Atmospheres creates 3D depictions of environments and landscapes. I admire that Chaotic Atmospheres creates illustrations from a wide variety of nature.

Chaotic Atmospheres’ Caustic Icebergs Illustration (n.d.)
Chaotic Atmospheres’ Eroded Leaves (n.d.)

Not only are there illustrations of scenery from far away, but Chaotic Images used a flow map on a personal project to create a series of up close images. Eroded Leaves is a vegetation flow map of the Sycamore Maple Acer Trees. This series includes 3D depictions of the Japanese Maple, the Silver Maple, the Cappadocian Maple, and more.

One critique that I have is that although Chaotic Images creates an abundance of different pieces, it does not seem as if there is any specific”style” that really represents “Chaotic Images’ Art”. Because the pieces are so different and diverse (up close vs far away, animals vs scenery, realistic vs animated) there isn’t any notable part of his art that tells viewers that a certain piece is created by Chaotic Images. This makes it less likely that the name and brand Chaotic Images has created will be widely known or spread.

Artwork by Chaotic Images can be viewed at this link: https://www.behance.net/chaotic_atmospheres/

Alec Albright – Looking Outwards 05

Rokly Wang.   Modeled in Zbrush. Texturing in Zbrush and Photoshop. Retopologized in 3DCoat, Rendered in Maya using mental ray, and the hair is using Maya hair system.
“An Elderly Curmudgeon” by Rokly Wang

The hyper-realistic image above was made by Rokly Wang in May 2012. It is admirable to me because it almost feels too real to be true. This face, generated from scratch, not modeled on an existing human, seems like an extremely high quality photograph. It was processed in various softwares such as Zbrush, Photoshop, and Maya. I do not know the underlying generative algorithms, but I can imagine there is some sort of mapping technique for aspects such as lighting, hair placement, etc. The artist was able to manifest his creative sensibilities through the demeanor of the man in the image, the lighting, the aging, etc.

Emma NM-Project-05(Wallpaper)

My Wallpaper

/* 
Emma Nicklas-Morris
Section B
enicklas
Project-05
Wallpaper
*/

// width and height of diamonds (squares)
var big = 100;
var med = 90;
var sm = 80;
var smaller = 70;
var smallest = 60;
var tiny = 20;

// space between diamonds (based off the large one)
var space = 20; 

function setup() {
    createCanvas(500, 500);
    background("#F5DEBB");
    for (var i = 0; i < 10; i++) {
        for (var j = 0; j < 10; j++) {
            noStroke();
            rectMode(CENTER);
            drawBig(i, j);
            drawMed(i, j);
            drawSm(i, j);
            drawSmaller(i, j);
            drawSmallest(i, j);
            tinyDiamond(i, j);
            blueDiamond(i, j);
        }
        
    }
    noLoop();

}

// Draws large purple diamond (square rotated)
function drawBig(i, j) {
    push();
    translate(width/2, -height/2);
    rotate(radians(45));
    fill("#581845")
    rect(big * i + space * i, big * j + space * j, big, big);
    pop();
}

// Draws medium purple-pink diamond (square rotated)
function drawMed(i, j) {
    adj = 7.5;
    push();
    translate(width/2, -height/2 - adj);
    rotate(radians(45));
    fill("#900C3F");
    nSpace = big - med + space
    rect(med * i + nSpace * i, med * j + nSpace * j, med, med);
    pop();
}

// Draws small magenta diamond (square rotated)
function drawSm(i, j) {
    adj = 15;
    push();
    translate(width/2, -height/2 - adj);
    rotate(radians(45));
    fill("#C70039");
    nSpace = big - sm + space
    rect(sm * i + nSpace * i, sm * j + nSpace * j, sm, sm);
    pop();
}

// Draws smaller orange diamond (square rotated)
function drawSmaller(i, j) {
    adj = 22.5;
    push();
    translate(width/2, -height/2 - adj);
    rotate(radians(45));
    fill("#FF5733");
    nSpace = big - smaller + space
    rect(smaller * i + nSpace * i, smaller * j + nSpace * j, smaller, smaller);
    pop();
}

// Draws smallest yellow diamond (square rotated)
function drawSmallest(i, j) {
    adj = 30;
    push();
    translate(width/2, -height/2 - adj);
    rotate(radians(45));
    fill("#FFC30F");
    nSpace = big - smallest + space
    rect(smallest * i + nSpace * i, smallest * j + nSpace * j, smallest, smallest);
    fill("#F5DEBB");
    rect(nSpace * i * 2, 0, space, height * 3); // split the diamonds into smaller ones
    rect(0, nSpace * j * 2, width * 3, space); // split the diamonds into smaller ones
    pop();
}

// Draws blue diamond on top of big diamond 
function blueDiamond(i, j) {
    push();
    translate(width/2, -height/3);
    rotate(radians(45));
    fill("#13B9BD");
    b = tiny /2;
    nSpace = big - b + space
    rect(b * i + nSpace * i, b * j + nSpace * j, b, b);
    pop();
}

// Draws tiny green diamond on top 
function tinyDiamond(i, j) {
    adj = 58.5
    push();
    translate(width/2, -height/2 - adj);
    rotate(radians(45));
    fill("#88D840");
    nSpace = big - tiny + space
    rect(tiny * i + nSpace * i, tiny * j + nSpace * j, tiny, tiny);
    pop();
}


I knew I wanted to do something geometric and repetitive with the use of a nice color palette. I started with the idea of creating squares that would be rotated to look like diamonds. From there, I knew I wanted to create a bullseye-like effect where all of the diamonds start at the top corner. Once that was created, I played with the idea of creating more diamonds inside those larger diamonds. Finally, I created my color palette based the rainbow and incorporated smaller diamonds to add to the complexity.

Sketch of my Wallpaper

Xiaoyu Kang – Looking Outwards – 05

The name of the project is called Everyday: December – 2016. It is a series of digital artwork created by Eugene Golovanchuk, who is a self taught 3D digital concept artist also known as Skeeva. 

The project consists of thirty one drawings that are created through digital medium, and the drawings are created one per day in the month of December in 2016.

The entire project focused on the idea of dark surrealism.  However, each one of these drawings in the project is constructed based on different topics, ranging from environmental design to installation design. Since all thirty one drawings are drastically different, I only picked two images that represents the diversity in Golovanchuk’s style.

Nadia Susanto – Looking Outwards – 05

“Inside Me” is a project by Dmitry Zakharov. It is based on a 3D scan technique that allows to reproduce a body image as a 3D object in a software. The artist himself scanned his own body. This piece of art is 3D computer generated and it reflects the invisible inner world of an individual. The artist was inspired by the idea of digitizing a body, hence the creation and deformation of its computer generated self, and the output reflects the digital world we live in today. He also mentioned that we humans try to express ourselves, but nobody can see through our souls.

This specific project inspires me because this art piece is literally a piece of the artist. Incorporating technology and art into describing this masterpiece was brilliant as it describes physical appearances, but also goes deep into a human’s inner self.

A video demonstrating the concept of digitizing a body and represents outer and inner human components.
A close up look of the abstract shapes to show the “inside” of the body.

If you want more information on this project, click on the link below!

https://dmitryzakharov.de/Inside-Me

Siwei Xie – Project 06 – Abstract Clock

sketch

//Siwei Xie
//Section B
//sxie1@andrew.cmu.edu
//Project-06-Abstract Clock

var CanvasW = 480;
var CanvasH = 480;
var tx = [];
var ty = [];

function setup() {
    createCanvas(CanvasW, CanvasH);

    //randomize position of stars, IN "SETUP"!
    for (i = 0; i < 60; i ++) {
        tx[i] = random(60, 400);
        ty[i] = random(100, 460);
    }
}

function draw(){
	background("black");

    //fetch time at "draw", instead of at the very beginning
	var S = second();
	var M = minute();
	var H = hour();

    //compute diameter of moon, position of rocket, size of stars 
    var mappedH = map(H, 0, 23, 0, CanvasW);
    var mappedM = map(M, 0, 59, 0, CanvasH/2.5); 
    var mappedS = map(S, 0, 59, 0, CanvasH); 

    //moon enlarges according to hours
    noStroke();
    fill("orange");
    circle(0, 0, mappedH);

    //rocket lands diagonally according to minutes
    stroke("white");
    fill(0, 26, 185);
    ellipse(mappedM+150, mappedM+200, 70, 100);
    ellipse(mappedM+120, mappedM+260, 20, 30);
    ellipse(mappedM+150, mappedM+260, 20, 30);
    ellipse(mappedM+180, mappedM+260, 20, 30);

    //create new stars according to seconds
    noStroke();
    circle(mappedS);
    for (i = 0; i < S; i ++) {
        fill("white");
        ellipse(tx[i], ty[i], 5, 5);
    }

//     write time at upper right corner
//     noStroke();
//     fill("white");
//     text("Hour: "   + H, 350, 22);
//     text("Minute: " + M, 350, 42);
//     text("Second: " + S, 350, 62);

}



I painted the night sky. As hours proceed, moon enlarges; as minutes proceed, rockets lands to ground diagonally; as seconds proceed, more stars appear in sky. The elements interact with each other organically, and follow the time schedule.

The process of creating was romantic and technical for me. I learned about fetching time and incorporating it into my animations. Compared to other projects, I spent more time on the creative and aesthetic sides of the work. Since it gives us more freedom on the form of output, I decided to draw without limitations first. Then after all elements were drawn, I figured out a way to connect the story – a moon and starry night with a rocket landing to grounds.

Ideation process – sketch on my notebook.