## Jessica Timczyk – Project 07 – Curves

``````// Jessica Timczyk
// Section D
// jtimczyk@andrew.cmu.edu
// Project-07-Curves

// Global Variables
var z;
var colorR;
var colorG;
var colorB;

function setup() {
createCanvas(480, 480);
z = -width / 4;
}

function draw() {
background(255, 215, 250);
translate(width / 2, height / 2, z);
rotate(map(mouseX, 0, width, 0, TWO_PI)); // allow curve to rotate
colorR = map(mouseY, 0, height, 0, 100); // variables for color transition
colorG = map(mouseY, 0, height, 70, 100);
colorB = map(mouseY, 0, height, 100, 220);
drawLoxodrome(0.4, map(mouseX, 0, 400, 0, 480)); // draw curves and change size as mouse moves
}

function drawLoxodrome(b, scal) { // equations for drawing the curves of the loxodrome
for (var a = 0.4; a < 4; a += 0.2) {
noStroke();
fill(colorR, colorG, colorB); // fill of the curves change
beginShape(QUAD_STRIP); // establish the begining of the curve shape
var w = 0.1 / sqrt(a + 1);
for (var t = -20; t < 20; t += 0.1) {
var q = 4 + a * a * exp(2 * b * t);
vertex(scal * 4 * a * exp( b * t) * cos(t) / q, scal * 4 * a * exp( b * t) * sin(t) / q);
var c = a + w;
q = 4 + c * c * exp(2 * b * t);
vertex(scal * 4 * c * exp(b * t) * cos(t) / q, scal * 4 * c * exp(b * t) * sin(t) / q);
}
endShape();
}
}``````

I really enjoyed doing this project, it allowed me to experiment with a bunch of different curves and shapes. Although it took a while to decide what shape to do and as well figure out the different equations and what each one does, the ending results are very interesting and intricate curves. I liked being able to manipulate and explore what each of the different parameters control. After messing with the different variables and trying to change different ones with the movements of the mouse, I  decided on having the mouse movement control the scale of the shape rather than one of the other parameters so that it would keep the main structure of the curve intact as it moved. Overall, I really enjoyed this project because it allowed me to explore more things and aspects of the code than other previous projects have allowed us.

## Jessica Timczyk – Looking Outwards 07

Created by Amanda Cox in 2011, this graph shows how different groups spend their day, broken down by different activities. Within the graph, you can select different groups and demographics to see the differences in how different groups of people spend their day. I find this data extremely interesting because it allows us to see how the activities change based on the group that you are looking at. It provides us a way to compare these different demographic groups that I have never thought of before. Although I am not sure how the artist accomplished this work algorithmically, I suppose that they gathered the data by asking a random selection of people from these different groups how they spend their day over a certain period of time. The creator’s artistic sensibilities are reflected in the final work through her choice of colors and the form in which the graph was displayed, for changing the type of graph used to display the data could easily change how it is perceived.

## Jessica Timczyk – Project 06 – Abstract Clock

``````// Jessica Timczyk
// Section D
// jtimczyk@andrew.cmu.edu
// Project-06-Abstract Clock

// Global Variables
var chipX = 0; // x position of choco chip
var chipY = 0; // y positiom of choco chip
var chunkX = 0; // x position of choco chunk
var chunkY = 0; // y position of choco chunk

//--------------------------
function setup() {
createCanvas(300, 300);
//millisRolloverTime = 0;

frameRate(1); // the chips change position every second so you can tell when a second goes by
}

//--------------------------
function draw() {
background(183, 225, 255);

strokeWeight(3);
fill(206, 149, 75);
ellipse(width / 2, height / 2, 250, 250);

fill(183, 225, 255);
noStroke();
ellipse(width / 2 - 120, height / 2, 30, 35);
ellipse(width / 2 - 115, height / 2 - 17, 30, 27);
ellipse(width / 2 - 120, height / 2 - 30, 30, 35);

// Crumbs at bite
stroke(60, 46, 16);
fill(206, 149, 75);
ellipse(width / 2 - 135, height / 2 - 15, 12, 12);
ellipse(width / 2 - 117, height / 2 - 5, 6, 6);
ellipse(width / 2 - 120, height / 2 - 30, 9, 9);
ellipse(width / 2 - 136, height / 2 + 35, 15, 15);
ellipse(width / 2 - 125, height / 2 + 50, 6, 6);
ellipse(width / 2 - 138, height / 2 + 65, 5, 5);
ellipse(width / 2 - 140, height / 2 + 5, 7, 7);
ellipse(width / 2 - 115, height / 2 - 65, 6, 6);
ellipse(width / 2 - 128, height / 2 - 60, 9, 9);

// top right corner crumbs
ellipse(245, 26, 7, 7);
ellipse(265, 37, 17, 17);
ellipse(255, 55, 10, 10);

// Fetch the current time
var H = hour();
var M = minute();
var S = second();

// number time text
fill(255);
text("   "   + H + "  : ", 5, 22);
text("   " + M + "  : ", 35, 22);
text("   " + S, 65, 22);

// chocolate chips for the number of minutes
for (var i = 0; i < M; i ++) {
noStroke();
var chipX = random(65, 240);
var chipY = random(65, 240);
fill(87, 64, 16);
ellipse(chipX, chipY, 10, 10);
}

// chocolate chunks for the number of hours
for (var j = 0; j < H; j ++) {
fill(52, 39, 11);
stroke(33, 25, 8);
var chunkX = random(70, 220);
var chunkY = random(70, 220);
rect(chunkX, chunkY, 11, 22);
}
stroke(0);
}``````

I really enjoyed this project, it was fun to try to think of a way to convey time unconventionally. I finally came up with making a “cookie clock” after thinking about what I wanted to do and I am happy with how the clock turned out, looking very cartoonish and almost comical. It took me a bit to figure out how I wanted to represent each variable, hours, minutes and seconds and I eventually decided to, rather than physically represent seconds, have the seconds be represented by the pace of the movement of the chocolate chips and chunks. I tried briefly to make the cookie 3D but it ended up being too complicated for this project, but I would like to learn how to do that in the future.

## Jessica Timczyk – Looking Outwards 6

Created 2013 by Martin Krzywinki, the art work above, called the Faces of Randomness is a digital work created by drawing lines between the digit transitions of sixteen different random 1,000 digit numbers. I find this work very interesting because though all the numbers are different and random, the resulting circles look oddly similar even though they are all in fact unique. I suppose that the artist used an algorithm to generate sixteen random 1,000 digit numbers because it would be infeasible to obtain them from the real world. The artist’s sensibilities can be seen in the placement and colors chosen to make up the work, making it pleasing to the eye to look at.

## Jessica Timczyk – Project 05 – Wall Paper

``````// Jessica Timczyk
// Section D
// jtimczyk@andrew.cmu.edu
// Project-05-Wall Paper

var SIZE = 10;

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

function draw() {
background(185, 248, 252); // light blue between cirlces
drawGrid();
noLoop();
}

function drawGrid() {

// small squares covering background
for (var y = SIZE / 2; y < height + SIZE / 2; y += SIZE) {
for (var x = SIZE / 2; x < width +SIZE / 2; x += SIZE) {
ellipse(x, y, SIZE, SIZE);
}
}
// diagonal stripes
for ( var i = 0; i <= 150; i ++) {
x1 = i * 70;
y1 = i * 70;
strokeWeight(20);
stroke(255, 235, 14)
line(width + 300, x1 + 100, 0, y1 - 600);
}
// loop to repeatedly draw squiggle shape
for (var x = 20; x <= width + 60; x += 50) {
for ( var y = 0; y <= height + 80; y += 60) {
fill(0);
stroke(255);
strokeWeight(3);
beginShape(); // squiggle shape
vertex(x - 25, y - 5);
bezierVertex(x - 50, y , x - 45, y + 65, x + 5, y + 25);
bezierVertex(x - 10, y + 40, x - 30, y + 115, x - 25, y - 5);
endShape();
}
}
}

``````

This wall paper did not turn out how I originally intended it to. I had imagined making a sort of night sky mural but along the way I had gotten distracted by drawing many circles as apposed to a few to make stars. Spiraling off of that I eventually morphed what was a moon shape into the weird squiggly shape and built off of it from there. Although it didn’t turn out how I had originally intended, I very much like how the pattern turned out and I find it very  visually interesting and now reminds me slightly of candy stripes

.

## Jessica Timczyk – Looking Outwards 05

Pedro Conti is a Brazilian 3D computer graphics artist, with one of his recent and most interesting project being a 3D graphics artist on Disney’s Moana movie in 2016. He utilized 3D computer graphics to create many backgrounds, landscapes and characters in the movie. Specifically looking at the Kakamora barges he helped to create in one of the scenes of the movie, the project is so impressive due to the shear number of objects that cover the structure and how many shots (140) were needed for the sequence.

The artist utilized the program XGen, which is a geometry instancer, to populate the boat with all of the objects on it. While the artist had to follow the artistic direction of the movie, the artist’s vision is manifested in how and where different items are  placed on the boat.

## Jessica Timczyk – Project 4 String Art

``````// Jessica Timczyk
// Section D
// jtimczyk@andrew.cmu.edu
// Project-04-string art
function setup() {
createCanvas(400, 300);
}

function draw() {
background(126, 25, 25);
// variable set up
var x1 = 0;
var x2 = 0;
var x3 = 0;
var x4 = 0;
var y1 = 0;
var y2 = 0;
var y3 = 0;
var y4 = 0;

// create a loop to draw many lines
for( var i = 0; i <= 150; i ++) {
// set new values for all the variables
x1 += i;
y1 += i;
x2 += 2 * i;
y2 += 2;
x3 += 20;
y3 -= i * 1/3;
x4 = 2 * i;
y4 = 2 * i;
// orange lines
stroke(246, 150, 14);
strokeWeight(3 / 4);
line(x1, y1, width, 70);
// white lines
stroke(255);
strokeWeight(1/2);
line(mouseX, y2, x2, height);
// light brown lines
stroke(142, 91, 53);
strokeWeight(2);
line(-mouseX + x3, y3, 400, 300);
// dark brown lines
stroke(49, 25, 7);
strokeWeight(0.5);
line(x4, y4, 210 - mouseX, 120);
// grey lines
stroke(68, 68, 68);
strokeWeight(3/4);
line(0, y2, x2, height);

}
}
``````

I really enjoyed this project because it allowed me to experiment with different parameters to see what would happen. As a result, my string art came about almost accidentally as I manipulated the parameters to see what they would do.

## Jessica Timczyk – Looking Outwards 04

Chunity is a programming environment developed by a PhD student and associate professor at Stanford’s Center for Computer Research in Music and Acoustics, Jack Atherton and Ge Wang in 2018. The program uses the programming language ChucK and the real time graphics engine in Unity. I find this project extremely interesting because the tools are driven by audio as the most important component with visual graphics coming second, following the audio. This is contrary to how I would think most programs and tools run, with visual graphics as the main component and audio being secondary. In the algorithms generated using this program, physical changes in the graphics of the program are accompanied by audio, integrated with real time components. When a final project is created using this programming environment, the coder is able to artistically express their vision through how  the audio is integrated with the visual graphics.

## Jessica Timczyk – Project 03 Dynamic Drawing

``````// Jessica Timczyk
// Section D
// jtimczyk@andrew.cmu.edu
// Project-03-Dynamic Drawing

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

function draw() {
background(7, 9, 76);

var mX = max(min(mouseX, 640), 0); // keeps mouseX between 0 - 640

var size = mX * 3 / 640

var colorR = max(min(mouseX, 244), 90);
var colorG = max(min(mouseX, 70), 1);
var colorB = max(min(mouseX, 100), 60);

mX = 640 - mX;

// shooting star
fill(248, 246, 100);
stroke(255);
strokeWeight(4);
quad(290 + 15/2, mX - 120, 290 + 8, mX - 123, 330, mX - 150, 340, mX - 135); // star tail
quad(290, mX - 100, 305, mX - 120, 290, mX - 140, 275, mX - 120); // star shape

mX = max(min(mouseX, 640), 0);

// spaceship shape setup
noFill(); // glass dome
stroke(255);
ellipse(mouseX, height * 2/3 - 30, 85, 120);

// alien colors
fill(9, 172, 20);
stroke(9, 172, 20);
rect(mouseX - 2.5, height * 2/3 - 60, 5, 7); // neck

stroke(18, 111, 25);
triangle(mouseX, height * 2/3 - 10, mouseX - 15, height * 2/3 - 50, mouseX + 15, height * 2/3 - 50); // torso

triangle(mouseX - 3/2, height * 2/3 - 74, mouseX, height * 2/3 - 80, mouseX + 3/2, height * 2/3 - 74); // antena

ellipse(mouseX, height * 2/3 - 65, 22, 15); // head

fill(0);
stroke(255);
strokeWeight(3);
ellipse(mouseX - 5, height * 2/3 - 65, 7, 6); // left eye ball

ellipse(mouseX + 5, height * 2/3 - 65, 7, 6); // right eye ball

fill(142, 142, 144); // spaceship body
stroke(0);
strokeWeight(3);
ellipse(mouseX, height * 2/3, 200, 75);

// seam on space ship
strokeCap(ROUND);
stroke(0);
fill(0);
rectMode(CENTER);
rect(mouseX, height * 2/3, 160, 1);

// Planet 1
fill(219, 34, 47);
noStroke();
ellipse(125, 125, 100  * size, 100 * size);

size = 3 - size; // reverse size for second planet

// Planet 2
fill(255, 187, 3);
ellipse(450, 200, 80 * size, 80 * size); // planet
fill(colorR, colorG, colorB); // color of ring changes with mouse
ellipse(450, 200, 130 * size, 10 * size); // ring

// stars
var starX = mouseX;

fill(249, 215, 81);
noStroke();
push(); // star 1
translate(100, 400);
rotate(starX / width * mX); // star rotates around itself as mouse moves
rectMode(CENTER);
rect(0, 0, 7, 12);
pop();

push(); // star 2
translate(20, 300);
rotate(starX / width * mX);
rectMode(CENTER);
rect(0, 0, 10, 15);
pop();

push(); // star 3
translate(260, 30);
rotate(starX / width * mX);
rectMode(CENTER);
rect(0, 0, 20, 15);
pop();

push(); // star 4
translate(500, 70);
rotate(starX / width * mX);
rectMode(CENTER);
rect(0, 0, 5, 7);
pop();

push(); // star 5
translate(600, 430);
rotate(starX / width * mX);
rectMode(CENTER);
rect(0, 0, 40, 40);
pop();

push(); // star 6
translate(210, 200);
rotate(starX / width * mX);
rectMode(CENTER);
rect(0, 0, 15, 20);
pop();

push(); // star 7
translate(450, 400);
rotate(starX / width * mX);
rectMode(CENTER);
rect(0, 0, 10, 15);
pop();
}
``````

When writing this code I found it easy to come up with ideas of how and what I wanted to move but writing the code to implement such ideas was more difficult, and I thus had to simplify my ideas in certain areas. I am happy with how the drawing came out, looking very cartoonish how all of the variables move in conjunction to each other.

## Jessica Timczyk – Looking Outwards 03

A project of the MIT Media Lab, MIT Glass Lab and Mediated Matter Group,  including researchers: John Klein, Michael Stern, Markus Kayser, Chikara Inamura, Giorgia Franchin, Shreya Dave, James Weaver, Peter Houk and Prof. Neri Oxman,  the G3DP project was created in 2014 to 3D print translucent glass into different shapes and sculptures. This project is excessively interesting because it takes an ancient art, like glass blowing, and translates it into modern technology. Many ancient arts like this have been kept to traditional methods of creation, so glass making and blowing’s introduction to 3D printing marks a milestone in the digital art world. Although the algorithm used to create these glass sculptures can only be inferred, it would make sense for an algorithm to be made to digitally construct the design and execution of each layer for each of the glass sculptures, before being sent to the 3D printer. While glass is usually seen in the form of vases, bowls, cups and etc, this project allows the creator to manifest their artistic style in the form and pattern in which the translucent glass sculptures are created, resulting in many varying and interesting shapes and forms.

The video above shows an in depth look into how the sculptures are printed and the algorithms behind them.