EtchaPad - Disposable Sketch Based Interfaces

Jonathan Meyer
NYU Media Research Laboratory
719 Broadway
New York, NY 10003
meyer@cs.nyu.edu
(212) 998-3381
http://www.mrl.nyu.edu


Published in Proceedings of ACM SIGCHI '95, short paper category

ABSTRACT

This paper describes a paradigm in which the user creates simple drawings or `sketches' of user interfaces and then interacts directly with those sketches. It introduces EtchaPad, a system utilizing this technology to implement a drawing package. Several EtchaPad widget types are described, including buttons, sliders, and compound widgets.

KEYWORDS

User interafaces, Zoomable interfaces, sketching, interaction techniques, Pad++, pen based computing.

INTRODUCTION

Graphical interfaces have made it possible for almost anyone to use a computer. However, GUIs can be frustrating to work with. For example, simple tasks often involve two or more steps. If those tasks need to be repeated multiple times over a large document, the user is likely to get frustrated and make mistakes. Few applications allow the user to customize the interface to streamline such tasks.

Programmatic and command line interfaces are ideal for performing repetitive tasks. Using a tool like VisualBasic or Tcl/Tk, a programmer can quickly create utility applications to streamline long and tedious operations on datasets and text. Once written, the application can repeat an operation indefinitely without error. Unfortunately, not all computer users are programmers, and not all application packages provide programmatic interfaces, so this is not a general solution.

This paper describes EtchaPad, a user interaction tool which allows the user to create any number of customized interface sketchs which are `live' from the moment it is drawn. For example, to save an EtchaPad document, the user could draw a `Save' button and then click on the drawn button immediately. Subsequently, the button can be selected and deleted like any graphical object, or reused as often as required.

EtchaPad users can draw new dialog boxes and widgets to extend the graphical interfaces provided with applications, and then use the new structures immediately. By creating their own interfaces, users also gain a sense of ownership over their interaction with the computer. They are able to employ secondary notation [1]. The visual nature of the sketches means that they tend to be more reusable and understandable than non-visual shortcut methods such as keyboard-based macros, accelerators, and gestural interfaces.

RELATED WORK

EtchaPad is a natural extension of several existing pieces of work. Landay and Meyers [2] describe a system that allows developers to sketch the early stages of interface design. Their system is not intended for end users - instead, the sketches are converted into standard widgets which are then programmed using conventional tools. Kramer presents a system of translucent, non-rectangular patches [3] which are intended as a substitute for opaque rectangular windows. There is a great deal of flexibility in choosing the layout and semantics of items on the display. EtchaPad is itself constructed as an extension to a novel interactive drawing application called PadDraw, which is provided as part of Pad++ [4] [5].

ETCHAPAD

EtchaPad supports all standard PadDraw functions. In addition, certain user drawings are treated specially - they are interpreted as interative widgets. Widgets are formed using basic drawing elements (lines, polygons, rectangles and text) which are placed in an arrangement recognized by EtchaPad. Freehand shapes are avoided to simplify recognition. A rectangle with a diagonal `tick' in the corner (see Figure 1) identifies interactive areas. Within an interaction area, graphical components are placed to specialize the behavior of the area.The system automatically colors the area to reflect its type and indicate that recognition was successful. Buttons, sliders and other widgets are recognized. For example, a button is an interaction area containing only a textual item. The text in that item dictates the function of the button - common PadDraw interface words are used for buttons, e.g. cut, paste, print, etc. The dictionary of known words is extensible by the user.


Figure 1

a) an interaction frame
b) a print button



c) a dismantled print button
d) a linewidth slider



Property widgets

When the user specifies a button whose label contains a ":", the button is treated as a "property button." These buttons provide a way for users to encapsulate state within a widget and then use the widget as a form of visual macro. The text to the left of the ":" is expected to be the name of an object property, as in "pen width", "pen color", "font", or "min size". The text on the right should be a valid value for the property. When the button is activated, the system alters the currently selected items so that they use the given value for the property. Clicking on a "pen color:red" button while a line is selected changes the color of the line to red.

If the textual value to the right of a ":" on a property setting button is left blank, the widget uses a "copy by example" mode. It searches for a graphical object within the interaction area that can act as the source value for the property. For example, if the user creates a "width:" button and places a line segment next to the "width:" label, then activating the button changes the current selection to use the line width of the given line. A "color:" noun is used in conjunction with a colored item to change the foreground color of items, or a small image can be placed next to an `icon:' button to change the icon used for a document.

Tool widgets

EtchaPad widgets are drawn directly on the Pad surface, and therefore coexist with other graphical objects created by the user. This coexistence can be used to provide more direct or visual methods for performing certain operations. Widgets that make use of placement as part of their function are called tool widgets.

An example tool widget is an alignment ruler. The user constructs a button whose label is `align' and then draws a line with one endpoint inside the button. The line becomes a virtual ruler - clicking on the align button aligns the currently selected items so that their edges meet the ruled line. If the rule is drawn vertically, then items are moved left or right to align with the rule. Horizontal rules can be used to align items vertically. A `center' noun allows user to align centers of objects instead of edges.

Another tool widget provides a simple camera. The user creates a button with a `snap' label, and then places a rectangle so that one corner intersects with the button. Clicking on the button then constructs an image of the items within the rectangle and places the image over the rectangular frame.

Compound widgets

The user can draw interaction areas nested within other interaction areas, allowing arbritrarily complex interface panels to be built. When an interaction area is moved or deleted, all the interaction areas that are nested within it are also moved or deleted. However, each individual interaction area within a compound structure can be selected, moved or deleted independently, without ungluing the parent structure.

Compound areas can be used to generate "interaction forms" - constructs that represent more than just a collection of items within a frame. One example is an "apply" form. This is used to apply a number of state changes simultaneously. For example, a user can place a number of "property buttons" (see above) within a single parent interaction area, then place the word "apply" on the parent area to make an apply button. When the user clicks on the top level "apply" button, all of the child buttons are activated simultaneously. This allows multiple properties to be set at once.

CONCLUSION

To date research on EtchaPad has addressed issues relating to the semantics of freehand interfaces, and avoided questions relating to pen-based input methods and recognition algorithms. In the near future EtchaPad will be linked to third party pen software and recognition algorithms.

More extensive user testing is required for EtchaPad. In particular, studying how effective EtchaPad is with more complex applications and interfaces important.

ACKNOWLEDGEMENTS

I would like to thank Ken Perlin, Ben Bederson, Jim Hollan, Alexis Wilson, Athomas Goldberg, Troy Downing, and the other members of the MRL/CAT for their help and encouragment. This work was supported in part by ARPA grant N660011-94-C-6039 to the University of New Mexico.

REFERENCES

1. Petre, M., "Why Looking isn't always seeing - readership skills in graphical programming", Communcations of the ACM, June 1995.

2. Landay, J., Myers, B., "Interactive Sketching for the Early Stages of User Interface Design", in Proceedings of SIGCHI '95, ACM, New York, 1995.

3. Kramer, A., "Translucent Patches - Dissolving Windows", in Proceedings of UIST `94, ACM, New York, 1994.

4. Bederson, B., Hollan, J., "Pad++: A Zooming Graphical Interface for Exploring Altenate Interface Physics", in Proceedings of UIST `94, ACM, New York, 1994.

5. Perlin, K., Fox, D., "Pad: An Alternative Approach to the Computer Interface", in Proceedings of SIGGRAPH `93, ACM, New York, 1993.



Home