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

The current, experimental fork of the of the Java 3D source code is an early access of version 1.3.2. It is available for download from the CVS repository of this project.

This source release differs from the the current 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
  4. The internal documentation has been cleaned up for public consumption (although much work is needed on the actual content)
  5. 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 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 file a new JSR (or revive the existing JSR-189) under the Java Community Process (JCP) shortly, and form an Expert Group of community members to design and implement the next version of the Java 3D API. We envision 1.4 including features such as programmable shaders. Our goal is to minimize large scale changes to the system in order to deliver 1.4 as quickly as possible. This initial direction could be changed by the Expert Group.

Java 3D 1.5/2.0

The scope of this release will be driven by the JSR Expert Group. 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 in the form of e-mailed bug fixes, must have a signed contributor agreement [TODO link] on file. The Java 3D team regrets that we are 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 and copyright issues. We encourage all developers to download the agreement [TODO link], 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!

We invite anyone to be a project observer. 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.

The Java Community Process (JCP) 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 (that is, the public and protected classes, interfaces, methods, fields, and so forth in the javax.media.j3d and javax.vecmath packages) are controlled by the JCP and can not be freely modified. Modifications to the API will be created within the Java 3D JSR's by an Expert Group of JCP members. A call for experts will be made once this process is launched.

Releases

[TODO: links to code]

Examples

The j3d-examples project includes a set of simple example programs.

[TODO: links to other examples, e.g., j3dfly]

Feedback

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