Ani_StopMotion Storyboard_Butter.

Butter Ani gif made by Kate!

Tried the butter today with Kate, interesting!! The tricky things is that butter melts quite easily, might need to put in back in refrigerator several time.

It’s a story about butter who’s very unsatisfied with his greasy traces, and wants to fly because of the inspiration from the butterfly!

Butter_sb_1

Butter_sb_2_v2

Butter_sb_3_v2

 

 

Here’s the sets and props.

set_and_prop

 

And here’s the discussion about our dilemma about choosing whether butter or origami as our character.

brainStorm_v2

 

ICM_ToxiclibsTest_VerletString2D

pic3pic4

 

 

 

 

pic1

pic2

 

 

 

 

 

pic7pic6

 

 

 

 

 

 

Ahhhh failed to create the electrons flow in light bulb. Planed to

  1. add some particles around strings
  2. 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!

  1. Nature of Code by Daniel Shiffman
  2. SpringPlay by Justin Pinkney
  3. creativeapplications

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.

 

Less violent and less organic : Still trying to figure out how to solve the problem –> Making the violent/organic/electric movement without dragging down the whole system.

Here’re the codes: v.1, v.2.

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!PComp_cookie_spider

And it worked! 😀 The contends and the behavior matched perfectly. First time! Exciting!! And my circuit looked simple as well.

2013-10-09 14.33.07

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:

  1. 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.
  2. Different modes with different compositions of inputs. (e.g. Mode A: button 1; Mode B: button 1+2 …)
  3. Let users feel they control something in an abstract way. (Wwwwooo complicated…)

CookieSpider

HW_5_cookie

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.

  1. Button functions!!! Arrhhhhh…. Use a lot of boolean to differentiate the mouse functions, e.g mousePressed() mouseDragged(), and mouseReleased(). Try and error…
  2. 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.
  3. 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.
  4. 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++;
            }
          }
        }
  5. 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.

Continue reading

PComp_03_Observation_DearElevator

Hi Elevator,

How you’re used_my assumption

  1. User walks to the elevator and stands in front of the door or waits in line.
  2. Pushes up/down button if it’s not been pushed.
  3. Walks inside when the door opens.
  4. Gentleman holds door-open button for incomers.
  5. Everyone checks if his/her destined-floor-button has been pushed or not, or he/she pushes the button or asks others to do so.
  6. The door closes.
  7. Unless it’s user’s destined-floor, user stays inside instead of stepping out.
  8. Gentleman holds door-open button for incomers and out-goers.
  9. Users says “Excuse me. Thank you.” and steps out when the elevator reaches his/her destined-floor.
  10. The End.

How you’re actually used_from observation

  • actual situation(observed in the lobby of Tisch)
    • because of the existence of smartphone, users have more patience to wait nowadays.
    • when waiting in line, users start making small chat, meeting people from different departments, and it’s a good moment to be social.
    • at 4th floor, ITP’s elevators have no signs showing where the elevators are at. Maybe because of this, users become less patient waiting and more attempting to use the stairs down.
  • different approaches
    • some stand motionlessly and wait the door to close; some keep pushing the door-close button
    • when lines get too long, some users at the back give up and choose the stair instead, and some just keep waiting.
  • difficulties
    • users have to tiptoe to see if their destined-floor button has been pushed or not.
    • users have to squeeze in to push the button if it’s crowded.
    • users have to be aware of the unpredictable closing door.
  • easy
    • just stands and goes up and down several meters effortlessly.
    • asks for help to push the buttons.
  • longest time
    • waits in line
  • shortest time
    • gives up and uses stairs instead(if users’ departments don’t reside higher than 5th floor)
  • time of whole transaction (this part is still under construction)
    • waiting:
    • duration of each floor:
    • pushing button:
    • stepping in/out:

What if… Then… Moment for you my dear Elevator

  • The display board inside the elevator shows which floor has already been chosen.
  • After being pushed, the door open/close button flashes on and off continuously to indicate that it does keep working/sending message(giving local feedback), so users won’t act crazy pushing it.
  • Set floor buttons
    1. outside the elevator, and users press the button before walking in.
    2. on the side of the door, and users press the button when walking by.
    3. hanging from the ceiling, and users pull the button(acting like pulling string).