Looking Outwards 11: Societal Impacts of Digital Art

The societal issue is in regards to copyright and how NFTs impact it. One example is how NFTs occasionally steal work from commissioned artists without their consent or permission, such as in the case of Jason Rohrer using the work of artists without their consent to sell NFTs. The article begins by detailing what NFTs are; unique tokens, most commonly a URL of some digital media which are given to individuals for ownership. However—and this is the conflict that the article highlights—that very ownership has a lot more to take into account than what the original developers may have intended. Those who have NFTs don’t actually have copyright of their NFTs, and their so-called products are still accessible and distributable to the public. To make matters worse, thousands can release unoriginal NFTs based off of digital URLs in a market that doesn’t restrict or legislate the selling and distribution of NFTs.

Link to article here

Looking Outwards 09: A Focus on Women and Non-binary Practitioners in Computational Art 

Caroline Record’s Falling OBJs was such a delightful treat to look at. With her use of random, oscillating lines that transform the perceived object into something else entirely, as well as the colors utilized to portray a clash of normality and chaos, she showcases her artistic and coding skills in an intersection of art and technology. Within each piece, she utilizes motion, as well, to create a sense of dissolving and forming. Record is a developer and artist that focuses primarily on writing the software to bring her installations to life. She has a background in fine arts, programming, and user-interaction design, having studied it at Carnegie Mellon University. She is currently focused on creating more digital, interactive works to be displayed in museums. She has also contributed to projects such as Popbox, which studied childhood obesity and the pressures and constraints that lead the children to their unhealthy weight gain. 

Falling OBJs (Caroline Record)


Her website here

Looking Outwards 07: Information Visualization

The interactive light structure, Unnumbered Sparks (2014), by Aaron Koblin and Janet Echelman was truly something spectacular to see. The concept itself—of a massive light structure that changed depending on real time audience interaction—promoted this lovely theme of unity and creativity in a very beautiful and meaningful way. The way it was constructed was also very artistic and elegant, and it was clear that Koblin and Echelman’s artistic touches could be seen through the color palettes as well as the delicate way the light filaments interacted with one another to create a stunning night sky display. In addition, the way the project was structured meant it relied heavily on focus and distance, something that the artists needed to balance in order to create something visually appealing. The algorithms involved appeared to have taken in people’s data from their phones and mapped it to some value that would allow it to alter the way the lights in the structure appeared, whether in color or shape. The way it was produced was through the usage of a website, distributed and projected onto a real, physical structure. 

Link here

Unnumbered Sparks (2014)

Looking Outwards 05: 3D Computer Graphics

Down (2019) by Vladimir Desancic is the artwork I have chosen. I appreciate the contrast in the intense orange shades of the background as well as the pseudo-realistic foreground of city structures. It appears that the artist utilized a repetition of lines with sharper, angular structures to mimic real-life skyscrapers. In doing so, he must have used some type of looping and preset functions to create this effect of depth and spacing. Desancic’s artistic ability manifests itself in the delicate balance between the vibrance of the background and the sterility of the foreground; in addition, he utilizes a clever balance of blues and grays to further enrich his piece. 

^^aforementioned painting

Linked here

Looking Outwards 06: Randomness

The painting, Shimmering Substance (1946), by Jackson Pollock combined his technique of utilizing random shapes and colors to create a comprehensive piece. I admired the way he was able to use this apparent lack of purpose to drive forth purpose in his work; a paradoxical paragon of art, if you will. Pollock was famed for the way he approached art, sparking forth a new movement of randomness in abstract art and this painting proves it all the more so. Although he did not utilize algorithms (as it was a traditional media piece), the way he approached the creation of the work could have been seen as similar to how a computer generates randomness: he utilized his whims to emulate the randomness that a computer can now generate. However, despite doing so, Pollock was able to use his artistic senses to balance out the randomness of the painting with a cohesion that allowed the painting to not only present a theme of shimmering but also look aesthetically pleasing.

^^ the aforementioned painting

Lines: A face

For this project, I tried to make a face out of simple lines. When constructing faces, it is always interesting to see how simplistic or complicated you could make it through the assumptions of what is considered a face.

sketch
var dx1;
var dy1;
var dx2;
var dy2;
var numLines = 50;

function setup() {
    createCanvas(400, 400);
    background(200);
    line(50, 50, 150, 300);
    line(300, 300, 350, 100);
    line(10,380,180,300);
    line(280,260,370,390);
    dx1 = (150-50)/numLines;
    dy1 = (300-50)/numLines;
    dx2 = (350-300)/numLines;
    dy2 = (100-300)/numLines;
}

function draw() {
    fill(0);
    triangle(200,0,140,100,180,110);
    triangle(180,140,200,120,280,145);
    triangle(190,145,200,160,240,150);
    var x1 = 50;
    var y1 = 50;
    var x2 = 300;
    var y2 = 300;
    for (var i = 0; i <= numLines; i += 1) {
        line(x1, y1, x2, y2);
        x1 += dx1;
        y1 += dy1;
        x2 += dx2;
        y2 += dy2;
    } for (var i = -150; i <= numLines * 2; i += 4) {
        line(x1, y1, x2, y2);
        x1 += dx1 / 2;
        y1 += dy1 / 2;
        x2 += dx2 / 2;
        y2 += dy2 / 2;
        //eyelashes i think
    } for (var i = 1; i <= numLines * 2; i += 4) {
        line(x2 * 5, y1 , x1 -50, y2 + 40);
        var x1 = 0;
        var x2 = 200;
        var y1 = 300;
        var y2 = 350;
        x1 += dx1;
        y1 += dy1;
        x2 += dx2;
        y2 += dy2;
        //random lines for texture
    } for (var i = 0; i <= numLines; i += 2) {
        line(x1, y1 - 300, x2, y2 - 300);
        x1 += dx1;
        y1 += dy1;
        x2 += dx2;
        y2 += dy2;
        //hair
    } for (var i = 0; i <= numLines; i += 2) {
        x2 = 80;
        y2 = 30;
        line(x1, y1 - 300, x2, y2 - 300);
        x1 -= dx1;
        y1 -= dy1;
        x2 += dx2;
        y2 += dy2; }
    for (var i = 0; i <= numLines; i += 1) {
        line(x1, y1, x2, y2);
        x1 += dx1;
        y1 += dy1;
        x2 += dx2;
        y2 += dy2;  }
    x1 = 10;
    y1 = 380;
    x2 = 280;
    y2 = 260;
    for (var i = 0; i <= numLines; i += 1) {
        line(x1, y1, x2, y2);
        x1 += dx1;
        y1 += dy1;
        x2 += dx2;
        y2 += dy2;  }
    noLoop();
}

04-Blog Post

Sonumbra was made as an interactable space in 2006 by Loop.pH, and utilized the movements of the audience. This entire project not only was so beautiful to look at, but also so admirable in how they treated the entire aesthetic of the place, taking into account the multiple variables of a setting, including sound, placement, sizing, and lighting. I suppose the algorithms took in the movements of the visitors and paired them with the fiber lights that made up the structure as well as computer-generated sound. The creator did an excellent job creating beauty in the structure that could have otherwise been rather chaotic or ugly-looking.

Sonumbra de Vincy, Responsive Light Emitting Environment 2008

Link here

dynamic drawing

I wanted to explore the spinning of an object and see if I could control it or alter it in some way by using the location of the mouse.

sketch
function setup() {
    createCanvas(400, 400);
    rectMode(CENTER);
}

var g = 5;
var angle = 0;

function draw() {
    background(0);
    var r = g + mouseX
    fill(r, 255, 0);
    // restrict mouseX to 0-400
    var m = max(min(mouseX, 400), 0);
    var size = m * 350.0 / 400.0;
    circle(10 + m * 190.0 / 400.0, 200.0,
         size);
    fill(255, 0, r);
    size = 350 - size;
    circle(200 + m * 190.0 / 400.0, 200.0,
         size);
    //heres some confetti yay
    
    var confettiDimention1 = 100;
    var confettiDimension2 = 150;
    var confettiDimension3 = 120;
    var confettiDimension4 = 142;
    var angleSpangle = map(mouseX,0,width,3,300);
    push();
    fill('magenta');
    translate(m / 2,200 + size);
    rotate(radians(angle));
    square(confettiDimention1,confettiDimention1,50);
    fill('green');
    square(confettiDimention1,confettiDimention1,50);
    fill('cyan');
    square(confettiDimension2,confettiDimention1,10);
    square(confettiDimension3,confettiDimension4,30);
    pop();
    angle += angleSpangle;
    //if not then square probably

}

LookingOutwards-03

Learning Human-environment Interactions using Conformal Tactile Textiles details Sense Textiles, a project in 2021 constructed by Yiyue Luo, Yunzhu Li, Pratyusha Sharma, Wan Shou, Kui Wu, Michael Foshey, Beichen Li, Tomás Palacios, Antonio Torralba, and Wojciech Matusik. It was quite fascinating to see how a need in the medical and scientific field could prompt the creation of something that mimicked and monitored human-environment interactions. In addition, it was also quite fascinating to see how these results could be used to apply to human behavior and predicting almost psychologically-related fields. To the best of my knowledge, the algorithm that comprised it utilized artificial intelligence to identify human poses and different interactions with its environment through sensory textiles. The creators, albeit focusing on the more technical aspects of the textile, did have the sense to make it so that the textile looked somewhat aesthetically pleasing. The form was nice, the graphics demonstrated with clarity what the effects of the sense textile accomplished.

More on the project here

Shown above, here is a sample of the textiles and their visualized impacts

Project 02: Faces and Variables

Within my project, what I wanted to do was to examine what we call faces. What exactly are the processes by which we determine what is a face or not? In such, I attempted to use the most chaotic combinations by randomizing virtually every color combination on screen possible.

sketch
var eyeSize = 20;
var faceWidth = 100;
var faceHeight = 150;
var x = 1;
var y = 255;
var z = 2;
var mouth = 1
var hair = 1



 
function setup() {
    createCanvas(300, 300);
}
 
function draw() {
    strokeWeight(3);
    stroke(y,x,z);
    fill(x,y,z);
    background(y - 100, x + 30, z + 5);
    ellipse(width / 2, height / 2, faceWidth,  faceHeight);
    var eyeLX = width / 2 - faceWidth * 0.25;
    var eyeRX = width / 2 + faceWidth * 0.25;
    fill(x - 80, y - 80, z - 80);
    ellipse(eyeLX, height / 2, eyeSize, eyeSize);
    ellipse(eyeRX, height / 2, eyeSize, eyeSize);
    if (mouth == 1) {
        //happy mouth
        arc(width / 2, (height / 2) + 25, faceWidth - 40, faceHeight / 2, 0, radians(180));
    }
    if (mouth == 2) {
        //sad face
        noFill();
        arc(width / 2, (height / 2) + 50, faceWidth - 40, faceHeight / 2, radians(180), 0);
    }
   if (mouth == 3) {
        //shocked mouth
        fill(255,102,102);
        ellipse(width / 2, (height / 2) + 50, faceHeight / 2, faceWidth / 2);
    }
    if (hair == 1) {
        //party hat
        fill(z,x,y);
        triangle((width / 2) - (faceWidth / 2), (height / 2) - (faceHeight / 2), width / 2, (height / 4) - 70, (width / 2) + (faceWidth / 2), (height / 2) - (faceHeight / 2));
    }
    if (hair == 2) {
        //beret
        fill(0);
        ellipse(width / 2, (height / 2) - 70, faceWidth + 20, faceHeight / 2);
    }
   if (hair == 3) {
        //bowl cut
        fill(z,y,x + 10);
        arc(width / 2, (height / 2) - (faceHeight / 2) + 30, faceHeight - 15,(faceWidth / 2) + 30, radians(180), 0);
        rect((width / 2) - (faceWidth / 1.5), (height / 2) - (faceHeight / 2) + 30, faceWidth / 3, faceHeight / 2);
        rect((width / 2) + (faceWidth / 3), (height / 2) - (faceHeight / 2) + 30, faceWidth / 3, faceHeight / 2);
    }

}
 
function mousePressed() {
    if (mouseIsPressed == true) {
        x = random(0,255);
        y = random(0,255);
        z = random(0,255);
        fill(x,y,z);
        }
    faceWidth = random(75, 150);
    faceHeight = random(100, 200);
    eyeSize = random(10, 30);
    faceColor = random(0,255);
    hair += 1;
    if (hair > 3) {
        hair = 1;
    }
    mouth += 1;
    if (mouth > 3) {
        mouth = 1;
    }
}