“When Robots Write Songs” is a particularly interesting article, and the thing that stuck out to me while reading it was the computational sound experiment performed by David Cope. David Cope, a computer scientist AND composer, has looked at the role that computer science can play in composing music and has tried to combine the two disciplines by using a program to spew out music in the style of different genres that it seeks to emulate. This program is called “EMMY” which is named after the acronym of his work “Experiments in Musical Intelligence”. EMMY analyzes the patterns in the songs that it is fed, and creates new work in the style of the music it analyzed, often creating musical masterpieces that sound much like the original artists.

I find this work/experiment particularly inspiring, in the sense of how scary it could prove to be. It also begs a lot of questions about the nature of music and musical expression, such as how can music be made to provoke emotion in some individuals? When music is made by flesh and blood and provokes emotion in those who listen, what does it mean when a computer algorithm creates music that is better and also provokes emotion? I don’t think that human musicians will ever be replaced by robots, but the idea itself is slightly unsettling. The alternative view to this would be that it is a celebration of human accomplishment, that we have finally found a way for the automated to express the seemingly unautomated (music). Music is something that requires time and dedication and is not usually considered alongside programming and computer science, however, this project attempts to bridge the gap between music and other seemingly unrelated disciplines.



//Ean Grady
//section B

function setup() {
    createCanvas(640, 480);
    background(400-mouseX, 200-mouseY, 300);

function mouseMoved(){

    var R = (200-mouseX)/2;
    var G = (600-mouseY)/2;
    var B = 200;
    var Rx = (400+mouseX)/2;
    var Gx = (40+mouseY);
    var Bx = 100
    var Rz = (300+mouseX)/2; 
    var Gz = (80+mouseY);
    var Bz = 50

//the squares on each corner of the canvas
    fill(Rx, Gx, Bx);
    rect (0, 0, 64, 48)
    rect (576, 432, 64, 48)
    rect (0, 432, 64, 48)
    rect (576, 0, 64, 48)

// the longer rectangles on the side
    fill (Rz, Gz, Bz);
    rect (64, 0, 512, 48)
    rect (64, 432, 512, 48)
    rect (0, 48, 64, 384)
    rect (576, 48, 64, 384)

//code for the ellipse used to draw
    fill(R, G, B);
    ellipse (mouseX, mouseY, 120, 80);

    if (sizex>120){

For this project, I wanted to create a canvas for which you could draw something using different shapes. It ended up being a little too ambitious for my programming skills, so I instead created a canvas for which you could use an ellipse to just play around with, where it changes colors as you move it around. I had the most difficult time this week trying to come up with the right code to fit what I wanted, I had to go onto the p5.js reference page a lot, but it definitely helped to familiarize myself with the program.


FreeSwim Prosthesis

The “FreeSwim” Prosthesis is a project by Stuart Baynes, an Industrial Design student at Victoria University in New Zealand. The idea behind the project is to utilize computational fabrication and 3-D printing technologies to help alleviate many of the difficulties amputees face in their day-to-day lives, which in this case would be swimming. The FreeSwim Prosthesis is specifically made to aim ‘trans-tibial’ amputees swim, it is a fin-like prosthetic that is attached to the leg, which in turn helps amputees propel themselves in the water and stay afloat, it also similarly helps them get in and out of the pool/water by themselves.

I find this project particularly interesting because it shows the full range of what computational fabrication, specifically 3-D printing, in this case, is capable of. There are so many possibilities out there to explore within the realm of computational fabrication, from architecture and designing furniture all the way to helping the physically disadvantaged.


This work of generative art by Marcin Ignac is a virtual city, that features intersecting systems such as traffic jams, water streams, nature enclaves, emergency states and energy sources interacting with each other to form complex patterns. A city is one giant and complex organism, with an abundance of unique patterns forming as a result. The generation of a city is much like the process for which generative art is developed, with the final piece being a rendering based upon the random values of different variables that all add to the final work. In the author’s “about” page he states that he finds inspiration in “structures of biological organisms” and in “patterns emerging from data and complexity of computer algorithms.” His inspiration makes perfect sense in reference to ‘City Icon’, as it represents a biological organism with emerging patterns formed with complex computer algorithms.

I think that this project is particularly interesting because it shows that programming (and generative art) also has the function of creating entire complex systems that very nearly simulate organic life. This project has inspired me to think of programming as a tool for which I can turn my ideas into reality. As for how this work was made, I think it has to do with assigning random variables for different events to happen, like if there is a traffic jam or natural disaster, there is a variable that determines when and where it occurs.

Creator Name: Marcin Ignac
Title of Work: City Icon
Year of Creation: 2012



//Ean Grady
//Section B

var mouth = 25;
var nose = 250;
var eyes = 25;
var eyes2 = 25;
var faceHeight = 150;
var faceWidth = 400;
var x = 0
var y = 0
var z = 0
var x2 = 0
var y2 = 0
var z2 = 0

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

function draw() {
    background (120, 200, 400);

    fill (x, y, z)
    triangle(250, 190, 225, 190, 220, 120)
    triangle(250, 192, 275, 190, 260, 100)
    triangle(275, 190, 300, 190, 300, 120)

    fill (255, 255, 255)
    stroke (0, 0, 0)
    ellipse (300, 225, faceWidth, faceHeight)

    fill (255, 255, 255)
    stroke (0, 0, 0)
    ellipse (170, 220, eyes*4, eyes*2)
    ellipse (420, 220, eyes*4, eyes*2)
    fill (x2, y, z)
    ellipse (170, 220, eyes2, eyes)
    ellipse (420, 220, eyes2, eyes)

    line (nose, 180, 330, 240)
    line (nose, 220, 330, 240)

    fill (0, 0, 0)
    ellipse (300, 260, 50, mouth)

function mousePressed() {
    faceWidth = random(350, 450);
    faceHeight = random(100, 200);
    eyes = random(20, 30);
    nose = random(240, 260);
    mouth = random(10, 40);
    eyes2 = random(20, 70);
    x = random (0, 255);
    y = random (0, 255);
    z = random (0, 255);

I found that with this project I had a much easier time setting everything up, and I feel as though I’m finally starting to get the hang of things. I still had a hard time attempting to make the face look more visually pleasing/aesthetic, but I am not mad with the results. Hopefully in future projects I will be able to produce a piece that is both functional (i.e. fulfills the requirements) and visually pleasing.

The design for the face came from a drawing I used to do a lot as a kid whenever I had a sketchbook. It’s pretty simplistic, but I thought that it could fit the goals of the project.

egrady – Looking Outwards 1

Virtual Reality has caused quite the stir recently in video games, creating a more interactive experience by literally placing the user in the game world. While I may not be referring to a specific design of virtual reality, I am referring to the usherance of this new and innovative form of game design as a collective idea, which I find not only highly intriguing, but also highly inspiring. And while the concept itself may be in it’s early stages of development, the entire idea of virtual reality is inherently promising.

Many established developers are attempted to incorporate VR into their games, such as how Bethesda Softworks is creating a VR adaptation for “Fallout 4”. This is interesting, because Bethesda in this case is inspsired by how immersive Fallout 4 is already, in terms of the game. It puts the players in the shoes of the character, who gets to explore an unfamiliar world. But with the addition of VR, the ‘immersiveness’ is taken to a whole new level.

The usherance of this new form of entertainment creates, with it, a new process in creative development, with a more ingrained focus on world building and immersiveness. I think that the emminence of virtual reality proves that the majority of gamers who desire to play, do so with a similarly equal desire for a sense of escapism, of which virtual reality can most definitely provide. We go from thinking of video games as a simply action based quick button five minutes of fun, to a more cinematic experience, where the user is quite literally put into the shoes of the protagonist, while hoping to experience an event as close to real life as possible, without it being real life, of course. I find it highly inspiring, because it opens up new possibilities for what gaming can achieve. It also additionally opens up a new world of possibilites for creating a universe for which virtual can be employed. The focus is now placed on art, where through art, hopefully entertainment can be achieved.

egrady – project1 – face


function setup() {
    createCanvas(500, 500);
    background(120, 200, 400);
    text("p5.js vers 0.5.12 test.", 10, 15);
    noStroke ();

    fill (0, 0, 0)
    rect (0, 0, 500, 100)
    rect (0, 200, 500, 100)
    rect (0, 400, 500, 100)

    fill (100, 10, 100)
    triangle (100, 500, 250, 250, 400, 500)   

    fill (255, 228, 196)
    rect(200, 100, 100, 250);

    fill (255, 255, 255)
    ellipse (200, 200, 50, 50);
    ellipse (300, 200, 50, 50);
    fill (0, 0, 0);
    ellipse (300, 200, 25, 25);
    ellipse (200, 200, 25, 25);

    fill (250, 128, 114)
    rect (175, 270, 150, 60)
    fill (0, 0, 0)
    rect (180, 275, 140, 50);
    fill (255, 255, 255)
    rect (180, 275, 22, 22)
    rect (210, 275, 22, 22)
    rect (240, 275, 22, 22)
    rect (270, 275, 22, 22)
    rect (298, 275, 22, 22)
    rect (180, 303, 22, 22)
    rect (210, 303, 22, 22)
    rect (240, 303, 22, 22)
    rect (270, 303, 22, 22)
    rect (298, 303, 22, 22)

    fill (139, 69, 19)
    rect (195, 75, 20, 50)
    rect (225, 75, 20, 50)
    rect (255, 75, 20, 50)
    rect (285, 75, 20, 50)

    fill (222, 184, 135)
    triangle (220, 250, 240, 210, 340, 260);

    fill (80, 50, 50)
    rect (175, 145, 50, 25)
    rect (275, 145, 50, 25)


function draw() {

Although it may not look like it, considering the fairly simplistic result, I actually had a difficult time working on this project. My programming experience is extremely minimal, and my grasp of mathematics is limited at best. However, I did enjoy the whole process involved in the creation of this piece. I attempted to use some of the more difficult elements to program, such as utilizing curvature (with lines) and arcs, but my attempts were not so successful. So as a result, I hope to learn how to employ some of the more advanced elements in p5.js over the weekend, so that I can utilize them on the next project. I feel that for this project I wish I could’ve incorporated more exciting and original elements, as opposed to just constructing a piece out of mainly rectangles and simple shapes. Upon viewing some of the other fantastic student pieces, I hope to eventually achieve that level of proficiency with programming, and be able to create a more exciting and ‘innovative’ piece of work that better represents the ideas that I have in my head.