Java 3D
| Company type | API / Software |
|---|---|
| Industry | Computer software, 3D graphics |
| Founded | 1997 |
| Founder | Intel, Silicon Graphics, Apple, Sun Microsystems (consortium) |
| Headquarters | Cross-platform |
| Products | 3D graphics API for Java platform |
Java 3D is a scene graph-oriented 3D application programming interface (API) designed for the Java platform. Up to version 1.6.0, it functioned on top of OpenGL or Direct3D, before transitioning to Java OpenGL (JOGL). Since version 1.2, its development has been governed by the Java Community Process. The core of its architecture is a directed acyclic graph (DAG) representing the scene graph.
Unlike basic wrappers, Java 3D provides a fully-fledged object-oriented API that abstracts the complexities of graphics programming. It enables scene construction through a hierarchical scene graph that models visual elements. Additionally, it includes comprehensive support for spatialized 3D audio effects.
The Java 3D API and its associated documentation are distributed separately and are not bundled within the standard Java Development Kit (JDK).
History
In 1996, a consortium of leading technology firms—Intel, Silicon Graphics, Apple, and Sun—joined forces to create a Java-based retained mode scene graph API, which evolved into Java 3D. Development commenced in 1997, with a public beta release in March 1998 and the inaugural official version launched in December 1998.
After a development hiatus between mid-2003 and summer 2004, Java 3D transitioned into a community-driven source project, maintained by Sun and volunteer contributors.
On January 29, 2008, the primary development focus shifted from Java 3D toward building a 3D scene graph within JavaFX. With the release of JavaFX featuring integrated 3D capabilities in Java 8, Java 3D was effectively supplanted for many use cases.
Starting February 28, 2008, the source code of Java 3D was released under the GPL version 2 license with linking exceptions.
From February 10, 2012 onward, Java 3D adopted JOGL 2.0 for enhanced hardware-accelerated OpenGL rendering, an initiative led by Julien Gouesse.
Features
- Multithreaded architecture based on a scene graph
- Compatibility across multiple platforms
- Versatile real-time API suited for visualization and gaming applications
- Supports retained mode, compiled-retained mode, and immediate mode rendering techniques
- Hardware-accelerated rendering engines including JOGL, OpenGL, and platform-specific Direct3D
- Advanced virtual reality support featuring stereoscopic display and multi-monitor configurations
- Native integration with head-mounted display devices
- Support for CAVE systems enabling multiple screen projections
- Capabilities for spatialized 3D sound
- Programmable shader support compatible with both GLSL and Cg languages
- Implementation of Stencil buffer operations
- Import functionality for prominent 3D file formats such as 3DS, OBJ, VRML, X3D, NWN, and FLT
Competing technologies
Following the pause in development during 2003–2004, various Java-based scene graph APIs emerged as alternatives to Java 3D:
General purpose:
Gaming:
- jMonkeyEngine
- Espresso3D
Visualization:
Moreover, numerous C/C++ scene graph libraries offer Java interoperability through the use of the JNI. For lower-level access, widely used options include the JOGL (JSR 231) bindings and the LWJGL.
See also
- Project Looking Glass (Java 3D-based experimental 3D desktop)
- Open Wonderland (Virtual collaboration platform utilizing Java 3D and Project Darkstar)
External links
- Harvey’s SIGGRAPH 2013 presentation on the current status of Java3D titled "I’m not Dead!"
- Introduction to Java3D preview setup: "Java 3D est de retour" (Java 3D is back)
- Latest versions available (Java 3D 1.7)
- Archived official website and archived release downloads
- JSR 926 (Java 3D version 1.5), JSR 912 (Java 3D version 1.3)
- Active discussion forum for Java 3D 1.6
- Former official forum and Wiki containing FAQs, collaboration resources, books, and user lists for Java 3D
- java3d.org: comprehensive tutorials, sample projects, and detailed information
- OpenGL.J3D: Java 3D tutorial collection
- Lecture material from Siggraph introductory course
- Game development resources in Java 3D: [1] and [2] (PDF chapters with source code)
- Eclipse plugin for Java 3D hosted on SourceForge
- Sample visualization applets developed with Java 3D
- EMAP: interactive explorer of three-dimensional anatomical structures