Skip to content

hinzundcode/cyberdesk

Repository files navigation

setup

  1. make sure OpenGL and GLFW are installed on your system
  2. install the python requirements with pip install -r requirements.txt
  3. 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
  1. calibrate your camera/projector with python calibrate.py
  2. generate and print some markers with python generate-markers.py
  3. run an example program like python detect-markers.py
  4. have fun!

standalone applications

Application Screenshot
paint.py paint.py screenshot
detect-markers.py detect-markers.py screenshot

paperspace

paperspace screenshot

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.

video paper

video paper screenshot

Papers of type video play videos.

Create them with:

$ python create-paper.py video --file <videofile>

portals

portal papers screenshot

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>

About

fun with a projector, webcam and desk

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages