Tangible user interface game controlled by moving a lego board on front of the camera. Developed in the context of the course CS-211 Introduction à l'informatique visuelle at École polytechinque fédérale de Lausanne (EPFL).
The implementation was subdivided in three main phases.
- Implementation of the game itself.
- Implementation of the edge detection algorithm.
- Incorporation of the edge detection algorithm inside the game.
Note that the parameters of the edge detection algorithm are optimized for our testing room, you may need to adjust them in order to obtain optimal results. In order to move the plane correctly, you may also adapt the reference system depending on where you position your webcam.
The goal of this simple game is to hit cylinders on a plane with a ball.
This is done by tilting the plane either with the mouse (click and drag on the playing area) or with a real lego board and a webcam to capture its movements.
You gain points by hitting cylinders and lose them if you hit the edges of the board.
Cylinders can be added by holding the SHIFT
key and clicking on the board.
Pressing ENTER
will pause the game.
You can also click "Play with Video" to let the board follow a prerecorded video.
Note that you can access the above description by pressing the ?
in the top-right corner from both the main and the resume menu.
We have implemented three different game layouts: Classic, Star Wars and Pokèmon. As an addition, when playing in Star Wars mode, the Star Wars theme is played in background.
To play using real time edge detection you will need:
- A green lego board
- A webcam
In the application
folder you find the linux and the windows standalone applications.
Alternatively, you can install Processing and the Papaya library in order to launch the game directly from processing.
MIT licensed, details in LICENSE.md
- Albergoni Tobia - aTobyWanKenobi
- Conti Riccardo - craiker
- Romerio Lucio - lromerio