Spatial computing environment; room modeling

Description of the project: Computer labs and collaboration spaces now have an overabundance of pixel real estate (i.e. screens). The ability to spatially manipulate those pixels requires that computer programs be cognizant of where the pixels are in the room. We need a tool that will allows us to identify the location of all of the screens in a room and map them into an arbitrary coordinate frame.

For example, if we define a room with origin at [0,0,0], we may define each screen in the room via [x1,y1,z1] (upper left) and [x2,y2,z2] (lower right). However, this does not provide flexibility for non-square (i.e. curved) monitors or projectors with keystone projections. While a planar assumption is reasonable to start, flexibility for non-standard displays is desirable. Given coordinates for all of the screens, we want to be able to visualize the room in 3D. Inputs and outputs should be standard machine readable format (e.g. json, xml, etc.). Applications include labs, CAVES, and other spatially enabled immersive environments.

Confirmed Mentor: Klee Dienes
How to contact the mentor:
Confirmed co-mentors: Frank Tanner,
Deliverables of the project: Debian package(s) that perform some or all of the above functions.
Desirable skills: Coding, packaging, linear algebra, general ability to do cool stuff
What the student will learn:
Related projects: Prototype python code that does some of these functions is (will be) available via GPL.