MirrorMirror: A Raspberry Pi-Powered Magic Mirror
blog.dylanjpierce.com
blog.dylanjpierce.com
I could imagine lots of useful or entertaining use cases for such a mirror...
In which case I believe the answer is no, we can't currently do AR in a reflection. In order to match the viewer's perspective, you'd have to either use eye tracking (kind of a poor solution for something as shareable as a mirror); or use a multiscopic display, a technology that doesn't currently exist at any acceptable resolution.
It might be possible to implement a limited sort of AR where the mirror's added content is on a plane at a fixed distance by a trick of lenses. But if you or any object sits between the virtual plane and the mirror, there wouldn't be any occlusion, so it would somewhat break the illusion.
That’s definitely wrong.
REALEYES[1] has built some prototypes, although they only sell static ones.
At my university we actually have a high-resolution (1080p) multiscopic display from them.
It’s just 80'000k EUR
Well, a "static multiscopic display" is essentially an old-school hologram, we've had those for a while. Their website doesn't appear to mention any real multiscopic display yet.
I'd be curious to know the number of viewing angles and axes of the experimental display you mention. 1080p is only half the information: if it has the angular resolution of a Nintendo 3DS, it would very much fall out of the acceptable zone, especially if your goal is to superimpose any sort of AR on a mirror.
Every 2mm by 2mm square has 256 by 256 pixels.
The viewing angle is approximately 90° in both horizontal and vertical.
Well, it’s only one single non-static prototype, and the parters[1] have given up on the project.
But it is possible, and really impressive.
----------------
[1]:Research partners: Fraunhofer IPM & Fraunhofer IPT
Industry partners: RealEyes GmbH & AutoPan GmbH & Co & Euromediahouse GmbH & Meuser Optik GmbH & Kleinhempel Ink-Jet-Center GmbH
Associate partners: Viaoptic GmbH & Soul Pix
Looks like it's certainly possible.
I'm not a graphics/projection expert, but you might be able to boost the brightness for more visibility by adjusting the color profile of the monitor or maybe by adjusting the color output of the pi. I think ultimately it depends on the ambient light in the room and the brightness of your monitor. The brightest possible monitor would be ideal to offset the effect of the mirror.
I targeted a mobile device behind a mirror, so I included functionality that made the front-end refresh the page (and possibly load new front-end code) upon a special message from the backend. That way, I didn't have to connect the device for every update.
I never quite finished any useful data plugins except for the weather, but if anyone's interested the code is here:
https://github.com/timvdalen/webmirror-back https://github.com/timvdalen/webmirror-front
If the author of this page turns up can I suggest one thing - image optimisation. You could save a chunk of bandwidth cost for yourself and others browsing on metered services, and improve your page load times by not having ~seventeen 3-5 MB (~5300x3000px ) images being loaded, especially when none of the 720x146 px images can be clicked to show a larger version.
This page is 72MB big and took 100 seconds to load, even on a non-congested 8MB DSL service.
Has anyone had any success hooking a Kinect up to a Raspberry Pi? I've seen threads that discuss a few libraries that are available for depth and image data, but I don't recall ever seeing anyone successfully use a Kinect "controller" (gestures to move a pointer).