Java.next -- Four languages that represent the future of Java
Blogger Stuart Halloway has begun a series of posts on trends that point to the future of the Java platform. In his first post, he compares Clojure, Groovy, JRuby, and Scala -- four wildly different languages that nonetheless all play together in the JRE. Find out what unites these languages and what they can tell us about the future of Java-based development ...

Newsletter sign-up

Sign up for our technology specific newsletters.

Enterprise Java
View all newsletters

Email Address:

Java Media prominent at Siggraph97

The Java Media APIs and Java-based solutions burst onto the scene at this year's international conference for graphics and media professionals

Siggraph, the annual meeting of the members of the Graphics Special Interest Group of the Association for Computing Machinery (ACM), draws attendees from around the world and from a variety of backgrounds and interests. Organized originally by engineers and scientists, the Siggraph conference has expanded its scope over the years as computer graphics have moved from academia to mainstream usage. A variety of activities and events -- from content creation courses to art galleries and everything in between -- brought a crowd of over 48,000 artists, animators, scientists, engineers, designers, and graphics devotees of all sorts to Siggraph97.

With the sweltering L.A. heat from August 3 to 8, attending all of the announcements, meetings, and other Java-related events proved to be a full-time, exhausting undertaking. If the prominence of Java at this year's conference serves as any sort of foreshadowing for next year's, you can expect to see a wide variety of Java-based solutions at Siggraph98 in Orlando, FL, next July.

A lot of ground was covered in Java Media over the six days of the conference. Given that much of the audience at Siggraph is involved in three-dimensional graphics, a large part of JavaSoft's effort was spent on evangelizing the Java 3D API. Expect to see a more technical article that compares the newly specified Java 3D API with OpenGL and VRML in an upcoming issue of JavaWorld.

JavaSoft made a major press release during Siggraph announcing the 1.0 Java 3D specification release as well as early access releases of the Java Media Player and Java 2D APIs and the Java Sound Engine. See the Resources at the end of this article for more information on this JavaSoft announcement and other Java-related activity at Siggraph.

The Java 3D course

JavaSoft hosted a full-day introductory course on the new Java 3D API. This followed the release of the Java 3D 1.0 specification to the public by just four days. (Does anyone get the idea that JavaSoft was rushing to meet a deadline?) Though JavaSoft showed demos running on both Solaris and Windows NT machines, currently there are no publicly available implementations.

The course was noteworthy in part because it was aimed squarely at graphics programmers and others who might not already be intimately familiar with the Java language and runtime. This tactic struck pay dirt for JavaSoft: Throughout the entire day of the course, the meeting hall remained near its capacity of 750 people.

The first part of the class centered on the general benefits of Java that we have all come to know and love from Sun's marketing activities -- namely, "Write once, run anywhere," and so on. It also included a brief introduction to the Java 3D API and its basic structure.

The other major sections of the course included:

  • The Java 3D API -- A detailed discussion of the major objects and methods.

  • Unique Features of the Java 3D API -- A discussion of the design center of the API and its inherent strengths and weaknesses.

  • Applying the Java 3D API -- A case study presented by a speaker from Intel showing how Java 3D can be used to build compelling 3D games and environments.


Fundamentally, Java 3D is a graphics runtime that uses a Java-based scene graph, or a hierarchical set of relationships between objects in a three-dimensional scene, to render 3D graphics. As a higher-level API, Java 3D has been designed to be a common subset of all 3D graphics API functionality available in several major pre-existing 3D APIs. This gives Java 3D implementors flexibility in implementing on top of well-established APIs.

JavaSoft's current Windows and Solaris implementations of Java 3D in turn use OpenGL as their interface into machine-specific functionality. JavaSoft also anticipates possibly providing implementations of Java 3D built on top of Direct3D for Win32 and QuickDraw3D for MacOS at some point in the future.

The emphasis on its runtime nature was constantly pointed out by JavaSoft personnel, largely in response to questions by Virtual Reality Modeling Language (VRML) supporters. Whereas VRML is predominantly a file format for 3D scene graphs, Henry Sowizral of JavaSoft explained that Java 3D is a runtime API and system for building and using scene graphs in Java. He illustrated this point with an example showing that though one might write a computer-aided design (CAD) program using Java 3D, this program might output models into VRML for use on the Web or for importation into other modeling or CAD packages.

There are many other differences between Java 3D and VRML. Nonetheless, the basic concern that most people seemed to have was that Java 3D was an attempt to preempt the pre-existing and widely deployed Web standard of VRML. The tension came to a head when someone asked point blank which of the two they should use if they had deadlines to meet this year and needed to employ a 3D graphics project that used Java to manage the scene. The answer from JavaSoft's featured Java 3D speaker: "Don't even think about using Java 3D in a product this year."

An interesting way to hedge your bets did emerge, however. JavaSoft has already built a VRML 1.0 and 2.0 loader to read in VRML files and build up Java 3D scene graphs from them. Indeed, most of the really compelling content that was demonstrated running in Java 3D was actually authored by others in VRML and then read in by JavaSoft using their loader. JavaSoft has made no public commitments to ship its VRML loader, but a source at JavaSoft agreed that it would make good sense to provide this tool in some form for content creators to use to import their VRML content into the Java 3D runtime. Because of this, building content in VRML seems to be the safe approach -- whether or not you ultimately decide to move that content into the Java 3D runtime.

Java 3D and Java Media "SIG"

The questions got more intricate at a JavaSoft-hosted Java Media birds-of-a-feather session. (Such sessions are called SIGs instead of BOFs at Siggraph.) JavaSoft used this forum as an opportunity to also introduce attendees to several other Java Media APIs, with presentations on Java 2D, Java Advanced Imaging, Java Media Players, and Java Sound.

Resources
  • The Siggraph97 Web site is the definitive source of information on the conference. http://www.siggraph.org/s97/
  • JavaSoft's Java Media press release, issued from Siggraph97, outlines the availability of the Java 3D spec and early access information on several other Java Media and Communication APIs. http://www.javasoft.com/pr/1997/aug/pr970806-01.html
  • Business Wire provides links to Siggraph97 press releases. http://www.businesswire.com/tradeshow/sig97.shtml
  • JavaSoft's Java Media Web site provides information on current and upcoming Java Media and Communication APIs. It currently contains links to Java2D, Java3D, Java Media Framework, Java Sound, and Java Telephony API information. http://www.javasoft.com/products/java-media/
  • JavaSoft's Java 3D page provides links to the 1.0 specification. http://www.javasoft.com/products/java-media/3D
  • The OpenGL Consortium provides information on OpenGL specs, licensees, and more. http://www.opengl.org/
  • The VRML Consortium site gives information on VRML's history as well as links to VRML FAQs and specs, including the draft specification of VRML97 currently under consideration by the ISO as an official standard. http://www.vrml.org/
  • "Java Media Framework Player API" article discusses Java Media Players. It includes some valuable Java Media references in its Resources section. http://www.javaworld.com/javaworld/jw-04-1997/jw-04-jmf.html
  • "Java Grows Up" article outlines the state of the Java APIs, including Java Media, as of the April 1997 JavaOne conference. JavaSoft has covered a lot of ground in the last few months! http://www.javaworld.com/javaworld/jw-05-1997/jw-05-javaone-day.html
  • Here's more information on the Entao Visual Chat from the Skunk Technologies Web site. http://www.skunktech.com/
  • The VirJa Session application and music controlled 3D graphics in VRML and Java are available from the researcher's Web site. http://www.info.waseda.ac.jp/muraoka/members/goto/PROJ/virja.html
  • Quantel makes image manipulation equipment for video, film, and print editing production. It announced at Siggraph that it is opening up its software with an embedded JVM and Quantel Java APIs. http://www.quantel.com/