Kyle Lee Project 7 Bicorn Curve

I chose the bicorn curve, which looks somewhat like an upside down smiley face, which is why I reversed it. I made the mouseX control the width, and the mouseY control the depth of the curve as well as the size of the dots drawing it.

x = asint

y =(acos^2t(2+cost))/(3+sin^2t)

kdlee-project-07

var points = 50;

function setup() {
    createCanvas(600, 600);
    frameRate(25);
    fill("#B1EEE8");//teal
    noStroke();
}

function draw() {
    background(250);

    push();
    translate(width/2, 0);
    drawBicorn();
    pop();
}

function drawBicorn(){
  //http://mathworld.wolfram.com/Bicorn.html
    var g = map(mouseX, 0, width, 0, width/2);
    var y;
    var a = map(sq(mouseY), 0, height, 0, 1);

    beginShape();
    for (var i = 0; i < points; i++) {
        var t = map(i, 0, points, 0, radians(360))
        x = g * sin(t);
        y = (a * cos(t) * cos(t) * (2 + cos(t))) / (3 + sin(t) * sin(t));
      //  vertex(x,y);
        ellipse(x, y, map(mouseY, 0, height, 1, 10), map(mouseY, 0, height, 1, 10));
    }
    endShape(CLOSE);
}

Kyle Lee Looking Outwards 05

Interactive Computer Generated Koi Pond
Interactive Computer Generated Koi Pond

This exhibit, created by TeamLab, is on display at a Japanese festival in Tokyo. These colored artificial fish are projected onto the shallow water and each navigates and changes speed, bursting into flowers when coming in contact with a person. This completely enclosed space has its vastness emphasized by mirrored walls and ceilings, creating a truly immersive experience.

This mystical magical quality of these fish, coupled with the experience of walking through the water in a vast space is quite captivating. I love exploring designed experiences and I think that this one is certainly well executed and intriguing. My one critique on the execution is logistical, but my guess is that it took enormous amounts of resources to put this exhibit together. The pond seems almost ridiculous but I wonder if could’ve been done simpler.

In the digital age that we live in, it seems that ‘experience’ is strongly diverging. On one hand, we seem more attached to our phones and screens, removing us from whole hosts of experiences around us. On the other hand, real experiences cannot be simply replaced by shallow technology. In the future, immersive experiences will only become more rich and valuable. While many things will be replaced by robots or machines in the future, experiences will not and will continue being a place of innovation, expression, and creativity.

 

Kyle Lee Looking Outward 07

Traffic in the Bay Area
Traffic in the Bay Area. Please Excuse Phone Photo

I found this infographic in Wired Magazine while I was in a waiting room at health services. Unfortunately this picture was the only documentation I was able to capture as I was unable to access the article later online. But this article by Seth Kadish, a data scientist at Chegg, discusses increasing traffic in the Bay Area, particularly along 101, the highway connecting San Francisco to San Jose.

I was originally drawn to this infographic since I’ve been a resident of the Bay Area my whole life, and live in Menlo Park, just about in the middle of 101. Needless to say that I have much first hand experience with the ridiculousness that is rush hour traffic in Silicon Valley.

I really like how dynamic this infographic is using the amount of color to show increasing idle traffic time over the years. It is certainly an unexpected representation of time. Although I admire how different this piece is, I did find it difficult at first to understand its representation. Its unusual depiction presents both things I like and don’t like.

I was unable to find how this information was collected. Furthermore, I wish there was more information on the impact of this increased traffic. So commutes are getting longer; so what? I think a few more statistics on how this traffic has impacted people or businesses would have made the article stronger. Maybe how much accumulated time per year does a person waste? or how much money do employees or companies waste from people losing time in traffic?

Kyle Lee Project 06 Abstract Clock

I wanted to make my abstract clock a simple clean representation of time. I liked the idea of revolving the time around a center of normal analog clocks, but instead make it something that built up rather than ticking by.

sketch
sketch

kdlee-project-06

function setup() {
    createCanvas(300, 300);
}

function draw() {
    background(255);

//digital time vars
    var s = second();
    var m = minute();
    var h = hour();
    var hx = 125;//digital hour x location
    var mx = 144;//digital minute x location
    var sx = 164;//digital second x location
    var ty = 154;//digital time y location
//types digital time
    textStyle(BOLD);
    text(nf(h%12, 2, 0) + ":", hx, ty);//digital hour
    text(nf(m, 2, 0) + ":", mx, ty);//digital minute
    text(nf(s, 2, 0), sx, ty);//digital second

//radius vars
    var sRadius = 120;//second hand length
    var mRadius = 90;//minute hand length
    var hRadius = 60;//hour hand length
//circle arc angle vars
    var sAngle = map(second(), 0, 60, radians(0), radians(360));//converting 60 sec to 360 degrees
    var mAngle = map(minute(), 0, 60, radians(0), radians(360));//converting 60 min to 360 degrees
    var hAngle = map(hour()%12, 0, 12, radians(0), radians(360));//converting 12 hr to 360 degrees
//x & y revolving locations
    var sx = cos(sAngle) * sRadius;//rotating s hand X
    var sy = sin(sAngle) * sRadius;//rotating s hand Y
    var mx = cos(mAngle) * mRadius;//rotating m hand X
    var my = sin(mAngle) * mRadius;//rotating m hand Y
    var hx = cos(hAngle) * hRadius;//rotation h hand X
    var hy = sin(hAngle) * hRadius;//rotation h hand Y

    push();//begin drawing board
    translate(width/2, height/2)
    rotate(radians(270));//rotates from 0 or 2pi so starting point is upper vertical

    stroke("#F18F32");//orange seconds
    noFill();
    strokeWeight(20);
    arc(0, 0, sRadius * 2, sRadius * 2, 0, sAngle);
    dot(sx, sy);

    stroke("#E186CF")//purple minutes
    noFill();
    strokeWeight(20);
    arc(0, 0, mRadius * 2, mRadius * 2, 0, mAngle);
    dot(mx, my);

    stroke("#2CD9DE")//blue hours
    noFill();
    strokeWeight(20);
    arc(0, 0, hRadius * 2, hRadius * 2, 0, hAngle);
    dot(hx, hy);

    pop();
}

function dot(x, y){
    fill(255);
    stroke(0);
    strokeWeight(2);
    ellipse(x, y, 20, 20);
}

Kyle Lee Looking Outwards 6

Process 7 by Casey Reas

I chose to look at Casey Reas’ computational Process 7, in which various elements are randomly placed and relationships are created between each elements. Personally, I am drawn to things that sprawl, which this piece certainly does. I think its dynamic nature and irregularity oddly enough keep it from reading chaotic. Although random, I can sense an underlying pattern which keeps me looking at the piece.

Something that I failed to find were the intended dimensions and medium. I understand that it was made on the computer, but I am unclear of how this piece was intended to be viewed, on a laptop screen, printed on a poster, or even projected onto an entire wall. Personally I thought it would be impressive the bigger it was, especially how it seems as if there is a strong amount of small detail. But the biggest critique I have is the lack of information on how the piece should be viewed.

Many of Reas’ work seem to work upon similar themes. I feel like this type of work literally and broadly fills in many spaces. Although strict formal and uniform lines are more predictable, I think that Reas is trying to show that this type of work does have its applications through its unexpected visual appeal. Although seemingly uncontrolled, these variable parameters that govern a multitude of interactions creates a dynamic image.

Kyle Lee Project 5 Duck Wallpaper

kdlee-project-05

//Kyle Lee
//Section C

var x = 100;
var y = 100;
var h = 4;
var rowStart = 0;
var columnStart = 60;
var xSpace = 200;
var ySpace = 100;

function setup() {
    createCanvas(600, 600);
    background("#EBF8FF");//light blue
    noStroke();
}

function draw(){
    for (var y = 0; y < 6; y++) {
        var evenOdd = y%2;//creates even or odd rows
        if(evenOdd == 0) {//if row is even make 4 per row
            rowStart = 0;
            h = 4;
        } else if(evenOdd == 1) {//if row is odd make 3 per row
            h = 3;
            rowStart = ySpace;
        }//closes if else
        for (var x = 0; x < h; x++) {
            px = rowStart + x * xSpace;
            py = columnStart + y * ySpace;
            duck(px, py);
        }//closes forloop
    }//closes complete nested forloop
}//closes draw

function duck(x, y) {
    push();
    translate(x, y);

    var headW = 50;
    var headH = 40;
    var headY = -30;
    var bodyW = 40;
    var bodyH = 30;
    var wingW = 30;
    var wingH = 10;
    var mouthY = -20;
    var mouthW = 13;
    var mouthH = 8;
    var eyeX = 10;
    var eyeY = -35;
    var eyeD = 7;
    var footX = 7;
    var footY = 16;
    var footW = 8;
    var footH = 4;

    fill("#FAD438");//yellow
    ellipse(0, headY, headW, headH);//head
    ellipse(0, 0, bodyW, bodyH);//body

    push();//right wing
        rotate(radians(20));
        ellipse(bodyH/2, 0, wingW, wingH);
    pop();
    push();//left wing
        rotate(radians(-20));
        ellipse(-bodyH/2, 0, wingW, wingH);
    pop();

    fill("#FF9D14");//orange
    ellipse(0, mouthY, mouthW, mouthH);

    fill("#534C45");//brown
    ellipse(eyeX, eyeY, eyeD, eyeD);
    ellipse(-eyeX, eyeY, eyeD, eyeD);
    ellipse(footX, footY, footW, footH);
    ellipse(-footX, footY, footW, footH);

    pop();
    noLoop();
}

img_4095
Planning

For my project, I made a repeating pattern of ducks. I could definitely see this pattern on a pair of fun socks, or pj pants, or a short sleeve button up. I created a duck function in which I drew all the individual shapes. I then called upon that function in a for loop to repeat the pattern in a simple pattern.

 

Kyle Lee Looking Outward 04

Nightingale and Canary from Andy Thomas on Vimeo.

I looked at Andy Thomas’ sound visualization and particularly admire how he was able to process a sound into a visual medium. What surprised me was how something so simple, like a bird call which we have all heard many times before, is actually quite intricate in its sound, vibrations, pitch, and volume. This visualization and additional visual information truly helped me understand the feeling of the bird call, the outdoors, and nature itself.

I do not know how exactly the auditory information was processed or what it was processed with. I couldn’t find any specific information on that, but I suppose the auditory recorded information was used to dictate drawing of different shapes. Now those shape all would have different forms, color, motion, and frequency which would also be influenced by the bird call.

Given how abstract sound is, I find Thomas’ attempt to make sound visually tangible remarkable. Not only did he effectively bring out the beauty in a bird call, but he also enhanced it in my opinion.

Kyle Lee Line Art

I wanted to keep the pattern simple and clean. Although this isn’t as groundbreaking or experimental, I certainly helped me understand how to use for loops to create curves.

 

kdlee-project-04

function setup() {
    createCanvas(600, 600);
}

function draw() {
    background(255);//white
    strokeWeight(1);//thin line
    var spacing = 25; // How far apart is each line
    var increment = 50;// double spacing, offsets lines, growth

    for (var i = 0; i < 25; i = i + 1) {//20 lines
        var x = (0 + i * spacing);
        var y = (0 + i * spacing);

        stroke("#FC4BAB");//pink
        line(x, 0, width, y);

        stroke("#FCCA53");//yellow
        line(0, y, x, height);

        stroke("#03C9BA");//green
        line(0, y, width - x, 0);

        stroke("#343AE9");//blue
        line(x, height, width, height - y);
    }
}

Kyle Lee Project 3

For this project, the hardest part was coding efficiently. Given the amount of little coding experience I drew objects individually as I knew how which ended up taking up many lines of code.

 

kdlee-project-03-a

var redX = 0;
var redY = 0;
var redW = 32;
var redH = 480;
var redModifier = 64;
var blueX = 0;
var blueY = 16;
var blueW = 64;
var blueH = 32;
var blueModifier = 64;
var whiteX = 0;
var whiteY = 0;
var whiteW = 64;
var whiteH = 32;
var whiteModifier = 64;
var dotX = 8;
var dotY = 16;
var dotD = 32;
var dotModifier = 32;
var rectTurn = 180;
var coloryYellow ="#FAFCFC";//"#18192E";// "#CEDEE6";//"#FEEEDD"; //"#FFCC39";
var colorRed = "#6393B6";//"#D54E21";// "#2A3C4F";//"#30C9A3";//"#FC4E4D";
var colorBlue = "#DDDADC";//"#F3CB2F"; //"#F37A70";//"#FE8D7B";//"#6B7FE0";

function setup() {
    createCanvas(640, 480);
}

function draw() {
    noStroke();
    background(coloryYellow);//YELLOW

    var redW = map(mouseX, 0, width, 0, redModifier);
    rectMode(CORNER);
    fill(colorRed);//RED
    rect(redX, redY, redW, redH);//Repeated 10 RED rectangles
    rect(redX + 1 * redModifier, redY, redW, redH);
    rect(redX + 2 * redModifier, redY, redW, redH);
    rect(redX + 3 * redModifier, redY, redW, redH);
    rect(redX + 4 * redModifier, redY, redW, redH);
    rect(redX + 5 * redModifier, redY, redW, redH);
    rect(redX + 6 * redModifier, redY, redW, redH);
    rect(redX + 7 * redModifier, redY, redW, redH);
    rect(redX + 8 * redModifier, redY, redW, redH);
    rect(redX + 9 * redModifier, redY, redW, redH);
//    if (mouseX < 0){
//      var redW = 0;
//    }
    push();//ALL Blue Rectangles
    rectMode(CENTER);
    var blueW = map(mouseY, 0, height, 0, blueModifier) * 2;
    var redW = map(mouseX, 0, width, 0, redModifier);
    fill(colorBlue);//BLUE

    push();//Repeated 4 BLUE bars 0th Column
    translate(blueX + redW / 2 - blueModifier, blueY + 1 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + redW / 2 - blueModifier, blueY + 3 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + redW / 2 - blueModifier, blueY + 5 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + redW / 2 - blueModifier, blueY + 7 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();

    push();//Repeated 4 BLUE bars 1st Column
    translate(blueX + redW / 2, blueY);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + redW / 2, blueY + 2 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + redW / 2, blueY + 4 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + redW / 2, blueY + 6 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();

    push();//Repeated 4 BLUE bars 2nd Column
    translate(blueX + blueModifier + redW / 2, blueY + 1 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + blueModifier + redW / 2, blueY + 3 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + blueModifier + redW / 2, blueY + 5 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + blueModifier + redW / 2, blueY + 7 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();

    push();//Repeated 4 BLUE bars 3rd Column
    translate(blueX + 2 * blueModifier + redW / 2, blueY);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 2 * blueModifier + redW / 2, blueY + 2 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 2 * blueModifier + redW / 2, blueY + 4 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 2 * blueModifier + redW / 2, blueY + 6 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();

    push();//Repeated 4 BLUE bars 4th Column
    translate(blueX + 3 * blueModifier + redW / 2, blueY + 1 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 3 * blueModifier + redW / 2, blueY + 3 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 3 * blueModifier + redW / 2, blueY + 5 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 3 * blueModifier + redW / 2, blueY + 7 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();

    push();//Repeated 4 BLUE bars 5th Column
    translate(blueX + 4 * blueModifier + redW / 2, blueY);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 4 * blueModifier + redW / 2, blueY + 2 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 4 * blueModifier + redW / 2, blueY + 4 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 4 * blueModifier + redW / 2, blueY + 6 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();

    push();//Repeated 4 BLUE bars 6th Column
    translate(blueX + 5 * blueModifier + redW / 2, blueY + 1 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 5 * blueModifier + redW / 2, blueY + 3 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 5 * blueModifier + redW / 2, blueY + 5 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 5 * blueModifier + redW / 2, blueY + 7 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();

    push();//Repeated 4 BLUE bars 6th Column
    translate(blueX + 6 * blueModifier + redW / 2, blueY);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 6 * blueModifier + redW / 2, blueY + 2 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 6 * blueModifier + redW / 2, blueY + 4 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 6 * blueModifier + redW / 2, blueY + 6 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();

    push();//Repeated 4 BLUE bars 7th Column
    translate(blueX + 7 * blueModifier + redW / 2, blueY + 1 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 7 * blueModifier + redW / 2, blueY + 3 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 7 * blueModifier + redW / 2, blueY + 5 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 7 * blueModifier + redW / 2, blueY + 7 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();

    push();//Repeated 4 BLUE bars 8th Column
    translate(blueX + 8 * blueModifier + redW / 2, blueY);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 8 * blueModifier + redW / 2, blueY + 2 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 8 * blueModifier + redW / 2, blueY + 4 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 8 * blueModifier + redW / 2, blueY + 6 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();

    push();//Repeated 4 BLUE bars 9th Column
    translate(blueX + 9 * blueModifier + redW / 2, blueY + 1 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 9 * blueModifier + redW / 2, blueY + 3 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 9 * blueModifier + redW / 2, blueY + 5 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 9 * blueModifier + redW / 2, blueY + 7 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();

    push();//Repeated 4 BLUE bars 10th Column
    translate(blueX + 10 * blueModifier + redW / 2, blueY);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 10 * blueModifier + redW / 2, blueY + 2 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 10 * blueModifier + redW / 2, blueY + 4 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    push();
    translate(blueX + 10 * blueModifier + redW / 2, blueY + 6 * blueModifier);
    rotate(radians(map(mouseY, 0, height, 0, rectTurn)));
    rect(0, 0, blueW, blueH);
    pop();
    pop();
}

Kyle Lee Looking Outward 3

standley-1

When I first saw this project, I was immediately drawn in. I think there are three things that I most admire about this project. First is the intricate detail and form of the “stained glass window.” Needless to say that Eric Standley did a terrific job in forming a compelling and intriguing structure. Furthermore, I find the fact that this beautifully complex piece is done with simple paper makes this project even more fascinating. Finally, the craft is marvelous. In my design classes, I have come to greatly appreciate and be sensitive to fine craft. I strive to reach fine craft in my drawings, physical project, and every aspect of my work and this project certainly is an inspiration.

The basic algorithms underneath this project are all fairly simple and not to far from the simple drawing that we have been doing in class. Each layer by itself is comprised of simple shapes and curves. Its the advanced layering that really makes this project more than just a visual. Standley didn’t actually map this out in 3D, but drew each layer separately. His ability to visualize multiple negative spaces effectively is truly expressed through this proeject.