Relationships Between Chimera's Components
Random Chimera Montage

For his doctoral dissertation at Columbia University, DJ Kurlander developed five techniques to reduce repetition in graphical editing: graphical search and replace, constraint-based search and replace, constraints from multiple snapshots, editable graphical histories, and graphical macros by example. All five techniques were implemented in Chimera, a graphical editor that DJ built as his dissertation system.

Tying It All Together

These five techniques can be used independently of one another, but they can also work together to make a powerful system for eliminating much of the tedium in graphical editing. The first (purple) panel on the left shows the relationships between the various components - both realized and potential. For example, constraint-based search and replace is an extension to graphical search and replace that allows for subsitution rules on relationships - not just graphical properties. But they can be used together in composite substituion rules for greater expressivity. Constraint-based search and replace and constraints from multiple snapshots both can be used to facilitate constraint specification. Both graphical search and replace and constraint-based search and replace can serve as iteration mechanisms for macros by example. Editable graphical histories allow macros by example to be defined using actions demonstrated in the past.

There are other potential relationships between the techniques as well. For example, graphical search and replace could be used to make sure that scene landmarks chosen by the editable graphical histories were unique. In fact, there are so many realized and potential relationships between the components that the graph shown in the first panel is nearly complete in the graph theory sense (all nodes are connected except for two: graphical search and replace and constraints from multiple snapshots.

All five techniques can reduce repetition in graphical editing. But they are also demonstrational techniques - they work by having the user provide examples or demonstrations during the editing process, rather than through conventional programming.


The five techniques described above were implemented in the Chimera graphical editor. Chimera was implemented mainly in Common Lisp (ah, those were the days), with some occasional C and Postscript. It ran on Sun Sparcstations, and rendered in the OpenWindows windows system, using the NeWS protocols. NeWS was essentially a windowing environment that rendered on the screen using Postscript - which made it easy to capture vector-based graphics for figures in the thesis as well. It was very simple to extract these figures using Adobe Illustrator to create illustrations for this web site. (The illustrations here are rasterized jpegs of the vector art, which I may later make accessible in its full vectorized glory). The NeWS window system was also way ahead of its time. Another thing that I did at Columbia was to port NeWS to HP workstations... but that's another story.

Chimera was modeled in some ways after Emacs - it had an Emacs-like buffer system, and an Emacs-like text mode, but it also had modes for editing vector-based graphics and user interfaces.

How Chimera Got It's Name

This following is from the first appendix of the thesis.

In Greek mythology, Chimera (or Chimaera) was a monster consisting of three parts: the head of a lion, the body of a goat, and a serpent’s tail. The hero Bellerophon was sent on a mission to kill Chimera, but to make the task more tractable he first sought several tools to help him in his quest, most prominently Pegasus. In modern usage, a chimera is an illusive, often unachievable goal. Keeping these facts in mind, below are the top 10 reasons for naming my editor “Chimera.” Can we have a drumroll, please.

Top 10 Reasons for Calling My Editor “Chimera”

10. The Chimera editor and monster both consist of multiple pieces that work together to form a coherent whole. See above.

9. The Chimera editor implementation contains code written in three languages: Lisp, C, and PostScript.

8. Bellerophon sought several tools to slay the monstrous Chimera. Similarly, the Chimera editor system introduces several new tools to help slay monstrous graphical editing tasks.

7. Though Chimera can be extended to edit other types of media, my original editor implementation supports the creation and modification of three classes of objects: graphics, interfaces, and text.

6. Example-based specification has been considered by many to be a chimerical pursuit.

5. Work on Chimera was completed in 1992, the demimillenium of Columbus’ arrival in America. Take “America”, rearrange the letters, and you get “Chimaera”. Why the extra “H”? For all the late night Hacking.

4. Chimera is the first editor to support all of the following three methods of exact graphical measurement and placement: constraints, snap-dragging, and grids.

3. CHIMERA is an acronym: Computer-Human Interface Making Editing Really Awesome!

2. There is a grand tradition of naming graphical editors after fantastic creatures, for example, Griffin, Gargoyle, Gremlin, Unicorn, and MacDraw.

And finally, the number one reason for naming my editor “Chimera”:

1. I just like the name.


David (DJ) Kurlander first became interested in graphical editing during summer internships at Xerox PARC during 1986 and 1987, working with Eric Bier and Ken Pier. Back at Columbia University, DJ focused his research on creating a full suite of example-based techniques for reducing the tedium in graphical editing. Professor Steven Feiner, DJ's doctoral advisor, was a co-author on many of the papers. All of the techniques were implemented in Chimera, published as individual papers, and unified in a comprehensive thesis. DJ finished writing his thesis after taking a job at Microsoft Research, and was awarded his doctorate in July 1993.


David Kurlander. Chimera: Example-Based Graphical Editing.  Watch What I Do: Programming by Demonstration. Allen Cypher (ed.). MIT Press. 1993. pp. 271-290. (Basically the first chapter, the "overview", of the dissertation).

David Kurlander. Graphical Editing by Example. Doctoral Dissertation, Computer Science Department, Columbia University. July 1993.


David Kurlander. Graphical Editing by Example: A Demonstration. SIGGRAPH Video Review, issue 89. 1993. Extended abstract in INTERCHI ‘93 Proceedings, p. 529. Click here for the video, or here for the extended abstract.

Also See