ACD Atlas Computing Division An Introduction to GKS

Jump To Main Content

Jump Over Banner

Home

Jump Over Left Menu

Chapter 1: Introduction

A ski lodge 6000 feet up Mount Hood in Oregon was the setting for the announcement in July 1985 that the Graphical Kernel System (GKS) was finally to be published by the International Organization for Standardization (ISO) as International Standard 7942. Why has it taken until 1985 for an International Standard for computer graphics to emerge? After all, de facto standards in programming languages have existed for more than twenty years and international standards soon followed. At first sight it might be thought that this was due to the relative infancy of computer graphics, but the origins of computer graphics can be traced back almost to the advent of digital computers.

On the MIT Whirlwind, dual 16 inch displays were available as early as 1951; plotters were in use by 1953 and at least one high speed microfilm recorder was available in 1958. Input devices emerged later, yet lightpens can be traced back to 1958 and the RAND tablet made its debut in 1964. Colour displays appeared in 1962 and by 1965 most of the hardware facilities which we now take for granted had appeared.

However, despite the existence of the technology, the number of display systems installed worldwide by 1964 is believed to be only about 100. Predictably these came from a number of different manufacturers and different graphics packages were written to capitalize on the features of each. There is a parallel here with the early history of programming languages. In that field, however, the availability of FORTRAN on a widely marketed range of IBM machines led to the emergence of a de facto standard.

Some standard approaches began to appear in computer graphics, accepted techniques in the use of stand-alone and satellite refresh display systems were emerging in the late 1960's and it is possible that had developments continued in this manner, a standard would have emerged. Likewise, patterns were apparent in the use of plotters and the GINO and GHOST packages began to be more widely used in the UK in the early 1970's.

1.1 THE CHANGING SCENE

Until the late 1960's, interactive graphics required an expensive refresh display and dedicated host computer. A total cost of $400,000 was not uncommon and thus such systems were only available to a few.

The advent of timesharing systems at about the same time that the storage tube display emerged (at a fraction of the cost, say $4,000 against $80,000 for a refresh display) had a dramatic impact. Interactive graphics was now possible for a large number of people. The storage tube did not allow changes to be made to the picture without completely redrawing it (which was unattractive because of the low bandwidth typically available to the mainframe) but at the same time allowed a large amount of information to be displayed flicker free. Consequently, users developed new and different techniques for graphics with this type of display.

The changes did not stop there. In recent years, the cost of raster displays has plummetted and so low cost raster displays have appeared as competitors to the storage tube. These displays, like storage tubes, do not flicker when storing a large amount of information but in addition provide selective erasure, and other attractive features such as colour and area fill.

One might ask whether these changes will continue and whether there will ever be a time for standardization in computer graphics. The cautious prophet would argue that such rapid changes in both hardware and patterns of usage are unlikely to be repeated in the near future. There are now extensive investments in software (and hardware) mitigating against rapid change. We are, though, seeing the advent of high powered, low cost, single user systems, which is ironic when one recalls that it all started with dedicated systems! New input devices (for example, voice) are also on the horizon. As more and more graphics devices contain embedded microprocessors, more facilities are being put into hardware. It is possible, though obviously undesirable, for widely differing facilities to be put into different devices. Standards will provide guidance on what facilities should be performed in devices and will help to guard against this unproductive diversity.

1.2 SEILLAC I

In August 1974, at an IFIP WG5.2 meeting in Malmo, Sweden, Richard Guedj (France) was asked to initiate an active programme directed towards establishing standards for computer graphics. At a meeting in Bellinglise, it was agreed to organize what later turned out to be a seminal event in computer graphics standardization, the Seillac I workshop at Chateau de Seillac in the Loire Valley, France. Held in May 1976, the workshop was attended by a number of experts from the computer graphics field (Bob Hopgood was one of the UK delegates) and aimed to reveal the underlying concepts of computer graphics which earlier discussions had shown to be ill-understood.

Topics studied at Seillac ranged over the reasons for standardization as well as the scope and requirements of a standard. There was agreement that both output and input should be included. Standardization of the former was considered easy. However, as subsequent events showed, even the standardization of the easy can generate much debate!

The requirements for a standard received much attention. To agree that the standard should serve the areas of, for example, cartography, schematics, engineering drawing and animation was easy, but it was more difficult to decide whether image processing and high quality typesetting should be included. A standard should be in line with current practice and should answer the needs of the user community. It should not be in conflict with other standards in, say, character sets, and programming languages. A standard is only likely to gain acceptance if its design reflects a high level of expertise.

The graphics system must be at the right level. It should not include features specific to single applications, but at the same time must not be so low as to be device dependent. By this time, it was generally agreed that any standard would specify a set of virtual input and output functions which would be realized in terms of the functions of actual devices.

One of the major debates revolved around both the concept of current position and also its behaviour with respect to transformations. One of the problems was that existing packages did not distinguish between transformations for viewing the picture and those used for constructing the picture out of smaller items (referred to as modelling). Seillac I resolved that there should be a clear distinction between these two types of transformation and that an initial core, or kernel, graphics system should be designed which would only use transformations for viewing a previously constructed picture.

Originally there had been no intention to publish the proceedings of Seillac I, but at the request of IFIP, the working papers were edited some two years later and subsequently published [1]. The Seillac I volume is. therefore, not a polished document, but is invaluable in revealing the seeds from which future activities and ideas grew.

1.3 DEVELOPMENTS

The graphics experts at Seillac I included representatives of the USA and West Germany. Some of those from the USA were members of the Graphic Standards Planning Committee (GSPC), formed two years earlier under the auspices of the ACM Special Interest Group on Computer Graphics (SIGGRAPH). Previously, progress had been slow but Seillac I generated enthusiasm which had led GSPC to work towards the specification of a core graphics system to fulfill one of the Seillac goals. After a large amount of work by GSPC, a first public draft of a core graphics system (often referred to as the Core) was published in 1977 [2]. A whole issue of ACM Computing Surveys in 1978 [3] was devoted to describing the GSPC Core, the major issues that had to be resolved, and examples of use of the GSPC Core. A further version of the Core was published in 1979 [4] which included some raster extensions. Whilst raster graphics had been dismissed in the early version, as being different from vector graphics and only available to a few, the dramatic drop in cost meant that raster graphics had to be considered in the 1979 proposal. The Core is a full 3D graphics system and a number of implementations have been produced in the USA.

Inspired by Seillac I, members of the West German standards organization (DIN) had also been active in defining a core graphics system. The most obvious difference between the German Graphical Kernel System (GKS) and the GSPC Core was that the former was only a 2D system, and, consequently, was significantly smaller.

Meanwhile, a proposal had been made in 1976 to ISO by the Standards Committee of the British Computer Society that the British GINO-F graphics package should become an international standard. At the time there was not a specific working group to deal with computer graphics, and so the programming language subcommittee ISO/TC97/SC5, within whose remit computer graphics lay, organized a working party in London in February 1977. The meeting resolved that no existing graphics package would be a suitable candidate for a graphics standard. It also recommended that a working group of SC5 should be established to deal with standardization of computer graphics and that the specification of a core graphics system should be an early target.

What was intended to be the first meeting of the new working group (ISO/TC97/SC5/WG2 - Graphics) was held in Toronto in August 1977. However, a procedural point actually prevented it being a formal meeting. Whilst the focal point of the discussion was the GSPC Core report of 1977, it became clear that other core systems were under development. In particular, the graphics working group of DIN (UA5.9), chaired by Jose Encarnacao, were working on the specification of a core graphics system to become a German Standard. The meeting resolved that the Germans and Americans should work towards a common specification of a core graphics system.

1.4 THE ISO GRAPHICS WORKING GROUP

The first formal meeting of WG2 (the graphics working group) was held in Bologna in September 1978. A report of GSPC activities was received and the DIN group reported on GKS, detailing timescales for a DIN standard to be approved in 1981. Norway indicated their intention to propose IDIGS as a Norwegian standard; IDIGS was to be a successor to GPGS, a graphics system in widespread use in Norway and the Netherlands. In order that a single standard proposal might be possible, an Editorial Board was set up to compare the various proposals and recommend changes so that the three proposals might converge or at least be compatible.

The Editorial Board, chaired by Paul ten Hagen (WG2 convenor) and Bob Hopgood, met in Amsterdam in February 1979 and was presented with GKS Version 3 (a document of 46 pages) and the 1977 GSPC Core report (a document of 117 pages), whilst the IDIGS proposal was not available. Two major differences between the proposals were the inclusion of a current position concept in the GSPC Core (GKS did not have one) and the pen concept for attribute handling in GKS (GSPC Core adopted the more conventional approach of individual attribute setting) [5]. The fact that GSPC Core was a 3D system and GKS was a 2D system did not itself cause problems since GSPC Core was also capable of 2D graphics. The Editorial Board recommended changes to both proposals to bring them closer together [6]. Both DIN and GSPC discussed the Editorial Board's recommendations and a joint meeting was held in Boulder, Colorado.

By June 1979, it was recommended that the GSPC work should be passed to the formal American standards body, ANSI. The ANSI graphics working group. X3H3, had its first meeting in September 1979. At its second meeting in December of the same year, X3H3 adopted the 1979 GSPC Core as the starting point for its work.

At the following meeting of the ISO graphics working group in Budapest in October 1979, GKS 5.0, incorporating many of the Editorial Board recommendations, was presented. In addition, the input facilities had been enhanced and the ability to use multiple output devices simultaneously had been introduced. The 1979 GSPC Core was presented by ANSI including a pen concept, related to that of GKS, and enhanced text output. IDIGS was also presented.

GKS was the most technically refined of the three and the DIN members were keen that GKS should be submitted to ISO as a standard proposal. After discussions as to whether the working group could evaluate two proposals at the same time, it was eventually decided that only GKS would be put to the parent body (the programming languages subcommittee ISO/TC97/SC5) for registration as a Work Item with the aim of it becoming a Draft Proposal in a year.

1.5 THE GKS REVIEW

A technical meeting was arranged in Tiefenbach, Germany in June 1980 at which national bodies raised issues resulting from a thorough review of GKS 5.2. About 300 issues were put before the meeting of which over 200 were raised by ANSI. The issues were of varying types including clarification of the document and suggested changes to increase the functionality or reduce the complexity. The meeting was complicated by the fact that DIN presented GKS 6.0 just prior to the meeting. However, it had resolved a large number of issues particularly in the area of clarification and so it was considered the most appropriate basis for discussion. More issues were resolved during the meeting but there was no consensus on many of the main substantive issues. Some 50 issues remained unresolved. GKS 6.2, now 132 pages, was produced as a result of the meeting. It was agreed that this should be the basis of the first of two further rounds of technical discussion.

For these two rounds the issue submission and documentation procedure was formalized. Based on the ideas of GSPC and ANSI, each issue was presented as a question, followed by a description and a set of alternative answers. Arguments in favour of and against the alternatives were listed. The complete list of unresolved issues was referred to as an Active Issues List. An editorial round to improve the language and to produce the document in the correct ISO format proceeded in parallel.

The British Standards Institution (BSI) delegation made its presence felt at the technical experts' meeting in Melbourne, Florida in January 1981, where it was a major contributor. Bob Hopgood, Julian Gallop and Dale Sutcliffe were members of that delegation. The Active Issues List contained over 150 issues, divided into about ten subject areas, at the start of the meeting. There was considerable debate about input and multiple window to viewport transformations were introduced to assist in returning locator input in suitable coordinates. Another area receiving much discussion was attribute handling, when the pen concept was clarified and each primitive was given a separate pen table (or bundle table as it became known) [7]. Altogether, over 100 issues were resolved including many major ones.

Each issue had new alternatives and arguments added as they were raised. Those that were resolved were transferred to the Resolved Issues List and those that were not remained on the Active Issues List. In this way, a complete discussion record was built up of the reasons for inclusion or exclusion of features in GKS.

The final technical meeting was held in Abingdon, England in October 1981. The target for the meeting was to resolve all the outstanding issues, incorporate the changes into the GKS document, and present it to the parent body (ISO/TC97/SC5) at its meeting in London the following week. Three days of intense discussion resolved most of the issues but discussion on a few difficult issues continued in parallel with the incorporation of the other changes into the GKS document. Yet again, input was a cause of great debate which resulted in a clearer, simpler input model [8]. Text also received much attention, which produced greater understanding of the aims and a clearer description of the text concepts of GKS. The segment concept was another subject of discussion; the purposes of segment operations were identified and a revised function set was defined. The division of GKS into a number of levels (for implementation purposes) was completely revised. Full agreement was reached on all the technical issues within WG2, and SC5 were recommended to accept it as a Draft Proposal (DP). SC5 did so on 8 October 1981 and circulated the Draft Proposal for comment and vote to become a Draft International Standard (DIS) [9]. David Duce led the team that produced the document that formed the DP (GKS 7.0), which was now 240 pages!

The next meeting of WG2 (the graphics working group) took place at Steensel in the Netherlands in June 1982. This meeting considered, and responded to the comments received with the letter ballot on the Draft Proposal.

Three significant additions were made to GKS. Further thought had been given since the Abingdon meeting to text alignment and a STROKE input primitive. Both were incorporated at Steensel. ANSI, whilst recognizing the importance of the bundle concept, felt strongly that there was also a need for the more conventional individual attribute setting. A combined scheme, whereby a user may define which attributes are bundled and which are set individually, was incorporated.

The revised GKS document was completed by the editors (Dale Sutcliffe, David Duce and Julian Gallop) in December 1982. This was to be registered as Draft International Standard (DIS) 7942 and circulated for comment and vote to approve it for processing to become an International Standard. However, owing to delays within ISO Central Secretariat, the six month letter ballot did not begin until the end of June 1983. This was unfortunate because the ballot was not complete when WG2 next met at Gananoque, Ontario in September 1983. Consequently, no more than provisional decisions could be taken on some early comments conveyed to the meeting by members of the working group [10].

However, much other important work took place at that meeting. Until then it had been assumed that language bindings did not need to be formal standards but could be merely ratified by the GKS Control Board, a group of experts (including Dale Sutcliffe) established by WG2 to look after GKS, as it passed through the final stages of becoming a standard. At this meeting it was agreed that language bindings should have the same status as GKS itself. A multi-part standard was envisaged with one part for each language binding. Under ISO rules, each part may be standardized separately so that one language binding will not slow down another. At this point, FORTRAN and Pascal language bindings were planned and Ada soon followed. A New Work Item (NWI) proposal was drafted with the aim that the Programming Languages subcommittee (ISO/TC97/SC5), parent of the graphics working group, should propose the NWI, as its scope potentially crossed all the working groups of SC5. SC5 agreed the following week to propose the NWI and it was accepted early in 1984. With work on GKS (a 2D system) slowing down, attention was turned towards the standardization of 3D systems. This is described in more detail in the following section.

The GKS Control Board met at the Rutherford Appleton Laboratory in February 1984 to consider the comments with the DIS letter ballot. Most of the changes were minor clarifications, resolutions of ambiguities or editorial in nature. One large change concerned the interpretation of metafiles, and the effect it had on the GKS environment. This returned GKS closer to the DP version but required many changes to make the internal workings consistent.

Another comment concerned the value ranges of certain parameters which were defined as being implementation dependent, such as line types and marker types beyond the standard ones. If an application area, for example cartography or astronomy, wanted to define a set of linetypes or marker types for use by that particular area, there would be a risk that the values chosen would clash with the values chosen by another such area. It was agreed that a Registration Authority should be set up to register such values so that applications could use them in the sure knowledge that if the value were available in an implementation it would always represent the same item. In GKS, for each such parameter one value range was reserved for registration and one value range was implementation dependent.

The volume of change meant that the revised document was not available until October 1984. At that time it was submitted to ISO Central Secretariat for final processing. GKS [11] was finally published on 15 August 1985.

Meanwhile work had been progressing on the language bindings. At the 1984 meeting of WG2 in Benodet, France changes to the current drafts were agreed for the FORTRAN, Pascal and Ada bindings to allow them to be registered as DPs. Work on establishing the Registration Authority was also carried out.

During this time, a reorganization within ISO/TC97, Information Processing Systems, was taking place. Graphics was moved from the Programming Languages subcommittee (SC5) to a new subcommittee, SC21 (Open Systems). At the first meeting of SC21 in Paris in February 1985, the graphics working group became WG2 of SC21.

The new WG2 held its first meeting at Timberline Lodge, Oregon in July 1985. The announcement that GKS was to be published as International Standard 7942 was greeted with acclamation. During that meeting changes were agreed to the FORTRAN and Pascal language bindings to allow them to be registered as Draft International Standard 8651 Parts 1 and 2 [12] [13]. The Ada binding had met some opposition in the DP ballot and a second DP needed to be produced [14].

1.6 FUTURE STANDARDS

At the Tiefenbach meeting of WG2 in 1980, it was agreed that the metafile definition which was part of GKS, should be moved to an annex and that the production of a metafile standard should be a separate project. In this way, GKS with a more limited scope would be standardized more quickly and the requirements for a metafile standard could be separately formulated and a standard produced on a separate timescale.

The NWI for a metafile standard was approved in early 1983 and work has proceeded steadily since. At the Timberline meeting of WG2 in 1985, changes were agreed to the Computer Graphics Metafile (CGM) for the transfer and storage of picture description information, as the document was now entitled, to enable it to be registered as Draft International Standard 8632 [15]]. The CGM specifies a file and data format for the description of pictures. It enables transfer of pictures to devices, between applications and between systems as well as storage of graphical data for later use.

As technical work on GKS came to an end, attention was turned at the Gananoque meeting of WG2 in 1983 towards the standardization of 3D systems. History seemed to repeat itself, as once again there were two proposals for consideration. On the one hand, some experts wished to extend GKS to 3D in an upward compatible manner, introducing new functionality to achieve only this; the existing primitives would be planar but in 3D, specified by sets of 3D points: 3D viewing functions would be introduced; the provision of hidden line/ hidden surface removal was a point of contention. On the other hand, other experts, notably from ANSI, wished to produce a new standard PHIGS (Programmers' Hierarchical Interactive Graphics System), a more sophisticated graphics system which provided modelling as well as viewing functions, hierarchical structuring of picture parts, modification of the picture parts, and rapid interaction without the upward compatibility from GKS. After much discussion it was decided to embark on both with the extensions to GKS (GKS-3D) starting first and taking a shorter time. Technical work progressed satisfactorily so that SC21 agreed, at its first meeting in Paris in February 1985, to register GKS-3D as a DP. Comments from the DP ballot were responded to at the Timberline meeting of WG2, but the level of change required a second DP to be produced [16] and circulated for ballot.

In the meantime the PHIGS NWI had been approved and an initial draft produced. Limited time available at the Timberline meeting meant that only minor changes were agreed to be incorporated in the first working draft [17].

GKS, GKS-3D and PHIGS are all application interface standards, produced to aid the portability of application programs. Graphical device manufacturers are more interested in lower level standards which will assist them directly in the design of future graphical devices. Another project was approved in 1985 for this area: Computer Graphics Interface (CGI) techniques for dialogues with graphical devices. The CGI document will provide a functional description together with encodings. It is closely related to the CGM. The first working draft for the CGI is currently (November 1985) being written.

As can be seen, standardization is a long process. Nevertheless, a major milestone has been reached with the adoption of GKS as an International Standard in 1985. Ten years have elapsed since the meeting in Bellinglise and over nine years since Seillac I which Richard Guedj opened by quoting:

I have long aspired to reach for the clouds ...
Again I come from afar
To climb Ching Kang Shan, our old haunt
But scenes are transformed
Mao Tse Tung, May 1965

1.7 REFERENCES

1. Guedj, R.A. and Tucker, H.A. (eds), "Methodology In Computer Graphics." North-Holland, Amsterdam (1979).

2. "Status Report of the Graphic Standards Planning Committee of ACM/SIGGRAPH." Computer Graphics 11(3) (1977).

3. "Special Issue: Graphics Standards." ACM Computing Surveys 10(4) (1978).

4. "Status Report of the Graphic Standards Planning Committee." Computer Graphics 13(3) (1979).

5. Encarnacao, J. et at.. 'The workstation concept of GKS and the resulting conceptual differences to the GSPC core system.' Computer Graphics 14(3), 226-230 (1980).

6. ten Hagen, P.J.W. and Hopgood, F.R.A., "Towards Compatible Graphics Standards." Report 17/79, Mathematisch Centrum, Amsterdam (1979).

7. Sutcliffe, D.C" 'Attribute Handling in GKS.' In: "Eurographics 82" (Greenaway, D.S. and Warman, E.A., eds), pp 103-110. NorthHolland, Amsterdam (1982).

8. Rosenthal, D.S.H. et at.. 'The Detailed Semantics of Graphics Input Devices.' Computer Graphics 16(3), 33-38 (1982).

9. Bono, P.R. et al., 'GKS - The First Graphics Standard.' IEEE Computer Graphics and Applications 2(5), 9-23 (1982).

10. Enderle, G. et al., "Computer Graphics Programming." Springer Verlag, Heidelberg (1984).

11. "ISO 7942, Information processing systems - Computer graphics - Graphical Kernel System (GKS) functional description." ISO, Geneva(l985).

12. "ISO/DIS 8651/1 Information processing systems - Computer graphics - Graphical Kernel System (GKS) language bindings - Part I : FORTRAN. "

13. "ISO/DIS 8651/2, Information processing systems - Computer graphics - Graphical Kernel System (GKS) language bindings - Part 2 : Pascal. "

14. '"ISO/DP 8651/3, Information processing systems - Computer graphics - Graphical Kernel System (GKS) language bindings - Part 3 : Ada. "

15. "ISO/DIS 8632. Information processing systems - Computer graphics - Metafile for transfer and storage of picture description information."

16. "ISO/DP 8805. Information processing systems - Computer graphics - Graphical Kernel System (GKS) for three dimensions (GKS-3D) functional description."

17. '"Information processing systems - Computer graphics - Programmer's Hierarchical Interactive Graphics System." Working draft ISO/TC97/SC21 N819 (1985).