Science

How to Build Your Own DIY Smart Mirror From a Flatscreen TV

How one computer programmer's step-by-step smart mirror tutorial blew up the internet.

by Sean Hutchinson
Dylan Pierce

Dylan Pierce, a web designer in Philadelphia, thought he’d use some computer science and elbow grease to build a simple Christmas present for his girlfriend. Within days, and aided by a step-by-step blog post that made the rounds on all the right places on the internet, the smart mirror that he created after seeing a similar design on another blog has become the most buzzed about DIY project in a while.

By gutting a monitor that runs on a simple computer and placing it behind a thin two-way mirror that he fitted into a wood frame, Pierce created a widget-based smart mirror that can do such handy tricks as tell you the weather or list the latest top news stories, depending on how it’s programmed — the limits are really whatever you want to do with it. The mirror also — ta daaaaa! — shows you your reflection. It’s a basic version of the kind of sophisticated on screen displays you’ve seen for decades in sci-fi movies like Minority Report and Total Recall, except he made it easy to build. I talked to Pierce about his DIY tech, what he feels about his idea taking off on the internet, and how technology like this can eventually become normal in our everyday lives.

Where did the idea come from?

My girlfriend has been doing woodworking for a couple years now. So I learned the basics of woodworking from just helping her out.

When I saw another guy post a magic mirror idea I was trying to follow through with it, but a lot of parts were Europe-only. So I tweaked his design, wrote my own software for it, and thought it would be the perfect Christmas present for my girlfriend.

Your unofficial name for it is ‘MirrorMirror?’

Yeah, I came up with it just on a whim. The reason for that is I’m hoping one day to have a microphone in it so you could say “mirror mirror” and it just turns on to respond to comments like that.

Pierce removed the monitor from its plastic casing to be able to fit semi-flush with the wooden edge of the mirror.

Dylan Pierce

Is this the first time you’ve done anything like this or do you dabble in computer-based projects?

I’ve been programming for a couple years now, but I’ve been a computer nerd my entire life. I love computers. I just started programming in college, and I wasn’t even a computer science major. I only just taught myself. I work for a startup now, and I didn’t expect this whole thing to blow up!

But for the past few years everything’s been software. I built a couple web platforms for different companies, but I’ve never built a hardware thing. So this is my first woodworking project that involves a computer.

Why do you think it’s blown up in popularity so quickly?

I’m not the first person to do it, but I think the timing was right. It was a Christmas present, and I think since I made that tutorial so detailed that it’s easy. Even the software makes it really simple for someone to follow along. I think that was a big part of it.

The acrylic and plastic double-sided mirror Pierce chose to be able to cut in several different ways to fit what was needed.

Dylan Pierce

What can the mirror can do at this point?

Right now it’s not very complicated. There’s no input to it, so it’s kind of a one-way thing. But if someone wanted to dive into my code they could. It’s just a webpage. All it is is a black webpage with white text. So if you knew Javascript, you could add your own calendar, you could add sports teams scores — all kinds of cool stuff like that.

Pierce sitting in front of the mirror displaying the raspberry pi boot sequence.

Dylan Pierce

Is the text always present on this iteration of the mirror?

Yes. At the moment, I configured it to screensaver-off because there’s no input available like a microphone or webcam. But if it had those then it could be a lot more interactive or turn on with certain phrases or when a face is detected, that kind of deal.

It runs on a small computer call the Raspberry Pi. Why did you use that in particular?

Because it’s low level computing. It uses a low level language, but my knowledge is in Linux. I know how to make a web server run and I know web technology, so I just tailored it to what I know. Plus it’s graphical. If I was using something like an Arduino you’re kind of limited to one little OED display, which is kind of like your basic pebble watch.

How much research did you do before launching into the project, or was it a simple matching of interests and timing?

I saw that guy’s blog and I already knew the software part. I thought it couldn’t be that hard to do the woodworking. It’s definitely not a perfect thing. Somebody posted on Reddit and said this it looks like it’s done like a third grader’s finger painting [Laughs]. That’s kind of true! I’m not a woodworker at all. It was just enough to make it look nice. It’s always fun to go out of your specialty and try something new, so that’s what it was about.

Fitting the monitor in the wooden frame with the double-sided mirror facing outward.

Dylan Pierce

**What kinds of setbacks did you have while building it?

The hardest part was I didn’t think logistically about how the depth of the mirror was going to work. I could build a simple square box of wood around the monitor, but what I didn’t think about was the complications of having a thin acrylic between the case and that frame in the front.

There’s a lot of room for improvement, especially with airflow. I just drilled holes on the top and the bottom, so that’s probably not the most safe way to do it. What I’m doing now is getting ideas from other people.

You mentioned your blog tutorial. Is that because you wanted any average Joe to be able to build one even if they’re not well versed in computer science?

I am where I am today being a programmer because I read people’s blogs that gave instructions about how to do things step-by-step. With the mirror, I did all the hard parts. I programmed the software and you just need to install it and configure the Raspberry Pi to run it.

So I really think that an average person could go online like I did when I was a kid and read the tutorials and follow it closely. I thought it was really important to share how I built it because I know that 15-year-old-me would love this.

*I realize you just* posted the tutorial, but have you gotten feedback from people trying to make their own?

I’ve gotten requests every hour! I’m still trying to send responses. People are trying to build their own or people who built theirs before and didn’t get attention for some reason are reaching out to me and saying, “Let’s build something together.”

It’s really hard for just me to reach out one-by-one. What I’m trying to do right now is build a forum where we can all talk and have one place to go and brainstorm.

What kind of suggestions do people have? Right now is it just a basic meeting of the minds?

I’ve mostly been going through Reddit comments. There’s all kind of helpful people of all different backgrounds. One person said, “You’re using the wrong type of display, you should use this instead.” Other people are like, “Oh if you need a webcam here’s a module that recognizes faces, you can look into that.” There are suggestions and a ton of room for people to be creative.

Ideally in the future could you see people using this in their everyday lives? The closest thing I can imagine is like the Amazon Echo or Apple Watch.

We’re moving towards the internet-as-things. I would not be surprised at all if we see things like this in our everyday, like go to the store and buy things like this very, very soon..

What are some of the other features you’d want to add functionality to it other than the microphone?

That’s why I’m trying to reach out to people: I want the webcam, the microphone. But I really need to brainstorm more and come up with a plan and present it to a group of people that I think can help build a version that I think would be successful to everybody. Not just hackers and DIY-ers. Right now I’m just trying to get a pulse on who can help me and who wants to be a part of a community of people doing the same thing.

Pierce's girlfriend with the completed MirrorMirror.

Dylan Pierce

Where can people post to the forum?

I have the domain name and I’m having somebody help me with the front end. It’s going to be Mirrormirror.tech. Hopefully that’ll be up in the next day or two.

What are you next steps?

I’m really all about the open source idea. This product is not from me, it’s from other people doing other people’s ideas. I never want to take that away. The first obvious step is to have a dedicated place for people who want to learn how to build and improve.