Moody Mirror

A magic mirror that monitors people mood
Category: #UI Design #Electronics #Web #Mobile App
Date: 2016
Team Members: Fereshteh shahmiri, Amy Pu


Moody Mirror is a magic mirror that can monitor people’s mood at a specific location as well as show information using visualization. More than functioning as a real mirror, Moody Mirror also uses sensors to gather data from the environment. Data collected includes people’s mood and the crowdedness of the surroundings. When a person is standing in front of the mirror, he/she is able to see not only themselves but also how happy people are at that location on that day. The mirror also uses a graph to show the average happiness and the crowdedness over a week. Eventually, Moody Mirror will help us identify the happiest time over a week at a location and the happiest place on campus.

System Overview:

Visualization - Mirror Display

On the mirror display, the data visualization panel is on the right. It consists of 3 main parts. The first part at the top shows the location and time-related information. The next section presents data for today. It includes the rate of happiness, the total number of people interacted with the mirror, and the current crowdedness at that location. We chose to use numbers to represent data since the data is very simple and direct. The bottom section visualizes data for a week. It shows the happiest day and the most crowded day. A graph that is mixed with a bar chart and a line chart is used for demonstrating the change over a week. It is also a good way to visualize the correlation between the happiness and the crowdedness.

Visualization - Desktop and Mobile Phone App

The system also provides a dedicated version of the visualization for external devices, such as desktops and mobile phones. It includes the same set of data but with an adapted layout so that users could view the data anywhere easily.

Hardware Part:

The system consists of a 24′ monitor, a raspberry pi 3, a motion sensor, and 2 buttons.

Software Part:

Express.js – build the server – set up the communication channel between the server and the client

TingoDB – used for storing and retrieving data

raspi-i2c – enable I2C interface on raspberryThe Gulp-Sass-Bootstrap pipeline 

Gulp-Sass-Bootstrap pipeline – simplify the frontend development process