Xj3D is an open-source Java implementation for X3D graphics. Xj3D is used to demonstrate many capabilities for specification development and supports a variety of valuable projects.
- 1 Goals and Timeline
- 2 Source Code Hosting
- 3 Web3D.org Website
- 4 Upcoming tasks
- 5 Discussion and consensus building
Goals and Timeline
We are considering how to further stabilize, improve and accelerate development of the Xj3D code base. This page is collecting ideas for potential improvement.
These are familiar topics and lots of great work continues. It should be straightforward for interested stakeholders to discuss and agree on next steps.
- Now ready for Xj3D source community and X3D working group teleconference, Monday 30 June 2014, 10-11am pacific
- Our goal is to have everything transitioned, stabilized, announced and ready for new contributions at the Web3D 2014 Conference and SIGGRAPH 2014 Conference in Vancouver Canada, 8-10 and 11-14 August.
Source Code Hosting
In order to achieve greater participation and development, the code needs to move to a stable public open-source repository. This will gain a lot more visibility among programmers who might want to contribute.
- xj3d.org has hosted the source for many years but development has been intermittent and somewhat less than fully open.
- The NPS branch of Xj3D is used for experimental development. Proven changes and unit tests are integrated back into the Xj3D trunk when stable.
Conclusion: mirroring the full site on SourceForge Xj3D project is our planned approach to meet group goals for unveiling and evangelizing Xj3D community opportunities at Web3D 2014 Conference and SIGGRAPH 2014.
- The current xj3d.org code is in subversion, this can be migrated completely
- Web3D already has numerous assets checked into the Sourceforge X3D project, it is available
- Sourceforge also has related projects for jgeom and open-dis
- Multiple participants have experience with using and administering the Sourceforge site
- Instead of using the Web3D X3D project, can Web3D instead create a new and separate Sourceforge project for Xj3D to keep things a bit simpler?
- Can the new site maintain a side-by-side mirror of Xj3D.org and an refactored trunk, so that all updates are reliably accessible?
- Can the new site keep a new trunk adjacent but separate so that new developers can get started quickly?
- There is a lot of merit to using a version-control system that is familiar, especially as we try to integrate other Xj3D variants and prepare for SIGGRAPH milestones.
- GitHub includes the X3DOM project and a few other X3D-related projects.
- We have reserved an X3D Xj3D project site on GitHub as a placeholder. This might be useful for cross-links and future evolution.
- The github pricing policy does not cost money to operate an open-source organizational repository.
- We are looking at migration of subversion to git.. appears possible but somewhat involved.
- If we do migrate to GitHub, that will likely complicate the re-integration of other existing subversion-based exports of Xj3D.
- Apache Maven can encourage a variety of build possibilities and paired support between multiple projects, especially for Java
Several project builds are maintained on external repositories but their corresponding websites are automatically built and updated on web3d.org
Web3D summary page
- TODO: have www.web3d.org/xj3d (or somesuch) provide an official summary page for Xj3D community on new web3d.org website
- TODO: find and cleanup or move other wiki pages for Xj3D
Mailing list updates
Web3D Consortium maintains the mailing list archives.
- Discussion list source@web3D.org is a misnomer and might be restarted as email@example.com
- This list is also used for discussions on the SourceForge jgeom project
- Commits list firstname.lastname@example.org and commits account email@example.com are also mis-named since subversion is used
Alternative (and likely preferred) approach: move all discussion and reporting lists to the sourceforge repository in order to maximize community productivity. In that case, the prior email lists are simply closed and kept archived, which also reduces the web3d.org administrative burden.
Merge modified Xj3D codebases
Excellent improvements to Xj3D have occurred over the years that were never re-integrated into the version-controlled code base. We hope to capture these improvements.
- Structure And Form Analysis System (SAFAS), Nicholas Polys, Virginia Tech (VT)
- PartDB Inc., Hyokwang Lee
- Norkart/NK-VirtualGlobe, Rune Aasgaard
Xj3D issue tracking
Currently two bugzilla sites are in existence.
For maximum reliability over long term, we likely need to migrate to the SourceForge tickets tracker. Past bugs and issues can be transcribed as appropriate to maintain historical rationales.
Xj3D website improvements
The Xj3D website is moderately complete but woefully out of date.
- Confirm that website pages and documentation are checked into version control
- Automate website updates by synchronizing with version control
- Offer ways for people to contribute bug reports, issues, improvements
Several areas of Xj3D implementation are problematic. Dedicated attention and teamwork may help.
- Better run-time exception reporting (most log entries are completely obscure)
- Confirm updated jogl rendering is working, especially z-buffer and aliasing
- Extrusion node (passes 7 of 10 tests)
- Image rendering timing can miss colors/textures and hangs on numerous examples
- Compressed binary encoding hangs on numerous examples, but the apparent list of exception errors seems short
- Ensure that we are keeping current with JOGAMP (formerly java.net JOGL, includes JOAL JOCL etc.) and the Aviatrix3D render layer (github), administered by Justin Couch
- Other project efforts are welcome
Discussion and consensus building
Consensus summary points
- Basic strategy: we are evolving by re-versioning, not re-naming Xj3D
- We will simply mirror the current xj3d.org repository, as version 2.0, and maintain full backwards compatibility by integrating any forthcoming changes there
All inputs and contributions are welcome. Have fun with Xj3D!