The Watcher is servo-driven mirror panel that reacts anthropomorphically to your presence. It is an experimental sculpture to explore anthropomorphism in inanimate objects through motion by rapidly changing perspectives. Using a camera and the ability to rotate on two axes, the mirror panel reacts to a person’s face and will either be shy, frantic or neglecting your presence. The motions can be hectic and abrupt or slow and deliberate to convey these personalities based on the PAD emotional state model and Laban Movement Analysis.

The Watcher was created by integrating hardware, software and research. It was made with MDF and polystyrene foam, and was developed in openFrameworks utilizing computer vision, the Arduino and servo motors.


The Watcher showcases 3 different personalities; Shy, Franctic, Ignoring, as an experiment to capture anthropomorphism. These personalities can be described in summary in the PAD Emotional State model and Laban Movement Motion Analysis model. These models were used a guideline to form motion patterns for the servo motors.

PAD Emotional State
– Shy: displeasure, non-arousal, submissive
– Frantic: displeasure, high arousal, dominant
– Ignoring: displeasure, non-arousal, dominant

Laban Movement Analysis
– Shy: sustained time, indirect space
– Frantic: quick time, direct space
– Ignoring: quick time, direct space

Servo Motion Patterns
– Shy: delayed, slow movements looking downwards (negative x axis)
– Frantic: abrupt and fast movements going in any direction
– Ignoring: fast deliberate movements towards a certain point

Hardware & Fabrication

The construction for the mirror was entirely made out of MDF wood. These pieces were made to hold the mirror, webcam and the servo motors. The webcam was embedded directly behind the mirror in the center to increase the viewing angle as the camera will always rotate with the mirror. This was accomplished by drilling a hole in the mirror using a drill press with a ½” Diamond Hole Saw. To encapsulate all the internal parts, a shell made out of ½“ polystyrene foam board which was sanded and spray-painted with a layer of white paint.

In order to rotate the mirror on the x- and y-axis, 2 servo motors were connected to an Arduino. The first servo is a Hitec HS-5485HB Servo which controls y-axis rotation. The second servo Hitec HS-5645MG (higher torque) Servo rotates the mirror on the x-axis. These servos were connected to each other using ServoBlocks and were hooked up to an external power supply of 4 AA batteries.


The entire software is written in openFrameworks and utilizes the add-on libraries ofxCv, ofxTweenzor, ofxUI and firmata serial communication. The standard frontal face haarcascade from Kyle McDonald’s ofxCv was used in order to detect a person’s face. If multiple faces are detected, it cycles through all the objects and only selects the biggest object as a face.


The ability to control and create smooth motion is essential to depict anthropomorphism. The tweening library ofxTweenzor was used to achieve this. The tween would allow control over the beginning and end points, delay, tweening time and the type of tween through one single command. The tween variable is then send as serial data to the Arduino which drives the servos.