agentk: a toolkit for enhancing agent interfaces
by D. Scott McCrickard
College of Computing and GVU Center, Georgia Institute of Technology The USENIX Scholars Program provides support for student stipends, tuition and other expenses for students with exceptional research ability and promise. This article is an example of the kind of work resultings from this support. Agentk is a USENIX-funded project intended to support the use of constant, cyclic animation in graphical user interfaces, particularly in autonomous programs, such as software agents, that may need to communicate constantly. Information on the Web changes frequently but irregularly, and while various programs can collect and process data from the Web, displaying it to the user in an informative but nonintrusive manner is still an important issue. The Agentk toolkit is designed to provide smooth, easy-to-control animation with minimal effort by application programmers. The Agentk toolkit extends the Tcl/Tk scripting language to facilitate the incorporation of various graphical and motion-based effects into user interfaces. Primary among the effects are cyclic animations that allow large amounts of information to be constantly and repeatedly displayed in a small screen space. The cyclic animations include a fade effect that fades between blocks of text or blocks of graphics, a ticker effect that scrolls text or graphics horizontally across the screen, and a roll effect that scrolls information vertically. Each of these effects is incorporated in its own widget which provides a well-defined, familiar programming interface to it. To help the end-user understand when and how the information has changed, the Agentk animated widgets support automatic markups and history-based shadowing. Automatic markups use changes in color or text style to highlight changes in the information, while history-based shadowing shows a previous state of the information in the shadow of the original. Both effects are triggered by a change in the information and remain in the display cycle for a programmer-specified number of iterations or duration of time. With these techniques, an end-user can know at a glance not only that information has changed but how it has changed as well. The fade, ticker, and roll widgets are programmed in the same way as any other widget in Tcl/Tk: by specifying the widget type (for ex. label, scrollbar, fade), a position in the display tree (.fader, .dialog.display), and possibly some options (-width 50, -fg red, -showhistory yes). The widgets include all options of the standard label widget that is used to display static text and images, but also include additional options that allow a programmer to control features such as multiple content locations, animation speed, markups, and synchronization between widgets. During execution, the Agentk widgets automatically tune the animation to ensure that it runs at the speed designated by the programmer, regardless of the processor speed and machine load. In so doing, the Agentk toolkit provides a programming interface that can be easily understood and used by Tcl/Tk programmers while shielding them from most of the details of generating animation. By implementing Agentk entirely in Tcl/Tk, the platform independence of Tcl/Tk is maintained, and Agentk-animated widgets can even run within a Web browser using the Tcl plugin. Tcl/Tk was selected as the programming platform also because of its networking and string parsing capabilities, since most of the applications written using Agentk extract and process information from Web pages, networked machines, or other shared resources. A Tcl/Tk script can be written quickly in a handful of lines, allowing a programmer to move on to other tasks while the monitoring program runs smoothly in a corner of the screen. The Agentk toolkit provides the means for including animation in user interfaces, but it was also important to us to explore when and whether it should be used. Animation in interfaces, most notably animated ads on Web pages, is often dismissed as intrusive and annoying. Our usability studies explored the distraction and effectiveness stemming from the use of fading and tickering animations while performing other tasks. We learned that in certain situations, animation does not result in degradation in perfor-mance on other tasks and in fact can communicate information effectively. Further-more, it appears that different types of animation are better for different types of tasks. Use of the fading animation results in changes being noticed more quickly, while the tickering animation results in better future recall. These and other results can be used to guide designers based on the targeted goals of the application. The primary design, implementation, and testing of the Agentk package was performed by Scott McCrickard, a Ph.D. candidate in the College of Computing and Graphics, Visualization, and Usability Center at Georgia Tech. Alex Zhao, also a Ph.D. candidate in the College of Computing and GVU Center, is responsible for the implementation of the image fading technique and for various performance enhancements. Richard Catrambone, a professor in the School of Psychology and GVU Center, provided assistance and advice on the usability testing. Scott and Alex's advisor is John Stasko, a professor in the College of Computing and the head of the Information Interfaces research group at Georgia Tech, a group dedicated to developing ways to help people understand information via techniques in information visualization, user interface design, and software agency. Agentk has been available on the Web for over a year, and the latest release of the tool-kit attracted several hundred visitors in the first few weeks. Since Agentk and Tcl/Tk are easy to learn, they have been used in short-term course assignments and summer projects, with impressive results. Agentk has been the topic of several papers, most notably one at the USENIX Tcl/Tk Conference in March which received the Best Student Paper Award. For more information about Agentk, including access to the most recent version of the toolkit, links to programs written using Agentk, and papers written about Agentk, visit the project Web site at <http://www.cc.gatech.edu/~mccricks/agentk/>.
|
|
Last changed: 28 nov. 2000 ah |
|