I bought the PS3 eye camera last year, knowing full well that with some clever modifications, it becomes a cheap solution for achieving relatively high-end motion tracking. Whilst I haven’t got around to taking the knife to my camera just yet, I have begun thinking about how motion tracking will work in my project and constructing some tests with Max/MSP (MaxForLive).
These are really the building blocks of what will ultimately become my final work. Whilst it’s unlikely that I’ll use these patches in anything resembling their current state, it’s an excellent process to see things work (or fail) on a smaller scale. Tools for this week: Max/MSP, Quartz Composer and live video input.
My first test came about via the cv.jit tools and a few hints in the Cycling ’74 forums. The clip below shows tracking of a point using Optical Flow. Once the point is set with a mouse-click, the patch follows movement and sends off values via OSC to Quartz Composer…
In an installation environment, clicking each member of the audience isn’t realistic, so I moved on to a blob detection version. Based on the ideas in eatmoreheart’s Max/MSP patch, this started heading in a better direction. Unfortunately, I couldn’t create an ideal environment for blob detection with live video, so for the sake of testing, I settled for creating and analysing a simple Quicktime movie instead…
This iteration was also the first time I’ve introduced 3D to Quartz Composer. An excellent plugin from Kineme adds 3D model support to QC, allowing you to drag and drop several 3D file formats directly into a patch.
My previous experience with Maya wasn’t… enjoyable, so I have to say I downloaded the open source 3D program, Blender, with some trepidation. It hasn’t been a walk in the park, but all that shouting I did at Maya last year has actually made the learning curve a little easier, and it’s certainly been smoother sailing than I first dreaded.
My hope is that with some simple modelling, I can begin to create some optical effects like this…
…well, we can all dream, can’t we?