Self Affirmation Mirror
Uplift yourself unapologetically. Self affirmation Mirror encourages the user to boost their self-esteem in a fun, interactive, public way. It brings talking to yourself in the mirror out of the shadows.
How it works:
The Self Affirmation Mirror is an interactive piece for users to hype themselves up. The user sees their spoken self-affirmations appear as text around their reflection. There are stars lining the bottom of the screen that turn yellow with each compliment the user gives themselves. After five compliments are made, the mirror displays the final message telling the user “YOU ARE A STAR”.
Process
Concept
For this project our team pursued a continuation of a hack-a-thon project about self-affirmation. In the initial idea the user faces their reflection on a computer screen, and states aloud positive statements about themselves. After each statement, the words of affirmation populate on the screen around them.
We expanded this concept with the goal of integrating it into a physical mirror.
When choosing the environment that the mirror would be designed for we considered an in-home private daily experience or a public installation experience. Ultimately we picked a public installation because it was more accessible and would allow more view to witness self-positivity.
Another part of the user experience that we focused on was on the quantity of the “I am” statements. Having a fixed number of statements to aim for created a distinct endpoint, so we created five horizontal stars along the bottom of the screen. Each star gets filled in yellow when a new statement is made. After all stars are filled the message “YOU ARE A STAR” appears on the display.
Code
This project was coded using Python, the visuals are done using the Pygame feature of python to draw images and text. We also used Google’s speech-to-text API.
Our code runs two threads, one for the API and one for the drawing. The API processes live audio input which we use to match on a set of predetermined “I am” statements. Each statement gets assigned one of our theme colors and a random location on the screen and is stored in a dictionary. The drawing thread goes through the dictionary and prints out each message with the corresponding color at the assigned location. For each rectangle with text that gets drawn, a star gets filled in.
Once five stars get filled in, the rectangles disappear and the final, “YOU ARE A STAR” message appears for a few seconds and then the interaction resets. The reset of the interaction is an important feature that facilitates the use of the mirror as an exhibit so many users can get the full experience without setup.
Some challenges we faced while coding included learning how to have two threads using the same variable. We implemented mutual exclusion: locking the dictionary while being used in each thread so that it wouldn’t change while being used. Another challenge was that the API would time out every so often, we solved this by catching the exception.
Hardware
Once we had the code working on a laptop, we set it up on a Raspberry Pi, and connected a microphone. Now everything could be contained within the frame. We set up the Pi with Google credentials and our code. We also sized the python screen correctly to take up the whole TV screen.
Building the Frame
We built the frame from ½” x 2” planed wood boards. The frame has four front pieces and four side pieces. All the pieces were cut diagonally on the miter saw so that they would fit together cleanly.
We glued and nailed the rim together, and then glued the front pieces to the rim. The frame is reinforced in the corners by wood triangles that also hold the TV.
We drilled a centered hole on the bottom of the frame for the power cable and a centered hole in the bottom front of the frame for the microphone.
Inside the frame in front of the TV is a sheet of 30% mirrored acrylic that we laser cut to size.
Installation Label and Instructions
Custom labels and instructions were created to enable the user to easily participate in the experience.