Smart mirrors come from the idea of bringing technology into every-day, not-so-smart objects: the traditional mirrors. Turned off, it just reflects the image of the person in front of it, but when turned on, more useful information can be seen as an overlay on the reflected image.
Let’s have a look how to build one yourself.
How to build one
For this project a traditional mirror is not enough, what we are looking for is a two-way mirror: these are special panels which allow the light to pass from the rear outwards, and also reflect the light off the front, depending on the light condition on the other side. If the other side is bright, we will see through, like a normal glass. On the other hand, if the other side is dark, we will just see our reflected image. An interesting aspect about this property is the fact that it is very localised, so for example if we put a screen on the other side of the two-way mirror, we will see our reflected image in the dark parts of the screen, while the bright ones will "pass through" and we will see them overlaid to our mirror. This is the key idea behind a smart mirror.
It is possible to find two-way mirrors from different stores online, like for example this or this.
In order to present information on the mirror we need a display. This will be placed behind the mirror and the bright areas of the image will be visible from the viewer point of view, while the dark ones will just reflect as a traditional mirror. Ideally the display should cover the whole area of the mirror, so that it will be possible to cover it all with overlaid information. This can became clearly very expensive, so another solution is to limit the "smartness" of our mirror to one area only, using the smaller screen of a tablet or a smartphone, for example.
Depending on the size of the mirror and the place where it will be placed, we might want to add a frame around it, in order to cover the screen on the back, but most importantly to shield the rear from light.
As it's easy to imagine, once the device is installed it won't be possible to interact with it using the touch screen. It will be good to consider then an easy way to remove it from the mirror, in case we will need to access some of the device settings later. In our projects we attached the devices to a panel in the back of the frame which could be easily removed.
Remember that the device will be always-on, so consider a hole in order to allow a stable power connection.
Completely cover the back
As mentioned before, in order for the two-way mirror to reflect properly, it is important for the rear side to be as dark as possible. Shielding the rear section of the mirror from the light is especially important in order to hide the device and all the cables, as well as to guarantee the best reflection to the front.
In Droidcon Berlin we presented a variation of our smart mirror configured like in a typical domestic environment, displaying useful information like the weather forecast or the agenda for the day. On top of this we added a minimal Twitter client which displayed real time tweets containing a given hashtag related to the conference. The app we created was running on an Android tablet placed in the the lower left corner, in order to not cover the reflected image with the displayed information.
For Liverpool MakeFest we considered the expected audience, mainly composed by families with young children. With that in mind we created a more interactive configuration: we used face recognition to detect when someone was looking at the mirror and displayed different animations and smiling images depending on the happiness of the person in front of it. For this mirror we used a different Android tablet placed at the center of the frame, in order to display the looking eyes and the other animations in the middle of the mirror.
Novoda London Office
Another variation we are working on is for the Novoda London office. This one will be the biggest one so far, sporting a 170x80 cm mirror. For such a big mirror a tablet would have been clearly too small, so we decided to use the 22” LCD panel from one of our office monitors, connected to an Android HDMI dongle. The wooden frame used was a specifically made one, deeper than a standard one in order to mask entirely the cables behind. At the moment the mirror is just displaying time and weather, but we are going to integrate it with more services, especially calendar-related ones. This would allow us to display information about people in the office, like upcoming birthdays and planned meetings.
Mirrors are to be primarily used in our homes. We look at them in several occasions, while grooming in the morning or while brushing our teeth in the evening. They all act as a very personal element of our daily routine. A smart mirror should keep this characteristic, allowing a per-user-tailored experience. This could be done using face recognition or proximity detection to identify the person in front of it and then displaying the most relevant information for that user.
These information should be then aware of the user’s schedule, proposing different sets of information depending if the user is leaving for work, if she has a day off, or if she just came back home in the evening.
The interaction with the smart mirror should be as minimal as possible, allowing user to get the right information at the right time, without even asking for it. When thinking about the user interface for such a device, we need to remember that touch interactions will be most likely not available. Voice recognition is one of the more obvious alternative, but gesture detection could be another option, if some kind of user interaction is needed.
As you can see, replacing one of the traditional mirrors you already have with a smart one is not difficult, and it can be the perfect opportunity to give a new life to some of the old smartphone and tablets that were collecting dust in a drawer.
We are curious to see how your smart mirror will look like!
A huge thanks to Alexandros for the collaboration in the making of the mirrors!
The app we created for both MakeFest and Droidcon Berlin is completely open-source, and it's available at https://github.com/novoda/spikes/tree/master/MagicMirror
For more Novoda open-source project, have a look at http://novoda.github.io/