Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
calibrate/rgb
img
laby
live_full_mz
masks
mz
mz_tiled
sketchbook
.gitattributes
.gitignore
BinaryTree.py
Cell.py
Grid.py
LabyrinthMaker.py
LabyrinthMakerGLFW.py
LabyrinthMakerGLFW_Kinect.py
LabyrinthMakerVideoIn.py
LabyrinthMakerWEBCAM.py
Mask.py
MaskedGrid.py
OneTile.py
README.md
RecursiveBacktracker.py
SKETCHBOOK.md
Sidewinder.py
StillLabyrinthMaker.py
StillLabyrinthMakerPSEYE.py
calibrate.py
demo.py
demo2.py
demo3.py
frame_convert2.py
kinectTest.py
mazewalker_2.py
multi_proccess_demo.py
pseye_test.py
runforever.py
saveTestImages.py
screencap.sh
screencap.txt
sender.py
sender_full.py
sender_v2.py
sender_v3.py
shower.py
split.py
stitch.py
test.svg
title_1.png
title_2.png

README.md

ISAAC CLARKE - LABYRINTH MAKER

MA COMPUTATIONAL ART

2018

CONTENTS

  1. Requirements
  2. References
  3. Libraries
  4. Main Files
  5. Additional Files

1 - REQUIREMENTS

  • Python3 (tested on 3.5.4)
  • KINECT v1 MODEL 1414
  • An external monitor (attemps to run on disply 2, will die if not there) libfreenect, numpy, pseyepy, OpenGl, OpenCV, GLFW, Pillow

2 - REFERENCES

  • BUCK, J. (2015) MAZES FOR PROGRAMMERS. Pragmatic Bookshelf
  • Cannon, M. (2011) Carcanet Press. London.
  • Borges, J.L. (1962) Labyrinths. New Directions.
  • Joyce, J (1914) The Dead. Grant Richards Ltd.

3 - LIBRARIES


4 - MAIN FILES

LabyrinthMakerGLFW_Kinect.py

This is the main file for the installation. It connects to the kinect and external monitor, and processes the image feed through opencv then the labyrinth generator, and finally draws it in opengl.

Grid.py

Cell.py

Mask.py

MaskedGrid.py

These are the Classes which process an image and turn it into a labyrinth. These are translated into python from Jamis Buck's Ruby examples in Mazes For Programmers (2015). Alongside the porting to python I have also added a few functions which allow me to get a list of points so I can draw in opengl rather than drawing to file as show in the examples. I also add a key addition to the Grid Class so that I can generate Unicursal Mazes (Labyrinths with one continous path with no dead ends or loops) which is entirely my own solution.

frame_convert2.py

This is a libfreenect provided file needed for translating the kinect images into the correct formats for use with numpy etc.

RecursiveBacktracker.py

Sidewinder.py

These are algorithms for joining cells in a grid to create mazes. Again adapted into python from Buck's Mazes for programmers. I have provided two examples, the sidewinder algorithm is incompatible as it does not create orthogonal/perfect mazes (there are loops) so they cannot be converted into the single path labyrinth that I wanted. The recursive backtracker does create orthoganal mazes so I am using this in as the base algorithm to build upon.

5 - ADDITIONAL FILES

LabyrinthMarkerVideoIn.py

This is similar to the main file at the top of the list. But instead of a kinect this takes a video input and records to a video output. So you can use it as a video proceesing effect, where every frame is a labyrinth!

saveTestImages.py

This is a program I wrote to quickly catch still images from the kinect rgb/ir cameras in order to calibrate them.

calibrate.py

This is an adaptation of an opencv example to get the Camera Matrix and Distortion coefficients used in the main program to correct the images and remove lens distortion.

stitch.py

split.py

sender.py

OneTile.py

These are examples of my earlier work creating large scale high resolution still images. You can provide an image and get either a single image or a tiled image in return.

StillLabyrinthMakerPSEYE.py

Similar ot the above, but this creates single large images from a camera feed. For use with the PS Eye camera.

screencap.txt

bash cron job to catch screenshots.

runforever.py

This runs the main script and reboots it if it closes.