Prefab: implementing advanced behaviors using pixel-based reverse engineering of interface structure

Current chasms between applications implemented with different user interface toolkits make it difficult to implement and explore potentially important interaction techniques in new and existing applications, limiting the progress and impact of human-computer interaction research. We examine an approach based in the single most common characteristic of all graphical user interface toolkits, that they ultimately paint pixels to a display. We present Prefab, a system for implementing advanced behaviors through the reverse engineering of the pixels in graphical interfaces. Informed by how user interface toolkits paint interfaces, Prefab features a separation of the modeling of widget layout from the recognition of widget appearance. We validate Prefab in implementations of three applications: target-aware pointing techniques, Phosphor transitions, and Side Views parameter spectrums. Working only from pixels, we demonstrate a single implementation of these enhancements in complex existing applications created in different user interface toolkits running on different windowing systems.

[1]  W. Keith Edwards,et al.  Systematic output modification in a 2D user interface toolkit , 1997, UIST '97.

[2]  Tovi Grossman,et al.  The bubble cursor: enhancing target acquisition by dynamic resizing of the cursor's activation area , 2005, CHI.

[3]  John T. Stasko,et al.  mudibo: multiple dialog boxes for multiple monitors , 2005, CHI Extended Abstracts.

[4]  Susumu Harada,et al.  The angle mouse: target-agnostic dynamic gain adjustment based on angular deviation , 2009, CHI.

[5]  Rob Miller,et al.  Sikuli: using GUI screenshots for search and automation , 2009, UIST '09.

[6]  Scott E. Hudson,et al.  Implementing interface attachments based on surface representations , 1999, CHI '99.

[7]  Scott E. Hudson,et al.  Extensible input handling in the subArctic toolkit , 2005, CHI.

[8]  Krishna Bharat,et al.  Making computers easier for older adults to use: area cursors and sticky icons , 1997, CHI.

[9]  Scott R. Klemmer,et al.  Programming by a sample: rapidly creating web applications with d.mix , 2007, UIST.

[10]  Brad A. Myers,et al.  Past, Present and Future of User Interface Software Tools , 2000, TCHI.

[11]  Scott E. Hudson,et al.  Automatically identifying targets users interact with during real world tasks , 2010, IUI '10.

[12]  Luke S. Zettlemoyer,et al.  A visual medium for programmatic control of interactive applications , 1999, CHI '99.

[13]  Scott E. Hudson,et al.  Supporting dynamic downloadable appearances in an extensible user interface toolkit , 1997, UIST '97.

[14]  Peter Norvig,et al.  Artificial Intelligence: A Modern Approach , 1995 .

[15]  Scott E. Hudson,et al.  Incremental attribute evaluation: a flexible algorithm for lazy update , 1991, TOPL.

[16]  Richard Potter,et al.  Triggers: guiding automation with pixels to achieve data access , 1993 .

[17]  J. Rissanen,et al.  Modeling By Shortest Data Description* , 1978, Autom..

[18]  Jerry Alan Fails,et al.  ScreenCrayons: annotating anything , 2004, UIST '04.

[19]  Desney S. Tan,et al.  Phosphor: explaining transitions in the user interface using afterglow effects , 2006, UIST.

[20]  Elizabeth D. Mynatt,et al.  Side views: persistent, on-demand previews for open-ended tasks , 2002, UIST '02.

[21]  Henry Lieberman,et al.  Visual Generalization in Programming by Example , 2000, Your Wish is My Command.

[22]  Scott E. Hudson,et al.  Providing visually rich resizable images for user interface components , 2000, UIST '00.

[23]  Frank E. Ritter,et al.  Image Processing in Cognitive Models with SegMan , 2005 .

[24]  Scott E. Hudson,et al.  Dirty desktops: using a patina of magnetic mouse dust to make common interactor targets easier to select , 2007, UIST.

[25]  Desney S. Tan,et al.  WinCuts: manipulating arbitrary window regions for more effective use of screen space , 2004, CHI EA '04.

[26]  Olivier Chapuis,et al.  User interface façades: towards fully adaptable user interfaces , 2006, UIST.

[27]  Luke S. Zettlemoyer,et al.  IBOTS: agent control through the user interface , 1998, IUI '99.

[28]  Henry Lieberman,et al.  Programming by example: visual generalization in programming by example , 2000, CACM.