<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1556742734;
        mso-list-type:hybrid;
        mso-list-template-ids:907199734 -1 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.25in;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.75in;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:1.25in;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:1.75in;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:2.25in;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:2.75in;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:3.25in;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:3.75in;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:4.25in;
        text-indent:-9.0pt;}
@list l1
        {mso-list-id:1880165361;
        mso-list-type:hybrid;
        mso-list-template-ids:2049489714 -1 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
        {mso-level-start-at:2;
        mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:"Times New Roman";
        mso-bidi-font-family:"Times New Roman";}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l2
        {mso-list-id:2062553289;
        mso-list-type:hybrid;
        mso-list-template-ids:1713540558 -1 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l2:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l2:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l2:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Extensible 3D (X3D) Graphics is the royalty-free open standard for publishing, viewing, printing and archiving interactive 3D models on the Web.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Here are recent updates.  Had some good refinements related to MultiTexture, now rippled out through all of the open-source autogenerated software builds.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<ol style="margin-top:0in" start="1" type="1">
<li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level1 lfo2">X3D XML Schema update activity, addressing some scene validation issues:</li></ol>
<p class="MsoNormal" style="text-indent:.25in">https://www.web3d.org/specifications/x3d-schema-changelog.txt</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">25 SEP 2021, brutzman</p>
<p class="MsoNormal">- (v3.1-v4.0) MultiTexture texture field has type X3DSingleTextureNode and can include</p>
<p class="MsoNormal">  ComposedCubeMapTexture, GeneratedCubeMapTexture, ImageCubeMapTexture,</p>
<p class="MsoNormal">  ComposedTexture3D, ImageTexture3D, PixelTexture3D</p>
<p class="MsoNormal">- (v3.1-v4.0) MultiTextureCoordinate is part of ComposedGeometryContentModel</p>
<p class="MsoNormal">- (v4.0) allow X3DComposedGeometryNode texCoord field to include</p>
<p class="MsoNormal">  X3DSingleTextureCoordinateNode|MultiTextureCoordinate</p>
<p class="MsoNormal">- (v4.0) allow watchlist containerField for backwards compatibility of X3D models in</p>
<p class="MsoNormal">  containerFieldChoicesAudioClip</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Corresponding changes added to X3D XML DOCTYPE as appropriate.  All details found at</p>
<p class="MsoNormal"><o:p> </o:p></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3">X3D Specifications: Schema and DOCTYPE Validation</li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3"><a href="https://www.web3d.org/specifications">https://www.web3d.org/specifications</a>
</li></ul>
<p class="MsoNormal"><o:p> </o:p></p>
<ol style="margin-top:0in" start="2" type="1">
<li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level1 lfo2">X3D XML Schema changes are applied to the X3DUOM, which then in turn is applied via XSLT conversion stylesheets to create multiple coding projects.</li></ol>
<p class="MsoNormal"><o:p> </o:p></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3">X3D Unified Object Model (X3DUOM)</li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3"><a href="https://www.web3d.org/specifications/X3DUOM.html">https://www.web3d.org/specifications/X3DUOM.html</a>
</li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3"><a href="https://www.web3d.org/specifications/X3dUnifiedObjectModel-4.0.xml">https://www.web3d.org/specifications/X3dUnifiedObjectModel-4.0.xml</a>
</li></ul>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">“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.”</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Each of the following codebase updates passed respective sets of unit tests and conversions using the test scenes (nearly 4000 total).</p>
<p class="MsoNormal"><o:p> </o:p></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3">X3D Resources, Examples: Scene Archives for X3D</li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3"><a href="https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples">https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples</a>
</li></ul>
<p class="MsoNormal"><o:p> </o:p></p>
<ol style="margin-top:0in" start="3" type="1">
<li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level1 lfo2">JAVA X3DJSAIL API</li></ol>
<p class="MsoNormal"><o:p> </o:p></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3">X3D Java Scene Access Interface Library (X3DJSAIL)</li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3"><a href="http://www.web3d.org/specifications/java/X3DJSAIL.html">http://www.web3d.org/specifications/java/X3DJSAIL.html</a>
</li></ul>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">“X3D Java Scene Access Interface Library (X3DJSAIL) supports programmers with standards-based X3D Java interfaces and objects, all as open source.”</p>
<p class="MsoNormal"><o:p> </o:p></p>
<ol style="margin-top:0in" start="4" type="1">
<li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level1 lfo2">Python X3DPSAIL API</li></ol>
<p class="MsoNormal"><o:p> </o:p></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3">X3D Python Scene Access Interface Library (X3DPSAIL)</li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3"><a href="https://www.web3d.org/x3d/stylesheets/python/python.html">https://www.web3d.org/x3d/stylesheets/python/python.html</a>
</li></ul>
<p class="MsoNormal"><o:p> </o:p></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3">Python x3d.py package</li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3"><a href="https://pypi.org/project/x3d">https://pypi.org/project/x3d</a>
</li></ul>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">“The x3d.py Python X3D Package supports programmers with Python interfaces and objects for standards-based X3D programming, all as open source.”</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Design Features</p>
<p class="MsoNormal"><o:p> </o:p></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3">The current implementation strives to follow first principles of python package design, being as "pythonic" as possible. Creating a native-Python implementation for X3D data structures
 appears to provide the greatest possible portability.</li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3">Python is exceedingly rigorous regarding design and implementation, demands crisp readability, and often leads to a single best approach for each programming task. These are valuable
 features that lead to ease of programming and greatly reduced debugging. A single well-constructed open-source Python X3D implementation has the potential to serve all Python distributions and programmers well.</li></ul>
<p class="MsoNormal"><o:p> </o:p></p>
<ol style="margin-top:0in" start="5" type="1">
<li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level1 lfo2">X3D Ontology</li></ol>
<p class="MsoNormal"><o:p> </o:p></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3">X3D Ontology for Semantic Web</li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3"><a href="https://www.web3d.org/x3d/content/semantics">https://www.web3d.org/x3d/content/semantics</a>
</li></ul>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">“The X3D Ontology for Semantic Web provides terms of reference for semantic query of X3D models.”</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Steady work continues.  All feedback welcome.  Have fun with X3D4!   8)</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">all the best, Don<br>
<span style="font-size:10.0pt;font-family:"Courier New"">-- <br>
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman@nps.edu<br>
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149<br>
X3D graphics, virtual worlds, navy robotics </span><a href="http://faculty.nps.edu/brutzman"><span style="font-size:10.0pt;font-family:"Courier New"">http://faculty.nps.edu/brutzman</span></a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>