Inferring constraints from multiple snapshots

Many graphic tasks, such as the manipulation of graphical objects and the construction of user-interface widgets, can be facilitated by geometric constraints. However, the difficulty of specifying constraints by traditional methods forms a barrier to their widespread use. In order to make constraints easier to declare, we have developed a method of specifying constraints implicitly, through multiple examples. Snapshots are taken of an initial scene configuration, and one or more additional snapshots are taken after the scene has been edited into other valid configurations. The constraints that are satisfied in all of the snapshots are then applied to the scene objects. We discuss an efficient algorithm for inferring constraints from multiple snapshots. The algorithm has been incorporated into the Chimera editor, and several examples of its use are discussed.

[1]  William Buxton,et al.  Creating highly-interactive and graphical user interfaces by demonstration , 1986, SIGGRAPH.

[2]  William H. Press,et al.  Numerical Recipes: The Art of Scientific Computing , 1987 .

[3]  Ivan E. Sutherland,et al.  Sketchpad a man-machine graphical communication system , 1988, DAC 1988.

[4]  Ivan E. Sutherland,et al.  Sketchpad a Man-Machine Graphical Communication System , 1899, Outstanding Dissertations in the Computer Sciences.

[5]  Ian H. Witten,et al.  Metamouse: specifying graphical procedures by example , 1989, SIGGRAPH.

[6]  F. A. Seiler,et al.  Numerical Recipes in C: The Art of Scientific Computing , 1989 .

[7]  Ephraim P. Glinert,et al.  Visual Programming Environments: Paradigms and Systems , 1990 .

[8]  Steven K. Feiner,et al.  Interactive constraint-based search and replace , 1992, CHI.

[9]  Steven K. Feiner,et al.  Graphical editing by example , 1993 .

[10]  H. Penny Nii,et al.  The Handbook of Artificial Intelligence , 1982 .

[11]  Clayton Lewis NoPumpG: Creating Interactive Graphics With Spreadsheet Machinery , 1987 .

[12]  M. D. Hooven,et al.  Electrical engineering as it will be , 1956, Electrical Engineering.

[13]  William H. Press,et al.  The Art of Scientific Computing Second Edition , 1998 .

[14]  William H. Press,et al.  Numerical Recipes in FORTRAN - The Art of Scientific Computing, 2nd Edition , 1987 .

[15]  O. H. Lowry Academic press. , 1972, Analytical chemistry.

[16]  Brad A. Myers Graphical techniques in a spreadsheet for specifying user interfaces , 1991, CHI '91.

[17]  Thomas Ellman,et al.  Explanation-based learning: a survey of programs and perspectives , 1989, CSUR.

[18]  Avron Barr,et al.  The Handbook of Artificial Intelligence , 1982 .

[19]  Maureen C. Stone,et al.  Snap-dragging , 1986, SIGGRAPH.

[20]  Barr and Feigenbaum Edward A. Avron,et al.  The Handbook of Artificial Intelligence , 1981 .

[21]  Dan R. Olsen,et al.  Creating interactive techniques by symbolically solving geometric constraints , 1990, UIST '90.

[22]  Brad A. Myers,et al.  Creating user interfaces by demonstration , 1988 .

[23]  Alan Borning,et al.  ThingLab: a constraint-oriented simulation laboratory , 1979 .

[24]  Alan Borning Graphically Defining New Building Blocks in Thinglab , 1987, SGCH.

[25]  Steven Feiner,et al.  A Visual Language for Browsing, Undoing, and Redoing Graphical Interface Commands , 1989 .

[26]  David Kurlander Graphical editing by example (abstract) , 1993, CHI '93.

[27]  Alan Borning Graphically Defining New Building Blocks in Thinglab , 1987 .

[28]  Greg Nelson,et al.  Juno, a constraint-based graphics system , 1985, SIGGRAPH.

[29]  Theodosios Pavlidis,et al.  An automatic beautifier for drawings and illustrations , 1985, SIGGRAPH.

[30]  Scott E. Hudson,et al.  Interactive specification of flexible user interface displays , 1990, TOIS.

[31]  Eric Allan Bier,et al.  Snap-dragging: interactive geometric design in two and three dimensions , 1988 .