Intermediary Translation Map A-> 2,3 C->1 1->B 2->B A iStuff Input Component 1 Application C iStuff Input Component B iStuff Input Component 2 Application 3 Application
Anoto PeniMouse iMike iDog X10 iStylus iSlider RF iButtons
Anoto PeniMouse iMike iDog X10 iStylus iSlider RF iButtons
iSpeaker iLight iBuzzer
iSpeaker iLight iBuzzer
Event Heap PatchPanelProxy iStuff Device Transceiver iStuff component Application Wireless connection iStuff Architecture
Event Heap PatchPanel Intermediary PatchPanel GUI PatchPanel Configuration PatchPanel Architecture
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
iButtons X10 iPen iDog iLight iSlider USB receiver iDial
Taking Advantage of Infrastructure 5-line Event Heap based application can talk to iStuff iStuff device = wireless device + PC proxy/daemon –Lightweight, cheap, low-power,... devices Application eheap.jar Event Heap eheap.jar PC daemon iSpeaker Radio Transmit eheap.jar PC proxy iSlider Radio Receiver "iStuff device"
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, b, 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
The Stanford iRoom