It’s Finals Time! Making Sense Of Work In A Post-Trump America

Remember these days?
Remember these days?
fuck-my-life
Reality check.

SO that happened. Election + results = awful, (for me, personally, and many people that I know and love, and even more people that I don’t know and will be effected even more drastically) and suddenly literally everything seemed trivial in the face of a grave international disaster.

Originally I was exploring use of the facial recognition library in order to read faces in a sketch and play back/generate relevant content for the consumer. (For example: Person comes up to computer, computer reads SAD, computer plays back empathetic music and suggests a few websites/exercises to help cope with SAD). But after the election, this didn’t seem like a particularly meaningful or inspiring project (even though there are probably a lot of SADS who could use some cheering up right now).

Alongside this, I was also developing a PCOMP project with my my collaboration partner Oriana. We were working on wearables, specifically a bodysuit with a touch-activated light response system. After play testing on Wednesday November 9 aka The Day After, we realized we were not at all interested or inspired by what we were generating.

So we pivoted.

nasty-woman

screen-shot-2016-11-17-at-10-05-52-am

Our Idea

Create a piece that comments on the unique lexicon that has been cultivated and utilized specifically towards female-presenting individuals, and explore the violent and prohibitive effect it has on their often marginalized or reduced roll in society.

screen-shot-2016-11-17-at-10-06-20-am

How?

Working with dancer Elizabeth White, we will choreograph a piece that involves the same form factors as our original PCOMP final project, but with a different message. She will be in the same light-activated body suit, but attached to strings. The strings will be attached to sensors. At the start of the piece, the suit will be fully illuminated, but each time a string is pulled, it will trigger a P5 sketch to run that will both turn off the light attached to that area of the dancer, and trigger word clouds, quotations and negative sound bites to activate either on screen or through speakers. When the light goes out, the dancer also loses agency of the limb to which it is attached.

Eventually the dancer will crumble to the floor and be motionless.

img_9929

img_9930

img_9931

Content

screen-shot-2016-11-17-at-11-41-26-am

Drawing from personal experience and the news media, we will compile a dataset of sound clips, individual words, and quotations. They will be divided into four subsets: Career, Parenting, Sex, Public Space. Each subset will demonstrate certain terminologies used specifically for women in these arenas, with supporting content in the mediums mentioned above.

screen-shot-2016-11-17-at-12-01-05-pm

screen-shot-2016-11-17-at-12-01-24-pm

screen-shot-2016-11-17-at-12-00-43-pm

Eventually, the dancer will regain strength through a series of touch sequences in which she is on the receiving end of more positive terminologies, and well regain agency of her limbs with the help of positive and empowering words.

screen-shot-2016-11-17-at-12-04-42-pm

ICM Week 8: Working With Media

This week our assignment was to work with and manipulate external media. In this weeping misery of an election, why not manipulate the most ubiquitous media topic of all? The one and only Donald J. Drumpf.

As my subject was so precious, I was diligent about practicing all of the different media manipulations we had learned in class with our favorite city cat, Badger. Some examples:

Pixelated Badger
Pixelated Badger
Badger translated with weird mouseX,Y function and sin wave nonsense. (Bonus, mousePressed reveals...PizzaRat!)
Badger translated with weird mouseX,Y function and sin wave nonsense. (Bonus, mousePressed reveals…PizzaRat!)
Same ish, but now with png transparency and a background outside of the draw function for some randomized Badgers.
Same ish, but now with png transparency and a background outside of the draw function for some randomized Badgers.

Clearly, now I was ready for the good stuff. My idea was to run a video with sound that would map trumps mouth using the pixel recognition. This was ambitious. After attempting several different itterations, I finally settled on making a trump keyboard with zen music playing in the background and a trimmed trump video on a loop.

 

Here is the result.

It’s sort of a sound board, but my intention was much more complicated. I’l keep at it, let’s see what happens…

Cat Attack! (With Browser Controls)

screen-shot-2016-10-21-at-12-09-17-pm

 

This week I wanted to use my cats for a little, uncomplicated game involving buttons and a counter. I 95% succeeded.

The problem:

I couldn’t get my number to refresh without breaking all of my code.

screen-shot-2016-10-21-at-11-53-35-am
13 Cats
screen-shot-2016-10-21-at-11-53-48-am
Killed
screen-shot-2016-10-21-at-11-53-59-am
Obviously not 17 cats.

 

 

 

 

 

 

I already had to develop a bit of a cheat where I drew a rectangle in the draw() loop so that the numbers wouldn’t continue to write on top of one another. But I suspect that because my cat is a function that’s been called vs. the counter which is in draw, I can’t reset my numbers the way I’d like to while the code is structured as it is.

I hope to overhaul the problem this weekend.

Synthesis Session

This week we experimented for the first time with serial communication in our Synthesis Session. My partner and I mapped a potentiometer to the mouseX function in some code, that opened and closed a window and started and stopped some rain. Then, for good measure, we added a photo of Dan Schiffman for the heck of it. This was our process:

 

We started with a push sensor, and that didn’t work out so well because it was a bit wonky to the touch and couldn’t achieve the sliding effect we wanted. (Or at least, not without some additional coding we were worried we wouldn’t have time for.

Then, we switched to a potentiometer because we thought we might have a bit more control, which was correct, but the data wasn’t buffering as effectively.

We added a serial read function so that we could see if our input was sliding gradually.

We realized we were having a buffering problem, and restarted the p5 serial control app. The result was a much more controlled manifestation of the sensor.

This was an exciting week in Physical Computing, because for the first time we are finally starting to hint at the full scope of what we’ll be able to do now that we understand (at least a little bit) about how to make machines talk to one another. It’ll be exciting to see what the rest of the semester brings.

City Cat/ City Mouse Revisited

This week our assignment was to use functions in order to refine the code from an earlier piece and make it more elegant.

Here’s my first composition.

You might recall there was a lot of long, ugly, unnecessary code, most of which looked like this:

//lights 2nd closest;

fill(255, 255, 0);
ellipse(85,165,8,8);
ellipse(110,165,8,8);
ellipse(135,165,8,8);
ellipse(85,195,8,8);
ellipse(110,195,8,8);
ellipse(135,195,8,8);
ellipse(85,225,8,8);
ellipse(110,225,8,8);
ellipse(135,225,8,8);
ellipse(85,225,8,8);
ellipse(110,225,8,8);
ellipse(135,250,8,8);
ellipse(85,250,8,8);
ellipse(110,250,8,8);
ellipse(135,250,8,8);

This time, I used nested for loops to draw the windows on my building. The code looks like this:

function drawWindows(windowX,windowY, rad, spaceX, spaceY, nRow, nCol) {
for (i = 0; i < nRow; i++) {
for (j = 0; j < nCol; j++) {
ellipse (windowX+j*spaceX, windowY+i*spaceY, rad, rad);
}
}

Definitely more simple. I then called the function four times within my code. It was exponentially easier for me to maneuver the number of rows and columns of lights I had on a given building using this structure. I called the function four times, but the basic structure was:

//building three
noStroke ();
fill(random(r),random(g),random(b),200);
drawWindows (115,85,5,15,20,9,6);

(I added in the random color function to make the composition a little less static as well).

This was the result.

Ultimately, it’s the same composition, but with tons less guesswork and tons more ease of use and flexibility, which is why mastering  for loops and nested for loops and functions is so nice and lovely and useful.

Interactive Artwork

Assignment: Create an interactive artwork that implements the concept of repetition with variation. Use at least one for loop. Your artwork should also incorporate an interactive interface element of your own design.

For this assignment we were asked to work in pairs, and the magnanimous Dominic Barret  took pity on my poor self and agreed to partner up. That’s him:

Hey Dom

Sticking to the cat theme, because why not, we (and by we I mean Dominic, while I ran to catch up) went with the idea of a slider that would control a gaggle of mice, which would be generated using a for loop.  Some of my unsuccessful attempts:

 

Attemt 1

 

Attempt 2

We decided we also wanted to have a cat appear in the bottom corner of the screen when the slider reached its limit, signaling an untimely end for the unfortunate meecies who were in the wrong place a the wrong time (sort of like Dominic when I asked him to be my partner).

Here’s my cat:

Crazy Eye Kitty

This is what Dom’s slider looks like paired with my meecies and a dramatically improved now nested  for loop (guess who helped me with that):

Meecy Mice

Dominic also worked his magic to combine our efforts and the results were, of course, glorious.

Check them out.

Kitty Has A Nightmare

<3Inspiration<3
<3Inspiration<3

Well, sort of.

I really wanted to show kitty having a terrible dream of mice running around, then add a mousePressed function where you’d click his paws and the mice would go away.

That was really ambitious.

Instead I did this.

I also did this, but when I combined the two I got this.

And forget about mouseClicked.

// TLDR I’m working on it.

 

CODE RANT: Let’s Talk About That Red Line. Also, Overachievers.

So, let me start this post by saying that I have never coded anything ever before, nary a single day in my life. I’ve copy pasted HTML with very specific instructions from a frustrated -and patient, thanks Josh!- tech team at the startup I used to work for, but in terms of making a damn thing from scratch? NOPE.

Here’s the picture I made in the p5js editor this week: CLICK

City Cat/ City Mouse
City Cat/ City Mouse

It took me elevendyseven hours. But it’s cute, right?

Here’s my code: 

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

function draw() {
background(145);

//window
fill(0,0,179);
rect(0,0,350,250);

//skyline
fill(5);
rect(70,100,55,60);
fill(25);
rect(0,50,75,200);
fill(75);
rect(100,70,100,300);
fill(100);
rect(70,150,85,200);
fill(175);
rect(230,0,120,250);

[BIG FUCKING ABBREVIATION]

//window panes
fill(100);
rect(50,0,5,250);
rect(0,70,350,5);

//cacti
fill(0, 179, 60);
ellipse(20,230,20,30);
ellipse(300,230,30,50);
triangle(300,280,335,160,325,250);
ellipse(0,230,40,70);
triangle(0,230,40,200,0,260);
triangle(50,230,2,270,0,250);

//ledge
fill(102,0,51);
quad(0,250,0,280,370,280,380,250);

//curtain
fill(255, 230,255,175);
rect(0,0,30,300);
rect(250,0,200,300);

//table
fill(217, 179, 140);
quad(0,280,0,400,400,400,350,280);

//table cloth
fill(51, 153, 255);
ellipse(90,350,350,125);

//cat
noStroke();
fill(179,119,0);
ellipse(200,300,120,140);
ellipse(200,220,70,60);
ellipse(150,350,30,10);
ellipse(250,350,30,10);
triangle(200,200,250,300,220,170);
triangle(175,200,175,170,200,200);

//tail
fill(128,85,0);
ellipse(200,325,15,100);

//mouse
fill(255, 179, 255);
ellipse(85,355,8,8);
ellipse(115,355,8,8);
fill(230, 230, 230);
ellipse(100,350,30,40);
ellipse(100,328,20,20);
ellipse(95,325,10,20);
ellipse(105,325,10,20);
fill(255, 179, 255);
triangle(98,365,100,400,105,365);

}

The big bleeping abbreviation is because I MANUALLY (I mean, I copy/pasted, but still) entered my code for all those little city lights on my buildings. Tha’ts 75 lines of code. I’m sure there’s a better way. I don’t know it yet.

Homework question: How do I loop?

Not all is lost. I learn best from repetition, repeating an action 75 times helped familiarize me with coordinate input et al, and got my head inside the framework of being a coder (not that I’ll ever be a coder), but I’ll be able to do some coding stuffs and our homework made it less alien to me. Speaking of homework I took the quiz and:

I win!
I win!
I win!
I win! (ish)
I haz lose.
I haz lose.

WHY?! I stared at this silly line of code for a solid 20 minutes ready to throw my computer out the window, and not just for the insurance money. Remember that scene in Alice in Wonderland where they’re all “Let’s paint those roses red so the Queen doesn’t murder us?”

screen-shot-2016-09-15-at-10-35-27-am

Yeah, I was ready to throw that ish into canva or something and make it red.

NO ONE WILL NOTICE.
NO ONE WILL NOTICE.

But I held out, read through my code, paid some more attention and,  you know, got it:

I win!
I win!

Right now I’m trying really hard not to think about how difficult everything will be this semester if I consider this a victory, but for right now, I’ll bask in my glory like a cat staring out a window at the city lights. So many possibilities.

Outro

Until I made the mistake of looking at some of my classmate’s homework.

WTH Y’ALL?! Way to make a gal look bad. Anyway, gotta go. I’m gonna spend the next week figuring out how to make all of the lights on my buildings twinkle. Bye.