Project 05 – Wallpaper

I wanted to make a wallpaper that looked like a stitched flower quilt pattern.

sketch

//SRISHTY BHAVSAR
//15-104 PROJECT 05 
//SECTION C



// COLORS
var w = 255 // white
var lbrown = (196, 164, 132); // light brown

// lengths

var s = 50 //sqare



function setup() {
    createCanvas(200, 20);
    background(194,197,201);
    text("p5.js vers 0.9.0 test.", 10, 15);
}

function draw() {
    createCanvas(600,600);
    background(194,197,201); //light blue


    // RED DIAMOND LOOP
    push();
    translate(300,-300);
    rotate(radians(45)); // rotates squares to be diamonds
    for( var x = 0; x < 1200; x+= s/2) {
        for( var y = 0; y < 1200; y+= s/2){
            reddiamonds(x,y);
        } 
    }

    // FLOWER DIAMOND LOOP
    pop();
    push();
    translate(265,-300);
    rotate(radians(45));
    noFill();
    for( var i = 0; i < 2000; i+= s) {
        for( var j = 0; j < 2000; j+=s) {
            flowerdiamonds(i,j);
            //square(i,j,s);
        } 
    }

    pop();

}

function reddiamonds(x,y) {
    translate(x,y); // origin moves along row
    push();
    stroke(183, 113, 121, 70); // light red
    strokeWeight(2);
    noFill();
    square(x,y,50);
    pop();
    translate(-x,-y); // origin moves along row
}

function flowerdiamonds(i,j) {
    // lacy white dot rim of elipses that trace the diamond
    noFill();
    stroke(w);
    strokeWeight(1);
    translate(i,j);
    // create 4 lacy rims that create a square
    push();
    for (var x = 0; x < 60; x +=10) {
        for(var y = 0; y <10; y += 10) {
            ellipse(x,y, 6, 4);
        }
    }
    rotate(radians(90));
    for (var x = 0; x < 60; x +=10) {
        for(var y = 0; y <10; y += 10) {
            ellipse(x,y, 6, 4);
        }
    }

    translate(0, -50);
    for (var x = 0; x < 60; x +=10) {
        for(var y = 0; y <10; y += 10) {
            ellipse(x,y, 6, 4);
        }
    }
    translate(50,50);
    rotate(radians(-90));
    for (var x = 0; x < 60; x +=10) {
        for(var y = 0; y <10; y += 10) {
            ellipse(x,y, 6, 4);
        }
    }

    pop();

    //FLOWER STEM
    push()
    translate(-4,-30);
    rotate(radians(-40))
    noFill();
    stroke(w);
    strokeWeight(1)
    curve(6, 30, 59, 50, 60, 80, 40, 40);
    pop()


    //FLOWER PETALS
    push()
    strokeWeight(1);
    fill(196, 164, 132); // dark blue
    translate(6,6);
    ellipse(10,18,13,9);
    rotate(radians(72));
    translate(6,-30);
    ellipse(10,18,13,9);
    translate(-1,-67);
    rotate(radians(72));
    ellipse(10,18,13,9);
    rotate(radians(72));
    translate(-23,-71);
    ellipse(10,18,13,9);
    rotate(radians(72));
    translate(-8,-77);
    ellipse(10,18,13,9);
    pop()
    translate(-i,-j);

}

P-05 Wallpaper

Took inspiration from a tile pattern for this project.

sketch
// Bridget Doherty, bpdohert, 104 Section C


// global color variables
var greyValue = 150;
var bckg = 240;
var lineCol = 0;

function setup() {
    createCanvas(550, 380);
    background(bckg);
}

function draw() {
    for (var i=50; i<=height; i+=93) {
        for (var j=50; j<=width; j+=93){
            clover(j, i);
        }
    }
    for (var i=3; i<=width+50; i+=93){
        for (var j=3; j<=height+50; j+=93){
            innerCircle(i, j);
        } 
    }
    noLoop();
}

function clover(x, y){
    var diam1 = 40;
    var diam2 = 31;
    var spacer = 26;

    // clover outer grey section
    strokeWeight(1);
    stroke(lineCol);
    fill(greyValue);
    circle(x, y-spacer, diam1);
    circle(x, y+spacer, diam1);
    circle(x-spacer, y, diam1);
    circle(x+spacer, y, diam1);

    // clover inner white section
    fill(bckg);
    circle(x, y-spacer, diam2);
    circle(x, y+spacer, diam2);
    circle(x-spacer, y, diam2);
    circle(x+spacer, y, diam2);
    noStroke();
    circle(x, y, 41);

    // petals outline
    stroke(lineCol);
    strokeWeight(7);
    line(x-15, y-7, x-7, y-15);
    line(x+15, y-7, x+7, y-15);
    line(x-15, y+7, x-7, y+15);
    line(x+7, y+15, x+15, y+7);

    // lines to complete the clover inner points
    stroke(greyValue);
    strokeWeight(8);
    line(x-12, y-12, x-15, y-15);
    line(x+12, y-12, x+15, y-15);
    line(x-12, y+12, x-15, y+15);
    line(x+12, y+12, x+15, y+15);

    // circles outline
    noStroke();
    fill(lineCol);
    circle(x-7, y-7, 12);
    circle(x+7, y-7, 12);
    circle(x-7, y+7, 12);
    circle(x+7, y+7, 12);

    // grey petals inside clover
    stroke(greyValue);
    strokeWeight(4);
    line(x-15, y-7, x-7, y-15);
    line(x+15, y-7, x+7, y-15);
    line(x-15, y+7, x-7, y+15);
    line(x+7, y+15, x+15, y+7);

    strokeWeight(1);
    fill(greyValue);
    circle(x-7, y-7, 8);
    circle(x+7, y-7, 8);
    circle(x-7, y+7, 8);
    circle(x+7, y+7, 8);
    
}

function innerCircle(x,y){
    var cross = 6;

    // circles in between the clovers
    strokeWeight(1);
    stroke(lineCol);
    fill(greyValue);
    circle(x, y, 61);
    fill(bckg);
    circle(x, y, 50);

    // plus sign in the middle of the circles
    strokeWeight(7);
    stroke(lineCol);
    line(x+cross, y, x-cross, y);
    line(x, y-cross, x, y+cross);
    strokeWeight(4);
    stroke(greyValue);
    line(x+cross, y, x-cross, y);
    line(x, y-cross, x, y+cross);
}

LO-05

I’ve always been a little obsessed with the MIT Media Lab and how they manage to make a circle out of the venn diagram that is ‘things I like’ and ‘things you can learn.’ This article is written by a student in the process of using javascript as a CAD replacement. They start out with the statement that ‘a design is just a bunch of numbers’ which I find particularly interesting, even if I don’t always agree with it. I’ve always been more drawn to code that produces an output that I can physically sense, not just on a computer screen. Code makes a lot more sense to me when I can hear what it’s doing, or if it interfaces with microcontrollers and physical circuits. But seeing these examples of javascript directly correlating to CAD drawings, 3D prints, or similar physical outcomes inspires me to see what else is possible with this language, especially in 3 dimensions. I know how to “bit bang” 3D models to a certain extent, but automating & scripting them would certainly improve a workflow and allow for further experimentation and innovation.

https://www.media.mit.edu/projects/from-cad-to-jad-javascript-aided-design/overview/

Looking Outwards 05: 3D Computer Graphics

For my work I chose another work/series by artist Andy Lomas. I’ve always been fascinated by the physical properties and designs of cells and the intricate geometry of the microcosm, and Andy Lomas has created a series which tickles that one specific part of my brain. This is the Cellular Forms series, which explores generalizable natural forms which create these cell-like three dimensional structures. I find this incredibly interesting just because of the uniqueness of each cell. From one which looks like it’s composed of petals, to another which looks like a baseball made of brain. The amazing variety of natural forms which were analyzed and recreated to generate these structures is mind boggling. 

But not only that, there’s a full explanation of the algorithms used in the piece. It’s a really fascinating concept which attempts to simulate the natural development of a colony of cells into a sort of organism using various factors like nutrition, light, and proximity. The simulations are also staggeringly detailed, as they’re actually composed of what seem like millions of generated cells. This approach to generating naturalistic forms is really unique, and it is just so satisfying to look at, wouldn’t you agree?

Project-05 Wall Paper

I want to create textile patterns inspired by traditional Chinese symbols

sketch
//Michael Li
//Section C 
var radi = 30
function setup() {
    createCanvas(755, 630);
    background(220);
    text("p5.js vers 0.9.0 test.", 10, 15);
    background (220);

}

function draw() {
    background(30, 28, 27);

    var color = 0; //set variable color
    //create a line with the for loop
    for (var x = 0; x <= width+80; x += 4.2*radi){
        color += 1; // increment color by 1
            if (color % 2 == 1){ // test color 
                stroke(255, 204, 51); //bright yellow
            } else {
                stroke(182, 156, 129); //grey
            }
        //create a grid
        for(var y = 0; y<= height+80; y += 4.2*radi){
            color += 1;
            //test for color
            if (color % 2 == 1){
                stroke(255, 204, 51); //bright yellow
            } else {
                stroke(182, 156, 129); //grey
            }
            //two if statements in each for loop creates the alternating color pattern
            pattern1(x, y); // call to draw function pattern 1
            print(color.toString());
            
        }
    }
    //draw a grid of pattern two
    //reposition x and y initial position
    for (var x = 63; x <= width + 80; x += 4.2*radi){
        for(var y = 0; y <= height + 80; y += 4.2*radi){

        pattern2(x, y); //draw pattern 2
    }
    }
   
    noLoop();//draw once
}
    var flip1 = 1; //set varibales for  flip
    var flip2 = 1;

function pattern1(x, y){
    strokeWeight(2); 
    noFill();
    //only stroke no fill

    push();

    translate(x, y); // translate object to input x and y

    //top and bottom semi circle
    arc(0, 0, radi*2, radi*2, PI+radians(7), 0-radians(7));
    arc(0, 0, radi*2, radi*2, 0+radians(7), PI-radians(7));
    //middle long line
    line(0-radi/1.3, 0, 0+radi/1.3, 0);

    var xSpaing = 3.5;//set a uniformed spacing

    //draw the same line 4 time
    for (var i = 0; i<= 4; i += 1){
        //test which loop number it is to flip the drawing
        if (i == 1 || i == 3){
            flip1 = -flip1; //on first and third loop, flip the x position
        } else if (i == 2){
            flip2 = -flip2; //on the second loop, flip the y position
        }
        line(0-flip1*radi/1.1, 0-(flip2*6), 
        0-flip1*radi/1.5, 0-(flip2*6)); // horizontal short
        line(0+(flip1*xSpaing), 0+(flip2*radi/1.1), 
        0+(flip1*xSpaing), 0+(flip2*radi/1.3)); //verticle short 1
        line(0+(flip1*xSpaing), 0+(flip2*radi/1.8), 
        0+(flip1*xSpaing), 0+(flip2*radi/2.5)); // verticle short 2, closer to middle
        line(0+(flip1*20), 0+(flip2*radi/2.5), 
        0+(flip1*xSpaing), 0+(flip2*radi/2.5)); // horizontal longer, at 4 corners
    }

    //middle line top and bottom
    line(0+radi/2.2, 0+6, 0-radi/2.2, 0+6); //bottom middle
    line(0+radi/2.2, 0-6, 0-radi/2.2, 0-6); //top middle

    //four small arcs
    arc(0, 0, radi*1.6, radi*1.6, radians(30), radians(63));
    arc(0, 0, radi*1.6, radi*1.6, radians(85+30), radians(85+63));
    arc(0, 0, radi*1.6, radi*1.6, radians(180+30), radians(180+63));
    arc(0, 0, radi*1.6, radi*1.6, radians(265+30), radians(265+63));
    pop();

    push();
    translate(x, y); //translate to input x and y
    rotate(radians(45)); // rotate around x, y by 45 degrees
    rectMode(CENTER); //draw rect around origin
    //draw rectangle to frame the pattern
    rect(0, 0, radi*3, radi*3);
        //draw 4 times
        for(var i = 0; i<=4; i +=1){
        //test for which loop increment
        if (i == 1 || i == 3){ //first and third flip the x position
            flip1 = -flip1;
        } else if (i == 2){ //second loop flip the y position
            flip2 = -flip2;
        }
        //draw 3 small squares by the corner of the big square
        //repeat for each corner using the for loop
        rect(flip1*1.5*radi, flip2*1.5*radi, radi, radi);
        rect(flip1*1.34*radi, flip2*1.34*radi, radi/4, radi/4);
        rect(flip1*0.9*radi, flip2*1.34*radi, radi/4, radi/4);
        rect(flip1*1.34*radi, flip2*0.9*radi, radi/4, radi/4);
   }
   pop()
}


//second pattern, new arguments g and h
function pattern2 (g, h){
    push();
    translate(g, h); // translate origin to g, h
    rotate(radians(45)); //rotate around origin by 45 degrees
    rectMode(CENTER); // set rectMode
    strokeWeight(2);
    stroke(255, 204, 51, 100); // grey line color
    fill(182, 156, 129, 100); // lower transparency
    rect (1.5*radi, 1.5*radi, radi*1.8, radi*1.8); // medium size square
    pop();

    push();
    translate(g, h);
    stroke(182, 156, 129);
    rectMode(CENTER);

    rect(0, 2.1*radi, radi/3, radi/3); // small square inside

    line(0, 0,  0, height); //verticle lines
    pop();
}

LookingOutwards05 (Section A)

I was interested by one Santi Zoraidez’s pieces on Instagram. I find it fascinating how you have to look twice to see if it is a photo of physical objects or if he generated it on a computer. I particularly like this piece because he is able to create the illusion of a light. However, he is able to make it look like a soft light almost instead of just a harsh normal light.

Zoraidez’s artistic sensibilities are really shown hear because of how he is able to create a certain ambiance through the colors he uses. Additionally, it is amazing how he created things that look like see through objects. To do so, you can tell that he definitely knows how to use shadows and highlights really well. His piece is aethetic but also very artistic as I have no idea how he created it but I know he definitely uses lots of layers of highlights and shadows.

I’m not sure the title of the work but it was posted on June 6th, 2021.

Here is the link to the photo

SydneyCha-Project-05-Wallpaper

For this project, I wanted to create a comical wallpaper with bright colors. Here is the finished result.

sketch
//Sydney Cha
//Section D
 
function setup(){
    createCanvas(600, 600);
    background(255);
    noStroke(); 
}

function draw() {
    background(0, 150, 150);
    drawGrid();
    noLoop();
}

function drawGrid() {
    var red = 90;
    var blue = 90;
    for (var y = 0; y < height + 40; y += 40) {
        blue = 10;
        for (var x = 0; x < width + 30; x += 30) {
            fill(red, 0, blue);
            arc(x, y, 30, 80, 0, PI);
            fill(200, 200, 0);
            rect(x, y, 20, 20);
            rect(x-15, y+10, 10, 20);
            blue += 10;
        }
        red += 10;
    }
}

Project 05 – wallpaper

I wanted to make a pattern that I would actually wear: currently the patterns I am into are checkers, and I have been loving colored hearts (typically 3D and glossy) in my graphic design. I decided to combine the two together to make my wallpaper, paying attention to make the hearts are on the corners of the checkers.

sketch
function setup() {
    createCanvas(320, 320)
    background(220);
    text("p5.js vers 0.9.0 test.", 10, 15);
}
s=40;
function draw () {
    rectMode (CORNER);
    for (var row = 0; row <8; row +=1) {
        for (var col = 0; col <8; col += 1) {
            fill (((row+col)%2) *255);
            rect (col*40, row*40, 40, 40);
        }
    }
    for (x = 0; x < width+80; x += s) {
    for (y = 0; y < height+40; y += s) {
      fill(310*x/width, 100, 255);
      heart(x+s/2-20, y+s/2-30, s/2);

    }
  }
}

function heart(x, y, size) {
  beginShape();
  vertex(x, y);
  bezierVertex(x - size / 2, y - size / 2, x - size, y + size / 3, x, y + size);
  bezierVertex(x + size, y + size / 3, x + size / 2, y - size / 2, x, y);
  endShape(CLOSE);
}


initial sketch of my wallpaper

SydneyCha-LookingOutwards-05

Fragstein’s promotional video for LAMY Safari

Michael Fragstein is a 3d graphic artist whose main works are promotional videos for LAMY, a company that modernized the traditional fountain pen. Below is a link to his personal portfolio site.

https://fragstein.net

This 2019 special edition promotional video showcases new colors for the LAMY Safari pen in an unconventional way. Fragstein uses the three colors as a consistent theme for the video, making the colors come to life beyond the confines of the pen. Personally, the colors remind me of Easter, and if I were to make a promotional video for this line, I would’ve likely defaulted to rendering floating blobs or orbs. I particularly admire the different ideas/scenes Fragstein rendered to the music (which he also created). The two that I find the most creative are at the 15 second and 25 second marks.

Although it’s not explicitly stated, my guess is that Fragstein uses Blender, a 3D modeling program, for his work. Quite different from what we do in this class, Blender works a lot like modeling and stretching clay, just digitally. Regardless, I’m inspired by Fragstein’s dynamic and eye-catching work and hope to achieve a similar effect using p5.js (or other languages, if possible) to create captivating pieces.

CREDITS:

LAMY aion / Special Edition 2019Client: LAMY
Concept, Artdirection, Production: Büro Achter April / Michael Fragstein
Production Team: Johannes Rauch, Raphael Rau, Thomas Nathan, Jonas Anetzberger, Michael Fragstein
Music & Sound: Marc Fragstein

LookingOutwards – 05 Thanos’s Creation. 3D Computer Graphics in Marvel.

Thanos, Created by Studio: Digital Domain

Over the last 12 years of MCU movies being created, Marvel worked with many VFX studios such as Weta Digital, Framestore, and industrial light and magic. Almost every 3D Computer Graphics was used in the films. They used Maya, 3ds Max Modo, in addition to Zbrush and Mudbox for sculpting. To create textured painting works, Mari and Substance Painter. Nuke is used with after effects for compositing 3D projections. 

To create Thanos, Digital Domain worked with Marvel Studios to create effects shots using Masquerade. 513 shots were created by over 340 Digital Domain artists. Masquerade is a facial capture application that is based on computer machine learning algorithms. The system was worked on for 3 to 4 months before filming to develop and test. Masquerade has the ability to capture a high resolution image of an actor’s face at a rate of 40-50 frames per second. 

The actor Josh Brolin who played Thanos. For Digital Domain, it was important for Thanos’s movements to be very organic and realistic. Thus, Mocap cameras were used. The actor Josh wore a Mocap suit and helmet with cameras that had motion capture dots to capture his movements. Digital Domain’s factual capture identified the smallest details such as wrinkles and curvatures of Josh’s face. From here, the animation team could enhance features of the face like eyes, until Josh’s face was transformed into Thanos’s purple face.

This project and artwork interests me because I had no idea that so many programs and machine learning algorithms are used in movies that contain real humans to create fake characters. Rather than going through the struggle of using prosthetics or other costumes to create a villain like Thanos, they were able to create an animated character that can be then utilized throughout the film.

Sources:

https://digitaldomain.com/case-studies/avengers-infinity-war/
https://digitaldomain.com/case-studies/avengers-infinity-war/

https://inspirationtuts.com/what-3d-software-does-marvel-use/