Difference between revisions of "Xj3D Evolution"

From Web3D.org
Jump to: navigation, search
(Merge orphaned Xj3D codebases)
m (bold)
 
(17 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[File:Xj3Dlogo-275.png|right]] 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.
+
[[File:Xj3Dlogo-275.png|right]]
  
Announcement:  NPS has ported the full Xj3D codebase and history to the [http://sourceforge.net/projects/xj3d Sourceforge Xj3D] site.
+
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.
 +
 
 +
'''This page is a historic asset.''' Please see
 +
[https://savage.nps.edu/Savage/developers.html#Xj3D Savage Developers, Xj3D NPS Source] for the latest status.  
  
 
== Discussion and consensus building ==
 
== Discussion and consensus building ==
 +
 +
NPS originally ported the full Xj3D codebase and history to the [http://sourceforge.net/projects/xj3d Sourceforge Xj3D] site. This page describes the how that transition from the original [http://xj3d.org xj3d.org] site took place.
  
 
We are using [mailto:source@web3d.org?subject=Xj3D%20Evolution source@web3d.org] mailing list  
 
We are using [mailto:source@web3d.org?subject=Xj3D%20Evolution source@web3d.org] mailing list  
Line 13: Line 18:
 
* We will simply mirror the current xj3d.org repository, as version 2.0, and maintain full backwards compatibility by integrating any forthcoming changes there
 
* We will simply mirror the current xj3d.org repository, as version 2.0, and maintain full backwards compatibility by integrating any forthcoming changes there
  
== Goals and Timeline ==
+
== Transition 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.
+
Long-term stability, improvement and development of the Xj3D code base are shared goals. This page records ideas for potential improvement. These are familiar topics and lots of excellent work continues.  
  
These are familiar topics and lots of great work continues.  It should be straightforward for interested stakeholders to discuss and agree on next steps.
+
It was straightforward for interested stakeholders to discuss and agree on next steps.
 +
* Following extensive comments from Xj3D source community and X3D working group from our teleconference on 30 June 2014, work to mirror Xj3D on SourceForge began during the week of 7 July 2014.
 +
* We achieved the goal to have everything transitioned, stabilized, announced and ready for new contributions at the [http://www.web3d2014.org Web3D 2014 Conference] and [http://www.siggraph.org SIGGRAPH 2014 Conference] in Vancouver Canada.
 +
* The NPS branch and original Yumetech trunk were successfully swapped in May 2015.
 +
* Additional variants of Xj3D have been integrated within the new trunk, sometimes saving alternates as branches for archival purposes.
 +
* Primary development is on the trunk with JOGAMP/JOGL/JOAL fully updated.
  
* Following comments from Xj3D source community and X3D working group from our teleconference on 30 June 2014, we plan to begin mirroring on SourceForge during the week of  7 July 2014.
+
== Source Code Hosting Transferred ==
* Our goal is to have everything transitioned, stabilized, announced and ready for new contributions at the [http://www.web3d2014.org Web3D 2014 Conference] and [http://www.siggraph.org 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.
+
  
 +
The Xj3D code was moved to a stable public open-source repository in order to enable greater participation and development. This approach also gained more visibility among programmers who might want to contribute.
 
* [http://www.xj3d.org xj3d.org] has hosted the source for many years but development has been intermittent and somewhat less than fully open.
 
* [http://www.xj3d.org xj3d.org] has hosted the source for many years but development has been intermittent and somewhat less than fully open.
 
+
* [https://savage.nps.edu/Savage/developers.html#Xj3D NPS branch of Xj3D] was used for experimental development. Proven changes and unit tests are integrated back into the Xj3D trunk when stable.
* [https://savage.nps.edu/Savage/developers.html#Xj3D NPS branch of Xj3D] is used for experimental development. Proven changes and unit tests are integrated back into the Xj3D trunk when stable.
+
  
 
'''Direction''': mirroring the full xj3d.org site on [https://sourceforge.net/projects/xj3d SourceForge Xj3D project] is the group's best approach to meet group goals for unveiling and evangelizing Xj3D community opportunities at Web3D 2014 Conference and SIGGRAPH 2014.
 
'''Direction''': mirroring the full xj3d.org site on [https://sourceforge.net/projects/xj3d SourceForge Xj3D project] is the group's best approach to meet group goals for unveiling and evangelizing Xj3D community opportunities at Web3D 2014 Conference and SIGGRAPH 2014.
Line 34: Line 39:
 
'''Results''': The codebase has been re-established at [http://sourceforge.net/projects/xj3d Xj3D Sourceforge project]
 
'''Results''': The codebase has been re-established at [http://sourceforge.net/projects/xj3d Xj3D Sourceforge project]
 
* [http://sourceforge.net/p/xj3d/code/HEAD/tree Xj3D Sourceforge codebase] without change (and with total prior code history) was made publicly available 8 August 2014
 
* [http://sourceforge.net/p/xj3d/code/HEAD/tree Xj3D Sourceforge codebase] without change (and with total prior code history) was made publicly available 8 August 2014
* Initial build tests satisfactory for both NPS branch and original Yumetech trunk
+
* Initial build tests satisfactory for both NPS branch and original Yumetech trunk.
  
 
Decision rationale follows for choice of source archive site.
 
Decision rationale follows for choice of source archive site.
  
 
=== SourceForge ===
 
=== SourceForge ===
 +
 
* The current xj3d.org code is in subversion, this can be migrated completely
 
* The current xj3d.org code is in subversion, this can be migrated completely
 
* Web3D already has numerous assets checked into the [https://sourceforge.net/projects/x3d Sourceforge X3D project], it is available
 
* Web3D already has numerous assets checked into the [https://sourceforge.net/projects/x3d Sourceforge X3D project], it is available
Line 49: Line 55:
  
 
=== GitHub ===
 
=== GitHub ===
 +
 
* GitHub includes the X3DOM project and a few other X3D-related projects.
 
* GitHub includes the X3DOM project and a few other X3D-related projects.
* We have reserved an [https://github.com/x3d X3D Xj3D] project site on GitHub as a placeholder. This might be useful for cross-links and future evolution.
+
* We have reserved an [https://github.com/x3d X3D Xj3D] project site on GitHub as a placeholder. This might be useful for cross-links and future evolution.
 
* The [https://github.com/pricing github pricing policy] does not cost money to operate an open-source organizational repository.
 
* The [https://github.com/pricing 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.
 
* We are looking at migration of subversion to git.. appears possible but somewhat involved.
Line 56: Line 63:
  
 
=== Maven ===
 
=== Maven ===
* [http://maven.apache.org Apache Maven] can encourage a variety of build possibilities and paired support between multiple projects, especially for Java. Who has some experience, or wants to experiment, with adding it?
+
 
 +
* [http://maven.apache.org Apache Maven] can encourage a variety of build possibilities and paired support between multiple projects, especially for Java. Who has some experience, or wants to experiment, with adding it?
  
 
== Web3D.org Website ==
 
== Web3D.org Website ==
Line 64: Line 72:
  
 
* TODO: have ''www.web3d.org/xj3d'' (or somesuch) provide an official summary page for Xj3D community on new web3d.org website
 
* 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
+
* TODO: find and cleanup or move other wiki pages for Xj3D - somewhat gated by difficulties with web3d.org wiki.
  
=== Mailing list updates ===
+
=== Mailing list considerations ===
  
 
Web3D Consortium maintains the mailing list archives.
 
Web3D Consortium maintains the mailing list archives.
* Discussion list ''[http://web3d.org/mailman/listinfo/source_web3d.org source@web3D.org]'' is a misnomer and might be restarted as ''xj3d@web3d.org''
+
* Discussion list ''[http://web3d.org/mailman/listinfo/source_web3d.org source@web3D.org]'' seems to be a misnomer, perhaps it should be restarted as ''xj3d@web3d.org''
* This list is also used for discussions on the SourceForge [https://sourceforge.net/projects/jgeom/?source=directory jgeom] project
+
* This list is also used for discussions on the SourceForge [https://sourceforge.net/projects/jgeom/?source=directory jgeom] project, so perhaps the current name is actually OK
 
* Commits list ''[http://web3d.org/mailman/listinfo/source_web3d.org source_x3d_cvs@web3d.org]'' and commits account ''[http://web3d.org/mailman/listinfo/source_web3d.org cvs-user@xj3d.org]'' are also mis-named since subversion is used
 
* Commits list ''[http://web3d.org/mailman/listinfo/source_web3d.org source_x3d_cvs@web3d.org]'' and commits account ''[http://web3d.org/mailman/listinfo/source_web3d.org cvs-user@xj3d.org]'' 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.
+
Another alternative option:
 +
* 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.
 +
 
 +
Resolution: we maintained stability with the ''[http://web3d.org/mailman/listinfo/source_web3d.org source@web3D.org]'' list.
  
 
== TODO: Opportunities and upcoming tasks ==
 
== TODO: Opportunities and upcoming tasks ==
Line 79: Line 90:
 
=== Merge orphaned Xj3D codebases ===
 
=== Merge orphaned Xj3D codebases ===
  
Separate projects have made excellent improvements to Xj3D over the years, but were never re-integrated into the master code base. We hope to capture, merge and test these improvements in version control, and then issue a series of new releases.
+
Separate projects have made excellent improvements to Xj3D over the years, but were never re-integrated into the master code base. We hope to capture, merge and test these improvements in version control, and then issue a series of new releases.
 
+
* NPS has maintained an [https://savage.nps.edu/Savage/developers.html#Xj3D Xj3D branch] that is used in multiple tools: X3D-Edit, example archives image generation, AUV Workbench, Viskit
* NPS has maintained an Xj3D branch that is used in multiple tools: X3D-Edit, example archives image generation, AUV Workbench, Viskit
+
 
* [http://www.web3d.org/case-studies/structure-and-form-analysis-system-safas/e-learning-and-e-design Structure And Form Analysis System (SAFAS)], Nicholas Polys, Virginia Tech (VT)  
 
* [http://www.web3d.org/case-studies/structure-and-form-analysis-system-safas/e-learning-and-e-design Structure And Form Analysis System (SAFAS)], Nicholas Polys, Virginia Tech (VT)  
* [http://www.partdb.com PartDB Inc.], Hyokwang Lee
+
* [http://www.partdb.com PartDB Inc.], Hyokwang Lee, Don Brutzman and Terry Norbraten
 
* [http://www.aniviza.com/svn/listing.php Aniviza modifications for NASA WorldWind] by Rick Goldberg
 
* [http://www.aniviza.com/svn/listing.php Aniviza modifications for NASA WorldWind] by Rick Goldberg
 
* [https://github.com/Norkart/NK-VirtualGlobe Norkart/NK-VirtualGlobe], Rune Aasgaard
 
* [https://github.com/Norkart/NK-VirtualGlobe Norkart/NK-VirtualGlobe], Rune Aasgaard
Line 92: Line 102:
 
=== Xj3D issue tracking ===
 
=== Xj3D issue tracking ===
  
Currently two bugzilla sites are in existence. They need to be merged and become active.
+
Currently two bugzilla sites are in existence. They need to be merged and become active.
 
* [http://bugzilla.xj3d.org bugzilla.xj3d.org] (master)
 
* [http://bugzilla.xj3d.org bugzilla.xj3d.org] (master)
 
* [https://www.movesinstitute.org/bugzilla/buglist.cgi?quicksearch=xj3d NPS bugzilla]  
 
* [https://www.movesinstitute.org/bugzilla/buglist.cgi?quicksearch=xj3d NPS bugzilla]  
  
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.
+
TODO: for maximum reliability over long term, we need to migrate to the SourceForge tickets tracker. Past bugs and issues can be transcribed as appropriate to maintain historical rationales.
  
 
=== Xj3D website improvements ===
 
=== Xj3D website improvements ===
  
The [http://www.xj3d.org Xj3D website] is moderately complete but woefully out of date.
+
The orginal [http://www.xj3d.org Xj3D website] is moderately complete but woefully out of date.  
 
+
Migration TODO:
+
  
 +
TODO website migration:
 
* Confirm that website pages and documentation are checked into version control
 
* Confirm that website pages and documentation are checked into version control
 
* Automate website updates by synchronizing with version control
 
* Automate website updates by synchronizing with version control
Line 110: Line 119:
 
=== Programming problems ===
 
=== Programming problems ===
  
Several areas of Xj3D implementation are problematic. Dedicated attention and teamwork may help.
+
Several areas of Xj3D implementation are problematic. Dedicated attention and teamwork may help.
 
+
 
* Better run-time exception reporting (most log entries are completely obscure)
 
* Better run-time exception reporting (most log entries are completely obscure)
 
* Confirm updated jogl rendering is working, especially z-buffer and aliasing
 
* Confirm updated jogl rendering is working, especially z-buffer and aliasing
* Extrusion node (passes 7 of 10 tests)
+
* Extrusion node support for orientation field (overall passes 7 of 10 tests)
 
* Image rendering timing can miss colors/textures and hangs on numerous examples
 
* 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
 
* Compressed binary encoding hangs on numerous examples, but the apparent list of exception errors seems short
 
* Ensure that we are keeping current with [http://jogamp.org JOGAMP] (formerly java.net JOGL, includes JOAL JOCL etc.) and the [http://aviatrix3d.j3d.org Aviatrix3D] render layer ([https://github.com/j3d/aviatrix3d github]), administered by Justin Couch
 
* Ensure that we are keeping current with [http://jogamp.org JOGAMP] (formerly java.net JOGL, includes JOAL JOCL etc.) and the [http://aviatrix3d.j3d.org Aviatrix3D] render layer ([https://github.com/j3d/aviatrix3d github]), administered by Justin Couch
 +
* FontStyle implementation is incorrect. See example [http://www.web3d.org/x3d/content/examples/ConformanceNist/Appearance/FontStyle/_pages/page01.html FontStyle/default]
  
Other project efforts are welcome
+
Other project efforts are always welcome.
 
* [https://savage.nps.edu/X3D-Edit X3D-Edit] update report
 
* [https://savage.nps.edu/X3D-Edit X3D-Edit] update report
 +
* Automatic creation of viewpoint images for all scenes in the [http://www.web3d.org/x3d/content/examples/X3dResources.html#Examples X3D Examples] archives
  
All inputs and contributions are welcome. Have fun with Xj3D!
+
All inputs and contributions are welcome. Have fun with Xj3D!

Latest revision as of 03:48, 30 January 2020

Xj3Dlogo-275.png

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.

This page is a historic asset. Please see Savage Developers, Xj3D NPS Source for the latest status.

Discussion and consensus building

NPS originally ported the full Xj3D codebase and history to the Sourceforge Xj3D site. This page describes the how that transition from the original xj3d.org site took place.

We are using source@web3d.org mailing list to work out these possibilities and build stakeholder consensus. (subscribe, archive)

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

Transition Goals and Timeline

Long-term stability, improvement and development of the Xj3D code base are shared goals. This page records ideas for potential improvement. These are familiar topics and lots of excellent work continues.

It was straightforward for interested stakeholders to discuss and agree on next steps.

  • Following extensive comments from Xj3D source community and X3D working group from our teleconference on 30 June 2014, work to mirror Xj3D on SourceForge began during the week of 7 July 2014.
  • We achieved the goal to have everything transitioned, stabilized, announced and ready for new contributions at the Web3D 2014 Conference and SIGGRAPH 2014 Conference in Vancouver Canada.
  • The NPS branch and original Yumetech trunk were successfully swapped in May 2015.
  • Additional variants of Xj3D have been integrated within the new trunk, sometimes saving alternates as branches for archival purposes.
  • Primary development is on the trunk with JOGAMP/JOGL/JOAL fully updated.

Source Code Hosting Transferred

The Xj3D code was moved to a stable public open-source repository in order to enable greater participation and development. This approach also gained 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.
  • NPS branch of Xj3D was used for experimental development. Proven changes and unit tests are integrated back into the Xj3D trunk when stable.

Direction: mirroring the full xj3d.org site on SourceForge Xj3D project is the group's best approach to meet group goals for unveiling and evangelizing Xj3D community opportunities at Web3D 2014 Conference and SIGGRAPH 2014.

Results: The codebase has been re-established at Xj3D Sourceforge project

  • Xj3D Sourceforge codebase without change (and with total prior code history) was made publicly available 8 August 2014
  • Initial build tests satisfactory for both NPS branch and original Yumetech trunk.

Decision rationale follows for choice of source archive site.

SourceForge

  • 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

  • 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.

Maven

  • Apache Maven can encourage a variety of build possibilities and paired support between multiple projects, especially for Java. Who has some experience, or wants to experiment, with adding it?

Web3D.org Website

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 - somewhat gated by difficulties with web3d.org wiki.

Mailing list considerations

Web3D Consortium maintains the mailing list archives.

  • Discussion list source@web3D.org seems to be a misnomer, perhaps it should be restarted as xj3d@web3d.org
  • This list is also used for discussions on the SourceForge jgeom project, so perhaps the current name is actually OK
  • Commits list source_x3d_cvs@web3d.org and commits account cvs-user@xj3d.org are also mis-named since subversion is used

Another alternative option:

  • 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.

Resolution: we maintained stability with the source@web3D.org list.

TODO: Opportunities and upcoming tasks

Merge orphaned Xj3D codebases

Separate projects have made excellent improvements to Xj3D over the years, but were never re-integrated into the master code base. We hope to capture, merge and test these improvements in version control, and then issue a series of new releases.

Please contact us if you have source code to integrate into the Xj3D project.

Xj3D issue tracking

Currently two bugzilla sites are in existence. They need to be merged and become active.

TODO: for maximum reliability over long term, we 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 orginal Xj3D website is moderately complete but woefully out of date.

TODO website migration:

  • 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

Programming problems

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 support for orientation field (overall 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
  • FontStyle implementation is incorrect. See example FontStyle/default

Other project efforts are always welcome.

  • X3D-Edit update report
  • Automatic creation of viewpoint images for all scenes in the X3D Examples archives

All inputs and contributions are welcome. Have fun with Xj3D!