The SO(3) Input Device is designed to provide users with an intuitive means to control the perspective on three dimensional objects displayed on a computer screen. I currently have a patent pending on this device and associated methods. (Wish me luck.) I built a prototype and coded the necessary software in the summer of 1999. This project could be used as a basis for case studies in both hardware and software architecture. (It also could be [and in fact has been] used as the basis of a mathematical talk which highlights the use of geometry, topology and linear algebra in the software algorithms used to interpret the raw data read from the device.) We are going to focus on the various software components needed to make the device usable. In particular we will examine the interactions amongst the OS kernel, the device driver, the device daemon and applications which use data derived from the device. The following diagram gives an overview of these interactions.