Presentation is loading. Please wait.

Presentation is loading. Please wait.

Nov 06 2000 1 Jason Hong and James Landay University of California Berkeley Group for User Interface Research.

Similar presentations


Presentation on theme: "Nov 06 2000 1 Jason Hong and James Landay University of California Berkeley Group for User Interface Research."— Presentation transcript:

1 Nov 06 2000 1 Jason Hong and James Landay University of California Berkeley Group for User Interface Research

2 Nov 06 2000 2 Motivation Sketching is useful in many settings

3 Nov 06 2000 3 Creative / Design SILK Music Notepad Knight Elec. Cocktail Napkin Teddy PatchWork Survey of Informal Ink Apps Capture ZenPad NotePals Dynomite FiloChat Others Pegasus XLibris PerSketch Kramer's Patches Whiteboard Tivoli Flatland

4 Nov 06 2000 4 Example - Elec. Cocktail Napkin Gross and Do (UIST96)

5 Nov 06 2000 5 Example - Flatland Igarashi, Edwards, LaMarca, and Mynatt (AVI2000)

6 Nov 06 2000 6 Common Features Pen input as ink or gesture Stroke is pen input from dragging Ink is a stroke that stays on-screen Gesture is a stroke that activates a command Recognize ink as objects Transformation / clean-up of ink Immediate / deferred processing of ink erase me

7 Nov 06 2000 7 Common Features Contain objects in addition to ink Selecting and moving objects Grouping of objects Layering of objects

8 Nov 06 2000 8 Related Work Commercial Software Support –Newton OS –PenPoint –Microsoft Windows for Pen Computing –Windows CE –Palm OS Problems –Form-based and handwriting interfaces –Not easily extensible for building informal ink apps

9 Nov 06 2000 9 Related Work Research Software Support –ArtKit (Henry et. al. 1990) –Garnet Pen Int.(Landay et. al. 1993) –Patches (Kramer, 1994) –OOPS (Mankoff et. al. 2000) Problems –Need more reusable libraries for handling and processing strokes –Need more extensibility so lots of kinds of informal ink apps can be built

10 Nov 06 2000 10 Problems Software infrastructure support for informal ink apps rudimentary Pen-based interaction techniques difficult to implement Similar to GUI development in 1980s –Lots of applications + interaction techniques –Need cohesive frameworks + toolkits

11 Nov 06 2000 11 Goals of SATIN Toolkit support for informal ink apps –Provide reusable mechanisms for handling + processing strokes –Separate mechanism from policy –Be extensible for new kinds of apps Reusable widgets for pens Distribute this toolkit for use

12 Nov 06 2000 12 Overview  Motivation  Survey of Informal Ink Applications  Two Applications Built with SATIN  SATIN Architecture Overview  Conclusions

13 Nov 06 2000 13 DENIM

14 Nov 06 2000 14 SketchySPICE

15 Nov 06 2000 15 SketchySPICE

16 Nov 06 2000 16 SketchySPICE

17 Nov 06 2000 17 Some Metrics SATINDENIMSketchy SPICE #source files180767 #methods219264263 #classes22013132 #lines of code2000090001000 time1 person 18 months 3 people 3 months 1 person 3 days

18 Nov 06 2000 18 Overview  Motivation  Survey of Informal Ink Applications  Two Applications Built with SATIN  SATIN Architecture Overview  Conclusions

19 Nov 06 2000 19 Architecture Overview Java Core Classes Java Virtual Machine Java2D SATIN Swing Application SATIN relies on Java2D and Swing Applications use SATIN, can use Java2D and Swing

20 Nov 06 2000 20 Architecture Overview SATIN can be broken into twelve concepts Recognizers InterpretersScenegraph Stroke Libraries Widgets Views Rendering Transitions Clipboard Notification Command Events

21 Nov 06 2000 21 Recognizers Problem - many recognition techniques Recognizers let new recognition technologies be plugged into SATIN Given a stroke, return n-best list No actions taken SATIN comes with Rubine's Recognizer (implemented by Chris Long) Recognizer 0.86 0.65 0.63 Cut Copy Undo

22 Nov 06 2000 22 Interpreters Problem – many ways of handling strokes Interpreters let new ways of handling strokes be plugged into SATIN e.g. straighten a line e.g. issue a command Ink Interpreter Gesture Interpreter erase me

23 Nov 06 2000 23 Interpreters and Recognizers Decoupled recognition (Recognizers) from actions (Interpreters) Interpreters can use recognizers Both are modules that can be plugged into apps built with SATIN InterpreterRecognizer Cut 0.86 0.65 0.63 Cut Copy Undo

24 Nov 06 2000 24 Multi-Interpreters Problem – Hard to combine and extend existing interpreters Multi-Interpreters are a collection of interpreters + dispatch policy –e.g. dispatch to chain of interpreters –e.g. disable some interpreters on context Default Multi Interpreter Intrp AIntrp Z … Semantic Zoom Multi Interpreter Intrp B Intrp AIntrp Z … Intrp B

25 Nov 06 2000 25 Phrase (Patch) Scenegraph Sheet Denim Label (Patch) Denim Sketch (Patch) Timed Stroke … Sheet Denim Label (Patch) Denim Sketch (Patch) Phrase (Patch) Timed Stroke

26 Nov 06 2000 26 Stroke Dispatching Needed an approach that enabled: –Individual objects handle strokes on own –Priority to gestures over ink Default policy is top-down dispatch 1.Process stroke with its gesture interpreter 2.Re-dispatch stroke to one of its children 3.Process stroke with its ink interpreter 4.Handle stroke in object itself

27 Nov 06 2000 27 Stroke Dispatching Phrase (Patch) Sheet Denim Label (Patch) Denim Sketch (Patch) Timed Stroke

28 Nov 06 2000 28 Stroke Dispatching Phrase (Patch) Sheet Denim Label (Patch) Denim Sketch (Patch) Timed Stroke 1. Process stroke with gesture interpreter Sheet Default Multi Interpreter Hold Select Intrp Standard Gesture Intrp …

29 Nov 06 2000 29 Stroke Dispatching Phrase (Patch) Sheet Denim Label (Patch) Denim Sketch (Patch) Timed Stroke

30 Nov 06 2000 30 Stroke Dispatching Phrase (Patch) Sheet Denim Label (Patch) Denim Sketch (Patch) Timed Stroke Sheet Default Multi Interpreter Hold Select Intrp Standard Gesture Intrp … 1. Process stroke with gesture interpreter

31 Nov 06 2000 31 Stroke Dispatching 2. Re-dispatch stroke to children Phrase (Patch) Sheet Denim Label (Patch) Denim Sketch (Patch) Timed Stroke Denim Sketch (Patch)

32 Nov 06 2000 32 Stroke Dispatching 1. Process stroke with gesture interpreter Phrase (Patch) Sheet Denim Label (Patch) Denim Sketch (Patch) Timed Stroke Denim Sketch (Patch)

33 Nov 06 2000 33 Stroke Dispatching 2. Re-dispatch stroke to children Phrase (Patch) Sheet Denim Label (Patch) Denim Sketch (Patch) Timed Stroke Denim Sketch (Patch)

34 Nov 06 2000 34 Stroke Dispatching 3. Process stroke with ink interpreter Phrase (Patch) Sheet Denim Label (Patch) Denim Sketch (Patch) Timed Stroke Denim Sketch (Patch) Phrase Interpreter

35 Nov 06 2000 35 Stroke Dispatching 4. Handle stroke in object Phrase (Patch) Sheet Denim Label (Patch) Denim Sketch (Patch) Timed Stroke Denim Sketch (Patch)

36 Nov 06 2000 36 Stroke Dispatching Phrase (Patch) Sheet Denim Label (Patch) Denim Sketch (Patch) Timed Stroke

37 Nov 06 2000 37 Example - Cut Shallow

38 Nov 06 2000 38 Example - Cut Deep

39 Nov 06 2000 39 Reusable Stroke Libraries Straighten Merge

40 Nov 06 2000 40 Reusable Stroke Libraries Split Simplify

41 Nov 06 2000 41 Widgets Pie Menus Pen PLAF Swing "Pluggable Look And Feel" Larger and clickable sliders Single-click file opener

42 Nov 06 2000 42 Conclusions SATIN - Java toolkit for informal ink apps –Extensible thru Recognizers, Interpreters, and Multi-Interpreters –Separates mechanism from policy for strokes –Offers reusable libraries for manipulating ink Reusable widgets for pens

43 Nov 06 2000 43 Download SATIN http://guir.berkeley.edu/projects/satin http://guir.berkeley.edu Download SATIN at

44 Nov 06 2000 44 Extra Slides

45 Nov 06 2000 45 DENIM

46 Nov 06 2000 46 DENIM

47 Nov 06 2000 47 Survey of Informal Ink Apps Elec. Cocktail Napkin Flatland Pegasus FiloChat Zenpad PerSketch Teddy PatchWork XLibris NotePals Dynomite SILK Tivoli Kramer's Patches Music Notepad Knight

48 Nov 06 2000 48 Architecture Overview Recognizers Interpreters Scenegraph Stroke Libraries Widgets Views Rendering Transitions Clipboard Notifications Commands Events SATIN can be broken into twelve concepts


Download ppt "Nov 06 2000 1 Jason Hong and James Landay University of California Berkeley Group for User Interface Research."

Similar presentations


Ads by Google