The Multitouch Aquaria Project

Quarter Break Update

Thursday 2011-03-10

Despite the absence of updates here, I was not idle over quarter break! I worked on several things:

Unfortunately I did not fully meet with success on any of these tasks, but I have made progress.

The Touchscreen Bug

Before anything useful can be done with multitouch I have to get simple touch-as-mouse interaction working, which it surprisingly does not in stock Aquaria. My first guess of the cause was that Aquaria uses relative pointer motion, and that the way the pointer can instantaneously “jump” across the screen was causing problems. I spent my plane flights to and from California spelunking all of the input handling code for something that does this, but came up empty-handed. Relative motion doesn't seem to be used for anything other than to detect if the mouse is being used as an input method. (Aquaria supports switching between input methods dynamically—this is done by checking for activity on each one on each gameloop iteration in Aquaria/DSQ.cpp starting on line 4179 or so.)

Figuring out this issue is currently my most important task.

Video Capture

I tried capturing raw video using several different methods:

ffmpeg

I was unable to get ffmpeg to output fullscreen captures to uncompressed files at reasonable framerates, and the Atom processor in the Lenovo S10-3t lacks the power to do real-time encoding at 1024×600 with a codec that doesn’t cause significant quality degradation (I tried).

RecordMyDesktop (GTK)

This rather clunky tool does work, but it insists on encoding the captured video as full resolution Theora OGG files. Framerate is reasonable, at around 15 FPS, but it is frustrating to be forced to double-encode video (it will be triple-encoded by the time it’s watchable on a video-sharing site). The encoding process, of course, takes ages on the Atom. I really just want to capture raw video and transfer it to a different machine for editing and encoding.

I also tried Istanbul, but couldn’t get it to work at all. I’ll probably use RecordMyDesktop in the futurep—it’s better than nothing—though I may try xvidcap. Alternatively, now that I have returned to Rose, I may just borrow a decend HD camera from the Digital Resource Center.

Touch development tools

I also spent some time trying to get mtview and uCube to compile on Maverick, unsuccessfully. The first is a debugging tool that shows touch points and their properties&mdsah;the Microsoft Surface in the CSSE department’s lab features a similar tool, which is quite useful. I was especially interested in this tool because it could show touches when recording videos to post here. I’m honestly not sure what uCube does, aside from being “a visual feedback tool that allows one to quickly test gesture recognition”.