Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Make a programmable mirror (github.com/hannahmitt)
1172 points by hannahmitt on Sept 11, 2015 | hide | past | favorite | 136 comments

What an absolutely awesome idea. I love things like this that just blend software and information into the physical environment seamlessly.

I see stuff like this and just think, yeah, now we're living in the future :-D Kind of reminds you how cumbersome and inappropriate it can be to have to pull out a dedicated black slab of glass to access all your information.

The future (at least the one I want) without a doubt is information distributed throughout and blended with the rest of the 'physical' environment so it can be accessed in a truly interactive, head-up manner, not always funnelled and filtered through a singular device - be that VR, AR, or just a load of nicely designed physical interfaces like this one.

I believe the term for things like this is an 'information radiator'. The benefit of ambient displays is they're always on so you don't need to seek any information out. It's just there.

They're quite popular in the agile community. Digital signage and wallboards everywhere. The downside is you can become conditioned to them and not notice things over time.

This is quite old but sums is up: https://www.atlassian.com/wallboards/information-radiators.j...

You mean like a wall clock?

Yes, but why just stop at one clock?


Take them with you wherever you go!


Like a portable wall clock? A port-a-clock if you will? What a brilliant idea. We could affix it to a strap of leather so you can carry it around your waist. Given a few years we could probably make it so small you could wear it on your wrist!

You may also be interested in Jasper:


So you can do voice activated mirrors.

They even specify using a Raspberry Pi in their documentation. I must think of a way to use this.

I'm guessing this is based off [1] which uses a normal monitor and a Raspberry Pi.

This one looks much quicker and simpler than [1], but what if you need to do anything to the tablet (updates, new app, etc)? Remove it and re-adhesive?

Personally, I've been working on doing the same with an RPi and Hover so I can wave my hand in front of the mirror to swipe to new screens/info.

[1] https://www.raspberrypi.org/blog/magic-mirror/

That's funny, I've actually been doing the exact same thing, RPi2 and a Hover. I have a few blog posts about it here which I was going to post after the project is finished.[1]

I actually just bought all the wood to build the frame and I'll hopefully be doing next weekend.


If I'm not mistaken, I see that I'm not the only one still using a Dell XPS M1330 after so many years :)

I got the M1530 back in 2008. Not my primary machine, but it's definitely reliable.

That's awesome, I'm going to keep an eye on this.

The other end of the USB cable and tinkering through that is usually enough. But definitely nice to have non-permanent adhesive.

I used these recently to hang a ~20lb whiteboard -- They're incredibly sturdy:


You can find adhesive velcro at craft stores, it would probably be a pretty good option if you need to remove it occasionally.

How far have you gotten on your project? The idea of a mirror I could wave at to change the information display on is pretty tempting.

I wonder if you could also rig up a few microphones to enable touch controls.

I remember reading an early Stephenson novel, where a stereo system was described as a blank black slate, with essentially invisible controls. Having something like that behind a mirror would be a fun hack.

edit: Or do this: https://news.ycombinator.com/item?id=10205457

It depends on the thickness of the two way mirror, but you may be able to get touch by removing the protective glass from the android tablet so that the digitizer is in direct contact with the mirror.

Or use something like AirDroid[0] (to interact with the tablet)

[0] https://www.airdroid.com/

These days ADB supports a networked transport in addition to USB. [1] seems to suggest that it's enough for full screensharing/control.

[1]: http://marian.schedenig.name/2014/07/03/remote-control-your-...

> but what if you need to do anything to the tablet (updates, new app, etc)?

Usb mouse and keyboard.

Or a Bluetooth mouse, they're dirt cheap on eBay.

Does the device's camera work from behind the one-way-mirror? Specifically, does the device camera work well enough from behind the one-way-mirror to do accurate face recognition? (the idea being that it can display different information for different users and have at least a soft "biometric" privacy lock).

Also, would color images be displayable through the one-way mirror or only white will make it intact?

Color works quite well, the white was purely an aesthetic choice.

I haven't tried out the camera, but hypothetically should work.

I've been wanting to take on this project with a window since I saw it in Iron Man. Congrats on actually getting something off the ground!

This would be rather creepy if we're talking about a bathroom mirror.

You could very easily etch off just the silvering directly above the camera even if the mirror did prove to be a problem. The front fascia on smartphones (which are not transparent) already have an analogous cut-out for the front-facing camera.

So yeah, facial recognition to display per-person customized information is definitely possible, and would be awesome.

If the camera works well, real-time biometrics are definitely a possibility:


I believe the device is on the side that you only see your own reflection, but I could be entirely wrong. I base my assumption on the premise you can see the contents of the tablet from your side.

As I understand it, one-way mirrors let light pass in both directions. To be used as a "one-way" mirror it relies on the light differential between the two sides. Namely, it will always look like a mirror to the brighter side and like a window from the darker side into the brighter side. So, technically, the "mirror" side is facing you wherever the screen is dark on the other side. When the screen is bright, then the mirror works as a window. The problem is that I am not sure how bright is bright, i.e. would a normal color photograph, displayed against the mirror panel from the other side, be too dark to be seen through?

Also, I am not sure of is if it distorts the image in some way to have the mirror panel in between the device's camera and the outside.

Two way mirrors can actually be seen through both sides given the right lighting. Here is more information from MentalFloss https://youtu.be/XKuF1eT1Cqc Given that, I am sure the camera could see out, which in a bathroom could be a much creepier feature than if it couldn't.

This needs a Kickstarter. I would back it immediately.


Thirded. As someone said elsewhere, this is one of those "okay wow the future is here" things. This, more than a hover car, would do the trick. Major quality of life improvement.

I think if this is considered a major quality of life improvement, you might be measuring the wrong metrics

This is a mirror that, from only the pictures shown:

- Tells you the date and time - Tells you the weather (and suggestions!) - Tells you the temperature - Can list your to-do list and major reminders - Shows (personalized!) stock market updates - Shows xkcd - Is a mirror

It could clearly do so much more, but on a typical weekday morning before work that's an easy, efficient way to get a number of morning "tasks" done. Big deal to me!

So everything your phone does already with a swipe of a finger?

I might be underestimating how this might be important in your daily morning routine, but I can fairly well tell the weather by looking thru the window. My alarm is set on phone and I'll have pretty good estimate how much time I've spend in shower.

To-do looks somewhat useful if you actually update it. It's something your phone already does. Personally it is almost always empty as I do not put work items on it.

Stock price and xkcd looks just as gimmicky as first two functions. It always make me cringe a little when smartphone manufacturers advertise their lock screens with such widgets.

Yes, your phone can do everything that this mirror can and more. Well, except work as a mirror.

The entire point of this is that this is a household object that you need anyway, but that it leaks information that might be useful to you. So you would skip the step of taking out your phone and checking xyz. Yes, you'll only save 30 seconds or so of your time. But that's every day and that's one step you don't have to remember to do.

> except work as a mirror.

It does have a front facing camera ;)

Or maybe they already have the important stuff covered?

Even so, this would count as a minor life improvement for most people, at best.

Looks perfect for daily affirmations.

"Good morning, Dave. MY, you look handsome today!"

"You're good enough, you're smart enough, and doggone it, people like you!"

Nice work! I first came across this concept a few years back when someone posted an instructable which I believe he was building a Magic mirror for his daughter [1]. I re-implemented the idea but with a spooky tone, ie. it is framed as a regular mirror in the living room and when a guest stares at it long enough, something spooky jumps into the view. This was done using a VGA monitor, camera and a netbox pc. It was a fun project. If I were to go at it again, I would just use a cheap android tablet solely based on price, simplicity and power consumption. Will also make it useful this time with display of data that interests me than a novelty toy.

[1] http://www.instructables.com/id/The-Magic-Mirror/

This is really neat, but not having a spare Android tablet lying around, I'm left wondering: is there any cost-effective way to magnify a small screen, say that of a SGS3, to a larger size? Anyone have any tricks of light, like angled mirrors or prisms, up their sleeves to achieve such an effect in a thin depth? I don't get the impression that resolution is all that important if all it's going to be used for is a few lines of monochrome text and symbols.

If you have a spare screen, this is a nice low cost alternative: https://www.raspberrypi.org/blog/magic-mirror/

Thanks. Any suggestions for a purchasable low-cost, low-power, low-medium resolution, largish screen?

EDIT: Self-suggestion : https://www.adafruit.com/products/1287.... and the linked to tutorial has some suggestions.

You can get refurbished 17" monitors from Newegg for about $50: http://www.newegg.com/Product/Product.aspx?Item=N82E16824195...

If you're using an rPi and don't want to get an adapter, the cheapest HDMI-input display is this 20" 1600x900px for $90 new: http://www.newegg.com/Product/Product.aspx?Item=N82E16824112...

This is really cool! Although the title could be better, initially I thought this is talking about mirrors that can be programmed to adjust its properties (like tilt, curvature), much like those fancy telescope mirrors, although I'm unable to find a link now.

There's been research [1] into making programmable thin-film membrane mirrors [2] using the piezoelectric effect.

[1] http://prod.sandia.gov/techlib/access-control.cgi/2004/04126... [2] https://en.wikipedia.org/wiki/Membrane_mirror

kind of this one http://preorderlucy.com/

That weather readout would look great with some slick weather icons:


I'm using these for my smart mirror project, and tied them by index to the Yahoo Weather API.[1][2] There isn't a perfect one-to-one relationship between the API codes and the icons, but it's pretty close.

My one complaint about the icons is that they flow outside of the boundaries of what you'd expect them to be contained in, which can lead to some accidental overlap if you aren't careful with your margins.

[1] https://github.com/alaycock/SmartMirror/blob/master/public/j...

[2] https://developer.yahoo.com/weather/documentation.html#codes

I have updated these quite a bit, the bounding boxes are fixed and there are various API mapping a including yahoo. Check it out.

Thanks for the reply! I'll take a look at it soon, I'll definitely grab these again. I think the version I used was from July, so it's definitely outdated.

Here's a face tracking version I made a couple of years back: https://vimeo.com/13156714

It just uses a webcam and detects faces with (the now obsolete) Haarcascading face algorithm.

Did you implement your own Haar wavelet feature cascading classifier?

On first glance I thought the mirror said "Wear pants today" as if the mirror should know whether or not my legs will get cold...

Look at the weather report, if [high, expected, min] temperature below X degrees, suggest pants. Simple!

I don't think it's that simple, you should see all the optimists in March in Canada who are wearing shorts when it's about 5C out!

On first glance I thought the mirror said "Wear pants today"..

Good advice on any day, I think.

We made a similar project last year with voice controller


I wonder if a touchscreen version is doable using the frustrated total internal reflection technique [1]. Relatively cheap projects have been done with that technique, but never with a mirror, AFAIK.

It's somewhat different since it requires a sizable box behind the surface and an internal projector instead of the screen. As for turning it into a mirror, it might be as simple as adding a two-way mirror under the Plexiglas pane (or possibly between the pane and the diffuser layer). But this is where experimentation becomes necessary!

[1]: http://cs.nyu.edu/~jhan/ftirsense/

It would be really cool to add facial recognition at like 0.5hz to the phone so that it only turns the screen on when you're looking at it. Or alternatively customize the content based on who's present in front of the mirror.

Alternatively, one can use a thermal sensor, like I did in this project [1], where the light is turned on when somebody is standing still in front of the mirror

[1] https://github.com/iver56/auto-light

Maybe add a motion sensor to it?

Perhaps a light sensor? You are not going to use your mirror in a dark room. Unless you want the display to show up in the dark, but personally I wouldn't want that.

That wouldn't work during the day if your bathroom has a window (it'd be on all day).

I think the simplest way to do it would be to tie it in directly to your light switch. (Note that the light switch wouldn't be controlling power to the Android device, it would merely be a data signal determining whether the display should be on.)

I'm used to small bathrooms with no windows.

If you have a window, tying it to the light switch would be ideal. Or you could simply add a small button next to the light switch.

Right, but you may not want the mirror to always be on just because you're standing out of it's viewing angle in the same room at 11PM when the moon is out. Maybe a combination of light and motion sensors..?

Motion sensing seems like a better solution to me. I can imagine looking from diagonally across the room wanting a quick glance at the current temp outside and it not showing up because it doesn't see my face.

Solid point. Maybe just a cheap wide angle lens from ebay and use easy off the shelf background subtraction from opencv at a low frequency as an easy of motion detection. I'm trying to think of ways to avoid integrating external peripherals that aren't part of the phone.

I wish this went into a bit more detail about working with the mirror itself. Do you actually need a 2-way mirror? Or can you simply use something with that coating on one side?

Some mirrors may have a thin enough back coating for light to shine through, but the two-way is ideal.

I'm not too sure what you're asking, but a two way mirror is just a surface that reflects some light and lets some through. It's a very thin metallic coating on one side of something transparent.

A few years ago it was really popular for home entertainment electronics like stereo systems and DVD players to use this trick to make the display appear to be "floating" on a mirrored surface. (Example: http://regmedia.co.uk/2011/07/21/philips_bdp7600_blu-ray.jpg ) More recently, I've seen people with phones whose screen protector is made out of this material.

(Personally, the idea of putting a device with a camera and microphone behind a two-way mirror just feels a bit too much like a telescreen for me.)

> Personally, the idea of putting a device with a camera and microphone behind a two-way mirror just feels a bit too much like a telescreen for me.

Tape over the camera, break microphone? But yeah.

Might want to electrical-tape over the phone's front-facing camera, and maybe even excavate out its microphone. Just In Case.

Great idea! It's stunning how this sort of futuristic seeming technology is actually possible using $50 in consumer electronics!

But passive display of information is only part of the story. You have the hardware: a microphone and a speech recognition API. Build voice interaction with this. Even simple commands like "Show me the weather tomorrow", or "Show me my calendar" add an amazing new depth to it. I can imagine myself, shaving and idly telling my mirror to show me my appointments today. :)

I did something similar, but used Windows 10 and rainmeter, which lets you place widgets/images on your desktop. https://i.imgur.com/LKxxvVI.jpg

reddit thread: https://www.reddit.com/r/Rainmeter/comments/3hzy4b/something...

Decades ago I saw this done for auto rear-view mirrors, at Ford's research lab in Dearborn. Way ahead of its time.

If you have to operate electronics in a damp environment, use "Fine-L-Kote" conformal coating on the electronics. Mask all connectors, switches, and the screen face itself, then spray. Inspect with a UV light to see if you missed anything. Most automotive electronics gets a conformal coat, but, annoyingly, most handheld devices do not.

I did some research into two way mirror vendors a while ago to hide my TV and stumbled upon this operation out of Ohio. I never ended up finishing the project and as such never ordered from them so I don't know much about the company. They do have a wide range of two-way mirror options.


If you want to build an interactive programmable mirror, looks like Nanogest might be useful: http://www.nanocritical.com/nanogest/ It's available for both iOS and Android.

It recognizes 4 swipe gestures (top, down, left, right) and a wave gesture.

It's a library so you'd still have to build the information display part.

Thanks for the link! Is this really a state of the art right now? I was a bit disappointed when I saw the video... Gestures look awkward.

Beats me - I just wanted to see if a library like this even existed.

I wonder if humidity and steam would be a problem if this was done in a bathroom.

We used construction paper to black out the back around the tablet. My guess is that the paper wouldn't like the humidity but the rest would be fine. Perhaps you could swap in some black plastic material that would work with spray adhesive.

Wouldn't a coating of black spray paint work just fine?

My Nexus 7 was completely submerged in running water, and only had a couple of drops inside the case - it didn't even shut off.

Really cool idea, but more importantly, why do some people call a one-way mirror a two-way mirror? Its only a mirror on one size.

Because you can use either side of the glass as a mirror.

Not sure if it's this article or not (wouldn't surprise me), but there's a number of "one way mirror" plastic/acrylic sheets on Amazon, with Prime shipping. But all of the larger, more practical ones are sold out as of a few minutes ago, hah. ;-)

Awesome project.

Super cool! Looks like a great anniversary present for the missus. I'm comfortable doing android development, but for those that aren't, have you thought of adding some config buttons for setting the birthdays and whatnot and releasing it in the google store?

I do like this. It is clever.

But when I did something similar for my family, which displayed everyone's chores for the day, and any events we had going on, I simply mounted a tablet on the wall of the kitchen, and wrote a web page to display the info.

Years ago I stayed in a hotel once that had mirrors like this by the elevators. They were displaying the current weather and day's forecast I believe. I've wanted one ever since!

Great idea! Repurposing old tablets / mobiles is the cherry on top. Fascinating how combining otherwise dumb material with smart technology produces something so compelling.

This is really cool!

I built one of these with Facial Recognition for my Capstone project. http://lookingglass.co

This is way more affordable than the same thing I saw at Harrod's for like $10,000. Awesome project! Can't wait to try this.

Ask HN : Absolutely the coolest thing I've seen in a while. Can someone explain, how the phone screen is being displayed in the mirror? It is behind the mirror, it's not in front of it? Since the mirror won't understand touch, there is no touch based control and one needs to pull the phone out to change app etc right.


Answering my own question, secret is in the two way mirror, so no touch and no camera as the other side would reflect back.

You can update it by remoting into the phone or having it pull down configuration changes from a server periodically.

Or using a USB or Bluetooth mouse - Android supports them out-of-the-box.

Love this idea, but removing the device (if you have to) is what rubs me the wrong way.

Anyone have any idea on the implications of mounting the device, say, 3mm away from the mirror? I think that would be about the depth of a case... and if you mount it inside a case, you can remove it seemlessly.

I've been working on a voice-controlled one of these. I just got my Raspberry Pi, but am still working on the software side quite a bit. I'm not really having great success with CMU Sphinx's hotword detection.

You could try blather. It's by Jezra Lickter.

Interesting, I'll take a look. Thanks!

Does a service like wit.ai help you out at all?

Haha, I'm using wit.ai for the actual command processing. But for the activation hotword (to turn on streaming to wit.ai), I'm trying to use Sphinx.

Any suggestions for stores similar to Canal Plastic Center in San Francisco?

You could try TAP on South Van Ness, they have two-way acrylic mirrors on their website: http://www.tapplastics.com/product/plastics/cut_to_size_plas...

I'd suggest finding glass instead of plastic if you can deal with the weight in order to avoid having a distorted reflection. It should also be cheaper -- it looks like they're charging $33 per square foot for 3/16" plastic.

Over the last 25 years I've heard the "Tap Plastics" radio commercial in the Bay Area so many times that the jingle has burned into my brain.

But I can't compare them to Canal Plastic Center.

Pretty cool. I'd want to try this out on a kindle paperwhite and see if it would work.

How obvious is the rectangle of light? I can't see it at all in the first pic, but can make it out a little in the last pic

An OLED screen could solve this, having no light where the screen is black.

OLED have terrible burn in though, they don't like being turned on for long lengths of time.

Someone above suggested adding a motion sensor, so that it would only turn on when you were in front of it.

Hi, I helped hannahmitt make the mirror.

The rectangle of light isn't noticeable at all in normal light if you adjust the brightness on the tablet well. In a dark room it can be noticeable, though.

This is a project I could get into. Full Maker on. I like the details provided and the images. I'm thinking about using some other display than android phone since I don't have one.

This is awesome!

It would be nice if this mirror could sync with your main device using wi-fi. So it would always be up-to-date with your stock options, birthdays and stuff like this.

I have an old nexus I don't use often and would like to attempt this. Anyone know of any good mirror suppliers in the south jersey/philadelphia area?

Can the "two way mirror" be created with "reflective window tint" (insulfilm in Brazil) glued onto a transparent acrylic sheet?

This is absolutely fan fucking tastic!!

I'd like that the "consider no biking " message had the bike image with a strikethrough.

Does the tablet's touchscreen work through the mirror, or is this read-only?

It's still really cool either way.

Would using an iPad Pro be overkill?

I wonder how this would work with the new Raspberry Pi display

The touchscreen device? Probably not that well, certainly not better than a smaller monitor/display.

looks awesome! is that an iron ring I see?

It is! UofT Comp Eng.

Heavily influenced by Snow White!

very awesome!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact