This project contains the source code for the core Java 3D 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 available for research use under the TBD1 license [TODO: license link]. It is also available for commercial use under the TBD2 license [TODO: license link]. 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 TBD1 and TBD2 licenses were chosen to facilitate this, while ensuring that the API is not fragmented with incompatible versions being released.

Project highlights

Release project Source code

This release of the Java 3D source code based on Java 3D 1.3.1 is available for download from the CVS repository of this project.

This source release differs from the 1.3.1 release in the following ways:

  1. The Java 3D internal documentation has been upgraded for public consumption
  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
  4. Some minor bug fixes have been incorporated [TODO: list fixed bugs]

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 implement an AudioEngine using JOAL.

Java 3D 1.3.x bug fixes

We will work with the community to address bugs identified in Java 3D 1.3.1 and the will release new versions of Java 3D 1.3.x as needed. Bug fixes will be immediately available in the CVS source, or from the weekly builds on this site. We will release official 1.3.x versions no more often than twice a year.

Java 3D 1.4

We will form a JSR and work with the community to design and implement the next release of Java 3D. We envision 1.4 including features such a programmable shaders. Our current aim is to minimize large scale changes to the system in order to deliver 1.4 as quickly as possible. This initial direction may be changed by the JSR.

Java 3D 1.5/2.0

The scope of this release will be driven by the JSR. Our initial thoughts are that this work will include large scale changes to support features such as extensibility and pluggable renderers.

Project Suggestions

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

How to Contribute

[TODO: kcr: rewrite (and run spell check)]

Anyone who wants to contribute source code, even e-mailed bug fixes, must have a signed contributor agreement on file. The Java 3D team is unable to even look at submitted bug fixes unless this author has the contributor agreement on file. This may seems harsh, but it is a policy designed to protect the project from patent infringement, etc.

We encourage all developers to download the agreement, sign it, and fax it to the number indicated [TODO link]. Then you are more than welcome to send in fixes for your favorite bugs!

As the community matures and contributors demonstrate their familiarity with the API internals they will be invited to join the project as a developer with full CVS commit privilege. The last thing we want is lots of people hacking on the source in the central repository and destabilizing the API so we will be taking a cautious approach. We are not intending that Sun is the only organization with the rights to grant developer privilege, we would like to form a governance board with community members which will assume this mantel and help guide the project.

The JCP process also has a significant impact on how people can contribute to the project. Although the source of the API is available, and we actively encourage the community to contribute to it's development, the API itself (javax.media.j3d.* and javax.vecmath.*) are controlled by the JCP process and can not be freely modified. Modifications to the API will be created within the Java 3D JSR's by a group of JSR members. A call for nominations for JSR members will be made once this process is kicked off.

Releases

[TODO: links to code]

Examples

[TODO: links to examples]

Feedback

[TODO: list of feedback and participation options including mailing lists, project owners/contacts, discussion forum, wikis, etc.]