cduong-assignment05-wallpaper

sketch

function setup() {
    createCanvas(475, 450);
    background(244, 174, 163);

    noLoop();
}

function draw() {

   //White Vertical Lines
   for (var lx = 10; lx <= 470; lx += 45) {
     stroke(255)
     strokeWeight(3);
     line(lx, 0, lx, 480);
  }
  //White Vertical Lines

  //White Circles (Odd Horizontal Lines)
  for(var ssx = 0; ssx < 480; ssx += 90){
    for(var ssy = 0; ssy < 550; ssy += 180){
  stroke(255);
  strokeWeight(2);
  fill(244, 174, 163);
  ellipse(ssx+55, ssy+40, 50, 50);
  }
}
  //White Circles (Odd Horizontal Lines)

  //White Circles (Even Horizontal Lines)
  for(var ssx = 0; ssx < 480; ssx += 90){
    for(var ssy = 0; ssy < 550; ssy += 180){
      stroke(255);
      strokeWeight(2);
      fill(244, 174, 163);
      ellipse(ssx+10, ssy+130, 50, 50);
    }
}
  //White Circles (Even Horizontal Lines)

  //Onion Character (Odd Horizontal Lines)
  for(var onionx = 0; onionx < 450; onionx += 180){
    for(var oniony = 0; oniony <550; oniony += 180){
      fill(255);
      noStroke();
      ellipse(onionx+55, oniony+50, 30, 30);

    for(var leafx = 0; leafx < 540; leafx += 180){
      for(var leafy = 0; leafy < 540; leafy += 180){
        fill(170, 235, 176);
        ellipse(leafx+65, leafy+35, 20, 10);
        ellipse(leafx+45, leafy+35, 20, 10);
        }
      }
    }
  }
  //Onion Character (Odd Horizontal Lines)

  //Lone Sprout (Odd Horizontal Lines)
  for(var sproutx = 0; sproutx < 540; sproutx += 90){
    for(var sprouty = 0; sprouty < 360; sprouty += 180){
  fill(170, 235, 176);
  ellipse(sproutx, sprouty+105, 20, 10);
  ellipse(sproutx+20, sprouty+105, 20, 10);
  }
}
  //Lone Sprout (Odd Horizontal Lines)


}

I wanted to incorporate something I’ve been using in my past assignments, which is this white circle with a sprout coming out of the top of its head because I really enjoy drawing that character. I also wanted to make a repetitive pattern in the background so I was playing around with different patterns for a while until I realized that maybe I should keep it consistent with the circluar head of the character and make a background with circles and lines.

enwandu-Looking Outwards-05

Sanctuary by Akin Adekile (2016)

Sanctuary;  3D Computer Graphics

Akin Adekile is a 3D modeler, texture artist and designer. He graduated from the Gnomon School of Visual Arts in Los Angeles where he specialized in hard surface and environmental modeling for film. I find the project particularly interesting because he essentially remade a painting he had previously done, using 3D modeling tools. The ability to jump between 2D, and 3D representation, in order to understand 3D dimensional space is something I can relate too, as a student of architecture. Something I consider essential, and something I admire greatly.

Adekile used a range of tools: Maya, 3Ds max, Speedtree and Substance Painter – to create this visually stunning image. By recreating his own work in 3D and producing a 2D render, Adekile could both transfer, and refine some of his artistic sensibilities. Looking at both the original painting and the 3D computation, there is a commendable level of precision, with them each evoking similar, but eerily different emotions.

Sanctuary; original painting

aboyle-Project-05-Wallpaper

aboyle wallpaper

function setup() {
    createCanvas(400, 400);
    noLoop();
}

function draw() {
    background(191, 220, 249);
//creates light lines in the background
    for(x=10; x<width+50; x+=100){
      strokeWeight(4);
      stroke(238,245,247)
      line(x,0,x,400)
      strokeWeight(2);
      stroke(222,245,252);
      line(x+50,0,x+50,400)
    }
//jellyfish tentacles
    noFill();
    oneTentacles();
    twoTentacles();
    threeTentacles();
    fourTentacles();
//jellyfish bodies
    strokeWeight(0);
    jellyfishOne();
    jellyfishTwo();
    jellyfishThree();
    jellyfishFour();
  }

//orange jellyfish
function jellyfishOne(){
    for (var x=10; x<width+50; x+=100){
      for(var y=25; y<height+50; y+=100){
      //body
      fill(236, 190, 130);
      ellipse(x,y,15);
      triangle(x,y,x-2,y-10,x+12,y-2)
      //highlight
      fill(247, 222, 188);
      ellipse(x-1,y-1,7)
    }
  }
}

//purple jellyfish
function jellyfishTwo(){
  for (var x=15; x<width+50; x+=100){
    for(var y=50; y<height+50; y+=100){
      //body
      fill(182, 137, 212);
      ellipse(x,y,20);
      triangle(x,y,x,y+15,x+15,y+4);
      //highlight
      fill(216, 182, 239);
      ellipse(x, y-4, 9);
    }
  }
}

//large lavender jellyfish
function jellyfishThree(){
  for (var x=65; x<width+50; x+=100){
    for(var y=40; y<height+50; y+=100){
      //body
      fill(212,137,209);
      ellipse(x,y,30);
      triangle(x,y,x-20,y+5,x-12,y-18)
      //highlight
      fill(236,191,235);
      ellipse(x-1,y-6,13);
    }
  }
}

//pink jellyfish
function jellyfishFour(){
  for (var x=-10; x<width+50; x+=100){
    for(var y=-20; y<height+50; y+=100){
      //body
      fill(242, 146, 178);
      ellipse(x,y,25);
      triangle(x,y,x-18,y+3,x-5,y+17)
      //highlight
      fill(250,199,216);
      ellipse(x-3,y-3,11)
    }
  }
}

//orange tentacles
function oneTentacles(){
  for (var x=10; x<width+50; x+=100){
    for(var y=25; y<height+50; y+=100){
      stroke(159,87,24);
      curve(x-85,y+20,x,y,x+5,y-25,x-85,y-20);
      curve(x-90,y+20,x-3,y,x-1,y-25,x-90,y-20);
      curve(x-95,y+20,x-6,y,x-7,y-25,x-95,y-20);
}
}
}

//purple tentacles
function twoTentacles(){
  for (var x=15; x<width+50; x+=100){
    for(var y=50; y<height+50; y+=100){
      stroke(102, 51, 102);
      curve(x-95,y-20,x,y,x+20,y+40,x-95,y+50);
      curve(x-100,y-20,x-5,y,x+14,y+40,x-100,y+50);
      curve(x-105,y-20,x-9,y,x+8,y+40,x-105,y+50);
}
}
}

//large lavender tentacles
function threeTentacles(){
  for (var x=65; x<width+50; x+=100){
    for(var y=40; y<height+50; y+=100){
      stroke(129,73,128);
      bezier(x-15,y-70,x+30,y-60,x-95,y-10,x,y)
      bezier(x-10,y-75,x+35,y-60,x-85,y-15,x+5,y)
      bezier(x-5,y-80,x+40,y-60,x-75,y-20,x+10,y)
    }
}
}

//pink tentacles
function fourTentacles(){
  for (var x=90; x<width+50; x+=100){
    for(var y=-20; y<height+50; y+=100){
      stroke(134,67,89);
      bezier(x,y,x-60,y+20,x+30,y+50,x-12,y+80)
      bezier(x+6,y,x-55,y+20,x+35,y+50,x-7,y+80)
      bezier(x+10,y,x-50,y+20,x+40,y+50,x-2,y+80)
}
}
}

For some reason, when I thought of wallpaper my mind immediately went to jellyfish. I sketched out a grid and mapped four different jellyfish onto it, seen below.

While the bodies of the jellyfish end up in roughly the same position, I changed the position of the tentacles while I was coding. Although I could’ve put the code for the tentacles under the jellyfish body functions, it helped me mentally to organize them separately.

In the end, I had less space than I thought I would so I couldn’t include any shells for decoration. I tried to pick colors that were light and cartoony; I was going for a “child’s bathroom” kind of vibe. I also added some light lines in the background to make it more visually interesting. Overall, I’m pretty happy with how it turned out!

cduong-Looking Outward 05

I was looking at George Nijiland’s works (http://www.triple-d.nl/52723/portfolio) and noticed that they were just all so beautiful. The one that really captured my eye was his most recent project, Project: Varne Buiten. This is a project that is a design for an “outside residence” on the edge of Heiloo. The goal of the project it to create a neighborhood for the young and the old and consists of 15 luxury apartments per building. I am unsure if this apartment even exists because it looks so real in the rendering and I haven’t been able to find it on google maps but I found a website selling a housing unit in the building. (https://www.funda.nl/nieuwbouw/heiloo/project-49219271-varne-buiten-fase-5-appartementen/).

What I like about this project is the fact that George Nijiland is designing buildings and instead of only drawing plans, sections, elevations, etc. he creates renderings that make the house just look absolutely breathtaking and real and it really makes the viewer imagine what it would be like if they were at the building. I only recently learned about architectural rendering and I find it really fun and amazing, so George Nijiland’s projects really captured my attention because of just how amazingly real his renderings look.

George Nijiland uses programs like 3dsMax, Vray, and Photoshop with plugins like Forestpack pro, Multiscatter, floor generator, mightytiles, HDRI, etc. When creating his architecture he has to think of the constraints that his building must have while designing, which really holds him back from designing too far ahead. Such constraints include the architectural market in Holland, which is considerably bad so George Nijiland has a difficult time finding projects sometimes and finding people who would want the types of projects that he makes. He also thinks more about what he wants to communicate through his drawings and renders rather than focusing on his render technique.

George Nijiland used to work on office furniture manufactures and design and photography, which are skills that he uses in his current work, architectural renderings. He really likes designing the interiors of his houses, which you can see in his renders because he really focuses on the detail of the house both inside and out, even allowing the audience to see little bits of furniture when they’re just looking at the exterior of the house to make the house look like it’s already being lived in in the renders. He also gets a lot of inspiration from websites like pinterest, architectural books, facebook, magazines, photography, etc. which you can somewhat see in his works because his work does have a sort of aesthetic look to it that just makes you want to look at it forever.

Title of Work: Project Varne Buiten
Created by: George Nijiland
Date: June 2017

Sources
http://www.triple-d.nl/52723/portfolio
https://www.behance.net/Triple-D
http://www.nieuwbouw-varnebuiten.nl/
https://krk.nl/wonen/nieuwbouw/varne-buiten-fase-5-appartementen-heiloo
http://www.3darchitettura.com/george-nijland/

rkondrup-project-05-wallpaper

sketch

//ryu kondrup
//rkondrup@andrew.cmu.edu
//section d
//project-05-wallpaper

//rectangle width is 120 pixels
var rectHalf = 60;

function setup() {
    createCanvas(480, 480);
    background(155, 213, 198);
}
function draw() {

    //horizontal odd-numbered rows
    for (x = 0; x < 10; x ++ ) {
        for (y = 0; y < 10; y ++) {
            shrimp(x*2*rectHalf, y*4*rectHalf);
        }

    }
    //horizontal even-numbered rows
    for (x = 0; x < 10; x ++ ) {
        for (y = 0; y < 10; y ++) {
            shrimp(x*2*rectHalf-rectHalf, y*4*rectHalf+2*rectHalf);
        }
    }
noLoop();
}

function shrimp(x, y) {
    push();
    translate(x, y);
    darkestRed = color(200, 64, 62);
    darkRed = color(251, 104, 102);
    medRed = color(251, 134, 132);
    white = color(255, 252, 215);
    lightBlue = color(213, 233, 198);
    blue = color(155, 213, 198);

/*    //temporary box
    fill(blue);
    rect(0, 0, 2*rectHalf, 2*rectHalf);
    */

    //background water blue
    strokeWeight(4);
    fill(blue);
    noStroke();
    //left arc
    fill(medRed);
    stroke(white);
    arc(rectHalf, rectHalf,
        2*rectHalf, 2*rectHalf,
        PI/2, 3*PI/2);
    //triangle head
    fill(darkRed)
    triangle(rectHalf, 0,
             2*rectHalf, 0,
             rectHalf, rectHalf);
    //small arc inside
    fill(blue);
    arc(rectHalf, rectHalf+20,
        40, 40,
        PI/2, 3*PI/2);
    //eye
stroke(white);
    fill(darkestRed);
    ellipse(23 + rectHalf, 15, 15);
    //tail polygon
    stroke(white)
    fill(darkRed);
    beginShape();
        vertex(rectHalf, rectHalf + 40);
        vertex(2*rectHalf, rectHalf);
        vertex(2*rectHalf, 2*rectHalf);
        vertex(rectHalf, 2*rectHalf);
    endShape(CLOSE); //still broken
    pop();
}

For this design I wanted to create something simple with mellow colors. In making this, I created a single tile and repeated it in staggered rows. I considered overlapping the tiles but visually the overlaps did not seem comfortable so I left them in a snug edge-to-edge arrangement.

creyes1-Project-05-Wallpaper

creyes1 Project-05

//Christopher Reyes
//Section D
//creyes1@andrew.cmu.edu
//Project-05 (Wallpaper)

var paleyellow = [255, 252, 125];
var clovergreen = [127, 201, 108];
var lightBlue = [232, 242, 247];
var gray = [122, 122, 122];

var circleSize1 = 6;
var circleSize2 = 10;
var petalWidth = 19;
var petalHeight = 46;
var angle = 0;

var spacingx = 80;
var spacingy = 60;
var offset = 30;


function setup() {
    createCanvas(480, 480);
    background(256);
    angleMode(DEGREES);
    noStroke();

    //Light blue circles between main elements
    for (var x = 1; x <=7; x++) {
            for (var y = 1; y <= 9; y++) {
                fill(lightBlue);
                ellipse(x*spacingx-(70), y*spacingy-(60), 20);
            }
    }

    //Draws alternating clovers and flowers down several columns
    for (var x = 1; x <= 7; x++) {
        if (x%2 === 0) {
            for (var y = 1; y <= 8; y++) {
                if (y%2 === 0) {
                    drawFlower(x*spacingx -offset, y*spacingy -offset, .4);
                } else {
                    drawClover(x*spacingx -offset, y*spacingy -offset, .4);
                }
            }
        } else {
            for (var y = 1; y <= 8; y++) {
                if (y%2 === 0) {
                    drawClover(x*spacingx -offset, y*spacingy -offset, .4);
                } else {
                    drawFlower(x*spacingx -offset, y*spacingy -offset, .4);
                }
            }
        }
    }

    noLoop();

}

//Draws a flower at designated coordinates and at selected scale
function drawFlower(x, y, SCALE) {

    //Gray center circle
    fill(122);
    ellipse(x, y, circleSize2 * SCALE);

    //Draws 8 yellow petals rotated around a center point
    for(var i = 0; i < 8; i++) {
        fill(paleyellow);
        push();
        translate(x, y);
        rotate(angle);
        ellipse(0, -35 * SCALE, petalWidth * SCALE, petalHeight * SCALE);
        fill(122);

        //Draws accent circles at top and bottom of flower
        if (i === 0 || i === 4) {
            fill(gray);
            ellipse(0, (-30-petalHeight) * SCALE, circleSize1 * SCALE);
            ellipse(0, (-20-petalHeight) * SCALE, circleSize2 * SCALE);
        }

        //Small gray circles between petals (8)
        pop();
        push();
        translate(x, y);
        rotate(angle+22.5);
        fill(gray);
        ellipse(0, -45 * SCALE, circleSize1 * SCALE);
        pop();

        angle += 45;
    }

}

function drawClover(x, y, SCALE) {
    fill(clovergreen);

    //Middle Leaf
    beginShape();
        vertex(x, y+(38.5*SCALE));

        bezierVertex(x, y+(38.5*SCALE),
                     x+(38*SCALE), y-(52.5*SCALE),
                     x+(27*SCALE), y-(59.5*SCALE));

        bezierVertex(x+(16*SCALE), y-(66.5*SCALE),
                     x, y-(38.5*SCALE),
                     x, y-(38.5*SCALE));

        bezierVertex(x, y-(38.5*SCALE),
                     x-(16*SCALE), y-(66.5*SCALE),
                     x-(27*SCALE), y-(59.5*SCALE));

        bezierVertex(x-(27*SCALE), y-(59.5*SCALE),
                     x-(38*SCALE), y-(52.5*SCALE),
                     x, y+(38.5*SCALE));
    endShape();

    //Middle-Right Leaf
    beginShape();
        vertex(x+(5.4*SCALE), y+(38.5*SCALE));

        bezierVertex(x+(5.4*SCALE), y+(38.5*SCALE),
                     x+(70*SCALE), y+(3.5*SCALE),
                     x+(67*SCALE), y-(5.5*SCALE));

        bezierVertex(x+(65*SCALE), y-(15.5*SCALE),
                     x+(42*SCALE), y-(7.5*SCALE),
                     x+(42*SCALE), y-(7.5*SCALE));

        bezierVertex(x+(42*SCALE), y-(7.5*SCALE),
                     x+(47*SCALE), y-(31.5*SCALE),
                     x+(37*SCALE), y-(33.5*SCALE));

        bezierVertex(x+(28*SCALE), y-(34.5*SCALE),
                     x+(5.4*SCALE), y+(38.5*SCALE),
                     x+(5.4*SCALE), y+(38.5*SCALE));
        endShape();

    //Middle-Left Leaf
    beginShape();
        vertex(x-(5.4*SCALE), y+(38.5*SCALE));

        bezierVertex(x-(5.4*SCALE), y+(38.5*SCALE),
                     x-(70*SCALE), y+(3.5*SCALE),
                     x-(67*SCALE), y-(5.5*SCALE));

        bezierVertex(x-(65*SCALE), y-(15.5*SCALE),
                     x-(42*SCALE), y-(7.5*SCALE),
                     x-(42*SCALE), y-(7.5*SCALE));

        bezierVertex(x-(42*SCALE), y-(7.5*SCALE),
                     x-(47*SCALE), y-(31.5*SCALE),
                     x-(37*SCALE), y-(33.5*SCALE));

        bezierVertex(x-(28*SCALE), y-(34.5*SCALE),
                     x-(5.4*SCALE), y+(38.5*SCALE),
                     x-(5.4*SCALE), y+(38.5*SCALE));
    endShape();

    //Far-Right Leaf
    beginShape();
        vertex(x+(15*SCALE), y+(38.5*SCALE));

        bezierVertex(x+(15*SCALE), y+(38.5*SCALE),
                     x+(75*SCALE), y+(37.5*SCALE),
                     x+(77*SCALE), y+(32.5*SCALE));

        bezierVertex(x+(79*SCALE), y+(27.5*SCALE),
                     x+(60*SCALE), y+(26.5*SCALE),
                     x+(60*SCALE), y+(26.5*SCALE));

        bezierVertex(x+(60*SCALE), y+(26.5*SCALE),
                     x+(74*SCALE), y+(15.5*SCALE),
                     x+(69*SCALE), y+(12.5*SCALE));

        bezierVertex(x+(63*SCALE), y+(9.5*SCALE),
                     x+(15*SCALE), y+(38.5*SCALE),
                     x+(15*SCALE), y+(38.5*SCALE));
    endShape();

    //Far-Left Leaf
    beginShape();
        vertex(x-(15*SCALE), y+(38.5*SCALE));

        bezierVertex(x-(15*SCALE), y+(38.5*SCALE),
                     x-(75*SCALE), y+(37.5*SCALE),
                     x-(77*SCALE), y+(32.5*SCALE));

        bezierVertex(x-(79*SCALE), y+(27.5*SCALE),
                     x-(60*SCALE), y+(26.5*SCALE),
                     x-(60*SCALE), y+(26.5*SCALE));

        bezierVertex(x-(60*SCALE), y+(26.5*SCALE),
                     x-(74*SCALE), y+(15.5*SCALE),
                     x-(69*SCALE), y+(12.5*SCALE));

        bezierVertex(x-(63*SCALE), y+(9.5*SCALE),
                     x-(15*SCALE), y+(38.5*SCALE),
                     x-(15*SCALE), y+(38.5*SCALE));
    endShape();

    //Gray ellipsoidal accents
    fill(gray);
    ellipse(x+(23*SCALE), y+(38.5*SCALE), 40 * SCALE, 12 * SCALE);
    ellipse(x-(23*SCALE), y+(38.5*SCALE), 40 * SCALE, 12 * SCALE);

    ellipse(x, y+(50.5*SCALE), circleSize2 * SCALE);
    ellipse(x, y+(61.5*SCALE), circleSize1 * SCALE);

    ellipse(x, y-(53.5*SCALE), circleSize2 * SCALE);
    ellipse(x, y-(64.5*SCALE), circleSize1 * SCALE);
}

I definitely enjoyed putting this project together and playing around with different elements, which forced me to figure out how to draw more complex forms using p5.js. Before trying to code this right away, I made different possible mockups in Adobe Illustrator, then translated it into Javascript. As for the final result, I’m happy with how it came out – my initial sketches had even more accent dots than the final, but it wound up looking too busy and were therefore removed.

danakim-Project-05

sketch

//Dana Kim
//danakim@andrew.cmu.edu
//Section D
//Project-05

function setup() {
  createCanvas(480, 480);
  background(256);
}

function draw() {
   for ( var i = 0; i < 480; i+=240){ //repeats pattern in y-direction
      for (var x = 0; x < 500; x+=48){ //repeats shapes in x-direction
        var h1 = random(30, 90); //randomized height for lines going down
        var h2 = random(130, 190); //randomized height for lines going up

        stroke((x+20)/.5, x/1.5, x/3);
        strokeWeight(48);
        line(x, 0+i, x, h1+i); //first row of lines
        line(x, 240+i, x, h2+i); //second row of lines

        stroke((x+20)/.5, x/1.5, x/3);
        strokeWeight(1);
        fill(256);
        ellipse(x, (h2-10)+i, 48, 35); //circles that rest on lines
        }
      }
    noLoop();
}

This project was fairly easy. I had the most trouble with figuring out how to get the line colors to be a gradient. I had originally wanted to make each line have a gradient color to make it seem more like cylinders. Instead, I made each line a solid color so it would be easier to distinguish each cylinder. The heights of each cylinder was randomized.

Architectural Digital Renderings – Looking Outwards 5

In the field of Architecture renderings of buildings have always been used to sell ideas. In order to win competitions or get clients, firms must produce a compelling case for their ideas. But, most people that aren’t architects cannot conceptualize space in plan, section, and elevation, so architects must make renderings in perspective of their ideas. Each rendering is a work of art so I couldn’t pick just one. Instead I will share my discovery of a firm called Studio Cyrille Thomas that works only as a rendering firm.

With their team of architects, artists, and experts in digital rendering. They create works of art with 3D modeling software such as Rhino, SketchUp, and Revit alongside Vray (a rendering software) and photoshop for architecture firms that need to sell their ideas to clients. I believe their rendering work is some of the most compelling because of their ability to capture the atmosphere that aligns with the architect’s concept behind each space. Anyone can learn to use these software to create a realistic looking image, but not many people can create a work of art that truly captures the feeling of being in a wonderfully designed space.

Studio Cyrille Thomas’ Website

dnoh-sectionD-lookingoutwards-05

Artist: beeple
Project(s?): everydays
Brief Description: Beeple create[d] new 3D computer graphics everyday and posted it to his website for over 3800 days.

For this post’s specific purpose, I will highlight a fairly recent piece he created, as well as another video of his process in creating a piece.

Above is a process video of a piece he created. As you can see from the video, Beeple uses Cinema 4D with various plugins to create most of his pieces. Although I didn’t really see any significant algorithmic or code-able things within these pieces, I found it utterly fascinating how detailed and beautiful these 3D renderings of make-believe images are. Through the video, we can see that he turned a screenshot of a topographic image and used a plugin to turn it into 3D, which probably used an algorithm to see the depth of the ground through tonal values. It is also visible that he created the structure itself by hand, detail by detail.

This is another piece I admire by Beeple. Although I don’t quite know the process of this piece, I found it amazing that this all was created in 3D space, detail by detail, just to be rendered into this, albeit amazing, 2D image.

 

LookingOutwards-05-Chickoff

Warde “Home Is A Quest” DIRECTOR’S CUT is an animated commercial made by Leo Burnett for Warde, which is “the biggest reseller of fabrics in the middle east and Africa” and is known world-wide for these designs.

Warde “Home Is A Quest” Still

While I really love the animation itself, I felt that the music and narration weakened the video and made it feel gimmicky and cheesy. Even if it was the producer’s intention to have the video be light and upbeat, it felt overdone. The soundtrack that is chosen for a video is incredibly important and can easily change the mood. This choice can make or break a project.

“That’s when we know we arrived: home,” is what I think the most powerful line of this commercial because of the image it’s paired with: baby birds in their nest being fed by their mother. Unfortunately, this scene ended as quickly as it appeared. I wish it lasted longer because the concept of home and comfort seems to be the main theme of this commercial, but it ended so quickly and was not able to have as much of an impact.

Still, I really love how the landscapes of the animation look like soft fabrics. The rolling hills and even the rocks are comforting despite being in the wilderness.