There are many open-source and research programs being distributed today that produce graphical output. Such programs typically use similar drawing elements. For instance, a program that plots an audio signal and a program for drawing flow diagrams both use mainly lines, points and text. The needs of a program that analyses DNA and plots trees of descent are much like those of a program that plots the exchange rates between currencies.
In view of this, it is surprising that a truly flexible and reusable drawing engine has yet to be created. Presently, programmers primarily concerned with other tasks have to write their own output generators. This is wasted effort: a solution off the shelf would be much better. An important aim of the Adage project is to meet this need.