iRoom Technologies: The One-Page Summary
by Hans Andersen
updated (3/1/02)
EventHeap (http://graphics.stanford.edu/papers/eheap2/index.html)
The EventHeap is a coordination infrastructure for interactive workspaces; it is a networking protocol that allows clients to post arbitrary events to a shared space. Other clients can subscribe themselves to receive notifications when events matching certain parameters are added to the space.
PointRight(http://graphics.stanford.edu/papers/pointright/)
PointRight is a system for pointer/keyboard redirection among multiple displays and machines. It allows a single mouse and keyboard to be used to control multiple computers as if they were all one large multi-monitor computer.
MultiBrowse (http://graphics.stanford.edu/papers/mb_ubicomp01/)
Multibrowsing is a way of moving web content across multiple displays. It is primarily used to allow a user on one computer in the iRoom to right click on a link in Internet Explorer and designate another computer in the iRoom on which to open a brower for that link.
iStuff
iStuff refers to untethered, platform-independent, remotely configurable I/O devices integrated with the Stanford iRoom architecture in a way that allows users to build and extend post-desktop interfaces. Current examples include iButton (1-bit programmable input device), iLight (1-bit programmable output device) iBuzzers (1-bit programmable audio output device), iSpeaker (arbitrary sound output device)
SMARTBoards (http://www.smarttech.com)
The iRooms most prominent feature is the row of three whiteboard-sized touchscreens purchased from SMART Technologies inc.
The Interactive Mural (http://interactivity.stanford.edu/projects/postbrainstorm.html)
The Mural is a custom-built 6x3.5 64dpi display. It consists of twelve individual projectors connected to twelve linux boxes, with high-resolution 3D rendering support provided by a render farm of 30 linux boxes
PostBrainstorm (http://interactivity.stanford.edu/projects/postbrainstorm.html)
PostBrainstorm is the software that drives the Interactive Mural. It is a visual brainstorming tool for direct pen-based interaction, running on Windows and written in Microsoft Visual C++ and WireGL, which is our in-house parallel version of OpenGL.
RoomApplet
(not publicly accessible)
An applet that controls the lights, the SMARTBoards power state, and other aspects of the iRoom.
Virtual Auditorium (http://graphics.stanford.edu/papers/virtual_auditorium/)
Virtual Auditorum is a videoconference system to support dialog-based distance learning.
RedBoard
RedBoard is a barcode-based login system for iRoom users, built on Windows. Users swipe their Stanford ID (or other barcode), which logs them in and brings up a custom windows icon with their picture and home page URL. Files and URL's dropped on the icon will be emailed to the user when the user's session is closed.
X-10 Protocol (http://www.x10.org)
The X-10 protocol (http://www.x10.org) is used to automate and control the power state of the iRooms lights and projectors.
Porting iRoom Technologies to Mac OS X
EventHeap (10)
The EventHeap, currently in its second iteration, is extremely important to the iRoom; PointRight, MultiBrowse, iStuff, PostBrainstorm, and many other projects all use it for their inter-application and inter-machine communication needs. The EventHeap is written in pure Java2, and works perfectly under Mac OS X. Some iRoom development still makes use of an EHeap Debugger, a Windows app written for an old version of the EventHeap. A cross-platform version built on Swing could replace the old debugger. (This Swing-based debugger is already in progress.)
PointRight (100)
There are two approaches to bringing PointRight to OS X - one approach involves porting the client and server programs to OS X, while the other approach involves a ground-up rewrite of the software with cross-platform capabilities in mind. The latter could serve as an impressive showcase for the EventHeap itself, as recent tests have shown that it is fast enough to handle real-time mouse traffic.
MultiBrowse (80 assuming access to IE)
For MultiBrowsing to work, we need to get access to the internals of a major web browser, so that we can add the Multibrowse command to the contextual menu associated with right-clicking on a web link. Ideally this would be Internet Explorer, given that browsers compatibility, performance, and stability. Other candidates might include OmniWeb, Opera, or Netscape 6/Mozilla. Mozilla, being open source, has the advantage that we might be able to add in the feature ourselves.
iStuff (100)
All the iStuff devices currently use the PC parallel port, which AFAIK isnt available in any form on the Mac. ActiveWire Inc.s (http://www.activewireinc.com/) ActiveWire-USB product could provide an excellent platform for future iStuff development, allowing the project to move away from legacy I/O ports and to USB. A chief obstacle is that no OS X driver exists for the product, although Classic MacOS, Windows, and FreeBSD drivers exist.
SMARTBoards (sep)
Although SMART Technologies has Windows and Classic MacOS software packages for the SMARTBoards, no OS X driver exists. This is a serious problem, because the SMARTBoards are a vital part of the iRoom experience.
The Interactive Mural (n/a)
The Wallenberg Hall installation will probably not have an Interactive Mural installed. Should one be installed, it would have to have a custom application written for it.
PostBrainstorm (200)
Digital Whiteboard applications for brainstorming have long been a feature of the iRoom. Unfortunately, the showcase app, PostBrainstorm, doesnt currently work on platforms other than the Interactive Mural, as it relies on legacy versions of the EventHeap. PostBoard, our pure Java PostBrainstorm Lite application, could serve as a placeholder, but its functionality is somewhat crippled by the lack of Java 1.4 support on OS X.
RoomApplet (sep)
The RoomApplet is a pure Java applet, and it runs under Mac OS Xs Applet Runner, but not in Internet Explorer. This is a big problem, as the intent of the applet is that it should be web-accessible.
Virtual Auditorium (n/a)
Virtual Auditorium is heavily tied to Windows technologies, and might not be used for the Wallenberg Hall iRoom anyway.
RedBoard (60)
(At this point, Im unsure what effort would be needed to port RedBoard.)
X-10 Protocol (200, less w/ perl + drivers help, much less w/Javacomm)
web-based and EventHeap-based X-10 control of lighting and smartboard power is another integral feature of the iRoom. Several X-10 control software packages exist for MacOS 9, but AFAIK none exist for MacOS X. In a worst-case scenario, an older mac running OS 9 and Sand Hill Engineerings XTension software (http://www.shed.com/) could be used, and remote applescripts can be send to the machine by OS X clients. Other possibilities could include adapting existing GPL software, such as JHome (http://sourceforge.net/projects/jhome/) or MisterHouse (http://sourceforge.net/projects/misterhouse/). JHome is written in Java, but relies on the Javacomm API, which might not be available under OS X. MisterHouse is written in Perl and claims to be Posix compliant, which sounds promising.