When a friend asked me to help put together some projection mapping for a new event in 2010, the tools were obvious. Quartz Composer had been the go-to technology for interactive video toys for a while (at least for OSX users) and VDMX was always the most flexible and powerful way to combine and perform with these in a live situation.
What follows is a record of the process for posterity; the development leading up to one summer night in our small corner of Japan.
Make White Shapes
We thought it best to stick to cubes or at least rectangular boxes just to keep the surfaces simple and the digital elements consistent and re-usable. So cardboard boxes were a natural choice.
Only being able to source the usual plain brown cardboard, we needed some way to make them white. After a failed experiment in spray paint, we hit on the idea of just gluing white paper to the outsides.
There are many simple ways to make a cube in Quartz Composer. At the time the community had added even more to the standard library. But we were doing this from scratch and wanted a fully-custom set up. Because of stubbornness.
Each cube was to have three visible faces, with each corner position to be set and saved inside VDMX. This meant exposing the x/y controls for each corner; seven corners in total with six around the outside and a single central one.
Each face needed to be individually mappable for video and colour variation inside the VDMX performance interface. We also wanted some independent automation for each face as well as the cube as a whole. We ended up including ‘preset’ modes within Quartz such as ‘flash’ and ‘colour cycle’ with controls for LFO type, variation etc.
Though we’d hoped to avoid using any QC plugins, we found that corner-pinning and warping wasn’t going to be that easy. We eventually settled on the excellent 1024 Perspective plugin (seen below in Figure 2a) made by the ever-generous François Wunschel.
This might seem like overkill when a great deal of these things can be achieved directly inside VDMX without the need for additional Quartz programming. Until you consider the problem of masking.
Naturally some boxes will sit in front of other boxes, effectively ‘masking’ them from the projector’s point of view. If you turn off the video on a front-most box, you don’t want the video on a box behind it to become visible. So each digital cube needed to have its own dark twin below it, exactly following its shape and positioning in order to block (or mask) whatever was behind it.
Seeing how Quartz is entirely void of the notion of inheritance, these two twin cubes needed to be maintained directly. The primary cube was simply duplicated for the mask version of itself, with the resulting headache of having to remember to make any changes to one that was made to the other.
Once the automation presets were in place, most of the prep work for performance was in adding and labeling the input splitters which would expose the controls to VDMX.