[x3d-public] Simplifying ProtoInstance nodes

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Sat May 10 09:37:25 PDT 2025


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<mailto: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<mailto:brutzman at nps.edu>>, Joe D Williams <joedwil at earthlink.net<mailto: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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250510/a150bdf2/attachment-0001.html>


More information about the x3d-public mailing list