- make sure OpenGL and GLFW are installed on your system
- install the python requirements with
pip install -r requirements.txt
- create a
_config.py
file specifying your setup, for example:
camera_size = (1024, 576)
projection_size = (1280, 720)
monitor_name = b"NeoPix"
camera_id = 0
- calibrate your camera/projector with
python calibrate.py
- generate and print some markers with
python generate-markers.py
- run an example program like
python detect-markers.py
- have fun!
Application | Screenshot |
---|---|
paint.py | |
detect-markers.py |
The standalone demos like paint.py
or detect-markers.py
run in fullscreen and take the whole desk. Paperspace takes a different approach. It's an application that can run many different little programs at once.
Each program is represented by a piece of paper that you place on the table. Paperspace starts to execute that program as soon as it is visible and stops it when you take the paper away.
Create and print some papers with python create-paper.py
, then run the application with python paperspace.py
. Note that you have to restart the paperspace application if you create new papers while it is running.
Papers of type video play videos.
Create them with:
$ python create-paper.py video --file <videofile>
Portals take a snapshot of the desk and project them back on the desk. You have to print two papers, one that captures a region of the desk (PortalIn) and one that projects it (PortalOut).
Create them with:
$ python create-paper.py portal-in
$ python create-paper.py portal-out --portal-in <portal-in-id>