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.
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:
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.
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.
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.
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.
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.
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!