airsun-IterationExercise

//Clair(sijing) Sun
//sijings@andrew.cmu.edu
//Assignment-5

var lineP=[];
var boolDoRefresh;
var numberofL=10;

function setup() {
    createCanvas(480, 480);
    boolDoRefresh = false;
    for (var i=0; i<numberofL; i++){
        var x1 = random(0,width);
        var x2 = random(0,width);
        var y1 = random(0,height);
        var y2 = random(9,height);
        lineP[i] = [x1,y1,x2,y2];
    }
}

function draw() {
    background(200);

    //regenerate if mousePressed
    if (boolDoRefresh) { 
        for (var i=0; i<numberofL; i++){
            var x1 = random(0,width);
            var x2 = random(0,width);
            var y1 = random(0,height);
            var y2 = random(9,height);
            lineP[i] = [x1,y1,x2,y2];
        }
    boolDoRefresh=false
    }

    //for drawing the lines
    for (var i = 0; i < numberofL; i += 1){
        line(lineP[i][0],lineP[i][1],lineP[i][2],lineP[i][3]);
    }

    //for drawing the intersections, spliting to two lines each time
    for (var j = 0; j < numberofL; j += 1){
            for (var i = 0; i < numberofL; i += 1){
                var x1 = lineP[j][0];
                var y1 = lineP[j][1];
                var x2 = lineP[j][2];
                var y2 = lineP[j][3];
                var x3 = lineP[i][0];
                var y3 = lineP[i][1];
                var x4 = lineP[i][2];
                var y4 = lineP[i][3];
                intersect(x1, y1, x2, y2, x3, y3, x4, y4);
            }
    }
    
}

// Modified from line intercept math by Paul Bourke http://paulbourke.net/geometry/pointlineplane/
// Determine the intersection point of two line segments
// Modified from http://paulbourke.net/geometry/pointlineplane/javascript.txt
function intersect(x1, y1, x2, y2, x3, y3, x4, y4) {
    if ((x1 == x2 && y1 == y2) || (x3 == x4 && y3 == y4)) {
        return false
    }

    var denom = ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1))
 
    if (denom === 0) {
        return false
    }
 
    var ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denom
    var ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denom
 
    // is the intersection along the segments
    if (ua < 0 || ua > 1 || ub < 0 || ub > 1) {
        return false
    }

    fill(0);
    ellipse (x1 + ua * (x2 - x1),y1 + ua * (y2 - y1),15);
}


 
function mousePressed() {
    boolDoRefresh = true;
}

airsun-reading01

9. The Critical Engineer notes that written code expands into social and psychological realms, regulating behavior between people and the machines they interact with. By understanding this, the Critical Engineer seeks to reconstruct user-constraints and social action through means of digital excavation.

First of all, throughout the reading, I was not really sure about the definition of the term "Critical Engineer". I felt like it can be interpreted in different ways. This role can include every participant who is working towards the future, building Art-design-tech that deals with human interactions. Or, it can be a jargon describing a specific group of people. But no matter what group this term refers to, it all contributes to the overall manifesto and its emphasis on the social, cultural, and psychological importance for inventions. It first says the Critical Engineer writing codes that touch on social studies and psychology, both relating to research in human behaviors and interactions. This is a common point in many design and artworks theme. However, I found these concepts were rarely connected with coding. Coding is sitting on the other side with logic and rationality. So it is creative and interesting when reading part of the Critical Engineer's job is to use coding with ideas in the social and psychological realms for revising our conventional understanding and behaviors related to user experience and social actions. Nevertheless, when thinking about the production of coding, how is our behaviors being shaped? If we look around, we may find that most things around us today are partly constructed through written code, e.g. social media apps, personal websites, etc. If we look at these finished products, a majority part of human interactions and social life is actually connected or even shaped by code. In this sense, the statement points out the eventual consequence and influence of the critical engineer in the aspect of shaping a way of living and communicating.

airsun-lookingoutwards01

It was not long ago when I saw this powerful installation in the Mori Art Museum in Tokyo this summer. I have seen interactive artworks through screens, however, I was not able to participate in many of them. But for this one, when standing in the space and looking at what is happening around me, the power this installation delivered is magnificent and significant. "Power of Scale" is a play rendering of installation done by Seiichi Saito and Rhizomatiks. It can be viewed as an informative introduction on architecture as well as an interactive digital art installation that embraces the audience by the demonstration of architecture history and human interaction design. Indeed, the exhibition is about Arata Isozki's book Japan-ness, a groundbreaking book about Architecture in 2006. It deals with topics such as "coexistence with nature" and "hybrid architecture", explaining how Japanese architecture flourishes with movable screens instead of traditional concepts of walls. This work is accomplished through video and fiber laser technology. It provides a human-scale environment where the audience can feel the most realistic experience of discovering and reflecting on human scale and its relationship with the immediate surroundings.

Introducing "Power of Scale"- Mori Art Museum