This animation project offered me an opportunity to explore my thoughts on the pervasive need to please that governs most artistic work. I believe The creation of compelling work isn't necessarily bound to work that appeases the needs of the widest possible audiences.
A majority of interactive and immersive artists strive to give their users a pleasant, satisfying experience — and of course they are viewed favorably for doing so. 
But what if a work was designed to elicit a different response?
This is a simple animation created to give the impression of a calm, meditative, rewarding user experience. However, once a user begins to interact, the animation subtly shifts in an attempt to irritate them.
Research
I researched games designed specifically to annoy.
Many utilize impossible objectives and punish mistakes severely.
"I created this game for a certain kind of person.
To hurt them."
Bennett Foddy
Creator of QWOP
...
For my design inspiration I gravitated toward simple, geometric patterns with soft color palettes.
The purpose of this animation is to give the appearance of inviting calm, not to hint at any zany antics.
In fact, should a user choose not to participate at all, the experience would ideally be quite lovely. It is only the addition of human interaction that should cause that human's frustration. A passive user could still enjoy this project.
..
An implied objective for this animation would be for the user to attempt to click on a moving shape with the mouse. However, proximity to an approaching mouse should cause these shapes to alter their paths and flee.
As the mouse moves faster to compensate, the shapes will evade even more quickly — much like a dog being chased who only runs fast enough to keep out of reach.
Sketching out possible motions for my animation showed me that I didn't want predetermined paths as if the objects had been thrown. I wanted them to wander throughout the scene, changing directions as if on a whim. This would give these shapes the illusion of autonomy, and allow them to flee in random directions.
A reward animation for successfully clicking on a triangle was considered, but ultimately rejected.
.
Motion Development
The most important aspect of this animation was the motion of the shapes. Their movements should be unpredictable, but not abrupt. I set out exploring how best to simulate this wandering movement.
Unchanging predetermined. As if thrown against a wall.
float xSpeed = random (-5, 5);
float ySpeed = random (-5, 5);

void move() {
  x = x + xSpeed;
  y = y + ySpeed;
}
Completely randomizing the movement lead to nervous jittering.
void move() {
    x = x + random(-5, 5);
    y = y + random(-5, 5);
}

Now the object seems to have a life of its own. Though simplified, this is essentially the code that drives the behavior of the Triangles.
void move() {
    xSpeed = xSpeed + random(-1, 1);
    ySpeed = ySpeed + random(-1, 1);
    x = x + xSpeed;
    y = y + ySpeed;
}

The evasion behavior was accomplished by analyzing the mouse position and determining whether the distance between the mouse and triangle was within a given threshold. As the mouse gets closer, more and more speed are added to the triangle.
    moveD = dist(vx, vy, x, y);
    if (moveD <= 100) {
      mSpeed = map(moveD, 100, 0, 1, maxEvadeSpeed);
      if (xSpeed < 0 && ySpeed < 0) {
        x -= mSpeed;
        y -= mSpeed;
      } else if (xSpeed < 0 && ySpeed > 0) {
        x -= mSpeed;
        y += mSpeed;
      } else if (xSpeed > 0 && ySpeed > 0) {
        x += mSpeed;
        y += mSpeed;
      } else if (xSpeed > 0 && ySpeed < 0) {
        x += mSpeed;
        y -= mSpeed;
      }
    }
  }
A silly little project to be sure.
But I believe there are many applications that could be very interesting.

The overly simple nature of this design would pair quite well with motion sensors and projection.
After all, the irritation could only increase if a user's entire body is involved!

You may also like

Back to Top