170 likes | 248 Views
A iStuff Input Component. 1 Application. Intermediary Translation Map A-> 2,3 C->1 1->B 2->B. B iStuff Input Component. 2 Application. C iStuff Input Component. 3 Application. iButtons. iSlider. iMike. iStylus. X10. RF. iDog. Anoto Pen. iMouse. iButtons. iSlider.
E N D
A iStuff Input Component 1 Application Intermediary Translation Map A-> 2,3 C->1 1->B 2->B B iStuff Input Component 2 Application C iStuff Input Component 3 Application
iButtons iSlider iMike iStylus X10 RF iDog Anoto Pen iMouse
iButtons iSlider iMike iStylus X10 RF iDog Anoto Pen iMouse
iBuzzer iLight iSpeaker
iBuzzer iLight iSpeaker
iStuff Architecture iStuff Device Wireless connection iStuff component Transceiver Application PatchPanel Proxy Event Heap
PatchPanel Architecture PatchPanelGUI PatchPanelIntermediary PatchPanel Configuration Event Heap
iStuff • Prototyping Desktop GUIs: easy • Prototyping Post-Desktop UIs: hard • Goal: Simplify post-desktop experiments UI • Idea: iStuff := toolkit for prototyping Post-Desktop UIs • Basic input/output components • Wireless, autonomous • Designed for augmented environment (iRoom) • Lightweight, Cross-platform, simple API
iDial iLight iButtons X10 iSlider iDog iPen USB receiver
Taking Advantage of Infrastructure iSpeaker iSlider • 5-line Event Heap based application can talk to iStuff • iStuff device = wireless device + PC proxy/daemon • Lightweight, cheap, low-power, ... devices Radio Receiver Radio Transmit "iStuff device" Application PC proxy PC daemon eheap.jar eheap.jar eheap.jar Event Heap
iStuff: Evaluation • Successful sample uses • Start The Room • iPen • iPong • Great Unified Input Theory: • New paradigm for writing room applications
Event Heap app to speak text import iwork.eheap2.*; class speaktext { // Connects to event heap in static void main(String []args) // arg[0], and sends AudioEvent { // with the text in arg[1]. try{ EventHeap theHeap=new EventHeap(args[0]); // Connect to the Event Heap Event myEvent=new Event("AudioEvent"); // Create an event myEvent.setPostValue("AudioCommand", "Read"); // Set its fields myEvent.setPostValue("Text", args[1]); theHeap.putEvent(myEvent); // Put event into Event Heap } catch(Exception e) { e.printStackTrace(); } } } >speaktext iw-room2.stanford.edu "Hello World"
Great Unified Input Theory • iStuff wireless hardware layer can be RF, X-10, Bluetooth, 802.11b, Infrared, Cellular,... • Offer iStuff as abstraction layer of room devices above this level • Adopters can • Use our hardware and software designs and replicate devices • Use our software and use off-the-shelf components as iStuff • Implement the "plugins" for new hardware technologies • Make applications listen only to Event Heap Events
Summary • The Stanford iRoom • Ubicomp requires re-thinking user interface metaphors and architecture • iStuff as a tool to facilitate experimentation in ubicomp interfaces • Not the answer to "post-desktop mouse & keyboard", but may help finding it... • http://iwork.stanford.edu/ • http://www.stanford.edu/~borchers/iStuff/