Little Wonders

IMG_5081

IMG_5082 IMG_5083

Ever since I was a kid, I’ve always been fascinated by the idea of our stuffed animals and toys coming to life, quite similar to the various toys from Toy Story. Having that vision in mind and after discussing my idea to a few classmates, I decided to bring some of Toy Story to life. My inspirations came from revisiting old children movies where all the objects and creatures were personified.

“Little Wonders” explores the idea of objects moving and interacting when we aren’t there to see the interactions exchanged. I loved the idea that we existed in a world with a more fantastical side that we may never be able to fully unveil.

Some of the technical challenges included trying to create a realistic interpretation of the “creatures'” movements. I wanted the movements to appear subtle so people would second guess themselves, but at the same time smooth enough so that they don’t appear as robotic as the servos. I added an easing effect to help ease the changes in movements. Another challenge was connecting the power chord to the teensy while keeping it hidden. In the end, I placed the shelf slightly between the two doors so that the chord can slip behind the shelf and between the doors inconspicuously.

fritzing_bb

 

 
#include 
int duration = 3500;

// metros 
Metro mouse1 = Metro (duration);
Metro mouse2 = Metro (duration);
Metro jaguar = Metro (duration);

//servos 
Servo sMouse1; 
Servo sMouse2; 
Servo sJaguar; 

// destinations 
int dm1_0; 
int dm2_0; 
int dj0; 
// destinations to be smoothed
int dm1_0_sh; 
int dm2_0_sh; 
int dj0_sh; 

float easing[] = {
  0.09,0.08,0.03};

const int motionPin = 0; 
int noMotion; 
int mouse1Motion = 0; 
int motionLevel; 

void setup(){
  Serial.begin(9600);

  // pin 5 missing 
  sMouse1.attach(0); 
  sMouse2.attach(1);
  sJaguar.attach(2); 

  // intial destinations 
  dm1_0 = 0; 
  dm2_0 = 90; 
  dj0 = 135; 
  // intial destinations to be smoothed
  dm1_0_sh = 0; 
  dm2_0_sh = 90; 
  dj0_sh = 135; 

  noMotion = 0;
}

void loop(){
  motionLevel = analogRead(motionPin); 
  motionLevel = map(motionLevel,0,656, 0,100); 
  motionLevel = constrain(motionLevel, 0,100); 

  //motionLevel = 0;

  if (motionLevel < 20 ){     noMotion ++;      if (noMotion >= 100){

      if (mouse1.check() == 1){
        dm1_0 = random(0,180);

        mouse1.interval(random(200,800)); 
        mouse1Motion ++; 
      }
      dm1_0_sh = dm1_0_sh *(1.0 - easing[0]) + dm1_0 * easing[0];
      sMouse1.write(dm1_0_sh);

      if (noMotion >= 120){
        if(mouse1Motion >= 10){
          if (mouse2.check() == 1){
            dm2_0 = random(0,180); 

            mouse2.interval(random(300,800)); 
          }
          dm2_0_sh = dm2_0_sh * (1.0 - easing[1]) + dm2_0 * easing[1];
          sMouse2.write(dm2_0_sh);
        }
      }

      if (noMotion >= 150){
        if (mouse1Motion >= 14 ){
          if (jaguar.check() == 1){
            dj0 = random(90,180); 

            jaguar.interval(random(500,2000));
          }
          dj0_sh = dj0_sh * (1.0 - easing[2]) + dj0 * easing[2];
          sJaguar.write(dj0_sh);
        }
      }
    }
  }
  else{
    noMotion = 0; 
  }
  //Serial.print("motion: ");
  Serial.println(motionLevel);
  //Serial.println(dj0_sh);

  delay(25);
}

 

 

 

One comment

  1. admin

    I saw your project before, I really liked it , it was very toy story-esque, very playful ^^

    ^Toy Story! 😀

    Regarin stuffed animals, look at Stephanie Syjuco, she has pieces at the Miller gallery right (that’s at cmu) now; you should also look at Asia Ward’s creatures

    I think the toys need to be in a more home-like setting. Normally on a shelf toys aren’t stacked like that, they’re clumped together and sometimes frame books, also the background might be a living space or it may be another sort of comforting, fun, place. Would also be super cool if it were ralph instead of a kid.

    The shelf was a good place to film without distractions for the purpose of the video. Another good place might be a bed, as this is where stuffed animals might usually be. If you chose plain bedsheets it could remain clean/focussed.

    Can I just also say it’s appropriate for the time of year? (Not the whole christmas merchandise thing — see “The Nutcracker” as a reference. Although people think of Toy Story first, the idea is not new.)

    An abrupt end to their motion a few seconds after the person’s presence is recognized could be effective (Toy Story was mentioned a bit, the characters would typically drop to the ground when they realized a human was coming into the room)

    I wish the animals interacted with each other
    ^ upvote, I was waiting for that to happen
    ^ me three
    ^ or they could be moving things in the room when we’re not looking
    ^ or drawing on the wall when we’re not looking

    Documentation gets you interested and tells a story. Music does a lot to set the tone.

    Simple but effective motions, fun piece. Nice hiding of the sensor–adds to the childlike dreamstate of the narration

    Video was cute, music matched. I couldn’t see the rat moving (was it moving?), but it was probably because I didn’t have my glasses on –> both rats moved at some point or another 🙂

    Yes, Attenborough narration!

    +1 I disagree about tweaking the stuffed animals for the sake of “art”. I like the way that your concept is just about surprise of having things move when you are not looking. I think making the stuffed animals different would take away some of the playfulness

    I think it would be cool if you had a sound component, like once someone approaches they shush each other, or the mice squeak or talk to the cheetah.