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 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 binary builds are available in the Documents & Files section of this project on java.net: Release (or FCS) builds; Experimental (early access) builds; and Daily/Weekly builds. The latest release build of Java 3D v1.3.1 is available. A fairly stable experimental build, labeled as Java 3D v 1.3.2-build4 is now available. We will set up daily or weekly builds in the near future.

How to Contribute

We invite developers to contribute to Java 3D. Please refer to the Contributing to Java 3D section in the parent java3d project to learn how to contribute to this project or any other Java 3D-related project.

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.

Feedback and Discussion

We have created four Java 3D mailing lists in the parent java3d project: interest@java3d.dev.java.net, announce@java3d.dev.java.net, issues@java3d.dev.java.net, and cvs@java3d.dev.java.net. 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@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@j3d-core.dev.java.net list is for automated CVS change messages and discussion of those changes.

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

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.

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.