<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
I found the specification prose mentioning re-definition of existing nodes. Important problem to catch in implementations!</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<ul data-editing-info="{"applyListStyleFromLevel":false,"unorderedStyleType":1}" style="margin-top: 0px; margin-bottom: 0px; list-style-type: disc;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof">X3D Architecture, v4.1 draft, Clause 4 Concepts, 4.4.4 Prototype semantics, 4.4.4.1 Introduction</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/concepts.html#PrototypeSemanticsIntro">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/concepts.html#PrototypeSemanticsIntro</a></div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof">"Node type names shall be unique in each X3D file. The results are undefined if a prototype is given the same name as a built-in node type or a previously defined prototype in the same scope."</div>
</li></ul>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
I also found the following related security precaution, introduced in X3D 4.0:</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<ul data-editing-info="{"applyListStyleFromLevel":false,"unorderedStyleType":1}" style="margin-top: 0px; margin-bottom: 0px; list-style-type: disc;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof">X3D Architecture, v4.1 draft, Clause 4 Concepts, 4.4.4.3 PROTO definition semantics</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/concepts.html#PrototypeSemantics">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/concepts.html#PrototypeSemantics</a></div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof">"Security precaution: it is an error for a prototype to reference an instance or repeated declaration of itself, directly or indirectly, in order to avoid nonterminating recursion loops. This error might occur with either local or
external (PROTO or EXTERNPROTO) declarations. X3D browsers shall not honor self-referential loading of prototype declaration loops in order to avoid security vulnerabilities."</div>
</li></ul>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Along those lines, it is easy to imagine all sorts of mischief if a prototype overloads a given node in the specification. For example, creating a new Transform prototype that is actually a Box then breaks all other regular Transform nodes.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
As a result, I now think we should not allow overloading an existing node name, since it is a security problem. Saying that results are undefined is unacceptably weak.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Something else to remain cognizant of: during X3D evolution, we often prototype proposed new nodes to test their proposed functionality. Further, if the node is eventually accepted, then existence of the prototype provides helpful backwards compatibility for
earlier versions of the X3D standard.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Suggested spec change in 4.4.4.1 Introduction of X3D Architecture, thus applying to all X3D file encodings and programming-language bindings:</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<ul data-editing-info="{"applyListStyleFromLevel":false,"unorderedStyleType":1}" style="margin-top: 0px; margin-bottom: 0px; list-style-type: disc;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof">"<span style="background-color: rgb(255, 255, 128);">Security precaution: it is an error for a prototype to rename a built-in node type that is already defined in the X3D version referenced by an X3D model</span>."</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div style="margin: 0px;">"The results are undefined if a prototype is given the same name as
<span style="background-color: rgb(255, 128, 0);"><s>a built-in node type or </s>
</span>a previously defined prototype in the same scope."</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div style="margin: 0px;"><br>
</div>
</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof">TODO: consider including an example that renames Transform using a prototype declaration for a Box, specifically saying it is not allowed. This is similar to your example Holger, but more egregious and damaging to the model.</div>
</li><li style="font-family: "Courier New", monospace; font-size: 9pt; color: rgb(0, 0, 0);">
<div class="elementToProof" style="text-align: left; text-indent: 0px; margin: 0px;">
<span style="background-color: rgb(255, 255, 128);">EXAMPLE PROTO Transform [] { Box {} } # specifically disallowed</span></div>
</li></ul>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
As ever, comments welcome. Dick and I will also consider this situation when creating the Mantis issues and specification prose improvements.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Have fun with secure X3D...</div>
<div id="Signature" class="elementToProof">
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;"><br>
</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;">all the best, Don</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;">--</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;">Don Brutzman Naval Postgraduate School, Code USW/Br brutzman@nps.edu</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;">Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;">X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;"> </span></p>
</div>
<div id="appendonsend"></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<hr style="display: inline-block; width: 98%;">
<div class="elementToProof" style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<b>From:</b> Holger Seelig<br>
<b>Sent:</b> Saturday, May 10, 2025 12:37 PM<br>
<b>To:</b> X3D<br>
<b>Cc:</b> Michalis Kamburelis; Brutzman, Donald (Don) (CIV)<br>
<b>Subject:</b> Re: [x3d-public] Simplifying ProtoInstance nodes </div>
<div><br>
</div>
<div>There is another drawback which already exist in VRML encoding. What take precedence if a PROTO is named as a build-in node. Consider a PROTO named Box with a Sphere as root node. What is happening if a Box is now instantiated?</div>
<div><br>
</div>
<div>PROTO Box []</div>
<div>{</div>
<div> Sphere {}</div>
<div class="elementToProof">}</div>
<div><br>
</div>
<div>Shape {</div>
<div> Box {}</div>
<div>}</div>
<div><br>
</div>
<div>This behaviour is not handled by the specification, but X_ITE does the following: build-in nodes will take precedence over over PROTO nodes, it will still display a Box node. Don’t know what Caste or X3DOM does. With current XML encoding this is very cleared
and there is no prob at all. But in VRML encoding or with XML „short syntax“ this may be worth a spec comment.</div>
<div><br>
</div>
<div>Best regards,</div>
<div>Holger </div>
<div><br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; color: rgb(0, 0, 0);">
--</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; color: rgb(0, 0, 0);">
Holger Seelig</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; color: rgb(0, 0, 0);">
Leipzig, Germany</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; color: rgb(0, 0, 0);">
holger.seelig@yahoo.de</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; color: rgb(0, 0, 0);">
https://create3000.github.io/x_ite/</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; color: rgb(0, 0, 0);">
https://patreon.com/X_ITE</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; color: rgb(0, 0, 0);">
<br>
</div>
<div><br>
</div>
<div><br>
</div>
<blockquote>
<div>Am 10.05.2025 um 20:44 schrieb Brutzman, Donald (Don) (CIV) via x3d-public <x3d-public@web3d.org>:</div>
<div><br>
</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
+1 on all counts, thanks for thoughtful consideration Michalis.</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Further considerations are always welcome.</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Next week Dick and I will review comments, then consider a Mantis issue and draft prose addition to X3D XML Encoding.</div>
<div id="x_Signature" class="x_elementToProof" style="font-family:Helvetica;font-size:12px;text-decoration:none">
<div style="margin: 0in; font-family: "Courier New"; font-size: 9pt;"><br>
</div>
<div style="margin: 0in; font-family: "Courier New"; font-size: 9pt;">all the best, Don</div>
<div style="margin: 0in; font-family: "Courier New"; font-size: 9pt;">--</div>
<div style="margin: 0in; font-family: "Courier New"; font-size: 9pt;">Don Brutzman Naval Postgraduate School, Code USW/Br <a href="mailto:brutzman@nps.edu" id="OWA734dea3e-b4ca-4db4-7e4d-1a24e69192a4" class="OWAAutoLink">brutzman@nps.edu</a></div>
<div style="margin: 0in; font-family: "Courier New"; font-size: 9pt;">Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149</div>
<div style="margin: 0in; font-family: "Courier New"; font-size: 9pt;">X3D graphics, virtual worlds, navy robotics
<a href="https://faculty.nps.edu/brutzman" id="OWA4b1f5854-7634-55d4-936f-56ae90139c71" class="OWAAutoLink" data-auth="NotApplicable">
https://faculty.nps.edu/brutzman</a></div>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;"> </span></p>
</div>
<div id="x_appendonsend" style="font-family:Helvetica;font-size:12px;text-decoration:none">
</div>
<div style="text-align: left; text-indent: 0px; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<hr style="text-align: left; text-indent: 0px; display: inline-block; width: 1003.52px;">
<div style="text-align: left; text-indent: 0px; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">
<b>From:</b> Michalis Kamburelis<br>
<b>Sent:</b> Saturday, May 10, 2025 11:38 AM<br>
<b>To:</b> Extensible 3D (X3D) Graphics public discussion<br>
<b>Cc:</b> Brutzman, Donald (Don) (CIV)<br>
<b>Subject:</b> Re: [x3d-public] Simplifying ProtoInstance nodes </div>
<div style="text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
I think this short form (in XML encoding) makes sense, and Castle Game Engine / Castle Model Viewer could support it too.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
It makes XML encoding and classic encoding more consistent: you can use PROTO to define a new node, and then use the new node with the same syntax as "built-in nodes". This is already true for classic encoding, it's nice to bring this feature to XML encoding.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
Don has already expressed the important drawback of this "short form": such XML will not validate. I mean, it will validate in X3D-specific tools like "castle-model-converter --validate .." (once we add support for it), but the general XML validation using
XML Schema has no way of validating it. You cannot tell in XML schema "this XML element name is valid, if defined by some XML attribute elsewhere". I'm guessing this was the whole reason why ProtoInstance, fieldValue etc. were invented in XML encoding.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
I'm guessing in JSON X3D encoding, the consideration will be similar: it can be implemented, but the resulting file will not validate with JSON schema (
<a href="https://json-schema.org/" id="OWA0c17d738-4586-6921-0abe-f8a53c9b64b3" class="x_OWAAutoLink" originalsrc="https://json-schema.org/" data-auth="NotApplicable">
https://json-schema.org/</a> ).</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
Anyhow, if we're all fine with accepting this drawback, then we sure can go ahead and add it to spec :) As long as "long form" remains available, and thus tools like XML schema and JSON schema remain useful, I think it makes sense to have this choice.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
Regards,</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
Michalis</div>
<div style="text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
sob., 10 maj 2025 o 18:38 Brutzman, Donald (Don) (CIV) via x3d-public <<a href="mailto:x3d-public@web3d.org" id="OWA370ca940-5d79-bdbd-e150-fe30c48af82f" class="x_OWAAutoLink">x3d-public@web3d.org</a>> napisał(a):</div>
<blockquote style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left: 1px solid rgb(204, 204, 204);">
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Thanks for the interesting, innovative discussion. Excerpting the example:</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<ul style="direction: ltr; text-align: left; margin-top: 0px; margin-bottom: 0px; list-style-position: initial; list-style-type: disc;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<div style="direction: ltr; text-align: left; text-indent: 0px; font-size: 12pt;">
<span style="background-color: white;"><a href="https://create3000.github.io/x_ite/tutorials/creating-new-node-types/#using-prototyped-nodes" id="OWA9b05b270-10bf-45e7-a5f1-7bd3c5f9a43a" class="x_OWAAutoLink" originalsrc="https://create3000.github.io/x_ite/tutorials/creating-new-node-types/#using-prototyped-nodes" data-auth="NotApplicable" style="margin: 0px; background-color: white; text-align: left;">https://create3000.github.io/x_ite/tutorials/creating-new-node-types/#using-prototyped-nodes</a></span></div>
</li></ul>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
_________________________</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; line-height: 1.2; margin: 2px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
XML Encoding</div>
<table style="direction: ltr; text-align: left; text-indent: 0px; box-sizing: border-box; border-collapse: collapse; border-spacing: 0px;">
<tbody>
<tr>
<td style="direction: ltr; text-align: left; text-indent: 0px; padding: 5px; color: rgb(104, 113, 122); box-sizing: border-box;">
<pre style="margin: 0px; display: block;"><div style="direction: ltr; text-align: right; text-indent: 0px; line-height: 1.4rem; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 11pt;"><code style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;">1
2
3
4
5
6
7
8
9
</code></div></pre>
</td>
<td style="direction: ltr; text-align: left; text-indent: 0px; padding: 5px; box-sizing: border-box;">
<pre style="margin: 0px; display: block;"><div style="direction: ltr; text-align: left; text-indent: 0px; line-height: 1.4rem; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 11pt;"><code style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;"><!--</code><b><code style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;"> Official Syntax </code></b><code style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;">-->
<ProtoInstance name='BouncingBall'>
<fieldValue name='cycleInterval' value='2'/>
<fieldValue name='bounceHeight' value='3'/>
</ProtoInstance>
<!-- </code><b><code style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;">Short Syntax </code></b><code style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;">-->
<BouncingBall
cycleInterval='2'
bounceHeight='3'/>
</code></div></pre>
</td>
</tr>
</tbody>
</table>
<div style="direction: ltr; text-align: left; text-indent: 0px; line-height: 1.2; margin: 2px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Classic VRML Encoding</div>
<table style="direction: ltr; text-align: left; text-indent: 0px; box-sizing: border-box; border-collapse: collapse; border-spacing: 0px;">
<tbody>
<tr>
<td style="direction: ltr; text-align: left; text-indent: 0px; padding: 5px; color: rgb(104, 113, 122); box-sizing: border-box;">
<pre style="margin: 0px; display: block;"><div style="direction: ltr; text-align: right; text-indent: 0px; line-height: 1.4rem; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 11pt;"><code style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;">1
2
3
4
</code></div></pre>
</td>
<td style="direction: ltr; text-align: left; text-indent: 0px; padding: 5px; box-sizing: border-box;">
<pre style="margin: 0px; display: block;"><div style="direction: ltr; text-align: left; text-indent: 0px; line-height: 1.4rem; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 11pt;"><code style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;">BouncingBall {
cycleInterval 2.0
bounceHeight 3.0
}
</code></div></pre>
</td>
</tr>
</tbody>
</table>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
_________________________</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
One drawback with the "short" XML syntax is that it will not pass XML DOCTYPE or XML Schema validation, although it still must conform to XML well-formed rules. Additional tool-specific capabilities can check for such correctness during parsing, of course.
Avoiding XML validation relaxes quality assurance (QA) for the entire scene, not just that prototype instance, and so use of the short form should be considered carefully.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Of course there is much merit too, not least of which are readability and consistency with other XML-encoded nodes.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
As it turns out, now is a good time to consider such a change to the X3D Standards suite. We have highly mature documents defining X3D encodings using XML and ClassicVRML syntax. Conceivably a "short" form for ProtoInstance will carry over satisfactorily
for JSON and other encodings as well, when we get to them this fall.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
If X_ITE and X3DOM already handle this form, and if Castle Model Viewer (Castle Game Engine) is also supportive, I'm not yet seeing any blockers to adoption. Further implementation and evaluation of course will be useful</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Reference and specific clause that would need modification:</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<ul style="direction: ltr; text-align: left; margin-top: 0px; margin-bottom: 0px; list-style-position: initial; list-style-type: disc;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<div style="direction: ltr; text-align: left; text-indent: 0px;"><span style="color: rgb(13, 88, 246);"><b><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-1v4.0-WD1/Part01/X3D_XML.html" id="OWAd8c1809d-57cf-2106-dfc8-0838f92e518f" class="x_OWAAutoLink" data-auth="NotApplicable" style="color: rgb(13, 88, 246); margin: 0px;">X3D
XML Encoding 4.0</a></b></span><b> </b>revision 19776-1</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<div style="direction: ltr; text-align: left; text-indent: 0px;">4.3.3.2 ProtoInstance node and fieldValue statement syntax</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<div style="direction: ltr; text-align: left; text-indent: 0px;"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-1v4.0-WD1/Part01/concepts.html#ProtoInstanceAndFieldValueStatement" id="OWA7582c95f-5b6e-32aa-2acb-79edfaa515c5" class="x_OWAAutoLink" data-auth="NotApplicable">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-1v4.0-WD1/Part01/concepts.html#ProtoInstanceAndFieldValueStatement</a></div>
<div style="direction: ltr; text-align: left; text-indent: 0px;"><br>
</div>
</li></ul>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Probably no changes needed:</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<ul style="direction: ltr; text-align: left; margin-top: 0px; margin-bottom: 0px; list-style-position: initial; list-style-type: disc;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; margin: 0px;">
<div style="direction: ltr; text-align: left; text-indent: 0px;"><span style="color: rgb(13, 88, 246);"><b><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-2v4.0-WD1/Part02/X3D_ClassicVRML.html" id="OWA6b64295c-a8be-2b6f-e469-3b476f9a02c5" class="x_OWAAutoLink" data-auth="NotApplicable" style="color: rgb(13, 88, 246); margin: 0px;">X3D
Classic VRML Encoding 4.0</a></b></span><b> </b>revision 19776-2</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<div style="direction: ltr; text-align: left; text-indent: 0px;">4.3.3.2 Prototype instances and field value initialization syntax</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<div style="direction: ltr; text-align: left; text-indent: 0px;"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-2v4.0-WD1/Part02/concepts.html#ProtoInstanceAndFieldValueStatement" id="OWA91664053-8430-b4ba-9d3e-264dfe528755" class="x_OWAAutoLink" data-auth="NotApplicable">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-2v4.0-WD1/Part02/concepts.html#ProtoInstanceAndFieldValueStatement</a></div>
<div style="direction: ltr; text-align: left; text-indent: 0px;"><br>
</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<div style="direction: ltr; text-align: left; text-indent: 0px;"><span style="color: rgb(13, 88, 246);"><b><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/Architecture.html" id="OWA8fbcb1f9-f749-90b6-2049-050765da5445" class="x_OWAAutoLink" data-auth="NotApplicable" style="color: rgb(13, 88, 246); margin: 0px;">X3D
Architecture 4.1</a></b></span>, revision 19775-1</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<div style="direction: ltr; text-align: left; text-indent: 0px;">4.4.4 Prototype semantics</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<div style="direction: ltr; text-align: left; text-indent: 0px;"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/concepts.html#PrototypeSemantics" id="OWA68b57354-2900-a798-ffca-7d535c1e8cc1" class="x_OWAAutoLink" data-auth="NotApplicable">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/concepts.html#PrototypeSemantics</a></div>
</li></ul>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Thanks for careful consideration of this potential capability. All feedback welcome.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Have fun with X3D extensibility! 🙂</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div id="x_x_m_2300767422086912682Signature">
<div style="margin: 0px; font-family: "Courier New"; font-size: 9pt;">all the best, Don</div>
<div style="margin: 0px; font-family: "Courier New"; font-size: 9pt;">--</div>
<div style="margin: 0px; font-family: "Courier New"; font-size: 9pt;">Don Brutzman Naval Postgraduate School, Code USW/Br <a href="mailto:brutzman@nps.edu" id="OWA231595b1-f3b9-a2df-bbb8-0fbaad1fa657" class="x_OWAAutoLink" style="margin-top: 0px; margin-bottom: 0px;">brutzman@nps.edu</a></div>
<div style="margin: 0px; font-family: "Courier New"; font-size: 9pt;">Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149</div>
<div style="margin: 0px; font-family: "Courier New"; font-size: 9pt;">X3D graphics, virtual worlds, navy robotics
<a href="https://faculty.nps.edu/brutzman" id="OWAe62d450e-8e7e-d8e4-13bf-120f1ca96f82" class="x_OWAAutoLink" data-auth="NotApplicable" style="margin-top: 0px; margin-bottom: 0px;">
https://faculty.nps.edu/brutzman</a></div>
<p style="margin: 0px; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;"> </span></p>
</div>
<div id="x_x_m_2300767422086912682appendonsend"></div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<hr style="direction: ltr; text-align: left; text-indent: 0px; display: inline-block; width: 991.484px;">
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">
<b>From:</b> x3d-public on behalf of Holger Seelig via x3d-public<br>
<b>Sent:</b> Saturday, May 10, 2025 1:13 AM<br>
<b>To:</b> X3D<br>
<b>Cc:</b> Holger Seelig<br>
<b>Subject:</b> Re: [x3d-public] Simplifying ProtoInstance nodes</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
This is already possible if you use the „short syntax“ of a proto instance:</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<a href="https://create3000.github.io/x_ite/tutorials/creating-new-node-types/#using-prototyped-nodes" id="OWAaaf9b285-608c-159c-db86-27a2f623945c" class="x_OWAAutoLink" originalsrc="https://create3000.github.io/x_ite/tutorials/creating-new-node-types/#using-prototyped-nodes" data-auth="NotApplicable">https://create3000.github.io/x_ite/tutorials/creating-new-node-types/#using-prototyped-nodes</a></div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
You can use this in X_ITE, but also in X3DOM.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
Best regards,</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
Holger</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
--</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
Holger Seelig</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
Leipzig, Germany</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<a href="mailto:holger.seelig@yahoo.de" id="OWA357a4dab-f076-4068-24c0-72b0b6e0defa" class="x_OWAAutoLink">holger.seelig@yahoo.de</a></div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<a href="https://create3000.github.io/x_ite/" id="OWAea35b2e0-3445-8d90-497e-47a7f1c7f408" class="x_OWAAutoLink" originalsrc="https://create3000.github.io/x_ite/" data-auth="NotApplicable">https://create3000.github.io/x_ite/</a></div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<a href="https://patreon.com/X_ITE" id="OWAd2c12681-65b9-ce99-c84d-ccdde91081da" class="x_OWAAutoLink" originalsrc="https://patreon.com/X_ITE" data-auth="NotApplicable">https://patreon.com/X_ITE</a></div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<blockquote>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
Am 10.05.2025 um 05:55 schrieb John Carlson via x3d-public <<a href="mailto:x3d-public@web3d.org" id="OWAb105a3e3-56af-b2b1-8ead-b432871eecb6" class="x_OWAAutoLink">x3d-public@web3d.org</a>>:</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
My thought is to replace “ProtoInstance” tags with “MenuItem” tags, and fieldValue statements with attributes, but I’ve not done that before. My goal is to make the model more accessible to screen readers.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
Any examples are welcome.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
See attached link and model.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
John</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
---------- Forwarded message ---------<br>
From: <b>John Carlson</b> <<a href="mailto:yottzumm@gmail.com" id="OWA76b18541-fde2-0f40-be48-4496508cbd8d" class="x_OWAAutoLink">yottzumm@gmail.com</a>><br>
Date: Thu, Mar 6, 2025 at 4:35 PM<br>
Subject: Latest cleaned Jin FACS (needs metadata)<br>
To: Don Brutzman <<a href="mailto:brutzman@nps.edu" id="OWA31642e9a-7e89-596d-7309-f2b83740c381" class="x_OWAAutoLink">brutzman@nps.edu</a>>, Joe D Williams <<a href="mailto:joedwil@earthlink.net" id="OWAdd59c7e1-5d16-dbb4-7873-23ff58160560" class="x_OWAAutoLink">joedwil@earthlink.net</a>></div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
Attached.</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
And:</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<a href="https://create3000.github.io/x_ite/playground/?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/CleanedYouClocks.x3d" id="OWA88514a63-a43b-d8c0-bf14-44f49dfe01fc" class="x_OWAAutoLink" originalsrc="https://create3000.github.io/x_ite/playground/?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/CleanedYouClocks.x3d" data-auth="NotApplicable">https://create3000.github.io/x_ite/playground/?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/CleanedYouClocks.x3d</a></div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
John</div>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<CleanedYouClocks.x3d>_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" id="OWAbdd7dacd-1f00-54ae-b7be-a98a9b8a7164" class="x_OWAAutoLink">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" id="OWAb0346d7b-5efb-0f6d-52e4-830ea6d45f6e" class="x_OWAAutoLink" data-auth="NotApplicable">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></div>
</blockquote>
<div style="direction: ltr; text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
<br>
</div>
<div style="text-align: left; text-indent: 0px; font-family: Helvetica; font-size: 12px;">
_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" id="OWA9a12b66b-f5f0-55a1-fd3f-d99e690f43cf" class="x_OWAAutoLink">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" id="OWA8278eb15-e1a5-dbc6-1e1b-d6daa558d3aa" class="x_OWAAutoLink" data-auth="NotApplicable">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></div>
</blockquote>
<div><span style="font-family: Helvetica; font-size: 12px;">_______________________________________________</span><br>
<span style="font-family: Helvetica; font-size: 12px;">x3d-public mailing list</span><br>
<span style="font-family: Helvetica; font-size: 12px;">x3d-public@web3d.org</span><br>
<span style="font-family: Helvetica; font-size: 12px;">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</span></div>
</blockquote>
<div><br>
</div>
</body>
</html>