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 Pen iMouse
iMike
iDog
X10
iStylus
iSlider
RF
iButtons
Anoto Pen iMouse
iMike
iDog
X10
iStylus
iSlider
RF
iButtons
iSpeaker
iLight
iBuzzer
iSpeaker
iLight
iBuzzer
Event Heap
PatchPanel Proxy
iStuff Device
Transceiver
iStuffcomponent
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
iButtonsiButtons
X10X10
iPeniPen
iDogiDog
iLightiLight
iSlideriSlider
USB receiverUSB receiver
iDialiDial
Taking Advantage of
Infrastructure
• 5-line Event Heap based application can talk to
iStuff
• iStuff device = wireless device + PC
Application
eheap.jar
Event Heap
eheap.jar
PC daemon
iSpeaker
Radio Transmit
eheap.jar
PC proxy
iSlider
Radio Receiver
"iStuffdevice"
iStuff: Evaluation
• Successful sample uses
– Start The Room
– iPen
– iPong
• Great Unified Input Theory:
– New paradigm for writing room applications
www.stanford.edu/~borchers/istuff/
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
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/
The Stanford iRoom
imouseI stuffslides

imouseI stuffslides