Graphics Algorithm Workbench


The Graphics Algorithm Workbench is a Windows application which supports the design, implementation and debugging of new or improved graphics algorithms. It is an interactive platform which executes and displays the results of the algorithm under user control.

Screen Shot of GAW Running Example

The above screen shot shows one iteration of an algorithm for creating splines, given two end points and a control point. Three points are generated and identified by small yellow circles, while the control point is identified by blue lines. The spline itself is shown in red. To produce the plot, a test program was written in the text box at the right and the <Run> button was clicked.

This Workbench allows the user to write simple programs in a C-like language with support for a large set of graphics primitives. Programs are interpreted interactively (you can edit, then run without additional steps to compile or change environments). Thus it is easy to code in your own experimental line draw or circle routines, for example,  and test them immediately. A complete help system is provided in this distribution along with a number of sample files.

Built-in Graphics Primitives

A set of graphics primitives are included in the Workbench to simplify the generation of complex images. These primitives, which include lines, circles, ellipses, rectangles and grids, have been coded in assembler language so that their fast execution partially offsets the penalty of interpreting the program. The combination results in a very responsive environment for experimenting with new ideas. Details are available in the help file accompanying the application. 


This is an experimental program. It does not rise to the level of robust production code, particularly in its error management. One caution is that only the points, lines and circles are clipped to the boundaries of the image space. Other primitives may write into neighboring memory. If you can't control the placement of these shapes, do not use them with this version. The interpreter provides only limited error detection. If this bothers you or you do not like the idea of someone making experimental applications available on the web, don't use it at all.

Bugs? No doubt. I expect to eradicate them as I become aware of them and as time permits.