amalia – [OLD FALL 2020] 15-104 • Introduction to Computing for Creative Practice https://courses.ideate.cmu.edu/15-104/f2020 Professor Tom Cortina • Fall 2020 • Introduction to Computing for Creative Practice Sun, 13 Dec 2020 16:51:56 +0000 en-US hourly 1 https://wordpress.org/?v=5.4.15 Final Project https://courses.ideate.cmu.edu/15-104/f2020/2020/12/13/final-project-10/ https://courses.ideate.cmu.edu/15-104/f2020/2020/12/13/final-project-10/#respond Sun, 13 Dec 2020 16:47:41 +0000 https://courses.ideate.cmu.edu/15-104/f2020/?p=64406

This is a fun little animated/interactive sequence on the death of the theater industry because of COVID. It is mostly cut off because of wordpress!!

sketchDownload
var clouds = [];
var grassLeftOn = true
var grassRightOn = true
var tiktok; //image of the tiktok logo that emerges from the death of the
			//theater industry
var rat; //image of the ratatouille musical that is saving the theater
		 //industry right now
var angle = 0 //to rotate the images of tiktok and ratatouille

function preload() {
	tiktok = loadImage("https://i.imgur.com/FymNkxO.png")
	rat = loadImage("https://i.imgur.com/70iMUtD.jpeg")
}

function setup() {
    createCanvas(1500, 700);
    background(220);
    frameRate(10);
    for (var i = 0; i < 5; i++) {
    	clouds[i] = new Object();
		clouds[i].x = random(1500);
		clouds[i].y = random(300);
		clouds[i].size = random(100);
		clouds[i].dx = random(5);
	}
}

function draw() {
	background(82, 0, 124);
	strokeWeight(1);
	fill(233, 228, 236, 190);
	circle(750, 110, 200); //this is the moon
	textSize(15);
	textAlign(CENTER, CENTER);
	fill(255, 247, 0);
	text('Click Any Grave', 750, 80);
	text('But Beware', 750, 100);
	text('Click The Center Grave Twice', 750, 120);
	text('If You Dare', 750, 140);
	fill(6, 117, 14);
	rect(0, 400, 1500, 300); //this is the horizon
	fill(48, 186, 57);
	beginShape(); //this is the path leading to the "death of theater" grave
	vertex(620, 700);
	vertex(620, 700);
	vertex(690, 450);
	vertex(810, 450);
	vertex(880, 700);
	vertex(620, 700);
	vertex(620, 700);
	endShape();
	strokeWeight(3);
	gates(); //for the gates in the background
	//clouds moving across the screen
	for (var i = 0; i < 5; i++) {
		draw_clouds(clouds[i]);
		clouds[i].x += clouds[i].dx;
		if (clouds[i].x > 1750) {
			clouds[i].x = -250
		}
	}
	//populate the landscape with graves
	strokeWeight(2);
	stroke(0);
	graves(690, 450, 240, 120); //center grave
	graves(480, 680, 260, 180); //left front
	grassLeft(472, 681, 30, 40);
	grassRight(585, 681, 40, 30);
	graves(900, 680, 190, 210); //right front
	grassLeft(892, 681, 20, 70);
	grassRight(990, 681, 20, 40);
	graves(160, 550, 80, 120); //left mid
	grassLeft(152, 551, 10, 90);
	grassRight(195, 551, 10, 90);
	graves(390, 470, 70, 20); //left back
	grassLeft(386, 471, 5, 10);
	grassRight(420, 471, 10, 5);
	graves(1080, 500, 120, 80); //right mid
	grassLeft(1072, 501, 20, 50);
	grassRight(1130, 501, 20, 35);
	graves(1420, 410, 60, 80); //right back
	grassLeft(1412, 411, 10, 30);
	grassRight(1448, 411, 10, 30);
	if (frameCount % 10 == 0) { //grass moves back and forth like the wind is blowing through it
		if (grassLeftOn == true) {
			grassLeftOn = false
		} else {
			grassLeftOn = true
		}
		if (grassRightOn == true) {
			grassRightOn = false
		} else {
			grassRightOn = true
		}
	}
	if (mouseIsPressed) {
		if (mouseX > 690 & mouseX < 810 && mouseY > 330 && mouseY < 450) {
			clickCenterGrave();
		}
		if (mouseX > 480 & mouseX < 610 && mouseY > 500 && mouseY < 680) {
			clickLeftFrontGrave();
		}
		if (mouseX > 900 & mouseX < 980 && mouseY > 470 && mouseY < 680) {
			clickRightFrontGrave();
		}
		if (mouseX > 160 & mouseX < 200 && mouseY > 430 && mouseY < 550) {
			clickLeftMidGrave();
		}
		if (mouseX > 390 & mouseX < 425 && mouseY > 450 && mouseY < 470) {
			clickLeftBackGrave();
		}
		if (mouseX > 1080 & mouseX < 1140 && mouseY > 420 && mouseY < 500) {
			clickRightMidGrave();
		}
		if (mouseX > 1420 & mouseX < 1450 && mouseY > 330 && mouseY < 410) {
			clickRightBackGrave();
		}
	}
}

function mouseReleased() {
if (mouseX > 690 & mouseX < 810 && mouseY > 330 && mouseY < 450) {
		finalSequence(); //launches the final sequence after mouseIsPressed is released for the center grave
	}
}

function draw_clouds(cl) {
	noStroke();
	fill(231, 250, 253);
	circle(cl.x, cl.y, cl.size);
	circle(cl.x - cl.size/4, cl.y, cl.size - (cl.size/5));
	circle(cl.x + cl.size/4, cl.y, cl.size - (cl.size/5));
	circle(cl.x - cl.size/2, cl.y, cl.size - (cl.size/4));
	circle(cl.x + cl.size/2, cl.y, cl.size - (cl.size/4));
}

function gates() {
	line(0, 250, 700, 250);
	line(800, 250, 1500, 250);
	for (var x = 0; x < 710; x += 10) {
		line(x, 250, x, 400);
	}
	for (var x = 800; x < 1510; x += 10) {
		line(x, 250, x, 400);
	}
}

function graves(x, y, hsize, vsize) {
	fill(165);
	beginShape();
	vertex(x, y);
	vertex(x, y);
	vertex(x, y - vsize +  vsize/6);
	curveVertex(x + hsize/8, y - vsize);
	curveVertex(x + 3*hsize/8, y - vsize);
	vertex(x + hsize/2, y - vsize + vsize/6);
	vertex(x + hsize/2, y);
	vertex(x + hsize/2, y);
	endShape();
}

function grassLeft(x, y, hsize, vsize) {
	fill(12, 182, 0);
	beginShape();
	curveVertex(x, y);
	curveVertex(x, y);
	curveVertex(x + hsize/4, y - vsize/2);
	if (grassLeftOn == true) {
		curveVertex(x, y - vsize);
	} else {
		curveVertex(x + hsize, y - vsize);
	}
	curveVertex(x + 3*hsize/4, y - vsize/2);
	curveVertex(x + hsize, y);
	curveVertex(x + hsize, y);
	endShape();
}

function grassRight(x, y, hsize, vsize) {
	fill(12, 182, 0);
	beginShape();
	curveVertex(x, y);
	curveVertex(x, y);
	curveVertex(x + hsize/4, y - vsize/2);
	if (grassRightOn == true) {
		curveVertex(x + hsize, y - vsize);
	} else {
		curveVertex(x, y - vsize);
	}
	curveVertex(x + 3*hsize/4, y - vsize/2);
	curveVertex(x + hsize, y);
	curveVertex(x + hsize, y);
	endShape();
}

function clickCenterGrave() { //text that appears on the screen if you click and hold the center grave
	fill(165);
	rect(0, 0, 1500, 700);
	textSize(100);
	textAlign(CENTER, CENTER);
	fill(0);
	text('Here Lies The Theater Industry', 750, 300);
	textSize(70);
	text('May She Be Reborn Into Something Better', 750, 400);
}

function clickLeftFrontGrave() {
	fill(165);
	rect(0, 0, 1500, 700);
	textSize(90);
	textAlign(CENTER, CENTER);
	fill(0);
	text('RIP Comm. Herschel Brawdweigh', 750, 300); //commercial broadway
	textSize(130);
	text('Father to Tony', 750, 440); //the tony's
}

function clickRightFrontGrave() {
	fill(165);
	rect(0, 0, 1500, 700);
	textSize(90);
	textAlign(CENTER, CENTER);
	fill(0);
	text('Miss Nadia Marika', 750, 300); //miss not america
	textSize(100);
	text('Outside Of US, There Is Nothing', 750, 440); //outside of us/the U.S.
}

function clickLeftMidGrave() {
	fill(165);
	rect(0, 0, 1500, 700);
	textSize(70);
	textAlign(CENTER, CENTER);
	fill(0);
	text('Together Forever: Dez Ein and Prof. Duckshun', 750, 300); //design and production
	textSize(130);
	text('They Were the Best of Us', 750, 440);
}

function clickLeftBackGrave() {
	fill(165);
	rect(0, 0, 1500, 700);
	textSize(90);
	textAlign(CENTER, CENTER);
	fill(0);
	text('Newt Hamster', 750, 300); //new amsterdam theater
	textSize(130);
	text('A Dam Beloved Pet', 750, 440);
}

function clickRightMidGrave() {
	fill(165);
	rect(0, 0, 1500, 700);
	textSize(90);
	textAlign(CENTER, CENTER);
	fill(0);
	text('To Brooks Atkinson', 750, 300); //brooks atkinson was a famous theater critic
	textSize(130);
	text('Critics Die Too', 750, 440);
}

function clickRightBackGrave() {
	fill(165);
	rect(0, 0, 1500, 700);
	textSize(90);
	textAlign(CENTER, CENTER);
	fill(0);
	text('Call Me By Your Name', 750, 300); //theater saying "call me film" because all we have is filmed productions heehee I'm hilarious
	textSize(130);
	text('Film Is All We Have Now', 750, 440);
}

function finalSequence() { //when the mouse is first released, all animated movement stops
	//when the mouse is clicked again and released, the center grave cracks
	//the tiktok logo, a picture of ratatouille appears, and a title appears
	//this is because the ratatouille musical is the only exciting thing happening in theater right now
	//if the user wants to view the other graves after this one, they have to restart the program
	//but if they keep clicking, the tiktok/ratatouille images will rotate!
	noLoop();
	strokeWeight(3);
	line(750, 330, 730, 350);
	line(730, 350, 770, 390);
	line(770, 390, 730, 430);
	line(730, 430, 770, 470);
	line(770, 470, 730, 520);
	line(730, 520, 770, 580);
	line(770, 580, 730, 640);
	line(730, 640, 770, 700);
	push();
	translate(325, 350);
	rotate(radians(angle));
	image(tiktok, -175, -200, 350, 400);
	pop();
	push();
	translate(1175, 350);
	rotate(radians(angle));
	image(rat, -175, -200, 350, 400);
	pop();
	angle += 5
	fill(255, 247, 0);
	textSize(40);
	textAlign(CENTER, CENTER);
	text('"Playbill Announces a Concert Presentation of Ratatouille: The Tiktok Musical"', 750, 30);
}
]]>
https://courses.ideate.cmu.edu/15-104/f2020/2020/12/13/final-project-10/feed/ 0
Project 11 https://courses.ideate.cmu.edu/15-104/f2020/2020/11/14/project-11-4/ https://courses.ideate.cmu.edu/15-104/f2020/2020/11/14/project-11-4/#respond Sun, 15 Nov 2020 04:53:20 +0000 https://courses.ideate.cmu.edu/15-104/f2020/?p=63544 Continue reading "Project 11"]]>
sketchDownload
var x = 0;
var backgroundValue = [];
var noiseParam = 0;
var noiseStep = 0.1;


function setup() {
    createCanvas(480, 400);
    frameRate(15);
    var ilength = (width/5) + 1
    for (i = 0; i < ilength; i++) {
    	var n = noise(noiseParam);
    	var value = map(n, 0, 1, 0, height);
    	backgroundValue.push(value);
    	noiseParam += noiseStep
    } 
}

function draw() {
	var size = random(50, 150);
	background(166, 238, 255);
	stroke(160, 160, 255);
	strokeWeight(10);
	backgroundValue.shift();
	var x2 = 0;
	var ilength = (width/5) + 1
	var n = noise(noiseParam);
    var value = map(n, 0, 1, 0, height);
    backgroundValue.push(value);
    noiseParam += noiseStep
    for (i = 0; i < ilength; i++) {
		beginShape();
		curveVertex(x2, backgroundValue[i]);
		curveVertex(x2, backgroundValue[i]);
		curveVertex(x2, height);
		curveVertex(x2 + 5, backgroundValue[i + 1]);
		curveVertex(x2 + 5, backgroundValue[i + 1]);
		endShape(CLOSE);
		x2 += 5
	}
	noStroke();
	fill(color(random(255), random(255), random(255)));
    coral(x, size);
    x += 1
    if (x > 480) {
        x = 0;
    }
}

function coral(x, size) {
    beginShape();
    curveVertex(x, 400);
    curveVertex(x, 400);
    curveVertex(x + 5, size*3);
    curveVertex(x - 20, size*2);
    curveVertex(x + 5, size*2 - 5);
    curveVertex(x - 10, size);
    curveVertex(x, size + 5);
    curveVertex(x + 10, size*2 - 20);
    curveVertex(x + 20, size*3);
    curveVertex(x + 20, size*4);
    curveVertex(x + 70, size);
    curveVertex(x + 80, size*2);
    curveVertex(x + 50, 400);
    curveVertex(x + 50, 400);
    endShape(CLOSE);
}

]]>
https://courses.ideate.cmu.edu/15-104/f2020/2020/11/14/project-11-4/feed/ 0
Looking Outwards 11 https://courses.ideate.cmu.edu/15-104/f2020/2020/11/14/looking-outwards-11-6/ https://courses.ideate.cmu.edu/15-104/f2020/2020/11/14/looking-outwards-11-6/#respond Sun, 15 Nov 2020 04:51:14 +0000 https://courses.ideate.cmu.edu/15-104/f2020/?p=63542 Continue reading "Looking Outwards 11"]]>

The artist I am focusing on today is Jessica Rosenkrantz from the Nervous System art studio. Her work takes scientific theory on pattern formation in nature to create algorithms for design. What I admire about her work is that I can recognize what these generative patterns remind me of in nature. For instance, her project Porifera (2018) resembles a sea sponge. And her project Growing Objects (2014) resembles a crystallized snowflake. I don’t if these were patterns she was drawing from, but having that reference for me grounds these highly computerized projects into a context I understand. Jessica graduated from MIT in 2005 with degrees in biology and architecture, then from Harvard’s Graduate School of Design (for architecture) in 2008.

https://n-e-r-v-o-u-s.com/about_us.php

]]>
https://courses.ideate.cmu.edu/15-104/f2020/2020/11/14/looking-outwards-11-6/feed/ 0
Project 10 – Sound Story https://courses.ideate.cmu.edu/15-104/f2020/2020/11/08/project-10-sound-story-2/ https://courses.ideate.cmu.edu/15-104/f2020/2020/11/08/project-10-sound-story-2/#respond Mon, 09 Nov 2020 02:23:02 +0000 https://courses.ideate.cmu.edu/15-104/f2020/?p=62846 Continue reading "Project 10 – Sound Story"]]>
sketchDownload
// Storyline: 4 fruits (an orange, a banana, a red apple, and a green apple)
    // are inside a fruitbowl together and the fruit keep disappearing!!
    // I'm still having trouble with setting up a local server
    // Right now these sounds are attached to the web server chrome method
    // But it doesn't seem to be working and I don't know why
var x; //x position of the fruits
var y; //y position of the fruits
var dx = 4 //starting speed the fruits fly away at for x
var dy = 4 //starting speed the fruits fly away at for y
var orangeScream;
var bananaScream;
var redAppleScream;
var greenAppleScream;

function preload() {
    orangeScream = loadSound ("http://127.0.0.1:8887/orangeScream.wav");
    bananaScream = loadSound ("http://127.0.0.1:8887/bananaScream.wav");
    redAppleScream = loadSound ("http://127.0.0.1:8887/redAppleScream.wav");
    greenAppleScream = loadSound ("http://127.0.0.1:8887/greenAppleScream.wav");
}


function setup() {
    createCanvas(500, 300);
    frameRate(1);
    useSound();
}


function soundSetup() { 
    orangeScream.setVolume(0.25);
    bananaScream.setVolume(0.25);
    redAppleScream.setVolume(0.25);
    greenAppleScream.setVolume(0.25);
}

function orange(x, y) {
    fill(255, 137, 0);
    noStroke();
    circle(x, y, 50);
}

function banana(x, y) {
    fill(255, 255, 0);
    noStroke();
    beginShape();
    curveVertex(x, y);
    curveVertex(x, y);
    curveVertex(x + 20, y + 45);
    curveVertex(x - 30, y + 80);
    curveVertex(x - 5, y + 45);
    curveVertex(x, y);
    curveVertex(x, y);
    endShape(CLOSE);
}

function apple(x, y) {
    noStroke();
    beginShape();
    curveVertex(x, y);
    curveVertex(x, y);
    curveVertex(x + 15, y - 10);
    curveVertex(x + 25, y);
    curveVertex(x + 20, y + 40);
    curveVertex(x, y + 30);
    curveVertex(x - 20, y + 40);
    curveVertex(x - 25, y);
    curveVertex(x - 15, y - 10);
    curveVertex(x, y);
    curveVertex(x, y);
    endShape(CLOSE);
}


function draw() {
    background(0, 0, 255);
    fill(205, 0, 255);
    noStroke();
    arc(250, 150, 300, 300, TWO_PI, PI, CHORD);
    //when a fruit disappears, it screams
    print(frameCount);
    if (frameCount <= 8) {
        orangeScream.play();
        orange(140 - dx, 140 - dy);
    } else if (frameCount <= 16) {
        bananaScream.play();
        banana(200 - dx, 90 - dy);
    } else if (frameCount <= 24) {
        redAppleScream.play();
        fill(255, 0, 0);
        apple(270 + dx, 120 - dy);
    } else {
        greenAppleScream.play();
        fill(0, 255, 0);
        apple(340 + dx, 120 - dy);
    }
    dx *= 2;
    dy *= 2;
}

]]>
https://courses.ideate.cmu.edu/15-104/f2020/2020/11/08/project-10-sound-story-2/feed/ 0
Looking Outwards 10 – Computational Music https://courses.ideate.cmu.edu/15-104/f2020/2020/11/08/looking-outwards-10-computational-music-2/ https://courses.ideate.cmu.edu/15-104/f2020/2020/11/08/looking-outwards-10-computational-music-2/#respond Mon, 09 Nov 2020 02:20:19 +0000 https://courses.ideate.cmu.edu/15-104/f2020/?p=62844 Continue reading "Looking Outwards 10 – Computational Music"]]>

The project I am looking at for this week is Charlie Puth’s Attention (it’s a song). Charlie Puth is not a classically trained musician, so a lot of his self-produced music is made through computational software. For instance, for the verse of Attention, he recorded his voice just humming out the melody on voice memos on his phone. After uploading it to Pro Tools, he could choose the instrument he wanted to play that melody, and then go into a graph editor and change how that melody sounded without ever needing to pick up an instrument. He also was able to change the quality of the sound to achieve a different emotional effect subconsciously. He added tape cracks into the background to give the impression of analog music. I admire this project because it widens the sphere of accessibility to make music. As a person who always picked up instruments without ever truly succeeding at them, this is very appealing to me.

http//www.avid.com/pro-tools#Music-Creation

]]>
https://courses.ideate.cmu.edu/15-104/f2020/2020/11/08/looking-outwards-10-computational-music-2/feed/ 0
Looking Outwards Individuals https://courses.ideate.cmu.edu/15-104/f2020/2020/10/25/looking-outwards-individuals/ https://courses.ideate.cmu.edu/15-104/f2020/2020/10/25/looking-outwards-individuals/#respond Mon, 26 Oct 2020 03:44:26 +0000 https://courses.ideate.cmu.edu/15-104/f2020/?p=61486 Continue reading "Looking Outwards Individuals"]]>

The artist I will be looking at is Alexander Chen. His artistic mission is to illustrate the correlations between visual art, music, and life. He creates visualizations of music he loves, and conversely, he turns visual images (like the subway map of NYC) into music. He is currently located in Massachusetts and working as a creative director at Google. I admire the subjectivity of his work, and his clear love for both mediums. I agree that visual and audial experiences go hand in hand, and it’s always amazing to me to see how other people interact with the same music differently from me. I particularly love his project turning the NYC subway into a string instrument because I’m from New York and it brings me close to home. Alexander is a capable speaker because he plays to his audience, he uses pauses and silence to pace his speech in a palatable way, and he is confident in and passionate about the work he’s speaking about.

https://www.chenalexander.com/Bio

]]>
https://courses.ideate.cmu.edu/15-104/f2020/2020/10/25/looking-outwards-individuals/feed/ 0
Looking Outwards 07 https://courses.ideate.cmu.edu/15-104/f2020/2020/10/18/looking-outwards-07-7/ https://courses.ideate.cmu.edu/15-104/f2020/2020/10/18/looking-outwards-07-7/#respond Mon, 19 Oct 2020 00:09:45 +0000 https://courses.ideate.cmu.edu/15-104/f2020/?p=61108 Continue reading "Looking Outwards 07"]]>

he project I will be discussing for this looking outwards is The Ross Spiral Curriculum from 2015. It was created by Santiago Ortiz and it is an interactive display of a K-12 curriculum. At the center of the spiral is cultural history, and different subjects expand outwards in complexity from that center point. I admire this project because it was created to serve teachers and administrators, so its design is easily readable. It also outlines the material by grade and by time, which allows for digesting the information in whichever manner is most useful. Because you can zoom in and out to view the design as a whole or individual parts and you can click on parts of the design to reach new pieces of information, I know that there is some interactive code involved. The curve of the spiral also makes me think that there is code similar to the code we used for our project this week involved.

Here is a link to the project:

https://spiral.ross.org/spiral/#/

https://spiral.ross.org/spiral/#/

]]>
https://courses.ideate.cmu.edu/15-104/f2020/2020/10/18/looking-outwards-07-7/feed/ 0
Project 07 Curves https://courses.ideate.cmu.edu/15-104/f2020/2020/10/18/project-07-curves-20/ https://courses.ideate.cmu.edu/15-104/f2020/2020/10/18/project-07-curves-20/#respond Mon, 19 Oct 2020 00:07:56 +0000 https://courses.ideate.cmu.edu/15-104/f2020/?p=61100 Continue reading "Project 07 Curves"]]>
curveDownload
function setup() {
    createCanvas(480, 480);
    background(220);
    text("p5.js vers 0.9.0 test.", 10, 15);
}

function drawAgnesiCurve() {
	var x; //x position of the curve
	var y; //y position of the curve
	var a = mouseX; //honestly not sure what a does
	stroke(max(mouseX, 255), max(mouseY, 255), 0);
	strokeWeight(4);
	beginShape();
	for (var i = 0; i < 65; i++) {
		var t = map(i, 0, 65, 0, TWO_PI);
		x = (2*a)*sin(t);
		y = a*(1-cos(2*t));
		vertex(x, y);
	}
	endShape();
}



function draw() {
	background(0, 0, min(mouseX, mouseY))
	for (var nLine = 0; nLine < 48; nLine++) {
		translate(width/2, 0);
		drawAgnesiCurve();
		translate(0, 10);
	}
}

]]>
https://courses.ideate.cmu.edu/15-104/f2020/2020/10/18/project-07-curves-20/feed/ 0
Project 06 – clock https://courses.ideate.cmu.edu/15-104/f2020/2020/10/10/project-06-clock/ https://courses.ideate.cmu.edu/15-104/f2020/2020/10/10/project-06-clock/#respond Sat, 10 Oct 2020 21:31:59 +0000 https://courses.ideate.cmu.edu/15-104/f2020/?p=59813 Continue reading "Project 06 – clock"]]>

Hi friends!! For those that don’t know me very well, I spend a lot of time talking about astrology. Instead of making a clock that tells the time per say, I made a clock that tells the current astrological sign in the ascendant, which changes every two hours. I know it’s not exactly the same goal as the project but look at my symbols for each sign! I spent so long making them!!

sketchDownload
//To quickly explain, I'm making a clock for astrological rising signs in the Libra season (right now)
//Rising signs change every 2 hours
var x;
var y;
var h;

function setup() {
    createCanvas(100, 650);
    background(255);
    text("p5.js vers 0.9.0 test.", 10, 15);
}

//symbols for eahc of the signs
function aries(x, y) {
	strokeWeight(3);
	beginShape();
	curveVertex(x, y);
	curveVertex(x, y);
	curveVertex(x + 10, y - 16);
	curveVertex(x + 25, y + 32);
	curveVertex(x + 40, y - 16);
	curveVertex(x + 50, y);
	curveVertex(x + 50, y);
	endShape();
}

function taurus(x, y) {
	strokeWeight(3);
	beginShape();
	curveVertex(x, y);
	curveVertex(x, y);
	curveVertex(x + 25, y + 16);
	curveVertex(x + 50, y);
	curveVertex(x + 50, y);
	endShape();
	noFill();
	circle(x + 25, y + 32, 32);
}

function gemini(x, y) {
	strokeWeight(3);
	line(x, y, x + 50, y);
	line(x + 15, y, x + 15, y + 40);
	line(x + 35, y, x + 35, y + 40);
	line(x, y + 40, x + 50, y + 40);
}

function cancer(x, y) {
	strokeWeight(3);
	beginShape();
	curveVertex(x, y);
	curveVertex(x, y);
	curveVertex(x + 25, y - 5);
	curveVertex(x + 50, y);
	curveVertex(x + 50, y);
	endShape();
	beginShape();
	curveVertex(x, y + 35);
	curveVertex(x, y + 35);
	curveVertex(x + 25, y + 40);
	curveVertex(x + 50, y + 35);
	curveVertex(x + 50, y + 35);
	endShape();
	circle(x + 10, y + 7, 20);
	circle(x + 40, y + 28, 20);
}

function leo(x, y) {
	strokeWeight(3);
	beginShape();
	curveVertex(x, y);
	curveVertex(x, y);
	curveVertex(x - 10, y - 20);
	curveVertex(x + 10, y - 24);
	curveVertex(x + 20, y - 20);
	curveVertex(x + 10, y + 20);
	curveVertex(x + 20, y + 18);
	curveVertex(x + 20, y + 18);
	endShape();
	circle(x - 10, y, 20);
}

function virgo(x, y){
	strokeWeight(3);
	line(x, y, x, y + 40);
	beginShape();
	curveVertex(x, y + 5);
	curveVertex(x, y + 5);
	curveVertex(x + 10, y);
	curveVertex(x + 10, y + 40);
	curveVertex(x + 10, y + 40);
	endShape();
	beginShape();
	curveVertex(x + 10, y + 5);
	curveVertex(x + 10, y + 5);
	curveVertex(x + 20, y);
	curveVertex(x + 20, y + 40);
	curveVertex(x + 25, y + 45);
	curveVertex(x + 25, y + 45);
	endShape();
	beginShape();
	curveVertex(x + 20, y + 15);
	curveVertex(x + 20, y + 15);
	curveVertex(x + 35, y + 10);
	curveVertex(x + 15, y + 45);
	curveVertex(x + 15, y + 45);
	endShape();
}

function libra(x, y) {
	strokeWeight(3);
	line(x, y, x + 50, y);
	beginShape();
	curveVertex(x, y - 10);
	curveVertex(x, y - 10);
	curveVertex(x + 15, y - 10);
	curveVertex(x + 10, y - 30);
	curveVertex(x + 25, y - 40);
	curveVertex(x + 40, y - 30);
	curveVertex(x + 35, y - 10);
	curveVertex(x + 50, y - 10);
	curveVertex(x + 50, y - 10);
	endShape();
}

function scorpio(x, y) {
	strokeWeight(3);
	line(x, y, x, y + 40);
	beginShape();
	curveVertex(x, y + 5);
	curveVertex(x, y + 5);
	curveVertex(x + 10, y);
	curveVertex(x + 10, y + 40);
	curveVertex(x + 10, y + 40);
	endShape();
	beginShape();
	curveVertex(x + 10, y + 5);
	curveVertex(x + 10, y + 5);
	curveVertex(x + 20, y);
	curveVertex(x + 20, y + 40);
	curveVertex(x + 25, y + 45);
	curveVertex(x + 30, y + 40);
	curveVertex(x + 30, y + 40);
	endShape();
	triangle(x + 28, y + 38, x + 32, y + 42, x + 31, y + 36);
}

function sag(x, y) {
	strokeWeight(3);
	line(x, y, x + 30, y - 40);
	line(x + 5, y - 30, x + 30, y - 10);
	line(x + 15, y - 40, x + 30, y - 40);
	line(x + 30, y - 40, x + 40, y - 25);
}

function cap(x, y) {
	strokeWeight(3);
	beginShape();
	curveVertex(x, y);
	curveVertex(x, y);
	curveVertex(x + 5, y + 20);
	curveVertex(x + 10, y);
	curveVertex(x + 15, y - 5);
	curveVertex(x + 20, y);
	curveVertex(x + 20, y + 35);
	curveVertex(x + 15, y + 40);
	curveVertex(x + 15, y + 40);
	endShape();
	circle(x + 30, y + 30, 20);
}

function aqua(x, y) {
	strokeWeight(3);
	line(x, y, x + 10, y - 5);
	line(x + 10, y - 5, x + 15, y);
	line(x + 15, y, x + 25, y - 5);
	line(x + 25, y - 5, x + 30, y);
	line(x + 30, y, x + 40, y - 5);
	line(x + 40, y - 5, x + 45, y);
	line(x, y + 20, x + 10, y + 15);
	line(x + 10, y + 15, x + 15, y + 20);
	line(x + 15, y + 20, x + 25, y + 15);
	line(x + 25, y + 15, x + 30, y + 20);
	line(x + 30, y + 20, x + 40, y + 15);
	line(x + 40, y + 15, x + 45, y + 20);
}

function pisces(x, y) {
	strokeWeight(3);
	line(x, y, x + 50, y);
	beginShape();
	curveVertex(x, y - 20);
	curveVertex(x, y - 20);
	curveVertex(x + 15, y);
	curveVertex(x, y + 20);
	curveVertex(x, y + 20);
	endShape();
	beginShape();
	curveVertex(x + 50, y - 20);
	curveVertex(x + 50, y - 20);
	curveVertex(x + 35, y);
	curveVertex(x + 50, y + 20);
	curveVertex(x + 50, y + 20);
	endShape();
}

function draw() {
	//aries(25, 18);
	//taurus(25, 50);
	//gemini(25, 105);
	//cancer(25, 160);
	//leo(50, 235);
	//virgo(33, 260);
	//libra(25, 350);
	//scorpio(35, 360);
	//sag(33, 460);
	//cap(35, 470);
	//aqua(27, 530);
	//pisces(25, 580);
	//when we are in the range of this ascendant, the color of the symbol and the background reflects the element of that sign
	h = hour();
	if (h >= 0 & h < 2) {
		background(255, 54, 54);
		stroke(175, 0, 0); //fire is red
		leo(50, 235);
	} else if (h >= 2 & h < 4) {
		background(54, 255, 54);
		stroke(0, 175, 0); //earth is green
		virgo(33, 260);
	} else if (h >= 4 & h < 6) {
		background(150, 255, 255);
		stroke(0, 222, 222); //air is crystal blue
		libra(25, 350);
	} else if (h >= 6 & h < 8) {
		background(107, 107, 255);
		stroke(0, 0, 212); //water is royal blue
		scorpio(35, 360);
	} else if (h >= 8 & h < 10) {
		background(255, 54, 54);
		stroke(175, 0, 0);
		sag(33, 460);
	} else if (h >= 10 & h < 12) {
		background(54, 255, 54);
		stroke(0, 175, 0);
		cap(35, 470);
	} else if (h >= 12 & h < 14) {
		background(150, 255, 255);
		stroke(0, 222, 222);
		aqua(27, 530);
	} else if (h >= 14 & h < 16) {
		background(107, 107, 255);
		stroke(0, 0, 212);
		pisces(25, 580);
	} else if (h >= 16 & h < 18) {
		background(255, 54, 54);
		stroke(175, 0, 0);
		aries(25, 18);
	} else if (h >= 18 & h < 20) {
		background(54, 255, 54);
		stroke(0, 175, 0);
		taurus(25, 50);
	} else if (h >= 20 & h < 22) {
		background(150, 255, 255);
		stroke(0, 222, 222);
		gemini(25, 105);
	} else {
		background(107, 107, 255);
		stroke(0, 0, 212);
		cancer(25, 160);
	}
}
]]>
https://courses.ideate.cmu.edu/15-104/f2020/2020/10/10/project-06-clock/feed/ 0
LO Randomness https://courses.ideate.cmu.edu/15-104/f2020/2020/10/10/lo-randomness-2/ https://courses.ideate.cmu.edu/15-104/f2020/2020/10/10/lo-randomness-2/#respond Sat, 10 Oct 2020 21:26:18 +0000 https://courses.ideate.cmu.edu/15-104/f2020/?p=59811 Continue reading "LO Randomness"]]>

The randomness artist I will be talking about is Merce Cunningham. Merce Cunningham was a 20th century choreographer who devised his pieces through chance alone. Some of his techniques included prescibing numbers on a die to certain dance moves and created sequences by rolling the die an amount of times. He also often would teach his dances without any music, to allow that to be a random variable separate from the performers’ abilities to do the dance. The dancers would only hear the music for the first time on the day of the performance. Merce Cunningham was wild, I loved how his work centered making dance accessible for all. I see his techniques of chance and randomness as avenues for anyone to choreograph, which I admire greatly. As you can see in the piece that I am linking, “Beach Birds for Camera,” from 1993, the way he devised his pieces allowed for asynchronous and repeated movement from the performers, contributing to his unusual but distinctive style.

]]>
https://courses.ideate.cmu.edu/15-104/f2020/2020/10/10/lo-randomness-2/feed/ 0