Building User Interfaces with Video and 3D Graphics For Fun and Profit!
With the availability of cheap video capture and 3D graphics hardware on most desktop computers, we now have the ability to investigate new ways of interaction that were previously beyond the reach of the average hobbyist at home. Rather than viewing everything on a 2D desktop, what possibilities exist for viewing information in 3D? Instead of using a keyboard and mouse, what other more intuitive ways are there to interact with a 3D environment?
This tutorial gives an introduction to some of the less mainstream possibilities that are available on your Linux PC running at home right now. Linux is an ideal platform for performing this type of work with, since there is a wide range of existing source code which can be extended in any way that you can imagine. The purpose of this tutorial is to encourage developers to think of new possibilities for input devices and user interfaces for their computers. In order to support this, I will also cover some of the less used and understood subsystems available under Linux, including the DRI and OpenGL 3D interfaces in XFree86, accessing video cameras using Video4Linux and the 1394 Firewire drivers, using free libraries such as ARToolkit for 3D object tracking, and scene graph libraries for rendering 3D graphics. Many of these subsystems are not documented well and this tutorial will teach from the years of experience that I have in this area.
Another aspect of the tutorial is how to interface custom hardware devices to your computer. I will explain how to implement hardware interfaces using serial, parallel, and USB ports, even for those with limited experience with electronics and no Linux kernel programming knowledge. Finally, I will discuss some of the more exotic hardware possibilities which I explore as part of my research, including the use of head mounted displays and wearable computers. I will be bringing some of my research equipment to the conference for attendees to try out themselves.
Dr Wayne Piekarski has recently completed his PhD in Computer Science at the University of South Australia and has worked in the area of outdoor augmented reality and 3D user interfaces for 5 years. To demonstrate his research work, he developed the Tinmith augmented reality software system, as well as a number of different backpack computers to enable users to experience real time 3D environments while moving around outdoors. Developing these systems has involved the hacking of lots of diverse types of software along the way, as well as the occasional hardware device.
Wayne is currently the Assistant Director of the Wearable Computer Lab at UniSA, one of the leading labs in the world for augmented reality and wearable computer based research. He is also a lecturer in Computer Graphics and Computer Systems Architecture with the School of Computer and Information Science. He has been invited to speak about his research at a number of international conferences all over the world, including the last four LCAs and was awarded a much prized LCA best speaker award in 2002! Wayne has worked with Linux since 1995 when he first installed Slackware and kernel 1.1.59, and has used it ever since for his development work.