Java 3D TM

Michael Frank Deering: Software: Java 3DTM


Company: Sun Microsystems, Inc.

Date of Product Announcement: March 1997

Date of Commercial Product Release: December 1998

Product Code Name/Production Name

While I made a presentation at the first VRML conference (1995) of a Java API built into HoloSktech entitled “3D Java”, and made a proposal for the VRML-2 design entitled “HoloWeb” (1996), all the work on the Java API for 3D was always called Java 3D. The only name change was from “JavaTM 3D” to “Java 3DTM” when the trademark was registered.

Engineering Teams

The Java 3D API was formally designed by a consortium that included SUN, Intel, SGI, and Apple. Groups and individuals from all of those companies contributed concepts and suggestions; Michael Shantz from Intel specifically supplied a large array math library. Most of the initial architecture of Java 3D was done by myself, Henry Sowizral, and Kevin Rushforth, as well as contributions by both the other consortum members and the many members of the production project coding team. Sun’s implementation of Java 3D was written entirely inside Sun, but by the 3D graphics group rather than the main Java group.


A number of new concepts were first introduced in the Java 3D API. These included hi-rez coordinates (256-bits for each of X, Y and Z), read-only and read-mostly mark bits for portions of the scene graph, behavior culling, the first built-in full support for virtual reality viewing models, and the support of geometry compression (compressed geometry).


A lot of the architectural design Java 3D was derived from experience from HoloSketch. Some features were direct decedents, others were intentionally alternative choices. Earlier work with TBAG was also an influence, as well as some of 3D software experience from Schlumberger. We were also heavily influenced by negative experience with PHIGS+, and several other scene graph API’s from various competitors.

Why Scene Graphs?

Eventually this section will be a link to why scene graph systems are sometimes necessary, whether 3D programmers like the idea or not.


Henry  Sowizral, Kevin Rushforth, and Michael F. Deering: “The Java 3D API Specification”, Addison Wesley 1998.

Henry Sowizral, Kevin Rushforth, and Michael F. Deering: “The Java 3D API Specification, Second Edition”, Addison Wesley 2000.

Web Links

The link below is the up to date main Sun Microsystems link for the current Java 3D implementation, libraries, example code, API, and other documentation.