<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=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;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
.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;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>The X3D JSON prototype expander is integrated with X3DOM here: <a href="https://github.com/coderextreme/x3dom">https://github.com/coderextreme/x3dom</a>  it is behind the X3DJSONLD version.   If used with X3dToJson.xslt and X3DJSONLD, you can achieve an XML prototype expander, but it has not be tested at all.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>This X3DOM contains a script node, but it’s not used, TMK.  Maybe.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:brutzman@nps.edu">Don Brutzman</a><br><b>Sent: </b>Friday, September 1, 2017 9:22 PM<br><b>To: </b><a href="mailto:x3dom-developers@lists.sourceforge.net">x3dom-developers mailing list</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] updated X3D node, statement inventory spreadsheets:X3DOM node addition recommendations</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>No doubt many people share the concern that X3DOM development, while actively continuing, has not added support for missing X3D nodes in a long while.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>In years past, community source-code contributions for new nodes in X3DOM always seemed to require updating by insider experts.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Am wondering if remains difficult to add new X3D nodes to the primary X3DOM build?  Making that task easier likely has great value.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Towards that end, recommend the following progressive priorities to improve X3DOM node support towards X3D Immersive profile (essentially VRML97 capabilities).</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>a. CoordinateDouble.  Hopefully just a simple variation of Coordinate node.  (Note that all floating-point values in Javascript have double precision.)  Adding this simplest-possible variation will reveal what other X3DOM files have to be modified to recognize a new node.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                https://doc.x3dom.org/developer/x3dom/nodeTypes/Coordinate.html</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                https://github.com/x3dom/x3dom/tree/master/src/nodes/Rendering</p><p class=MsoNormal>                https://github.com/x3dom/x3dom/blob/master/src/nodes/Rendering/Coordinate.js</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>b. Event utilities:  simple input-output type conversion algorithms.</p><p class=MsoNormal>                BooleanFilter</p><p class=MsoNormal>                BooleanSequencer</p><p class=MsoNormal>                BooleanToggle</p><p class=MsoNormal>                BooleanTrigger</p><p class=MsoNormal>                IntegerSequencer</p><p class=MsoNormal>                IntegerTrigger</p><p class=MsoNormal>                TimeTrigger</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                EventUtilities component is not found in source tree,</p><p class=MsoNormal>                https://github.com/x3dom/x3dom/tree/master/src/nodes</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                X3D Abstract Specification, Event Utilities component</p><p class=MsoNormal>                http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                Basic Examples Archive: example Javascript proto implementations</p><p class=MsoNormal>                http://www.web3d.org/x3d/content/examples/Basic/development/EventUtilityPrototypesIndex.html</p><p class=MsoNormal>                http://www.web3d.org/x3d/content/examples/Basic/development/EventUtilityExamplesIndex.html</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Applying and improving developer documentation for new nodes would be further important to accomplish at the same time.  Not seeing a "How to Add a Node" section, however...</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                X3DOM Developer API Documentation</p><p class=MsoNormal>                https://doc.x3dom.org/developer/index.html</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>c. Prototype declarations and instances.  As ever, prototypes remain fundamental and are a key part of extensibility, literally the "X" in X3D.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>There have been on-again/off-again efforts to define and implement a Prototype Expander algorithm as a preprocessor for X3D players.  Seems like a good time to resume working at this.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter14-Prototypes/MaterialModulatorPrototypeExpandedIndex.html</p><p class=MsoNormal>                http://web3d.org/pipermail/x3d-public_web3d.org/2016-July/004982.html</p><p class=MsoNormal>                and many follow-on threads, steadily progressing that work, especially</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                Source is somewhere in:</p><p class=MsoNormal>                https://github.com/coderextreme/X3DJSONLD</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>... and so on.  Possible?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>It will be great if some X3DOM developers might "step up" to show that node addition is do-able.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Hopefully this list helps triage simple/moderate/advanced work that is needed.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Have fun with X3DOM!  8)</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On 9/1/2017 5:31 PM, Don Brutzman wrote:</p><p class=MsoNormal>> Am happy to report improvements and updates to the X3D node + statement inventory spreadsheets:</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>      http://www.web3d.org/specifications/X3dNodeInventoryComparison.xlsx</p><p class=MsoNormal>>      http://www.web3d.org/specifications/X3dNodeInventoryComparison.pdf</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Updates include readability improvements and addition of view3dscene (Castle Game Engine) support.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Some interesting statistics follow, also attached in image.</p><p class=MsoNormal>> =====================================================================</p><p class=MsoNormal>> X3D Abstract Specification      Cobweb Castle X3DOM  X3D-Edit Xj3D</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Supported nodes and statements: 73%    57%    61%    87%      68%</p><p class=MsoNormal>> (251 total, X3D specification)  182    144    154    218      171</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Unimplemented nodes:            69     93     97     33       80</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> needed for HTML5 support goals</p><p class=MsoNormal>> * required for X3D Immersive    all    all    19    all     2</p><p class=MsoNormal>> * suggested for HTML5 support   2      14     13    all     5</p><p class=MsoNormal>> * priority nodes missing:       2      14     32    0       7</p><p class=MsoNormal>> =====================================================================</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Am willing to add others, now that spreadsheet refactoring permits it.  Please send an alphabetized verified list of supported nodes.</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Have fun with X3D! </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>all the best, Don</p><p class=MsoNormal>-- </p><p class=MsoNormal>Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman@nps.edu</p><p class=MsoNormal>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149</p><p class=MsoNormal>X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman</p><p class=MsoNormal><o:p> </o:p></p></div></body></html>