Skip to content

aidanmontag13/MultiPlaneDisplay

Repository files navigation

MultiPlaneDisplay

How does it work?

Multi-Plane Display uses image processing and Pepper's Ghost illusions to enable any photo to be viewed with real depth, creating a "2 and a half D" Illusion.

Workflow

  1. Depth segmentation
    A depth map is extracted from the image using Depth Anything v2 and used to segment the scene into foreground, middleground, and background layers.

  2. Viewer tracking
    Monocular head tracking estimates the viewer’s position relative to the display.

  3. Shadow correction
    Shadow maps are dynamically adjusted based on the viewer’s position to prevent off-axis ghosting artifacts.

  4. Optical display
    The layered images are displayed through a parascope mirror array, producing the virtual display stacking effect.


Input Image

Processed Image

Viewable Result

Gallery

Features

  • Automatic image processing with input from USB drive
  • Compatibility with .jpg, .jpeg, .png, and .tiff
  • Automated occlusion maps with real-time headtracking
  • Automatic Display turn-off and idle mode when unobserved for 30 seconds

Parts List

INSTALLATION

  1. Configure the Raspberry Pi camera and display

Edit the firmware configuration file:

sudo nano /boot/firmware/config.txt

Change this line:

camera_auto_detect=1

to:

camera_auto_detect=0

Add the following lines to the bottom of the file:

dtoverlay=vc4-kms-v3d
dtoverlay=vc4-kms-dsi-waveshare-panel-v2,10_1_inch_a
dtoverlay=imx219,cam0

Save the file and reboot the system.


  1. Install system dependencies

Update the system:

sudo apt update
sudo apt upgrade

Install required packages:

sudo apt install -y python3-libcamera
sudo apt install -y libcamera-apps libcamera-dev libcamera-tools
sudo apt install -y python3-picamera2
sudo apt install -y unclutter
sudo apt install -y libcap-dev

  1. Clone the repository
git clone https://github.com/aidanmontag13/MultiPlaneDisplay.git
cd MultiPlaneDisplay

  1. Create the Python environment

Create a virtual environment with access to system packages (required for libcamera):

python3 -m venv venv --system-site-packages

Activate the environment:

source venv/bin/activate

Install Python dependencies:

pip install -r requirements.txt

  1. Install the systemd service

Move the service file:

sudo mv ~/MultiPlaneDisplay/run_multiplane.service /etc/systemd/system/

Reload systemd:

sudo systemctl daemon-reload

Start the service:

sudo systemctl start run_multiplane.service

sudo systemctl enable run_multiplane.service

About

This is a repository for code and schematics for multiplane display concept

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages