quill: A UI Design Case Study A. Chris Long Postdoctoral Research Fellow
Download
Report
Transcript quill: A UI Design Case Study A. Chris Long Postdoctoral Research Fellow
quill: A UI Design Case Study
A. Chris Long
Postdoctoral Research Fellow
HCI Institute
Administrivia
Turn in Homework #1
Homework #2 assignment on course website
2
Outline
Gestures
quill Design
quill Architecture & Implementation
Object-Oriented Design
Long-running Tasks and Interfaces
Recognition-based UIs
How Gesture Recognition Works
More quill Implementation
3
Gestures
Mark that invokes a command
4
Gestures
Mark that invokes a command
delete me
5
Gestures
Mark that invokes a command
delete me
Benefits
* Fast
* Save screen space
* Avoid “aerobic interface”
* Specify operation and operand(s)
simultaneously
6
Problems With Gestures
For users
* Computer often misrecognizes
gestures
* Difficult to learn and remember
gestures
For designers
* Gestures are hard to design
7
quill’s Place in the World
Who: Designer of
Design
Test
Prototype
pen-based UI
When: During design
phase
What: Designing
gestures
Why: To design
better gestures
8
Another View of quill
User Interface
Application “back end”
OS
Pen Input
Display
9
Designing quill
Design low-fi prototype
Pilot test low-fi
Redesign
Implement Java version
10
Low-fi Prototype
11
Current Version
Tree view
Expanded
view
Suggestion
for
improvement
12
Recognition Problem
13
Gestures, Packages, and Groups,
Oh My!
Gesture
package
MyApplication
Gesture
group
Gesture
category
Gesture
Edit
cut
copy
View
…
…
…
14
quill Architecture
JDK Core
Widgets
Gesture Objects
* Gesture
* Gesture Category
* …
Recognizer
Gesture Analyses
15
quill Architecture
Widgets
Gesture Analyses
Gesture &
Recognition
Objects
Swing
Core JDK
16
Implementation Overview
Clipboard
Desktop
windows
Tree display
Main window
Notice
management
Java/Swing
93 classes, 26,000 lines
17
Object Oriented Design
Gesture Objects
*
*
*
*
Gesture
GestureCategory
GestureGroup
GesturePackage
Gesture Display Widgets
*
*
*
*
*
*
GestureDisplay
GestureInteractor
GestureCategoryDisplay
GestureGroupDisplay
GesturePackageDisplay
GestureCategoryThumbnail
Display
18
OO Design
GestureObject
DefaultGestureObject
GestureContainer
AbstractGestureContainer
GestureCategory
GestureGroup
GesturePackage
19
Analyzing Gestures
Problem: Analysis may take a long time
Solutions?
20
Analyzing Gestures
Problem: Analysis may take a long time
Strategies for analyzing gestures
* Run analysis in foreground, disable all actions
* Analyze in background
- Disable all conflicting actions
- Allow anything, cancel analyses
- Allow anything
21
Multithreading
Benefits
* ?
Drawbacks
* ?
22
Multithreading
Benefits
* Computation in background
- Can do very complex tasks
* User can perform any action,
any time
Drawbacks
* Must synchronize data
across threads
* Deadlock
* Race conditions
23
Multiple Threads in Java
Thread class
* Start separate thread that runs any method
synchronized keyword
* Prevents a method from being called or object
from being accessed by more than one thread
at once
SwingWorker class
* Easy to run background thread that produces a
result
24
Recognition-Based UIs
Examples
* Pen gesture
* Handwriting
* Speech
Advantages
* ?
Disadvantages
* ?
25
Recognition-Based UIs
Advantages
* Natural input
* Informal
* Multiple interpretations
Disadvantages
* No clear separation of data and commands
* Ambiguous commands
* Individual differences
* Multiple interpretations
26
Dealing with Recognition
Confirm dangerous operations
Multiple modes may help disambiguate
* Speech + pen, for example
Provide undo/redo
27
How Does Recognition Work?
Training
* Measure geometric
features of gestures
* Compute average
feature values for each
type of gesture
* Compute how important
each feature is
Recognition (a.k.a.
Classification)
* Measure geometric
features of unknown
gesture
* Compare with features
of known gestures
* Pick closest known
gesture
28
Rubine’s Feature Set
Initial angle
Length of bounding
box diagonal
Angle of bounding box
diagonal
Distance between
first and last points
Angle between first
and last points
Length
Total angle traversed
29
Rubine’s Feature Set (cont.)
Sum of absolute value
of angle at each point
Sum of squared angle
at each point
(sharpness)
Square of maximum
speed
Duration
30
Weakness of Feature-based
Recognition
Feature set has to be right
31
Feature-based Training
Mean feature vector
1
f cˆi
Ecˆ
Ecˆ 1
f
e 0
cˆei
0i F
Per-class covariance matrix
Ecˆ 1
cˆij ( f cˆei fcˆi )( f cˆej fcˆj )
e 0
32
Training (cont.)
Average covariance matrix
ij
Weights estimation
C 1
cˆij
c 0
cˆ
C 1
E
1
C Ecˆ
c 0
F
wcˆj ( 1 ) ij f cˆi 1 j F
i 1
33
Feature-based Classification
For all gesture classes c, compute
F
vcˆ wcˆ 0 wcˆi f i
0cC
i 1
Return class with max vc
34
quill Implementation Issues
(cont’d)
Suggestions (cont’d)
* When do they disappear?
- User says to ignore
- No longer apply
* When are two notices the same?
-
At time A, gestures X and Y are too similar
At time B, something happens and they aren’t similar
At time C, they are similar again
Display notice again?
35
Implementation Issues (cont’d)
Annotations
* Special purpose vs.
generic
* How to compose?
Gesture display
* Desktop windows
- Tiled
- Standard MDI
* Display factory
36
Implementation issues (cont’d)
Generic properties
void GestureObject.setProperty(String
name, Object value)
Object GestureObject.getProperty(String
name)
* What happens to properties like
“isMisrecognized” when copy & paste?
* Persistent vs. transient
37
Implementation issues (cont’d)
Generic properties
void GestureObject.setProperty(String
name, Object value)
Object GestureObject.getProperty(String
name)
* What happens to properties like
“isMisrecognized” when copy & paste?
* Persistent vs. transient
38
Implementation Issues (cont’d)
Menus: enable/disable
items, and dispatching
commands
* Context-dependent
menu items
* Context-dependent
gesture drawing
* Solution: “Chain of
command” pattern that
follows selection
39
Questions?
Other topics
* Grad school
* Berkeley (city or university)
* Speech UIs
* More on pen-based UIs
40
The End
Design Patterns: Elements of Reusable
Object-Oriented Software
by Erich Gamma, Richard Helm, Ralph
Johnson, and John Vlissides
http://www.cs.cmu.edu/~chrisl/
http://guir.berkeley.edu/projects/quill/
Extras
Criticisms
Recognition is due to poor recognizers, which will
eventually be perfect
* Not for a long time, if ever
* Learning and memory predictions still useful
Recognition will never be good enough
* Already good enough for many users
* Is improving over time
Typing is faster and more accurate than writing
* Pens won’t replace keyboards, but are better in many
situations
43
Criticisms (cont.)
Gestures will always be too hard to learn and
remember, and will never be useful enough
* Gestures very often used on paper in many domains
Design tool doesn’t guarantee good gestures
* Will provide useful advice
* Will shorten design cycle
There are only a small number of common gestures
* Application/domain-specific gestures
* Personal shorthand
44
Criticisms (cont.)
Marking menus are better than free-form
gestures
* Can’t specify additional information with marking-menus
* Shapes are arbitrary
* All straight lines and 45/90º angles
45
Criticisms (cont.)
What’s wrong with traditional GUI interaction
techniques?
* Pen mouse
* Pen
- Finer control
- Has other dimensions (e.g., pressure, tilt)
* Mouse
- More buttons (sometimes)
46
Pen vs. Mouse
Kato, et al
* Pen significantly faster & more accurate than mouse for
precise dragging
* Pen significantly faster for pointing
* Pen has directional dependencies; mouse doesn’t
Mackenzie, et al
* Pen slightly faster for pointing
* Mouse slightly faster for dragging
47