[x3d-public] Simplifying ProtoInstance nodes

John Carlson yottzumm at gmail.com
Sat May 10 18:27:04 PDT 2025


Validate short-form Protos in X3D by converting short form to ProtoInstance
form when loading.
No new schema necessary.

John

On Sat, May 10, 2025 at 11:38 AM Brutzman, Donald (Don) (CIV) via
x3d-public <x3d-public at web3d.org> wrote:

> Thanks for the interesting, innovative discussion.  Excerpting the example:
>
>
>    -
>    https://create3000.github.io/x_ite/tutorials/creating-new-node-types/#using-prototyped-nodes
>
>
> _________________________
> XML Encoding
>
> 1
> 2
> 3
> 4
> 5
> 6
> 7
> 8
> 9
>
> <!--* Official Syntax *-->
> <ProtoInstance name='BouncingBall'>
>   <fieldValue name='cycleInterval' value='2'/>
>   <fieldValue name='bounceHeight' value='3'/>
> </ProtoInstance>
> <!-- *Short Syntax *-->
> <BouncingBall
>     cycleInterval='2'
>     bounceHeight='3'/>
>
> Classic VRML Encoding
>
> 1
> 2
> 3
> 4
>
> BouncingBall {
>   cycleInterval 2.0
>   bounceHeight  3.0
> }
>
> _________________________
>
> 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.
>
> Of course there is much merit too, not least of which are readability and
> consistency with other XML-encoded nodes.
>
> 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.
>
> 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
>
> Reference and specific clause that would need modification:
>
>
>    - *X3D XML Encoding 4.0
>    <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-1v4.0-WD1/Part01/X3D_XML.html>*
>     revision 19776-1
>    - 4.3.3.2  ProtoInstance node and fieldValue statement syntax
>    -
>    https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-1v4.0-WD1/Part01/concepts.html#ProtoInstanceAndFieldValueStatement
>
>
> Probably no changes needed:
>
>
>    - *X3D Classic VRML Encoding 4.0
>    <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-2v4.0-WD1/Part02/X3D_ClassicVRML.html>*
>     revision 19776-2
>    - 4.3.3.2 Prototype instances and field value initialization syntax
>    -
>    https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-2v4.0-WD1/Part02/concepts.html#ProtoInstanceAndFieldValueStatement
>
>    - *X3D Architecture 4.1
>    <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/Architecture.html>*,
>    revision 19775-1
>    - 4.4.4 Prototype semantics
>    -
>    https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD//Part01/concepts.html#PrototypeSemantics
>
>
> Thanks for careful consideration of this potential capability.  All
> feedback welcome.
>
> Have fun with X3D extensibility!  🙂
>
> all the best, Don
>
> --
>
> Don Brutzman  Naval Postgraduate School, Code USW/Br
> brutzman at nps.edu
>
> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
> +1.831.656.2149
>
> X3D graphics, virtual worlds, navy robotics
> https://faculty.nps.edu/brutzman
>
>
>
> ------------------------------
> *From:* x3d-public on behalf of Holger Seelig via x3d-public
> *Sent:* Saturday, May 10, 2025 1:13 AM
> *To:* X3D
> *Cc:* Holger Seelig
> *Subject:* Re: [x3d-public] Simplifying ProtoInstance nodes
>
> This is already possible if you use the „short syntax“ of a proto instance:
>
>
> https://create3000.github.io/x_ite/tutorials/creating-new-node-types/#using-prototyped-nodes
>
> You can use this in X_ITE, but also in X3DOM.
>
> Best regards,
> Holger
>
> --
> Holger Seelig
> Leipzig, Germany
>
> holger.seelig at yahoo.de
> https://create3000.github.io/x_ite/
> https://patreon.com/X_ITE
>
>
>
> Am 10.05.2025 um 05:55 schrieb John Carlson via x3d-public <
> x3d-public at web3d.org>:
>
> 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.
>
> Any examples are welcome.
>
> See attached link and model.
>
> John
>
> ---------- Forwarded message ---------
> From: *John Carlson* <yottzumm at gmail.com>
> Date: Thu, Mar 6, 2025 at 4:35 PM
> Subject: Latest cleaned Jin FACS (needs metadata)
> To: Don Brutzman <brutzman at nps.edu>, Joe D Williams <joedwil at earthlink.net
> >
>
>
> Attached.
>
> And:
>
> https://create3000.github.io/x_ite/playground/?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/CleanedYouClocks.x3d
>
> John
> <CleanedYouClocks.x3d>_______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250510/964ac121/attachment-0001.html>


More information about the x3d-public mailing list