MikuBox: Pseudoholographic projection box
This project uses the Pepper's-Ghost effect in a medium-sized form factor to create the illusion of a projection standing in free space.
A black wooden box houses a LCD-Monitor and a RaspberryPi.
A glass plate is mounted at 45° angle to reflect the image of the monitor in the top of the box. Scrap PCBs serve as a backgound.
Principle of Operation
The „Pepper's Ghost“ effect, is based on mixing light from a hidden (here LCD) and a „normal“ (here Background) source. It has been used in stage plays since the 19th Century by temporarly illuminating a room not directly visible by the audience. This added partially transparent objects or actors „ghosts“ to the visible stage. In this setup an LCD provides an overlay animation added to a fixed background.
By choosing the box dimensions right, the light path from the background to the viewer is made longer than the path from the LCD. The projection is thus precived as freestanding in front of the background instead of on it. This causes two 2D layers to be precived as a 3D scene.
Because the mirror effect of the glass can only add light to the scene, but not remove it, the backgound may shine though dark parts of the animation.
Construction
The MikuBox is constructed around an off-the-shelf 21.5„ 1080p PC Monitor and is made out of MDF. The monitor of choice uses a VA-LCD Panel to provide better black levels than standard TN-Panels. It also does not suffer from IPS-Glow. It is, however, view angle dependent. Ideally an OLED-Panel or other self illuminating pixel display would be used, but these were unobtainbale at time of construction.
The dimensions of the box are derived from the monitor. It is important that some depth (a) is added to the box compared to the distance between bottom and LCD (h). This distance will be the precived distance between background and projection.
The background is made out of unused scrap PCBs with dark blue soldermask. It is illuminated by stray light only. It is not nessacary to use a background, but it will improve the 3D effect. A patterned background is recommended as it will make the parallax effect more obvious. A background too bright will shine through dark parts of the projection, so it should be avoided if such content is to be projected.
Extra height (b) is added to house the electronics and cables. A RaspberryPi 1 is internally connected to the LCD monitor via HDMI. Ethernet, Analog Audio and Power are routed to the back.
Software
The RaspberryPi inside the box run standard a Raspberian Lite (Debian based) OS without GUI. Video Playbay is done by omxplayer, which uses the Hardware video decoder of the rPi SoC. A systemd unit file is added to the end of the Boot process to run a video playback script.
Unit File
[Unit] Description=Video demo loop After=network.target [Service] Type=simple User=root ExecStart=/home/pi/mmd/demo.rb [Install] WantedBy=multi-user.target
Video playback script:
#!/usr/bin/env ruby require "timeout" require "fileutils" Dir.chdir(File.dirname($0)) while true Dir.glob("*.mp4").shuffle.each{|filename| puts ".... Playing #{filename} ...." system("/usr/bin/omxplayer", "-r", "--no-osd", filename) } end