Documente Academic
Documente Profesional
Documente Cultură
Björn Hartmann
bjoern@cs.stanford.edu
Prototyping Tools for
Ubiquitous Computing
1 Enable
Rapid Authoring
Off the Desktop
2 Aid Iteration
by Managing
Feedback
3 Aid Exploration
of Multiple
Alternatives
2
Lawson, How Designers Think, Architectural Press
Cross, Designerly Ways of Knowing, Springer
Schrage, Serious Play, HBS Press
Moggridge, Designing Interactions, MIT Press
Buxton, Sketching User Experiences, Morgan Kaufmann
3
Exploration:
Generate Parallel Alternatives
Redrawn from
Buxton, Sketching User Experiences
4
Iteration: Incorporate Insight
ANALYZE
EVALUATE PROTOTYPE
9
1 Enable
Rapid Authoring
Off the Desktop
2 Aid Iteration
by Managing
Feedback
3 Aid Exploration
of Multiple
Alternatives
10
Atkinson, Hypercard, 1985 Denim. Lin et al. CHI 2000
Also:
SILK, Landay, 1996
DEMAIS, Bailey, 2001
11
© Chumby Industries
© Medtronic
12
Phidgets, Greenberg, 2001 Bug Labs, 2009
Also:
iStuff, Ballagas, 2003
Calder, Lee, 2004
DART, McIntyre, 2004 13
Fieldwork (11 designers, 3 companies)
14
1. Leverage familiarity with
storyboards: use states1 d.tools
as level of abstraction
2. Tightly integrate of
physical and digital
design realms
3. Visualize hardware
configuration & events in
software, in real-time
If |Buttons| < |Letters|:
1. Select alphabet subset
2. Select letter from subset
Available Controls:
1. X/Y Tilt data
2. Discrete corner buttons
TiltType, Partridge et al., UIST 2002
16
Example: Tilt-based text entry
3-way navigation
switches
2 axis accelerometer
17
18
19
Design Environment
GUI Editor
Design Environment
Device
Designer
Smart Hardware
Design Environment
Storyboard Editor
Force Sensitive
Accelerometers Resistors
IR/Ultrasonic Phototransistors
Rangers
24
Accelerometer X axis
//detect accelerometer peaks
25
ML algorithms enable demonstration-based
authoring.
HCI: What are appropriate interaction techniques
that make real-time demonstration and testing
feasible for designers?
Insight: Combine recognition and direct
manipulation to leverage the designer’s
knowledge
26
Authoring by Demonstration
[chi 2007]
27
28
29
30
Dynamic Time Warping (DTW)
Demonstration Signal
for i := 1 to m
DTW[0,i] := infinity
Quadratic in time & space
for i := 1 to n
DTW[i,0] := infinity
But: n is small @100Hz sampling
DTW[0,0] := 0
for i := 1 to n
for j := 1 to m
cost := d[s[i],t[j]]
DTW[i,j] := cost + minimum(DTW[ i-1, j ], // insertion
DTW[ i , j-1 ], // deletion
DTW[ i-1, j-1 ]) // match
return DTW[n,m] [Sakoe, Chiba, ‘78]
31
}
32
What? Why?
Usability Inspection Analysis of d.tools as a
visual notation
33
Study 1 Study 2
Tool: d.tools Tool: Exemplar
Task: Build functional Task: Create sensor-based
MP3 player prototype controls for a provided
Time: 45 minutes game
N=10 Time: 30 minutes
N=12
Participants: graduate students in design programs + alumni
34
D.tools evaluation video analysis
Task: Build a functional
MP3 player prototype
D.tools post-test survey (n=10)
Class Deployment
(In collaboration with Leapfrog)
39
d.tools / Exemplar used for prototyping at:
Leapfrog
Nokia SF
IDEO
Frog design
3471 d.tools downloads as of 5/27/09
40
d.tools successfully enabled non-programmers to
prototype novel, sensor-based user interfaces.
Techniques:
1. Plug&play hardware and visual, storyboard-based
environment offer low threshold to authoring.
2. Programming by demonstration for sensor events
raises complexity of possible interactions.
41
1 Enable
Rapid Authoring
Off the Desktop
2 Aid Iteration
by Managing
Feedback
3 Aid Exploration
of Multiple
Alternatives
42
43
Flickr Image (cc) brycej
I-Observe, Badre, 1995
EVA, Mackay, 1992
44
46
50
53
(Pixar Image from Buxton, Sketching User Experiences)
54
Additions Deletions
8 new participants
58
Making revisions Interpreting revisions
Reported benefits: Fewer clarifications
can make and test required for d.note
concrete changes diagrams
(mean: 1.6 vs. 2.9 requests, p < 0.05)
Led to more careful
suggestions
(Deletions only prevalent with d.note)
59
Integrating analysis of test data into a design tool
can radically shorten the time to work with test
videos.
Integration is enabled by a high-level visual
representation of the software model.
Interactive revision tools enable earlier testing of
proposed changes, and those changes require
fewer clarifications.
60
1 Enable
Rapid Authoring
Off the Desktop
2 Aid Iteration
by Managing
Feedback
3 Aid Exploration
of Multiple
Alternatives
61
Myers et al., VL/HCC 2008:
Comparing working UI alternatives “very important” or “crucial”
for 43% of surveyed interaction designers (N=210)
62
Design Galleries, Marks, 1997 Levoy, Spreadsheets for Images, 1994
Dreamweaver
64
Manage parameter variations
Manage code alternatives
Access variations & alternatives at runtime
65
Manage parameter variations
Manage code alternatives
Access variations & alternatives at runtime
67
68
69
70
71
Juxtapose editor for
ActionScript 2.
Generates Flash files.
72
73
74
Implementation:
Longest common subsequence algorithm
diff(A,B,…,N) [Toomim, VL/HCC 2004]
75
Harrison et al., UIST 2007
76
77
78
79
Baudisch, UIST 2006
80
81
Send variable info
Juxtapose User Library
A Inspect
User’s Application:
//…
Number A = 10;
X B Boolean B = true;
A Update
User’s Application:
//…
Number A = 10;
X B Boolean B = true;
Produce these:
60
50
Control
40 Juxtapose
30
20
10
2.60
0
Tree Matching Task:
Mean Completion Times by Tree
400
350
300
250
seconds
200 Control
150 Juxtapose
100
50
0
Tree 1 Tree 2 Tree 3 Tree 4
not not
significant significant
p<0.01 p~0.01
88
89
Alternative Alternative Alternative
1 2 3
90
91
Arduino:
8bit Atmel AVR RISC chip
programmed in C with gcc
92
How can we implement variable tuning
in a static language without reflection?
93
int dly = 25;
boolean blink=false;
void setup() {...}
//…
94
Auto-generated
table
void initVarTable(void) {
varTable[1].varName = PSTR("dly");
varTable[1].varType = VAR_TYPE_INT;
varTable[1].varPtr = &dly;
varTable[2].varName = PSTR("blink");
varTable[2].varType = VAR_TYPE_BOOLEAN;
varTable[2].varPtr = &blink;
}
95
Plans to integrate
variable tuning into
Arduino IDE
96
97
98
A structured approach to alternatives
eliminates cruft and enables more exploration.
Tool support requires connecting authoring and
execution environments.
3 Techniques:
Linked editing to manage code alternatives
Execute set of programs side-by-side
Auto-generate tuning interface
99
Interaction techniques for
prototyping physical user interfaces:
1 Enable
Rapid Authoring
Off the Desktop
Tight coupling between physical &
digital realm through plug-and-play
hardware, software models of
hardware configuration
Storyboard-based visual authoring
with extensibility through scripting
Demonstration-based definition of
interaction events from raw sensor
data
101
Integration of design, test, analysis
and revision stages:
2 Aid Iteration
by Managing
Feedback
Time code correlation between
video and state model enables rapid
review of usability videos
Interactive revision tools for d.tools
control flow diagrams enable testing
of proposed changes and require
fewer clarifications.
102
Techniques for authoring and running
multiple UI alternatives in parallel:
3 Aid Exploration
of Multiple
Alternatives
Selectively parallel source editing
though and execution
Automatic generation of tuning
interface from source analysis &
runtime reflection
103
104
stanford hci group 5/29/2009
http://bjoern.org
Funding Acknowledgments:
Stanford MediaX/DNP Grant; NSF grant IIS-0534662
Stanford School of Engineerring & SAP Graduate Fellowships
Equipment donations from Intel & Nokia