[sci.virtual-worlds] We Need A New Language: Part 1 of 3

thinman@uunet.UU.NET (01/30/91)

       Real-time interaction with screen, input devices, and
       force-feedback devices, (the building blocks of "virtual
       reality") promises to revolutionize mass-market computer
       graphics, and indeed all of computer interaction.  We need a
       common programming language for 3D computer graphics.

       It is a common mistake (c.f. Unix and the PC) to standardize
       on an architecture that happens to work well for
       contemporary applications, but cannot stretch to meet new
       needs.  The anatomical analogy is to animal species which
       grow larger and larger (cubic increase in weight) with the
       same relative skeletal thickness (squared increase in
       strength).  Indeed, the original purpose of the Mach project
       was to design a new type of skeleton for UNIX with thicker
       bones and more regular coupling mechanisms.

       With unification around one software architecture, the use
       of 3D computer graphics will explode.  The current totality
       of 3D graphics systems will become a sliver of the total
       market.  Standard PC GUI's will be 3D, not 2D.  Virtual
       reality hardware is here today, but pleasant user
       interaction is not.  Software is not available for a mass-
       market platform.  It will require the collective effort of
       many artists, designers, and programmers.  These energies
       will only be unleashed if 3D graphics unifies.

       A short marketing digression: the computer market can be
       divided into two sectors: computers which are affordable to
       the average affluent consumer, and those which are used
       exlusively by businesses.  In the latter sector we have many
       examples of successful software systems:  Berkeley TCP/IP,
       sendmail, and the X Window System.  These systems share a
       common profile:

          1) they are free or easily available,

          2) they are portable,

          3) they are reasonably functional, and

          4) they have a backing organization which coordinates
            user-contributed enhancements and bug fixes.

       Before 1980, UNIX also followed the above profile.

       Another short marketing digression:  the life cycle of a
       computer market is strongly influenced by its level of
       unification:

         a.  A new idea or level of technology appears.

         b.  A few pioneering vendors appear.

         c.  The market heats up.

         d.  Many more vendors appear.  There are now many
             proprietary schemes, all of which do roughly the same
             thing.  The customers favor one or a few schemes.

         e.  The market is now at a cusp point where it has 2
             choices:
                     Unification around one architecture.  The
                     market achieves lift-off.  Most of the
                     original vendors and lots of proprietary
                     schemes are frozen out.  A vendor either
                     provides unifying bridge software that helps
                     customers re-use software for old proprietary
                     scheme under the new unified architecture, or
                     the vendor dies.
             or
                     Non-unification with a slow die-off of
                     proprietary schemes with lesser market share.
                     Total market growth is much slower without
                     unification.  The user's "standard of living"
                     is much lower because without one clear
                     platform, much second- and third-tier "fill in
                     the gaps" software is never written.

       It's crucial to the future of 3D computer graphics, and
       Virtual Reality in particular, that the field settle on a
       common software standard.  We are now at the cusp point.
       The basics of 3D graphics are widely accepted; there exists
       a plethora of textbooks.  There are a few generally agreed
       methods for the construction of each level of graphics
       systems.  Yet, there is no common standard for 3D softare
       development.  Several major vendors have proprietary library
       systems which achieve excellent results for their particular
       graphics architecture.  Researchers rarely release the
       software resulting from their efforts because that software
       will only work on a small fraction of the machines used by
       their colleagues.  It is very much in the interest of 3D
       graphics vendors to collectively fund a freeware VR software
       system.

Lance Norskog
thinman@cup.portal.com

Pezely@udel.edu (Cowboy Dan) (01/31/91)

Lance Norskog writes in article <15444@milton.u.washington.edu>:
>
>       Real-time interaction with screen, input devices, and
>       force-feedback devices, (the building blocks of "virtual
>       reality") promises to revolutionize mass-market computer
>       graphics, and indeed all of computer interaction.  We need a
>       common programming language for 3D computer graphics.
I see your point, but...

Why limit yourself to only three dimensions?

Why hard-wire 3D into a language or a VR platform?
(For that matter, why hard-wire anything into VR if you don't have to?)

You can split up audible, tactile, and graphic data from the render-data so
as to blast fewer bytes to the respective output systems, but then you need
separate structures to handle each type of output which would seemingly
belong inside the language; we shouldn't favor visual data over audio.
Such a system would then have limiting factors when observed a few years
down the road.

Why waste the time and energy inventing a new language when there is
already a suitable one  IF  you take into consideration the computational
facilities beyond the current generation of hardware?


What language then?  Common Lisp!

If you object to it, then you do not know enough about the language.

If you object to its use in VR, then ---IMHO--- you are being too
short-sighted about the design of VR systems.

Many organizations and companies are using object-oriented C or C++ with
custom libraries to provide for 3D.  I heard (ie, not sure if it's true)
that AutoDesk bought the company which makes HOOPS to simplify development.

Kids, DO try this at home:
If you design the VR system right, you can make an efficient C/C++ platform
with Lisp as a top-level language to handle the variable data structures.

Think of it as a meta-OS with Lisp applications running on top.  This makes
sense mostly for heterogeneous distributed systems with mixed-bandwidth
networks, not to mention the ability to re-program the system utilities
on-the-fly (something very useful for R & D).

I'm sure I'll get flamed for this....  Oh well.
(my response might not come for a few days, though.)

-Daniel