License | Downloads | How to Contribute | Reporting Issues | Feedback and Discussion | Project Highlights | Project Suggestions | Examples

This project contains the source code for the core Java 3DTM API package, javax.media.j3d.

Related projects include: vecmath (the 3D vector math package), j3d-core-utils (the Java 3D core utilities), and j3d-examples (the Java 3D example programs). The vecmath and j3d-core-utils projects are required to build j3d-core. Refer to the download and build instructions for information on downloading and building j3d-core.

License

The source code for the core Java 3D API reference implementation is licensed under the Java Research License (JRL) for non-commercial use. The JRL allows users to download, build, and modify the source code in the j3d-core project for research use, subject to the terms of the license.

Java 3D is also licensed for commercial use under a new no-fee Java Distribution License (JDL). The JDL allows commercial use of Java 3D with or without modification, as long as compatibility with the entire API Specification is maintained. This includes passing the TCK tests for Java 3D, and retaining the javax namespace as defined by the JCP.

The API specification will continue to evolve as part of the Java Community Process (JCP). We welcome community participation, and encourage developers to contribute both bug fixes and new implementation code to the API. The combination of the JRL and the JDL was chosen to facilitate this, while ensuring the integrity and compatibility of the API.

Downloads

Three types of Java 3D binary builds are available on java.net: Release (or FCS) builds; Stable (experimental, early access) builds; and Daily builds. The latest release build of Java 3D v1.3.2 is available. Daily builds of 1.4.0 are now available. Stable builds of Java 3D 1.4.0 will be available soon.

The javadoc for the fcs release of Java 3D v 1.3.2 can be found here. The javadoc for a recent daily build of Java 3D v 1.4.0 can be found here.

How to Contribute

We invite developers to contribute to Java 3D. Please refer to the Contributing to Java 3D page in the parent java3d project to learn how to contribute to this project or any other Java 3D-related project. See the JavaDesktop Community Governance Guidelines for general guidelines on participating in JavaDesktop community projects, such as j3d-core.

Reporting Issues

We have set up the Issue Tracker in the parent java3d project to track issues (bugs, feature requests, etc.) for Java 3D-related sub-projects. Please use the above link rather than the Issue Tracker in this j3d-core project. Refer to the Reporting Issues section in the parent java3d project for more information.

Feedback and Discussion

We have created four Java 3D mailing lists in the parent java3d project: interest 'at' java3d.dev.java.net, announce 'at' java3d.dev.java.net, issues 'at' java3d.dev.java.net, and cvs 'at' java3d.dev.java.net (replace 'at' with @). Click here to subscribe to any of these lists. The interest list is an open mailing list for discussing all aspects of Java 3D, the reference implementation for the Java 3D core, vecmath, utilities, example programs, etc. The annouce list is a low-volume moderated mailing list for announcing Java 3D-related news and information. The issues list is for automated issues tracking, and the cvs list is for automated CVS change messages (for changes to the parent java3d web pages only).

For those who prefer a forum to a discussion mailing list, we have created the Java 3D forum, hosted as part of the JavaDesktop Community. Messages posted on the forum are cross-posted to interest 'at' java3d.dev.java.net and vice-versa.

Finally, each sub-project has its own cvs mailing list. Click here to subscribe to this list. The cvs 'at' j3d-core.dev.java.net list is for automated CVS change messages and discussion of those changes.

Project Highlights

Release project Source code

The Java 3D source code is available for download from the CVS repository of this project. The trunk of the CVS repository is a stable (pre-fcs) version of Java 3D 1.3.2. A Java 3D 1.4 development branch, dev-1_4, is also available in the CVS repository. For a description of the CVS tags used in this project, please refer to "Using CVS Tags in Java 3D Projects". Daily builds for both 1.3.2 and 1.4.0 are available and are built from the CVS source trees.

Java 3D 1.3.2

The 1.3.2 version of Java 3D on java.net differs from the 1.3.1 release in the following ways:

  1. The com.sun.j3d.* packages have been split out into their own project (j3d-core-utils).
  2. Apache Ant is now used to build Java 3D
  3. The Headspace AudioEngine has been removed. The JavaSound AudioEngine, which is not fully functional, is now the only available AudioDevice. It is disabled by default.
  4. Many bug fixes have been incorporated

The reason the Headspace AudioEngine was removed is that we do not have the rights to ship the source code for the native Headspace sound mixer. Our plan going forward is to enourage the development community to implement an AudioEngine using JOAL.

Java 3D 1.4, 1.5, ...

A description of the set of proposed Java 3D API changes for 1.4 (and beyond) is now available. The main focus of the proposed 1.4 release is  the addition of programmable shaders. Our goal is to minimize large scale changes to the system in order to deliver 1.4 as quickly as possible. We encourage members of the development community to review this proposed set of changes and provide feedback. We also hope that community members will help us design and implement the 1.4 version of the Java 3D API.

Once the majority of the API changes are decided upon for Java 3D 1.4, we will file a new JSR (or revive the existing JSR-189) under the Java Community Process (JCP). At this time, we don't anticipate forming a JCP Expert Group, since we will already have reviewed the API publicly in the java.net community.

A list of other possible improvements to Java 3D version 1.4 is also available, and is an unprioritized list of improvements that do not require API changes.

Java 3D 2.0

The scope of this release will be driven by the level of interest and community support that we get. Our initial thoughts are that this work will include large scale changes to support features such as extensibility and pluggable renderers. Click the following link for a list of possible 2.0 features.

Project Suggestions

The main areas in j3d-core for which we need help from the community are:

Please see the Project Suggestions in the j3d-core-utils project for more ideas.

Examples

The j3d-examples project includes a set of simple example programs. The Java 3D Fly Through v 2.0 Beta sample application shows you how to take advantage of the capabilities of Java 3D technology. You can download the source code via http://java3d.netbeans.org.