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 build instructions [TODO: link] for more information.

License

The source code for the core Java 3D API reference implementation is available for research use under the Java Research License (JRL) [TODO: license link]. It is also available for commercial use under the Java Distribution License (JDL) [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 JRL and JDL 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 Java3D source code based on Java3D 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 Java3D 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.

Java3D 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. Bugfixes 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.

Java3D 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

Anyone who wants to contribute source code (even emailed bug fixes) must have a signed contributors agreement on file. The Java 3D team won't even look at emailed bug fixes unless this author has the contributor agreement on file. This seems onourous but it is a policy designed to protect the project from patent infringement etc which is obviously in the best interest of Java 3D.

So sign the agreement, fax it to the contact indicated and start sending fixes for your favourite 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 privaledge. The last thing we want is lots of people hacking on the source in the central repository and destabalizing the API so we will be taking a cautious approach. We are not intending that Sun is the only organisation with the rights to grant developer privaledge, 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 signifcant 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