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