Eristoff - mapping game
Projecting interactive eyecandy

Eristoff / Famous
Concept / Design / PM
Tech setup / game development
LAB101 (rapid-media)
3D programming
3D models / motion
Wes Nijsen (DiD)
Beaming / Sound HW
BEAM-INC (rapid-media)
Projection mapping isn't new these days,but this one is different. Using iPads as gamecontroller the people could play a fast paced 3D game in real-time
This isn't your average game setup So I'll explain some of the technical concepts below.
Eristoff-interactive-projection-mapping Eristoff-interactive-projection-mapping ipadshot.jpg players.jpg buildingshot.jpg players

Hardware setup

With four hours of game time there was no margin for failure so we increased the redundancy of all our hardware and software components.
We used the following hardware.
  • 2 x Mac Pro
  • 2 x Barco HD20 (Combined 40,000 lumens)
  • Kramer 4x8 DVI Matrix
  • 2 x Airport extreme
  • 6 x iPads with 4 of them as backup only
  • 2 x Kramer EID generators
  • 3 x Backup power generators
We started the project on Windows because hardware is cheaper and faster.
I tried to port the Nvidia Cuda Video Decoder to Cinder but ran into trouble with different OpenGL Extension frameworks (Glew & Glee) so I decided to switch the project to OSX which has fast HD playback on Cinder.
The Mac introduced a new problem which was new for me, HDCP protection.
From the moment you connect a Mac Pro to a HDCP compliant device such as a DVI Matrix, all further communication will be encrypted which in our case was a problem since the projectors where not HDCP compliant. As you can see in the schema below we introduced a EID generator between the Mac and the Matrix. The EID generator isn't HDCP compliant and therefore all further communication will be non encrypted. Without it we had a black screen on the projectors.

Software setup

We used Cinder for the most part of this project.
The project consisted of 3 parts: a projection calibration tool to calibrate the building mesh vertices and projection matrix, game software, iPad software
Source code of the unbranded version is available at Github

On the iPad I started from a standard OpenGL ES2 project and included Cinder to have Boost & OSC support.
All other rendering & animation was done using classes from my co-worker Kris Temmerman (Cubebuilder github)

As I said before redundancy was really important therefore we setup two machines running the same game. The backup Mac was a little bit slower than the live machine.
This resulted in out of sync window sequences
The solution was simple, one machine is assigned to be the master and the other slave. Only the master calculates the scores and sends game updates to the iPads and the slave server.

The below techniques where implemented by Kris Temmerman from Neuroproductions.

To check for hits we used a technique which is often used in games. When a shot was fired we render the whole scene color coded to a frame buffer and check the pixels.

The building facade consisted of two layers, one with the brick wall & shadows and the plaster.
As you can see above the plaster was color coded blue.
Upon a hit the surrounding triangles where animated off the wall.