[x3d-public] announce: coordinated update X3DUOM, X3D XML schema, X3DJSAIL Java, X3D Ontology, X3D Tooltips, X3D Python

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Mon Aug 19 00:09:45 PDT 2019


Release announcement: coordinated updates are now published for

- X3D XML Schema
- X3D Unified Object Model (X3DUOM)
- X3DJSAIL: X3D Java Scene Access Interface Library and Java 8/Java 12 testing
- X3D Ontology
- X3D Tooltips
- X3D Python Language Binding

=============================================================================

a. *X3D XML Schema*

X3D XML Schema update activity:
https://www.web3d.org/specifications/x3d-schema-changelog.txt

11 AUG 2019, brutzman
- add "IS"    annotation for X3DUOM to X3DNode and other top-level nodes, node types
- add "field" annotation for X3DUOM to Script, ComposedShader, PackagedShader and ShaderProgram
- corresponding changes to X3DJSAIL, X3D Python Package, X3D Ontology

X3D XML Schemas v3.0-4.0 and corresponding documentation updated at

	X3D Specifications: Schema and DOCTYPE Validation
	http://www.web3d.org/specifications

notably
	http://www.web3d.org/specifications/x3d-4.0.xsd

	http://www.web3d.org/specifications/X3dSchemaDocumentation4.0/x3d-4.0.html

=============================================================================

b. *X3DUOM*

The X3D Unified Object Model (X3DUOM) is a full set of object-oriented interfaces for all nodes, fields and statements in the X3D Architecture Specification.

	X3D Unified Object Model (X3DUOM)
	https://www.web3d.org/specifications/X3DUOM.html

notably
	https://www.web3d.org/specifications/X3dUnifiedObjectModel-4.0.xml

=============================================================================

c. *X3DJSAIL*

X3D Java Scene Access Interface Library (X3DJSAIL) supports programmers with standards-based X3D Java interfaces and objects, all as open source.

	https://www.web3d.org/specifications/java/X3DJSAIL.html

X3DJSAIL required a number of changes since field and IS/connect support were "hard coded" previously.  This required close attention and was a worthy refactoring to accomplish, since it makes the codebase that much more adaptive to maintain.

/New support/: X3DJSAIL tests under Oracle Java 8/Java 12 testing are satisfactory for both platforms under both Netbeans 8.2 (long-running) and 11.1 (new release).  Further testing is showing latest OpenJDK to be fully robust.  Recent upgrade to Ant also worked fine.

/New feature/: -toPython conversion using X3dToPython.xslt stylesheet.

Example smoke tests and unit tests are found at

	https://www.web3d.org/specifications/java/X3DJSAIL.html#Examples

	HelloWorldProgram.java source
	https://www.web3d.org/specifications/java/examples/HelloWorldProgram.java

	HelloWorldProgramOutputLog.txt
	https://www.web3d.org/specifications/java/examples/HelloWorldProgramOutputLog.txt

New default Java development environment is

	Apache Netbeans 11.1
	https://netbeans.org

	Java OpenJDK 12.0.2
	https://jdk.java.net/12

	Apache Ant 10.6
	http://ant.apache.org

Configuration details for Java developers supporting each of these tools is maintained at

	NPS Savage Developers Guide
	https://savage.nps.edu/Savage/developers.html

=============================================================================

d. *X3D Ontology*

Rules for X3D Ontology are easily updated via XSLT stylesheet autogeneration.

* X3D Ontology 4.0 (initial draft)
   https://www.web3d.org/x3d/content/semantics/ontologies/X3dOntology4.0.ttl

with recent descriptions online at

* Metadata and Semantics for Web3D, workshop abstract, Web3D 2019
   https://www.web3d.org/x3d/content/semantics/documentation/workshops/SemanticWeb3DWorkshop.2019July27.pdf

* X3D Semantic Web Working Group: Collected Concepts
   https://www.web3d.org/x3d/content/semantics/documentation/workshops/X3dSemanticWebWorkingGroupCollectedConcepts.2019July27.pdf

=============================================================================

e. *X3D Tooltips*

X3D Tooltips are frequently checked for correctness and used as part of X3DJSAIL Javadoc.  They are convenient place to "check first" for questions since entries for each node and field have numerous links to all related specifications, resources and documentation.

	Extensible 3D (X3D) 3.3 Tooltips (with X3D version 4.0 draft)
	https://www.web3d.org/x3d/tooltips/X3dTooltips.html

=============================================================================

f. *Python X3D Language Binding*

Together with Loren Peitso I've implemented a full Python X3D package in python /x3d.py/ that is much more pythonic and applies a design that abandoned all overtones of prior java/javascript APIs for X3D.   It is generated from X3DUOM and has fairly thorough smoke tests. Have also written a new X3dToPython.xslt spreadsheet which turned out to be relatively easy to adapt.  Python is quite strict, which is also good.  This has been applied to full X3D Examples Archives to good effect, the vast majority pass Python's strict load requirements and self-validate satisfactorily. So, if it continues to survive upcoming scrutiny, we are likely back on the playing field and aiming for wide deployment and usage of X3D Python.

"The x3d.py Python X3D Package supports programmers with Python interfaces and objects for standards-based X3D programming, all as open source."

	Python Package Index (pypi) project: x3d v0.0.5
	https://pypi.org/project/x3d
	
	Python X3D Package x3d.py
	https://www.web3d.org/x3d/stylesheets/python/python.html

Approximately 3500 X3D Examples have been converted to python, then loaded to perform self checks.  The vast majority pass, bug tracking continues.

	X3D Resources, Examples: Scene Archives for X3D
	https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples

	Hello World (python)
	https://www.web3d.org/x3d/content/examples/HelloWorld.py

Next major TODO item is to extend type checking with fully strict validation of field values: min/max value restrictions, allowed enumeration strings, etc.  Also will add support for embedded Script source code.

Apologies for relative quietness on all this Python work - certainly not a secret but recent months have been way busy... most of this was announced on x3d-public and in slideset in time for Web3D 2019 and SIGGRAPH 2019 conferences.  Steady incremental progress continuing.

	First alpha release of #X3D package for Python programming language @pypi
	https://twitter.com/Web3DConsortium/status/1154449868846297088

Effective PyPi distribution can eventually lead to Jupyter Notebook, Anaconda and Apache Zeppelin distributions too, so there will be no shortage of future Python X3D work to pursue!

/New development this weekend/: X3D field attributes "class" and "global" collide with corresponding Python keywords.  In keeping with Python style guidance and practice, these are now renamed within x3d.py and translator as "class_" and "global_" respectively.  Thanks to Vince Marchetti for this insight.

=============================================================================

g. *Looking Ahead*

The window for X3D version 4 technical contributions closes on 16 DEC 2019, four short months away.

	X3Dv4 Strategy
	https://www.web3d.org/x3d4

	X3Dv4 Implementations
	https://www.web3d.org/x3dv4-implementations

	X3Dv4 Draft is Moving In Fast: 3D Everywhere! presentation from Web3D 2019 Conference, Los Angeles, 26-28 July 2019.
	https://www.web3d.org/sites/default/files/page/X3D%20Version%204%20Strategy/X3dVersion4Web3d2019LosAngelesCaliforniaBrutzman.29JUL2019.pdf

All of coordinated work reported here, plus the X3D JSON encoding and Github specifications and Mantis issues, are steadily tracking all X3Dv4 progress.

Will you be ready?  "Luck favors the prepared mind." - Louis Pasteur.

Have fun with X3D!  8)

all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman


More information about the x3d-public mailing list