Java3D and VRML

Dateline: 8/13/98

One of the  big news items at VRML98 was that Sun Microsystems was joining the VRML Consortium. OK that's nice...now what? First some background.

Java3D is an API, (Application Programming Interface), a bunch of classes that let's you compose 3D geometry for display in your Java applets. A good overview is available from Sun in a marketing white paper about Java3D. One of the fundamental differences between Java3D and VRML is that Java3D is an API and VRML is a file format. This mean that there are no such thing as 3D geometry Java3D files. There are however Java3D programs that generate geometry. So there are a whole bunch of  methods that you can call, within a Java program to create complex geometry. For example Java3D let's you create a Scene Graph within which you instantiate Nodes that represent objects such as shapes, sounds, and lights. For more details see the HelloUniverse example program, part of the Introduction to Java3D documentation.

Part of the initial Java3D API also includes some advice for implementing a VRML browser with Java3D. According to the documentation: "VRML 2.0 files contain both geometry and behavior components. VRML 2.0 geometry components map straightforwardly onto Java 3D objects. VRML 2.0 behaviors (routes and scripting nodes), however, do not map directory onto Java 3D behaviors. The behaviors in a VRML 2.0 scene could be mapped onto a set of Java 3D classes that mimic the scene's functionality, but, unfortunately, this does not work in all cases. VRML 2.0's  runtime semantics, specifically the ability to retarget routes to other fields and the ability to access all the descendants of a referenced VRML 2.0 object, require that the same  structure that is specified in the VRML 2.0 file exists within the runtime environment." For more gory detail check out the whole document.

In the press release from the VRML Consortium announcing it's expanded charter they announced:
"Recognizing the success of open source projects such as Linux, Mozilla, and Apache, the VRML Consortium is also using this process to enable widespread VRML deployment and creation.

The first contribution of open source code for VRML comes from Sun Microsystems, Inc. which is providing the source code for a Java3DTM-based VRML 97 viewer applet free of charge. With the availability of open source code, it is expected that developers will modify the interface and/or parameters of the applet to best suit their individual needs. The applet and source code will be available from http://www.vrml.org."

The source mentioned in the press release will be available at http://www.sun.com/desktop/java3d/ so go get it and start hacking.
To get into this stuff some more you might want to join the Java3D Interest Group. The big question for the moment is how will Java3D work with VRML? Clearly one method of interoperation is via the VRML Browser written with Java3D mentioned in the above portion of the VRML Consortium's press release. The VRML file becomes the permanent standard representation of the world, and the Java3D VRML browser becomes the ubiquitous execution environment....hmmm just might be something there!
 


Previous Features