It’s always lovely to be old school. It’s a thaumatrope about one happy human being having peanut butter toast. But I drew the toast on the wrong part so it’s like it’s already in someone’s throat. Still, it’s a lovely way to die by choking to dead/killed by food.
Category Archives: Fall 2013
PComp_Interaction_Rethink
7 weeks past, I’ve seen a lot of interaction thought through a lot of ideas for midterm project. Personally, it strengthens my favor for the tangible interaction. It doesn’t necessarily need to be touched to activate but it’s really a satisfying moment to be able to be touched, if users want to. For me, touching strengthen the level of interaction, since touching make workpiece more lively and real. More approachable. And that also strengthen my desire to make some low-fi thing! The original, unpolished appearing can let users focus on the content, and the exposed, seeable technology(e.g. motor, mechanical and physical stuff) can surprise users with familiar things doing unfamiliar things, and might even catalyze users to have new ideas to live the life.
About whether interaction to be implicit or explicit, I think it is case by case. Personally, unpredictable and surprise is my thing but some people might find it annoying and uncomfortable. Moreover, measuring the level of implicit is also an important issue. It should still have patterns or certain amount of logic, in that way users can still have the power of control.
ICM_ToxiclibsTest_VerletString2D




Ahhhh failed to create the electrons flow in light bulb. Planed to
- add some particles around strings
- restrain patterns to fit within the lightbulb, using different canvas
Things worth mentioned:
- I used keyPressed() to change the gravity. Kill the original gravity and use “A, W, D, S” keys to control the direction of force.
ParticleBehavior2D b = physics.behaviors.get(physics.behaviors.size()-1);
physics.removeBehavior(b);
if (key == 'a') {
physics.addBehavior(new GravityBehavior(new Vec2D(random(-0.3), random(-0.05, 0.05))));
}
else if (key == 'w') {
physics.addBehavior(new GravityBehavior(new Vec2D(random(-0.05, 0.05), random(-0.3))));
}
else if (key == 'd') {
physics.addBehavior(new GravityBehavior(new Vec2D(random(0.3), random(-0.05, 0.05))));
}
else if (key == 's') {
physics.addBehavior(new GravityBehavior(new Vec2D(random(-0.05, 0.05), random(0.3))));
}
- Use the color function of Toxiclibs, measure the direction of the spring and then map it into 0~1, and then some crazy codes to set up the color of stroke.
for (VerletSpring2D s: strings) {
float currHue = map(s.b.sub(s.a).heading(), -PI, PI, 0, 1);
stroke(TColor.newHSV(currHue, 1, 1).toARGB());
line(s.a.x, s.a.y, s.b.x, s.b.y);
}
Original version, without vertex to fill the mesh. Looks like seaweeds.
Looks like worms.
And here are some tutorials and examples I found useful!
- Nature of Code by Daniel Shiffman
- SpringPlay by Justin Pinkney
- @ creativeapplications
PComp_inspiration_ImageToaster

ImageToaster
Print the pattern you like on your lovely toast. By Scott van Haastrecht.
Warm and sweet and inspiring 🙂
PComp_UnoBurnedNO0oo…
Inspired by the crazy servo motor workpiece by David Bowen, I tried to learned controlling DC motor rotating direction with H-bridge through this tutorial but failed to change the direction. The result was either rotated or stopped. Thinking the possibility of my motor might be broken, I borrowed other’s official stater kit’s DC motor, which was smaller than mine, and then things just went wrong…
The motor spun so fast and Uno became kind of warm. I pulled out the power supply but it was too late. I couldn’t upload any sketches anymore. Even unplugged all the wires and run the Example sketch…. NOOO000ooo….
Too frustrated to take a pic of my breadboard. Should remember to avoid emotions stopping you document next time…
ICM_ToxiclibsTest_Mushroom
First attempt to use amazing library Toxiclibs, mushroom-like water creatures with big head and jumpy acts. Cursor is an attractor to pull them closer to each other. And it ends up with a beautiful mistake oops.
As you can see, the frame rate of it became super slow because I put addBehavior() in draw() instead of in setup(), or in the constructor of the class. If I didn’t have an office hour with Daniel Shiffman I’d never know! But after I rewrote my codes, having all of the adding-force stuff happen just once, my sketch became less interesting, as below.
V&S_4_Reading_In the Blink of An Eye
First of all, as one-shot scene mentioned in the reading, here’s an one-shot scene I’d love to share, from movie Atonement by Joe Wright. I respect it more after filming by ourselves.
There’re two points I find relatively interesting in the reading.
- Like sleeping therapy, editor helps director to make description more clearly(when things don’t go as what director originally think about, director will defend for it then thus become more aware of the theme/thoughts). It’s so true. We’re both the directors and editors in this class project, and when we started editing, we kind of rethought about the whole concept and became more aware of the shots we missed.
- Filming and editing are like learning foreign language. You know it well enough but it’s always difficult to speak or even write it. Sometimes you just have to let it go and speak whatever come across your mind, or you’ll be framed by the grammars and then stuck. And this happens in filming/editing as well. A lot of things didn’t follow the script at all. Storyboard and script become a big concept to follow, and improvisation gradually dominates all. But I’m not sure if it’s a good thing, because it seems professional movies and animations follow the script strictly. Some of the final shots look exactly the same with storyboard. That’s probably because they spend a lot of time in the pre-production and sometimes it takes years, so they can make sure what they really want clearly and then be able to follow the script. And maybe it’s also related to the scale. It costs hugely so you don’t have space to waste, and it needs clear descriptions for a lot of staff to follow. And it makes me wonder, is it normal and good to improvise in small scale production? For either filming or editing?
Below is my first editing work, and since it’s a fantasy told by reconstructing clips of movies, it’s relatively simpler than filming and editing at the same time.
PComp_5_Don’t Touch My Cookie!
Fantasy kind of comes to live guys!
After the PComp class, I was inspired to do more about how the communications between Arduino and Processing. I want them to be more instinct, more meaningful, and more related to each other, not just switching on and off. And stay away using MOUSE to control/adjust my work all the time. My works should have their own behaviors patterns, without others tell them what to do. (kind of like users can only have small control/impact on them ;))
So I came out of an idea to control the chocolate spiders amount of my this week’s ICM homework! Since my intention of this project is scaring away people who try to eat it, why not building the interaction based on that? The more you come closer to the cookie(I use photosensor), the more chocolate spiders will come out alive. And the button at Top Left corner will turn red to warn!
And it worked! 😀 The contends and the behavior matched perfectly. First time! Exciting!! And my circuit looked simple as well.

Come out a good/crazy idea, and then execute it well in the most instinct and simplest way. It’s my goal of life now.
Below are my To-Do-Lists that inspired through today’s PComp class:
- Change velocity, acceleration, changes, instead of just position and on-and-off, so when there’s no input(no one using it), animation still runs.
- Different modes with different compositions of inputs. (e.g. Mode A: button 1; Mode B: button 1+2 …)
- Let users feel they control something in an abstract way. (Wwwwooo complicated…)
CookieSpider
Choco spider cookie– lovely product that makes you scream on the second of you opening your mouth to give it a bite! Things is that, I felt extremely hungry recently and just couldn’t help eat up all the food around me, and if this cookie existed it would do me a huge favor.
For this assignment, I practiced the usage of ArrayList and PImage, and was more comfortable with PVector. And I’ve also learned about the function lerp() and velocity.heading() of PVector through the office hour with Daniel Shiffman! Below are some bloody difficulties I came across.
- Button functions!!! Arrhhhhh…. Use a lot of boolean to differentiate the mouse functions, e.g mousePressed() mouseDragged(), and mouseReleased(). Try and error…
- lerp() <– super useful!!
- lerp(start, stop, amt) <– The amt parameter is the amount to interpolate between the two values where 0.0 equal to the first point, 0.1 is very near the first point, 0.5 is half-way in between, etc.
- Don’t know how to make object of ArrayList interact with its fellows until the office hour w/ Dan. Just write two “for loop”s! One for itself, one for the others.
- In order to create the effect of animation, I tried using frameCount and it worked!
-
void grow() { if (frameCount % 14 == 1 && j<4) { legs.add(new Leg(0, 0, 20*cos(angle), 20*sin(angle))); angle += PI/6; j++; } if (j==4) { angle += PI/3; j++; } if (j>4) { if (frameCount % 14 == 1 && j<9) { legs.add(new Leg(0, 0, 20*cos(angle), 20*sin(angle))); angle += PI/6; j++; } } }
-
- Within PVector, you can use velocity.heading() to rotate object with its moving direction(check out Nature of Code!!!). That’s how I rotated my spiders and their traces. Combined with lerp(), my spider makes its slow U-turn in the beginning of birth.
But honestly, this time I was not thrilled about my work. Especially after I connected it whit Arduino. It worked, but I just didn’t feel it interesting enough. It’s really difficult to be creative, especially when you want to be. Maybe that’s because I was hungry that time….? It’s like you make a lot of efforts to give birth a baby, but in the end you find you don’t love he/she at all :/
Anyway, below are the codes.






