Intro to Computational Media

Take the Money and Run: ICM Final! - December 06, 2017

Simon Jensen (link) and I made a game in which you generate and control a personalized bot which travels the world (in your stead). The project can be found here and the code can be found here. Below is a run-down of the various elements that went into the project in terms of both technical and design choices: Server: Our node.js server performs several functions: serving the game pages to the clients using Express.

Pixel Manipulation - October 31, 2017

Using the p5.js image object’s pixel array, I attempted a number of different image manipulations: reduceColors():  in lieu of a proper “posterize” effect – one which finds a set of color averages from the value and frequency of each color in the image – this function simply maps each pixel’s color to a reduced set of possible colors. Original Image:   thresholdChange(): this function takes three thresholds (one for each color value) and takes any value above that threshold in each pixel, and bumps it up to 255:

ICMadness! - October 27, 2017

With a little over an hour, and a random prompt, Sandy, Luna and I attempted to make “a project about hope which writes a letter using the microphone.“ As you speak into the microphone, the quote (from this Junot Diaz article in The New Yorker) appears above a hopeful video of people helping each other in the recent Hurricane Harvey in Houston. You can see our project among the others here.

One Year of Citibiking - October 24, 2017

This week’s project is an attempt to visualize a year’s worth of my Citi Bike trip history. I chose to do this because I use the Citi Bike bike sharing system often (>500 times within the last year) and wanted to learn to work with maps and mapping APIs in javascript. The end result is an animation from October 2016 to October 2017 displaying all rides as they happen.

ICM Week 4: Bouncing (and Disappearing!) Balloons - October 03, 2017

This week was a challenge to place all of our p5.js sketch’s functionality within functions defined outside of the main draw loop. My sketch (a variation on the bouncing balloon we made in previous weeks) placed all functionality within ball objects created every time the mouse is clicked. In addition to the standard functionality (bouncing, moving, drawing), I attempted to add several other features (some successfully, many not). Please note that the balls are called ‘magnets’ because I originally wanted them to attract and repel based on their N&S poles, but this proved a bit too complicated for this week’s project.

AC Power Visualizer / Sharing Code - September 26, 2017

Alternating Current Visualizer A few weeks ago, I was speaking with a co-worker and trying to understand a few aspects of the power distribution system in place in our theater. I understood that most power transmission lines carry three phases of alternating current, and that typical household power contains only a single phase of 120V at 60 Hertz, but I didn’t understand how we managed to make usable 240V out of two phases of 120V.

ICM Week 2 - September 19, 2017

For week two, I had big ambitions, and somewhat less exciting results. My ambitions were twofold: to create an interactive animation that allowed someone to use the mouse to blow up a balloon, then have it float away when released, and (at someone’s very kind suggestion) to have a mouse click make a progressively larger ball, which, on a mouse release, would drop down at a rate in accordance with its size.

p5.js Drawing - September 11, 2017

Computation as a tool is most exciting to me in its ability to facilitate real-world experiences – to build some level of intelligence or reactivity into passive objects. By adding a layer of software between cameras, microphones, and other sensors, and lights, motors, and speakers, we can imbue these unthinking inputs and outputs with the ability to understand and react to their surroundings. This can feel very close to magic!