Project 05: Wallpaper

Emilio Bustamante

This wallpaper uses patterns inspired from Muslim culture. My main objective was to try to draw the least amount of lines to create the wallpaper. I noticed that if I rotated and repeated the shape shown below 4 times it would create the pattern I wanted without drawing much lines. After that I just repeated and translated the groups of lines four times. The initial group of lines drawn would be repeated 16 times.

function setup() {
  createCanvas(400, 400); 
} 
function draw() {
  background(204); 
//top left
  pattern2(50, 50);
//top right
  translate(-50,150)
  pattern2(0,0)
//bottom right
  translate(-50,-250)
  pattern2(0,0)
//bottom left
  translate(-50,150)
  pattern2(0,0)
}
function pattern2(x,y){
//top left
  pattern1(50,50) 
//top right
  rotate(radians(90));
  rectMode(CENTER);
  pattern1(0,-100)
//bottom right
  rotate(radians(90));
  rectMode(CENTER);
  pattern1(0,-100)
//bottom left
  rotate(radians(90));
  rectMode(CENTER);
  pattern1(0,-100)
}

function pattern1(x, y) {  
  translate(x, y); 
  stroke(0); 
  strokeWeight(1);
//line 1
  line(50,-33.3,26.5,-40);
  line(26.5,-40,-4.5,-9);
  line(-4.5,-9,-45, -33.3);
  line(-45, -33.3,-50,-25);
  line(-50,-25, -33.3, 7.5);
  line(-33.3, 7.5, 33.3, -7.5);
  line(33.3, -7.5,50,26);
  line(50,26,45,33.3);
  line(45,33.3,4.5,9);
  line(4.5,9,-26.5,40);
  line(-26.5,40,-50,33.3);
//line 2
  line(33.3,-50,40,-26.5);
  line(40,-26.5,9,4.5);
  line(9,4.5,33.3,45.5);
  line(33.3,45.5,26.5,50);
  line(26.5,50, -7.5, 33.3);
  line(-7.5, 33.3, 7.5, -33.3);
  line(7.5, -33.3,-26,-50);
  line(-26.5,-50,-33.3,-45.5);
  line(-33.3,-45.5,-9,-4.5);
  line(-9,-4.5,-40,26.5);
  line(-40,26.5,-33.3,50);
//line 3
  line(-37.5,-37.5,-36.5,10);
  line(-36.5,10,-50,13.3);
  line(-50,13.3,-20,20);
  line(-20,20,-13.3,50);
  line(-13.3,50,-10,36.5);
  line(-10,36.5,37.5,37.5);
  line(37.5,37.5,36.5,-10);
  line(36.5,-10,50,-13.3);
  line(50,-13.3,20,-20);
  line(20,-20,13.3,-50);
  line(13.3,-50,10,-36.5);
  line(10,-36.5,-37.5,-37.5);
}

LO-5

Emilio Bustamante

3D rendering in architecture is now commonly used and normally all projects use it to represent forms, materials and architectural experiences. In the past, representing forms in a realistic way was difficult and time consuming. Now with 3d visualizations it is faster and more accurate but sometimes it does not show the true architect intention. In my opinion an architect firm which creates renders that seem real but with a lot of post editing that make them unique would be Santiago Calatrava architects. Their renderings truly show the architect’s sense of life and space. One good example would be the renderings for the tallest planned structure in the world, the Dubai Creek Tower.

Image sources:

https://www.archdaily.com/781831/santiago-calatrava-wins-competition-to-design-observation-tower-in-dubai

https://me.popsugar.com/technology/Dubai-Creek-Harbour-Tower-Taller-Than-Burj-Khalifa-40875628

LO: 3D Computer Graphics

My artist is Adam Martinakis, a digital 3D artist based in Greece. Since 2000, Marinakis has been making computer-generated visuals. What caught my attention about Martinakis’ work is how he portrays the human figure. To covey the fragility of humans, Martinakis would create 3D humans and then shatter them. I admire the artist’s 3D graphic skills in creating a detailed rendering of the space and subjects in his art. His artworks perfectly captured the critical moment when the figures were destroyed, leaving a strong visual impact. The artist achieved his vision by making the human figure almost featureless, which supported his idea that fragility is a universal characteristic of all humans. In an interview with Marinakis, he described the process and algorithms that he employed. First, he creates 3D models using the software 3ds Max and then renders them. Since he constructed his art in 3D, Martinakis could render different angles of the same model and publish the best ones. This workflow is a unique feature of digital 3D art, which is not possible without the help of computers. Overall, Adam Martinakis inspires me by combining an engaging visual style and actualizing it through computer programs.

website

interview

Looking Outwards 4

The Clock

This post is regarding Christian Marclay’s works. I really enjoyed his work, ‘The Clock’, in 2010. Christian Marclay worked with fine art and audio cultures, transforming sound and music into a visible, physical form through performance, collage, sculpture, installation, photography and video. His work uses gramophone records and turntables as musical instruments to produce amazing works from sounds. I love the idea that Matclays purposefully damages records to create intentional effects on the music that he creates. In this work I really appreciate the concept of Time being a complex interaction being introduced within his work.

https://whitecube.com/exhibitions/exhibition/christian_marclay_masons_yard_2010

Project 04: String Art

sketch
//Julianna Bolivar
//jbolivar
//Section D
//Program: String Art


var dx1;
var dy1;
var dx2;
var dy2;

var dx3;
var dy3;
var dx4;
var dy4; 

var dx5;
var dy5;
var dx6;
var dy6; 



var numLines = 50;

function setup() {
    createCanvas(300, 400);
    background(244, 235, 232);
    //hot pink
    stroke(222, 49, 99);
    //right most lines
    line(300, 300, 350, 300); 
    dx1 = (250)/numLines;
    dy1 = (290)/numLines;
    dx2 = (100)/numLines;
    dy2 = (290)/numLines;
    //left most lines
    dx3 = (150)/numLines;
    dy3 = (320)/numLines;
    dx4 = (90)/numLines;
    dy4 = (90)/numLines;
    //overlapping lines
    dx5 = (150)/numLines;
    dy5 = (320)/numLines;
    dx6 = (90)/numLines;
    dy6 = (90)/numLines;
}

function draw() {
    //right most lines
    var x1 = 50;
    var y1 = 10;
    var x2 = 200;
    var y2 = 200;
    //left most lines
    var x3 = 0;
    var y3 = 200;
    var x4 = 220;
    var y4 = 350;
    //overlapping lines
    var x5 = 40;
    var y5 = 200;
    var x6 = 220;
    var y6 = 350;

    for (var i = 0; i <= numLines; i += 1) {
        line(x1, y1, x2, y2);
        line(x3, y3, x4, y4);
        line(x5, y5, x6, y6);

        x1 += dx1;
        y1 += dy1;
        x2 += dx2;
        y2 += dy2;

        x3 -= dx3;
        y3 -= dy3;
        x4 += dx4;
        y4 += dy4;

        x5 -= dx5;
        y5 -= dy5;
        x6 += dx6;
        y6 += dy6;   
    }

    noLoop();
}


Mine is quite simple, I wanted to have an interaction or at least have a variety of colors but I couldn’t get it to work in time. I knew I wanted the strings to work vertically, and the overlapping strings was a mistake I ended up liking.

LO 04: Sound Art

I looked at a critically-acclaimed game called Incredibox, published by So Far So Good, released in 2009. It is an interactive music experience where you drag and drop different sounds for a lineup of 8 beatboxers to produce. You mix and match the sounds and singing options to create songs. Almost all of the sound options sound good together, so it’s nearly impossible to make a song that sounds bad. It’s also a visual experience. In each theme, when you drag a sound icon onto one of the 8 beatboxers, it dresses them in a new outfit. You have 8 different themes to choose from, 4 unlocked and 4 initially locked; Alpha (basic beatboxing), Little Miss (hip-hop), Sunrise (pop), The Love (French house), Brazil (Brazilian music), Alive (Japanese/modern music), Jeevan (traditional Indian), and Dystopia (futuristic). Incredibox has seen a recent resurgence due to the Dystopia theme becoming popular on Tiktok. I find this game very impressive in that there are so many musical styles explored, as well as the musical ability needed to make sure all the sounds combine well with each other, and still there are enough options to create many unique songs. There must be many looping functions as the beatboxers keep making their sound until you pause or change the sound assigned to them.

https://www.incredibox.com/demo/

Screenshot from me playing the “The Love” theme.

Project 04- String Art

sketch

//Catherine Liu
//jianingl
//Section D

var strokeColorR = 255
var strokeColorG = 165
var strokeColorB = 0

var dx1;
var dy1;
var dx2;
var dy2;

var dx3;
var dy3;
var dx4;
var dy4;

var dx5;
var dy5;
var dx6;
var dy6;

var dx7;
var dy7;
var dx8;
var dy8;

var dx9;
var dy9;
var dx10;
var dy10;

var numLines = 50;

function setup() {
    createCanvas(400, 300);
    background(0);

    //draws line that curves downward
    line(0,0,width/2,height);
    line(width/2,height,width,0);
    dx1 = (width/2-0)/numLines;
    dy1 = (height-0)/numLines;
    dx2 = (width-width/2)/numLines;
    dy2 = (0-height)/numLines;

    //draws line that curves upward
    line(0,height,width/2,0);
    line(width/2,0,width,height);
    dx3 = (width/2-0)/numLines;
    dy3 = (0-height)/numLines;
    dx4 = (width-width/2)/numLines;
    dy4 = (height-0)/numLines;

    //draws line that curves left
    line(0,0,width,height/2);
    line(width,height/2,0,height);
    dx5 = (width-0)/numLines;
    dy5 = (height/2-0)/numLines;
    dx6 = (0-width)/numLines;
    dy6 = (height-height/2)/numLines;

    //draws line that curves right
    line(width,0,0,height/2);
    line(0,height/2,width,height);
    dx7 = (0-width)/numLines;
    dy7 = (height/2-0)/numLines;
    dx8 = (width-0)/numLines;
    dy8 = (height-height/2)/numLines;
}

function draw() {
    background(0);
    stroke(strokeColorR, strokeColorG, strokeColorB);

    //draws line that curves downwards
    var x1 = 0;
    var y1 = 0;
    var x2 = width/2;
    var y2 = height;
    for (var i = 0; i <= numLines; i += 1) {
        line(x1, y1, x2, y2);
        x1 += dx1;
        y1 += dy1;
        x2 += dx2;
        y2 += dy2;
    }

    //draws line that curves upward
    var x3 = 0;
    var y3 = height;
    var x4 = width/2;
    var y4 = 0;
    for (var i = 0; i <= numLines; i += 1) {
        line(x3, y3, x4, y4);
        x3 += dx3;
        y3 += dy3;
        x4 += dx4;
        y4 += dy4;
    }

    //draws line that curves left
    var x5 = 0;
    var y5 = 0;
    var x6 = width;
    var y6 = height/2;
    for (var i = 0; i <= numLines; i += 1) {
        line(x5, y5, x6, y6);
        x5 += dx5;
        y5 += dy5;
        x6 += dx6;
        y6 += dy6;
    }

    //draws line that curves right
    var x7 = width;
    var y7 = 0;
    var x8 = 0;
    var y8 = height/2;
    for (var i = 0; i <= numLines; i += 1) {
        line(x7, y7, x8, y8);
        x7 += dx7;
        y7 += dy7;
        x8 += dx8;
        y8 += dy8;
    }
}

function mousePressed() {

    //checks for R value of color and switches
    if (strokeColorR == 255) {
        strokeColorR = 0
    } else {
        strokeColorR = 255
    }

    //checks for G value of color and switches
    if (strokeColorG == 165) {
        strokeColorG = 191
    } else {
        strokeColorG = 165
    }

    //checks for B value of color and switches
    if (strokeColorB == 0) {
        strokeColorB = 255
    } else {
        strokeColorB = 0
    }
}

It took me a while to figure out how to use the string to create patterns but once I had a good idea of what I wanted to create it was relatively easy to add strings. I also included the ability for the string to change color when you press the mouse.

Looking Outwards 04

There is a YouTube channel called “ELECTRONICOS FANTASTICOS!” that features people playing music by scanning barcodes of various lengths and widths. I was amazed by how such a simple tool can be reimagined to create music, and curious about how the scanner was reprogrammed to recognize different barcodes as different sounds. In fact, factors such as pitch and speed appear to be affected by how fast the scanner is moving and how far from the barcode it is.

Ei Wada, a Japanese artist and musician, reinvents such electrical appliances as tools to create electromagnetic music. He modifies the barcode scanners to generate sounds by connecting scanned signals directly to an audio terminal. When hovering over a printed backdrop with different variations of “barcodes”, the scanner senses changes in light patterns between the black and white lines to turns those signals into computer text. The computer recognizes the specific light patterns and emits a beep sound. It is likely that Wada created an algorithm that sets different light patterns to specific sounds so when the scanner goes over different barcodes, it produces a variety of beeps. However, to create music, the artist still has to physically scan the barcodes in a rhythmic way, moving throughout the different barcodes systemically in order to produce a set of sounds with musical qualities.

playing music from barcodes

Project 4: String art

Yash string art

// Yash Mittal
// Section D

var dx1;
var dy1;
var dx2;
var dy2;
var dx3;
var dy3;
var dx4;
var dy4;
var dx5;
var dy5;
var dx6;
var dy6;

var numLines = 30;

function setup() {
    createCanvas(400, 300);
    background (0);
    stroke (255);
    line (70, 200, 180, 10); // reference line 1 
    line (330, 180, 290, 70); // reference line 2
    strokeWeight (0);
    line (150, 290, 250, 260); // reference line 3
    line (100, 100, 200, 200); // reference to line 4 
    stroke ("white");
    line (30, 70, 290, 110); // reference to line 5
    strokeWeight (1);
    line (20, 20, 110, 10); // reference to line 6


    dx1 = (180 - 70) / numLines;
    dy1 = (10 - 200) / numLines;
    dx2 = (290 - 330) / numLines;
    dy2 = (70 - 180) / numLines;
    dx3 = (250 - 150) / numLines;
    dy3 = (260 - 290) / numLines;
    dx4 = (200 - 100) / numLines;
    dy4 = (200 - 100) / numLines;
    dx5 = (290 - 30) / numLines;
    dy5 = (110 - 70) / numLines; 
    dx6 = (110 - 20) / numLines;
    dy6 = (10 - 20) / numLines;

}

function draw() { 

    var x1 = 70;
    var y1 = 200;
    var x2 = 330;
    var y2 = 180;
    var x3 = 150;
    var y3 = 290;
    var x4 = 100; 
    var y4 = 200;
    var x5 = 30;
    var y5 = 290;
    var x6 = 20;
    var y6 = 20;
    var x7 = 110;
    var y7 = 10;

    for (var i = 0; i <= numLines; i = i + 0.9) { // center lines (left to right)

        line (x1, y1, x2, y2);
       
        x2 = x2+ dx2;
        y2 = y2 + dy2;
        
    }

    stroke ("yellow");

    for (var i2 = 0; i2 <= numLines; i2 = i2 + 3) { // bottom lines (bottom left to top)

        line (x2, y2, x3, y3);
        x2 = x2 + dx3;
        y2 = y2 + dy3;
        x3 = x3 + dx3;
        y3 = y3 + dy3;

    }


    stroke ("white");

    for (var i5 = 0; i5 <= numLines; i5 = i5 + 0.5) {

        line (x4, y4, x5, y5);

        x5 = x5 + dx5;
        y5 = y5 + dy5;
    }


 stroke ("red");

    for (var i3 = 0; i3 <= numLines; i3 = i3 + 1) { // top lines (top right to top center)

        line (x2, y2, x1, y1);
        x2 = x2 + dx3;
        y2 = y2 + dy3;
        x1 = x1 + dx1;
        y1 = y1 + dy1;
    }

    for (var i4 = 0; i4 <= numLines; i4 = i4 + 0.1) { 

        line (x3, y3, x2, y2);

        x3 = x3 + dx3;
        y3 = y3 + dy3;
        x2 = x2 + dx2;
        y2 = y2 + dy2;
        
}

    stroke ("yellow");
    strokeWeight (0.4);

    for (var i6 = 0; i6 <= numLines; i6 = i6 + 0.8) {

        line (x1, y1, x3, y3);

        x1 = x1 + dx1 / 2;
        y1 = y1 + dx1 / 2;
        x3 = x3 + dx3 / 2;
        y3 = y3 + dy3 / 2;
    }

    stroke ("red");

    for (var i7 = 0; i7 <= numLines; i7 = i7 + 0.5) {

        line (x6, y6, x4, y4);
        x4 = x4 + dx4;
        y4 = y4 + dy4;
    }

    strokeWeight (0.3);
    stroke ("red");

    for (var i8 = 0; i8 <= numLines; i8 = i8 + 0.1) {

        line (x7, y7, -x4, y4);
        x7 = x7 + dx6;
        y7 = y7 + dx6;
       
    }

noLoop();

}

I had fun working on this project. At first, I struggled to understand the mathematics behind the code but once I got the hang of it, it became pretty easy to draw new patterns on different parts of the canvas.

LO: Sound Art

For this week’s project, I chose a project called “Soundmachines” by Yannick Labbe, which are basically three units, resembling standard record players; and they translate concentric visual patterns into control signals so that a music software can process them. The rotation of these three units / discs, each holding three separate individual tracks, can be synced to a sequencer. I thought that this project was really cool and unique because of how simple it is to use but also the algorithm used to develop this was probably very complicated since picking up data from just a rotating disk and analyzing that data seems like a big task. In addition to this, I was really impressed with how the algorithm was able to combine individual music points from all three discs into one cohesive piece that was audibly pleasing.

Link to “Soundmachines” by Yannick Labbe – https://www.youtube.com/watch?v=_gk9n-2lBb8

Screenshot from “Soundmachines” Youtube video