<html xmlns:v="urn:schemas-microsoft-com:vml" 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=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@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;}
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;}
span.EmailStyle19
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@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:1327246122;
        mso-list-type:hybrid;
        mso-list-template-ids:837041518 67698713 -117518760 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.25in;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.75in;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@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;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Here are two recommended software libraries for X3D model creation that exactly match X3D4.  (If it is possible to use either library to create an invalid scene, I haven’t found it yet.)  Each has examples published for over 3900 scenes,
 created from .x3d master versions using X3dToJava.xslt and X3dToPython.xslt stylesheets.  Each .java and .py example includes a self-validation test as part of X3D Quality Assurance (QA). Trouble reports welcome.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<ol style="margin-top:0in" start="1" type="a">
<li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level1 lfo1">X3D Java Scene Access Interface Library (X3DJSAIL)<o:p></o:p></li><ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level2 lfo1">X3DJSAIL supports programmers with standards-based X3D Java interfaces and objects, all as open source.
<o:p></o:p></li><li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level2 lfo1">https://www.web3d.org/specifications/java/X3DJSAIL.html
<o:p></o:p></li></ul>
</ol>
<p class="MsoNormal"><o:p> </o:p></p>
<ol style="margin-top:0in" start="2" type="a">
<li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level1 lfo1">X3D Python Scene Access Interface Library (X3DPSAIL), X3D Python Package<o:p></o:p></li><ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level2 lfo1">The x3d.py Python X3D Package supports programmers with Python interfaces and objects for standards-based X3D programming, all as open source.<o:p></o:p></li><li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level2 lfo1">https://www.web3d.org/x3d/stylesheets/python/python.html<o:p></o:p></li><li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level2 lfo1">https://pypi.org/project/x3d<o:p></o:p></li></ul>
</ol>
<p class="MsoListParagraph" style="margin-left:.25in"><o:p> </o:p></p>
<ol style="margin-top:0in" start="3" type="a">
<li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level1 lfo1">X3D Resources: Examples: Scene Archives for X3D<o:p></o:p></li><ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level2 lfo1">The X3D Examples Archives demonstrate how X3D nodes and scenes work. Thousands of scenes are provided in all X3D encodings. You can browse them individually online or download fully
 complete, separately installable .zip archives.<o:p></o:p></li><li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level2 lfo1">https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples<o:p></o:p></li></ul>
</ol>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">JSON examples also exist in the X3D Examples archives.  John Carlson has a library to directly support those.  The .x3d conversions to JSON all seem stable and pass elementary JSON syntax checkers, and there is a draft X3D JSON schema,
 but a stable JSON schema has not yet been standardized by IETF.  Thus some caution is warranted using X3D JSON, but current stability is high and eventual formalization is expected.  Converter information follows.<o:p></o:p></p>
<ol style="margin-top:0in" start="3" type="a">
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level2 lfo1">X3D to JSON Stylesheet Converter<o:p></o:p></li><li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level2 lfo1">The X3D to JSON stylesheet converts .x3d XML to .json, supporting the forthcoming JSON Encoding for X3D Graphics.<o:p></o:p></li><li class="MsoListParagraph" style="margin-left:-.25in;mso-list:l0 level2 lfo1">https://www.web3d.org/x3d/stylesheets/X3dToJson.html<o:p></o:p></li></ul>
</ol>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Good luck with your work.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">all the best, Don<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">-- <o:p>
</o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman@nps.edu<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">X3D graphics, virtual worlds, Navy robotics https://</span>
<span style="font-size:10.0pt;font-family:"Courier New"">faculty.nps.edu/brutzman<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> x3d-public <x3d-public-bounces@web3d.org> <b>On Behalf Of
</b>Konstantin Smirnov<br>
<b>Sent:</b> Saturday, February 5, 2022 3:35 AM<br>
<b>To:</b> X3D-Public <x3d-public@web3d.org><br>
<b>Subject:</b> [x3d-public] X3d constructors<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Hello<o:p></o:p></p>
<div>
<p class="MsoNormal">Who knows fast constructors of scenes with elements and code generation? <o:p></o:p></p>
</div>
</div>
</div>
</body>
</html>