GargoyleResearchPlanning.tioga
Project Name: Gargoyle
Participants: Eric Bier ( ~1/2 time ), Ken Pier ( ~3/4 time ), Maureen Stone ( occasionally ), Michael Plass ( occasionally ).
Related Projects: Document Management
Ulimate Goal (one)
Ulimate Goal or Unifying Theme: Our unifying theme is the code artifact itself — the construction of an interactive 2 ý D illustrator which will satisfy our current and future demands for constructing, integrating, and modifying the class of illustrations which Stone and Beaudelaire call illustrations [Stone80], and, in keeping with the goals of other projects, of other types of graphical representations as well.
Justification: We expect to contribute user interface concepts and code for the use of CSL, a working illustrator for the use of CSL, ideas about creating a manipulating geometry for the use of the Xerox and the research community at large. We believe we will succeed because Cedar, the Imager, and the Combiner provide rich capabilities that were not available previously, because of a gut feeling that our techniques for manipulating geometry will satisfy important application areas which are not satisfied by existing techniques. We expect to provide a service to other Imaging projects (Imager, Combiner) by testing their concepts. We expect to provide a service to CSL by exporting user interface management concepts and code, computer-aided geometry concepts and code, and high-quality illustration concepts and code.
Shorter Term Goals (many, numbered)
1. Goal: Produce a working polygon editor, which uses a novel technique to achieve precise illustrations.
1. Justification: Writing this code was both a step towards the ultimate goal, and a chance to play with new techniques for modifying geometry.
1. Progress: A polygon editor has been produced. A new technique for modifying geometry, snap-dragging, was developed, which was simpler than expected. The power and utility of the technique has yet to be tested.
2. Goal: Produce a scheme for evaluating the power of a geometric manipulation technique.
2. Justification: To allow us to compare our illustrator with each other and with other illustrators, as to their geometric power.
2. Progress: We have produced a taxonomy of relationships among points, and used it to compare grid, constraint, and snap-dragging techniques. This taxonomy is not adequate, however, for comparing arbitrary illustrators, because operations such as "find the lines tangent to two circles" are not conveniently described as relationships of points. To make further progress, we would need to pick a particular application domain.
3. Goal: Design an interactive refresh technique suitable for a geometric editor where rubber-banding, and smooth dragging will take place.
3. Justification: This goal supports goal 1. Dorados, and the Imager make this possible. This research also anticipates the coming of the Dragon display controller, which will make this possible on color diplays as well as bitmaps.
3. Progress: A first implementation is in place of a scheme which builds bitmaps representing the parts of the scene which are not currently changing, and recomputes only those parts which are. The implementation was not particularly difficult. The speed is adequate when the changing parts of the scene are small, even when the scene is large. The refresh cost is now dominated by the cost of hit-testing.
4. Goal: Develop techniques for managing the interaction of different types of graphical objects in the same drawing space.
4. Justification: The Imager and Interpress support a very rich variety of objects which can be displayed.
4. Progress:
Techniques (many, numbered)
By articulating goals, you say what you are going to export. It is also interesting to say what you are going to import. You might be building all of your own techniques, you might be importing code, algorithms, concepts, or hardware from people in your project, in Imaging, in CSL, at Xerox, or in the research community.
1. Technique:  Examples: the Combiner, the Imager, object oriented programming, hashing, the connection machine 
2. Technique:  Examples: the Combiner, the Imager, object oriented programming, hashing, the connection machine 
Hypotheses (many)
Much of our research boils down to demonstrating that a certain goal or goals can be achieved, by bringing certain techniques to bear. These hypotheses can be described just by noting the techniques and goals in question, and explaining how the goals will be demonstrated. Other hypotheses may relate to justifying the goals, or to justifying the use of certain techniques.
Hypothesis:  
Related Goals:  Names or numbers of goals 
Related Techniques:  Names or numbers of techniques 
Tests:  What experiment will be used to test the hypothesis? Will a system be tested by releasing it? Will a benchmark illustration be printed to see how fast, accurately it can be rendered? Will someone else be allowed to import an artifact and comment on its utility? 
Test Steps:  How much must be implemented in order that the hypothesis may be tested? 
Expected Results:  The expected outcome of the test. This outcome is usually consistent with the hypothesis 
Milestones (many)
A milestone is either a document completed, a talk given, or a piece of code demonstrated. A project might produce a document listing its plan, circulate this document for comments, make a revised document, implement some of the concepts, write up an analysis of the results, write up some algorithms devised along the way, write up the results of an experiment, give a talk on a new concept. Each of these things is a milestone. You can do too much of this. You can do too little.
Completed Milestones
Type:  Planning Document, Description of a new technique, Demonstration of code, Results of Experiment 
Date:  Approximate time when the milestone was reached 
References:  Filename(s) where the milestone is documented 
Anticipated Milestones
Type:  Planning Document, Description of a new technique, Demonstration of code, Results of Experiment 
Date:  Approximate time when the milestone is anticipated to be reached 
References and Other Influences (many)
A list of documents which describe the foundation on which you build. Who else has done similar work? Which previous projects have influenced this one?
Article:  Author, Title. Publisher, Date, Volume, Pages, etc. 
Project:  Name of Project, where it was done, date