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:
- The Java3D internal documentation has been upgraded for public
consumption
- Apache Ant is now used to build Java 3D
- The Headspace AudioEngine has been removed. The JavaSound
AudioEngine, which is not fully functional, is now the only available
AudioDevice
- 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.
- DirectX build environment for MinGW (using gcc)
- DirectX 9 port
- .....
- JOAL-based audio engine
- Character Animation utility
- Terrain utility
- Collision Avoidance utility
- CSG (geometry boolean operators) utility
- Loaders
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