David S. Kosbie

Learn More
The Garnet research project, which is creating a set of tools to aid the design and implementation of highly interactive, graphical, direct-manipulation user interfaces, is discussed. Garnet also helps designers rapidly develop prototypes for different interfaces and explore various user-interface metaphors during early product design. It emphasizes easy(More)
The Amulet user interface development environment uses hierarchical command objects to support the creation of highly-interactive graphical user interfaces. When input arrives or a widget is operated by the user, instead of invoking a call-back procedure as in most other toolkits, Amulet allocates a command object and calls its DO method. Unlike previous(More)
One-way, dataflow constraints are commonly used in graphical interface toolkits, programming environments, and circuit applications. Previous papers on dataflow constraints have focused on the design and implementation of individual algorithms. In contrast, this article focuses on the lessons we have learned from a decade of implementing competing(More)
Marquise is a new interactive tool that allows virtually all of the user interfaces of graphical editors to be created by demonstration without programming. A “graphical editor” allows the user to create and manipulate graphical objects with a mouse. This is a very large class of programs and includes drawing programs like MacDraw, graph layout(More)
Providing a structured graphics model and a constraint system makes the programming of graphical applications significantly easier. In a structured graphics model, each graphic element on the screen is represented by a real object in the object system, while a constraint system automatically maintains relationships among the objects. Although many research(More)
Over the last 10 years, the CMU User Interface Software Project has been investigating prototype-based programming in two large-scale systems: Garnet in Lisp and Amulet in C++. The goal of these systems is to provide an effective way to prototype and implement user interface software. In addition to using a prototype-instance object model, these systems(More)
Programming by Demonstration, or PBD, is an exciting and developing branch of HCI research. With PBD techniques, end-users can add functionality to their environments without programming in the conventional sense. Virtually all research into PBD, however, presumes that the event history is a linear sequence of user actions. This paper challenges that notion(More)
This poster describes part of the Ph.D. thesis work presented by the author in the 1994 CHI Doctoral Consortium. There are many uses of history mechanisms in modern graphical user interfaces, including Undo, Help, and Programming by Demonstration. Virtually all research into history mechanisms, however, presumes that the history is simply a linear sequence(More)