[comp.graphics] Michener's History of PHIGS

tbg@apollo.COM (Tom Gross) (04/08/89)

Mich's version of PHIGS early history
Jim Michener
4/7/89

Written in response to a news group article (appended).

In the U.S., PHIGS was the development of the Accredited Standards 
Committee X3H3 (Graphics).  

X3H3 started meeting in October 1979.  There were discussions (like in 
1980) of what should be done with the CORE System (SIGGRAPH 79), when
somebody, I'm virtually certain it was Bert Herzog, said: 
     Let's revisit, one more time, the
     assumption that there should be no hierarchy.  
The decision went in favor of hierarchy.  Subsequent work, then,
went in the direction of merging hierarchy and CORE System functionality.

One subcommittee of X3H3, task group X3H3.1, worked simultaneously
on standardizing GKS internationally (and nationally) and on PHIGS.
The PHIGS attribute model at first was very similar to the CORE
system's (attributes directly in structures).  In contrast, early 
GKS had a table lookup model (index attributes, looked up in a "workstation 
table").  The collision between the two models in 1981 or 1982 created 
the Attribute Source Flag concept, which GKS and then PHIGS adopted.

--

GKS-3D started in about 1983 or 1984 after (almost) all the work was 
done on GKS.  It was an attempt to take some features from PHIGS and weld
them onto GKS.  After a while GKS-3D and PHIGS got into a moving-target
situation: Most folks agreed that the 3D parts of the two should be
the same (and that the primitives output onto workstations should be 
the same), so if some change was suggested for one of the systems, the 
other system would have to change too.

--

The name PMIG (I do not believe it was ever called PMIGS) referred
to the Programmer's Minimal Interface to Graphics.  It was definitely
not related to the development of PHIGS.  It was an attempt to cut
GKS functionality (which some judged to rich) down to about 30 functions.
GKS at the time had over 100 functions. Today's GKS (X3.124-1985) has about
186 functions.

I believe the name PHIGS was adopted after some discussion of PMIG, although
I am not positive.  In this light I would say that the "P.I.G." of PHIGS
came from PMIG.  The flow might have been in the opposite direction.
PMIG was abondoned around 1982, I believe.

--

Rensselaer Polytechnic Institute did one or more implementations
of early drafts of PHIGS.  Contact Salim Abi-Ezzi, still at RPI,
for more info.  I do not know at what point they started getting
IBM support.  I do recall in 1985 that Salim was giving the rest
of the committee reports on their implementation experience.

--

During the PHIGS discussions I recall a really minimal proposal (a joke)
that had only five functions. I do not remember the proposal exactly 
but it was something like:
   INITIALZE DEVICE
   SET COLOR (R,G,B)
   DRAW LINE (4x4 matrix)   - draws the unit line between (0,0,0) and (1,0,0)
                            - after transformation by the specified 4x4.
   READ CURSOR POSITION(x,y)
   TERMINATE DEVICE

--

The "real designer's" referred to the news group article below
would have to include the CORE system designers, the GKS designers,
and the X3H3.1 task group members. 

--

Submitted by
Jim (Been-in-graphics-standards-since-1971) Michener
mich@apollo.com

-------------------------------------------------------------


Article 4905 of 4909, Thu 01:40.
Subject: PHIGS early history?
From: garry@batcomputer.tn.cornell.edu (Garry Wiegand as guest @ Cornell Engineering && Ithaca Software)
(25 lines) More? [ynq] 
We are trying to track down the early design history of Phigs and 
get it straight. I had had a vague impression that Phigs was basically
an IBM contract to RPI which later got promoted to being an ANSI
committee, but that's all I knew.

My partner has called ANSI and dug through the Siggraph proceedings of
the early 80's. The information is very scanty there, but it sounds like:

    Phigs was an outgrowth of a GKS-3D group (which faded away upon not
    being able to reach agreement with the ISO GKS committee?); 

    The first (ad hoc?) committee to meet called it "PMIGS", started
    meeting in 1980, (and did the design from scratch?); 

    The first official standards committee called it "PHIGS" and started
    meeting in 1982. 

I don't know how the IBM/RPI work and the Megatek work fits into this, 
or who/when the real designers were.

Can anyone who was there in the early days fill us in on the designers,
the basic chronology, and the first implementations of PHIGS? How did 
it really happen?  (merci)

garry wiegand   (garry@larch.cadif.cornell.edu - @tcgould won't work!)

andrea@hp-sdd.hp.com (Andrea K. Frankel) (04/11/89)

In article <427e35c1.137b8@apollo.COM> tbg@apollo.COM (Tom Gross) writes:
>Mich's version of PHIGS early history
>Jim Michener
>4/7/89
>
>The name PMIG (I do not believe it was ever called PMIGS) referred
>to the Programmer's Minimal Interface to Graphics.  It was definitely
>not related to the development of PHIGS.  It was an attempt to cut
>GKS functionality (which some judged to rich) down to about 30 functions.
>GKS at the time had over 100 functions. Today's GKS (X3.124-1985) has about
>186 functions.
>
>I believe the name PHIGS was adopted after some discussion of PMIG, although
>I am not positive.  In this light I would say that the "P.I.G." of PHIGS
>came from PMIG.  The flow might have been in the opposite direction.
>PMIG was abondoned around 1982, I believe.

I joined the committee just after all this happened, but the guy at the
next desk who was our X3H3 rep kept me entertained with the ongoing soap
opera:

The early work on API's stemming from SIGGRAPH CORE was, just about from
the start, divided into two efforts colloquially called "small CORE" and
"large CORE" among the standards workers.  These were respectively
acronymmed as PMIG and Programmers' Interface to Graphics, or PIG.
There was all sorts of good-natured ribbing between the two groups -
small CORE calling the large CORE "pig" because it was such a resource
hog, large CORE teasing small CORE folks that PMIG spelled backwards was
"gimp" which was more descriptive ;@) There were all sorts of "tail
wagging the dog" arguments between the two groups, who eventually
figured out that you can't retain autonomy in making design decisions in
each group if you're also supposed to maintain compatibility (brilliant,
eh?).

PIG quickly became PHIGS (thank goodness - who could ever market a
product called [company name]-PIG?), since the hierarchy was one of the
key design distinctions between that and GKS, which is also a
programmer's interface to graphics.

PMIG wasn't exactly abandoned.  The higher levels of management in the
standards-making hierarchy called into question why we (X3H3) were
continuing to work on a standard which appeared to overlap substantially
the ISO standard GKS, and called upon X3H3 to justify or abandon the
work.  Although PMIG as a project was abandoned, it lived on as "Level
M" (for minimality) in the ANSI GKS standard; this Level M does not
appear in the ISO GKS standard.

As you might guess, many of the folks who had worked long and hard on
PMIG and really objected to the basic model of GKS were somewhat
discouraged about having to give up their pet project, and even more
disgruntled that it was they who were given the task of "ANSI-izing" GKS
(i.e., making the ISO standard into an ANSI standard).  These same folks
had probably not worked as hard as they might have to effect changes in
GKS while it was possible, because GKS was perceived as a European
standard unrelated to what we in the U.S.  were doing.  By the time PMIG
was "revectored" into ANSI GKS Level M, it was too late to do much about
major design issues in GKS, and we had to be content with trying to
band-aid the worst problems at the ISO level or putting in a few VERY
minor differences in the ANSI version.  (Of course, those of us in
companies which do a sizable portion of our business in the
international market really prefer to see a global approach to
standards, and try hard to minimize differences between ANSI and ISO
standards.)

This bit of history was a major factor in the subsequent direction taken
by X3H3, of pursuing almost all work primarily as international
standards with the intent to have identical ANSI standards adopted
nearly simultaneously.  It's much slower, more political, and more
frustrating (because of less direct control) than simply doing ANSI
standards, but it does ensure that we don't get into the same pickle
again.  (Different pickles, yes, same pickle, no ;@)

Andrea Frankel, Hewlett-Packard (San Diego Division) (619) 592-4664
	"wake now!  Discover that you are the song that the morning brings..."
______________________________________________________________________________
UUCP     : {hplabs|nosc|hpfcla|ucsd}!hp-sdd!andrea 
Internet : andrea%hp-sdd@hp-sde.sde.hp.com (or @nosc.mil, @ucsd.edu)
CSNET    : andrea%hp-sdd@hplabs.csnet
USnail   : 16399 W. Bernardo Drive, San Diego CA 92127-1899 USA