<div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12pt"><p style="margin: 0.1rem 0; line-height: 1.0;">OK, Good, I was worried about x y z all being zero yet have some value for angle not zero.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Thanks,</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Joe </p>
</div>
<div class="elnk-inline-message-container" style="border-left: 1px solid #aaa; box-sizing: border-box; padding: 10px 0 10px 15px; margin: 0;">
<p>-----Original Message-----<br>From: John Carlson <yottzumm@gmail.com><br>Sent: Feb 19, 2025 8:10 AM<br>To: Extensible 3D (X3D) Graphics public discussion <x3d-public@web3d.org><br>Cc: Joe D Williams <joedwil@earthlink.net>, Andreas Plesch <andreasplesch@gmail.com><br>Subject: Re: [x3d-public] SFRotation default value spec. inconsistency</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<div dir="auto">Yes, that was the point I was trying to make with 0 0 0 not being an axis or normalized.  Thanks for backup.</div>
<div><br>
<div class="gmail_quote gmail_quote_container">
<div class="gmail_attr" dir="ltr">On Wed, Feb 19, 2025 at 8:51 AM Andreas Plesch via x3d-public <<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;">
<div dir="ltr">
<div dir="ltr"> </div>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Tue, Feb 18, 2025 at 10:16 AM Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank" rel="noopener">joedwil@earthlink.net</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">
<div style="color: #000000; font-family: arial,sans-serif; font-size: 12pt;">
<p style="margin: 0.1rem 0px; line-height: 1;">> ... <span style="color: #000000; font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: medium; text-align: left; white-space: normal; float: none; display: inline;">may prefer the equivalent zero-rotation default value </span><strong style="color: #000000; font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: medium; text-align: left; white-space: normal;">0 1 0 0</strong><span style="color: #000000; font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: medium; text-align: left; white-space: normal; float: none; display: inline;"> </span></p>
<p style="margin: 0.1rem 0px; line-height: 1;">.. </p>
<p style="margin: 0.1rem 0px; line-height: 1;">Thanks Don. So the Transform rotation and Viewpoint orientation</p>
<p style="margin: 0.1rem 0px; line-height: 1;">and any other use of rotation and orientation are treated as</p>
<p style="margin: 0.1rem 0px; line-height: 1;">default zero when angle is zero, or, if all  x, y, and z are zero. </p>
</div>
</blockquote>
<div> </div>
<div>Just a caution that</div>
<div> </div>
<div>
<ul>
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">
<div><a id="m_-5201182128765480370m_238839612412397269OWAf3d77fda-be81-c82c-7d84-c07d9a02a43f" href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldTypes.html#SFRotationAndMFRotation" target="_blank" rel="noopener">https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldTypes.html#SFRotationAndMFRotation</a></div>
</li>
</ul>
</div>
<div> </div>
<div>says "The first three values specify a normalized rotation axis vector". So x,y,z all zero is not a valid (illegal) SFRotation value.</div>
</div>
</div>
<div dir="ltr">
<div class="gmail_quote">
<div> </div>
<div>-Andreas</div>
<div> </div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">
<div style="color: #000000; font-family: arial,sans-serif; font-size: 12pt;">
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
</div>
<div style="border-left: 1px solid #aaaaaa; box-sizing: border-box; padding: 10px 0px 10px 15px; margin: 0px;">
<p>-----Original Message-----<br>From: Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank" rel="noopener">brutzman@nps.edu</a>><br>Sent: Feb 17, 2025 9:08 PM<br>To: Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank" rel="noopener">andreasplesch@gmail.com</a>>, Joseph D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank" rel="noopener">joedwil@earthlink.net</a>><br>Cc: Extensible 3D (X3D) Graphics public discussion <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>><br>Subject: Re: [x3d-public] SFRotation default value spec. inconsistency</p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">Thanks for discussion and for noticing the difference.  Related references:</div>
<ul style="list-style-type: disc;">
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">
<div>19777-1 X3D ECMAScript language binding, clause 7 Function definitions, 7.6.6 SFRotation</div>
</li>
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">
<div><a id="m_-5201182128765480370m_238839612412397269OWA45445678-dfad-0242-9ff5-a7a589b95b73" href="https://www.web3d.org/documents/specifications/19777-1/V3.3/Part1/functions.html#SFRotation" target="_blank" rel="noopener">https://www.web3d.org/documents/specifications/19777-1/V3.3/Part1/functions.html#SFRotation</a></div>
</li>
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">
<div>Table 7.18 — SFRotation instance creation functions</div>
</li>
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">
<table style="margin-bottom: 18px; width: 965.521px; box-sizing: border-box; border-collapse: collapse; border-spacing: 0px;">
<tbody>
<tr>
<td style="width: 88.5312px; height: 106.8px; padding: 8px;">
<div>SFRotation</div>
</td>
<td style="width: 109.156px; height: 106.8px; padding: 8px;">
<div>(numeric x,<br> numeric y,<br> numeric z,<br> numeric angle)</div>
</td>
<td style="width: 765.031px; height: 106.8px; padding: 8px;">
<div>x, y, and z are the axis of the rotation. angle is the angle of the rotation (in radians). Missing values default to 0.0, except <span style="background-color: #ffc080;">y</span>, which defaults to 1.0.</div>
</td>
</tr>
</tbody>
</table>
<div> </div>
</li>
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">
<div>X3D Architecture, clause 5 Field type reference, 5.3.13 SFRotation and MFRotation</div>
</li>
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">
<div><a id="m_-5201182128765480370m_238839612412397269OWAf3d77fda-be81-c82c-7d84-c07d9a02a43f" href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldTypes.html#SFRotationAndMFRotation" target="_blank" rel="noopener">https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldTypes.html#SFRotationAndMFRotation</a></div>
</li>
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">
<div>"The default value of an uninitialized SFRotation field is (0 0 1 0). The default value of an MFRotation field is the empty list."</div>
</li>
</ul>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">Yes they must be the same, so that X3D models are equivalent no matter what file encoding or programming-language binding are used.</div>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;"> </div>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">The X3D Architecture takes precedence.  So we will change 19777-1 to match and the highlighted <span style="background-color: #ffc080;">y</span> above will become <span style="background-color: #ffff00;"> z</span>.</div>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;"> </div>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">I too think that a default of (0 1 0 0) makes more sense, animation rotations are most often around the vertical (y) axis.  However, the community has discussed this many times over the years.  We always landed on (0 0 1 0) for backwards-compatibility reasons, not wanting to break legacy X3D and VRML models.</div>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;"> </div>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">Incidentally here is the X3D tooltips entry.  Improvements and refinements always welcome.</div>
<ul style="list-style-type: disc;">
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">
<div>X3D Tooltips: SFRotation</div>
</li>
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">
<div><a href="https://www.web3d.org/x3d/tooltips/X3dTooltips.html#SFRotation" target="_blank" rel="noopener">https://www.web3d.org/x3d/tooltips/X3dTooltips.html#SFRotation</a></div>
</li>
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">
<table style="text-align: left; box-sizing: border-box; border-collapse: collapse; border-spacing: 0px;" cellpadding="2">
<tbody>
<tr>
<td style="width: 73.7313px; height: 127.2px;" align="left">
<div><a id="m_-5201182128765480370m_238839612412397269OWA8020cc98-0b0c-debe-36d3-85841f6bfeb2" title="X3D Architecture Specification, Field type reference" href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldTypes.html#SFRotationAndMFRotation" target="_blank" rel="noopener">SFRotation</a></div>
</td>
<td style="width: 197.25px; height: 127.2px; text-align: left;">
<div style="text-align: left;">Single-Field rotation value using 3-tuple axis, radian angle form</div>
</td>
<td style="width: 600.006px; height: 127.2px; text-align: left;">
<div style="text-align: left;">Default value <strong>0 0 1 0</strong>. Model authors and authoring tools may prefer the equivalent zero-rotation default value <strong>0 1 0 0</strong> since rotation about the vertical Y-axis is most common. Example values: 0 1 0 1.57<br><strong>Warning:</strong> initial 3-tuple axis vector cannot hold a zero-magnitude vector.<br><strong>Warning:</strong> comma characters within attribute values are not allowed, and do not pass strict validation.<br><strong>Hint:</strong> see <a id="m_-5201182128765480370m_238839612412397269OWA69e5cd3d-203f-ffe2-d5c4-055affeed550" href="https://en.wikipedia.org/wiki/Radian" target="_blank" rel="noopener"> Wikipedia: Radian</a>, <a id="m_-5201182128765480370m_238839612412397269OWAe704e560-c15f-86d1-7efe-c56e2e644671" href="https://en.wikipedia.org/wiki/Rotation_matrix" target="_blank" rel="noopener"> Rotation matrix</a> and <a id="m_-5201182128765480370m_238839612412397269OWA0f1304b9-f4cf-5c26-6141-8a0183ef6071" href="https://en.wikipedia.org/wiki/Rotation_formalisms_in_three_dimensions" target="_blank" rel="noopener"> Rotation formalisms in three dimensions</a>.</div>
</td>
<td style="width: 265.769px; height: 127.2px;" align="center">
<div><a id="m_-5201182128765480370m_238839612412397269OWA4a705336-2983-72d3-bbd7-e8845dd9c30a" title="X3D XML Schema documentation" href="https://www.web3d.org/specifications/X3dSchemaDocumentation4.0/x3d-4.0_SFRotation.html" target="_blank" rel="noopener">XML Schema</a>, <a id="m_-5201182128765480370m_238839612412397269OWA93c16715-e47c-1c0e-0932-32973a138c11" title="X3D regexes" href="https://www.web3d.org/specifications/X3dRegularExpressions.html#SFRotation" target="_blank" rel="noopener"> X3D regexes</a>, <a id="m_-5201182128765480370m_238839612412397269OWA0a6c8022-5074-39bd-f710-465ca3745454" title="SAI revisions in progress" href="https://www.web3d.org/specifications/JavaLanguageBinding/Part2/nodeTypeInterfaces.html#SFRotation" target="_blank" rel="noopener"> Java SAI</a>, <a id="m_-5201182128765480370m_238839612412397269OWAbcf0f00f-ab4d-2c57-c87e-7c5ba2a61cb3" href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/fields/SFRotation.html" target="_blank" rel="noopener"> X3DJ</a></div>
</td>
</tr>
</tbody>
</table>
<div> </div>
</li>
</ul>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">To keep track of this erratum, I have entered a new issue in the Mantis issue tracker.</div>
<ul style="list-style-type: disc;">
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">
<div>Mantis 1488: (ECMAScript) 7.6.6 SFRotation default value needs to be (0 0 1 0)</div>
</li>
<li style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">
<div><a id="m_-5201182128765480370m_238839612412397269LPlnk156162" href="https://mantis.web3d.org/view.php?id=1488" target="_blank" rel="noopener">https://mantis.web3d.org/view.php?id=1488</a></div>
</li>
</ul>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">I hope this make sense and sounds good.</div>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;"> </div>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;">Have fun with X3D - or else!!  🙂</div>
<div id="m_-5201182128765480370m_238839612412397269Signature">
<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;">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        <a href="mailto:brutzman@nps.edu" target="_blank" rel="noopener">brutzman@nps.edu</a></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 <a href="https://faculty.nps.edu/brutzman" target="_blank" rel="noopener">https://faculty.nps.edu/brutzman</a></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="m_-5201182128765480370m_238839612412397269appendonsend"></div>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;"> </div>
<hr style="display: inline-block; width: 98%;">
<div id="m_-5201182128765480370m_238839612412397269divRplyFwdMsg" dir="ltr"><span style="font-size: 11pt; color: #000000; font-family: Calibri,sans-serif;"><strong>From:</strong> x3d-public <<a href="mailto:x3d-public-bounces@web3d.org" target="_blank" rel="noopener">x3d-public-bounces@web3d.org</a>> on behalf of Joe D Williams via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>><br><strong>Sent:</strong> Sunday, February 16, 2025 9:09 AM<br><strong>To:</strong> Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank" rel="noopener">andreasplesch@gmail.com</a>><br><strong>Cc:</strong> <a href="mailto:joedwil@earthlink.net" target="_blank" rel="noopener">joedwil@earthlink.net</a> <<a href="mailto:joedwil@earthlink.net" target="_blank" rel="noopener">joedwil@earthlink.net</a>>; X3D <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>><br><strong>Subject:</strong> Re: [x3d-public] SFRotation default value spec. inconsistency</span>
<div> </div>
</div>
<div>
<div style="color: #000000; font-family: Arial; font-size: 12pt;">
<p style="margin: 0.1rem 0px; line-height: 1;">> <span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;">  I would vote for 0 1 0 0 since rotations around Y seem more common</span>  </p>
<p style="margin: 0.1rem 0px; line-height: 1;">  </p>
<p style="margin: 0.1rem 0px; line-height: 1;">First,oldest use is in Part 1, way back to origin of VRML standard.</p>
<p style="margin: 0.1rem 0px; line-height: 1;">Is Yaw really more popular or common than Pitch or Roll?</p>
<p style="margin: 0.1rem 0px; line-height: 1;">For me, Please let's stick with oldest history and update more recent. </p>
<p style="margin: 0.1rem 0px; line-height: 1;">Thanks</p>
<p style="margin: 0.1rem 0px; line-height: 1;">Joe</p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
</div>
<div style="border-left: 1px solid #aaaaaa; box-sizing: border-box; padding: 10px 0px 10px 15px; margin: 0px;">
<p>-----Original Message-----<br>From: Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank" rel="noopener">andreasplesch@gmail.com</a>><br>Sent: Feb 15, 2025 9:12 PM<br>To: <<a href="mailto:joedwil@earthlink.net" target="_blank" rel="noopener">joedwil@earthlink.net</a>><br>Cc: Holger Seelig <<a href="mailto:holger.seelig@yahoo.de" target="_blank" rel="noopener">holger.seelig@yahoo.de</a>>, X3D <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>><br>Subject: Re: [x3d-public] SFRotation default value spec. inconsistency</p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<div dir="ltr">
<div>I agree, probably the best default value for a unit quaternion is 0 0 0 1.</div>
<div> </div>
<div>However, X3D does not concern itself with quaternions, only axis-angle rotations.</div>
<div> </div>
<div>So the original question remains: Part 1 has axis-angle 0 0 1 0 as default while the JS SAI spec. has 0 1 0 0. Should both list the same default value ?</div>
<div> </div>
<div>If yes, which one ? I would vote for 0 1 0 0 since rotations around Y seem more common.</div>
<div> </div>
<div>-Andreas</div>
<br>
<div>
<div dir="ltr">On Sat, Feb 15, 2025 at 11:04 PM <<a href="mailto:joedwil@earthlink.net" target="_blank" rel="noopener">joedwil@earthlink.net</a>> wrote:</div>
<blockquote style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">
<div style="color: #000000; font-family: Arial; font-size: 12pt;">
<p style="margin: 0.1rem 0px; line-height: 1;">Doesn't this mean that the _best_ default value, for no rotation, is 'legally' for unit quaternion = 0 0 0 1 </p>
<p style="margin: 0.1rem 0px; line-height: 1;"><span style="font-size: 12pt;">because </span> <span style="font-size: 12pt;">the square root of the sum of the squares of all four components does = 1 ?</span></p>
<p style="margin: 0.1rem 0px; line-height: 1;"><span style="font-size: 12pt;">0 0 0 0 would not be a legal unit quaternion.</span></p>
<p style="margin: 0.1rem 0px; line-height: 1;">While the axis-angle default is 0 0 1 0 as appears in Part 1 is mostly for convenience</p>
<p style="margin: 0.1rem 0px; line-height: 1;">since many value combinations can produce zero rotation? </p>
<p style="margin: 0.1rem 0px; line-height: 1;">Also sure shows why axis-angle is so much easier to work with when typing numbers,</p>
<p style="margin: 0.1rem 0px; line-height: 1;">pitch and yaw and roll for all. </p>
<p style="margin: 0.1rem 0px; line-height: 1;">Thanks,</p>
<p style="margin: 0.1rem 0px; line-height: 1;">Joe</p>
<p style="margin: 0.1rem 0px; line-height: 1;">  </p>
</div>
<div style="border-left: 1px solid #aaaaaa; box-sizing: border-box; padding: 10px 0px 10px 15px; margin: 0px;">
<p>-----Original Message-----<br>From: Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank" rel="noopener">andreasplesch@gmail.com</a>><br>Sent: Feb 14, 2025 11:36 AM<br>To: Holger Seelig <<a href="mailto:holger.seelig@yahoo.de" target="_blank" rel="noopener">holger.seelig@yahoo.de</a>><br>Cc: X3D <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>>, Joseph D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank" rel="noopener">joedwil@earthlink.net</a>><br>Subject: Re: [x3d-public] SFRotation default value spec. inconsistency</p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<div dir="ltr">
<div>Let me just add for clarity that the length (or norm) of a quaternion includes the fourth, the scalar component. The norm is the square root of the sum of the squares of all four components.</div>
<div> </div>
<div>Only unit quaternions represent rotations. A (0,0,0,0) quaternion does not represent any rotation (but of course exists outside of rotations).</div>
<div> </div>
<div>Andreas</div>
<div> </div>
<div>PS: To add back in some fuzziness, a unit quaternion can only represent a rotation up to 360 degrees. I think there is a mechanism to use non-unit quaternions for larger rotations.</div>
<br>
<div>
<div dir="ltr">On Fri, Feb 14, 2025 at 10:22 AM Holger Seelig <<a href="mailto:holger.seelig@yahoo.de" target="_blank" rel="noopener">holger.seelig@yahoo.de</a>> wrote:</div>
<blockquote style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">
<div>All quaternions must be normalized to be a legal rotation, so the length of the quaternion must always be one.
<div> </div>
<div>Holger<br id="m_-5201182128765480370m_238839612412397269x_m_-7886534808598711450m_-3216428128469200639lineBreakAtBeginningOfMessage">
<div>
<div dir="auto" style="color: #000000; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;">
<div dir="auto" style="color: #000000; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;">
<div dir="auto" style="color: #000000; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;">
<div dir="auto" style="color: #000000; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;">
<div dir="auto" style="color: #000000; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;">
<div dir="auto" style="text-align: start; text-indent: 0px;">
<div style="color: #000000; letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;">--</div>
<div style="color: #000000; letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;">Holger Seelig</div>
<div style="color: #000000; letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;">Leipzig, Germany</div>
<div style="color: #000000; letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;"> </div>
<div style="color: #000000; letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;"><a href="mailto:holger.seelig@yahoo.de" target="_blank" rel="noopener">holger.seelig@yahoo.de</a></div>
<div><a href="https://create3000.github.io/x_ite/" target="_blank" rel="noopener">https://create3000.github.io/x_ite/</a></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div><br>
<blockquote>
<div>Am 14.02.2025 um 15:38 schrieb Joe D Williams via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>>:</div>
<br>
<div>
<div style="font-family: Arial; font-size: 12pt;">
<div style="margin: 0.1rem 0px; line-height: 1;">> <span style="font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;"> So, sensibly, a zero rotation around any axis corresponds to the "zero unit Quaternion" (0, 0, 0, 1 XYZW), </span> </div>
<p style="margin: 0.1rem 0px; line-height: 1;">  </p>
<div style="margin: 0.1rem 0px; line-height: 1;">Right. Not sure but  0 0 0 0 for unit quaternion might not be legal. I think the values must compute to1 to be legal?</div>
<div style="margin: 0.1rem 0px; line-height: 1;">Thanks,</div>
<div style="margin: 0.1rem 0px; line-height: 1;">Joe</div>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
</div>
<div style="border-left: 1px solid #aaaaaa; box-sizing: border-box; padding: 10px 0px 10px 15px; margin: 0px;">
<p>-----Original Message-----<br>From: Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank" rel="noopener">andreasplesch@gmail.com</a>><br>Sent: Feb 10, 2025 12:37 PM<br>To: Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank" rel="noopener">joedwil@earthlink.net</a>><br>Cc: Extensible 3D (X3D) Graphics public discussion <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>><br>Subject: Re: [x3d-public] SFRotation default value spec. inconsistency</p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<div dir="ltr">
<div><a href="https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_node_rotation" target="_blank" rel="noopener">https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_node_rotation</a></div>
<div>has indeed (0, 0, 0, 1 XYZW) as a default value.</div>
<div> </div>
<div>This is difficult to interpret as a rotation around an axis since the corresponding axis would be at first glance (0 0 0).</div>
<div> </div>
<div>x3dom converts quaternion (0, 0, 0, 1 XYZW) to (axis),angle (0,0,0),0 as does <a href="https://www.andre-gaschler.com/rotationconverter/" target="_blank" rel="noopener"> https://www.andre-gaschler.com/rotationconverter/</a> .</div>
<div> </div>
<div>On the other hand both SFRotation (0 0 1 0) and SFRotation (0 1 0 0) are also represented by quaternion (0, 0, 0, 1 XYZW).</div>
<div> </div>
<div>So, sensibly, a zero rotation around any axis corresponds to the "zero unit Quaternion" (0, 0, 0, 1 XYZW), making it a useful default value for quaternions. But that does not help with choosing a default axis for the SFRotation value.</div>
<div> </div>
<div>This will rarely matter. A use case may be when a SFRotation is initialized to the X3D default in a Proto but then only the angle is modified by a Proto script with the assumption that the axis is (0 0 1).</div>
<div> </div>
<div>-Andreas</div>
</div>
<br>
<div>
<div dir="ltr">On Mon, Feb 10, 2025 at 12:57 PM Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank" rel="noopener">joedwil@earthlink.net</a>> wrote:</div>
<blockquote style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">
<div style="font-family: arial,sans-serif; font-size: 12pt;">
<div style="margin: 0.1rem 0px; line-height: 1;">not zerp,  zero</div>
</div>
<div style="border-left: 1px solid #aaaaaa; box-sizing: border-box; padding: 10px 0px 10px 15px; margin: 0px;">
<p>-----Original Message-----<br>From: Extensible 3D (X3D) Graphics public discussion <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>><br>Sent: Feb 10, 2025 9:50 AM<br>To: Extensible 3D (X3D) Graphics public discussion <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>>, X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>><br>Cc: Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank" rel="noopener">joedwil@earthlink.net</a>>, Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank" rel="noopener">andreasplesch@gmail.com</a>><br>Subject: Re: [x3d-public] SFRotation default value spec. inconsistency</p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<div style="font-family: arial,sans-serif; font-size: 12pt;">
<div style="margin: 0.1rem 0px; line-height: 1;">I think the 0 0 1 0 should be used everywhere for default axis-angle. </div>
<div style="margin: 0.1rem 0px; line-height: 1;">I thinkI see 'zerp' unit quaternions (as in gltf as 0 0 0 1  XYZW) </div>
<div style="margin: 0.1rem 0px; line-height: 1;">Thanks,</div>
<div style="margin: 0.1rem 0px; line-height: 1;">Joe</div>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
</div>
<div style="border-left: 1px solid #aaaaaa; box-sizing: border-box; padding: 10px 0px 10px 15px; margin: 0px;">
<p>-----Original Message-----<br>From: Extensible 3D (X3D) Graphics public discussion <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>><br>Sent: Feb 10, 2025 8:44 AM<br>To: X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a>><br>Cc: Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank" rel="noopener">andreasplesch@gmail.com</a>><br>Subject: Re: [x3d-public] SFRotation default value spec. inconsistency</p>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
<div dir="ltr">
<div>The JS SAI spec. at <a href="https://www.web3d.org/documents/specifications/19777-1/V3.3/Part1/functions.html#FieldServices" target="_blank" rel="noopener"> https://www.web3d.org/documents/specifications/19777-1/V3.3/Part1/functions.html#FieldServices</a></div>
<div> </div>
<div>does not list functions for SFColorRGBA, only SFColor. There may be an earlier report. -Andreas</div>
</div>
<br>
<div>
<div dir="ltr">On Mon, Feb 10, 2025 at 11:31 AM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank" rel="noopener">andreasplesch@gmail.com</a>> wrote:</div>
<blockquote style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid #cccccc; padding-left: 1ex;">
<div dir="ltr">
<div><a href="https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/fieldTypes.html#SFRotationAndMFRotation" target="_blank" rel="noopener">https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/fieldTypes.html#SFRotationAndMFRotation</a></div>
<div> </div>
<div>specifies that (0 0 1 0) is the value of an uninitialized SFRotation given as (x y z a).</div>
<div> </div>
<div>However, the JS SAI spec. in table 7.18 in <a href="https://www.web3d.org/documents/specifications/19777-1/V3.3/Part1/functions.html#SFRotationInstanceCreationFunction" target="_blank" rel="noopener"> https://www.web3d.org/documents/specifications/19777-1/V3.3/Part1/functions.html#SFRotationInstanceCreationFunction</a></div>
<div> </div>
<div>effectively makes (0 1 0 0) the default value if no parameters are provided.</div>
<div> </div>
<div>The inconsistency does not have much of an impact since both are 0 rotations but I believe (0 1 0 0) - a 0 rotation around y - may have been intended as the default.</div>
<div> </div>
<div>-Andreas</div>
<div> </div>
-- <br>
<div dir="ltr">
<div dir="ltr">
<div>Andreas Plesch<br>Waltham, MA 02453</div>
</div>
</div>
</div>
</blockquote>
</div>
<div> </div>
<br>-- <br>
<div dir="ltr">
<div dir="ltr">
<div>Andreas Plesch<br>Waltham, MA 02453</div>
</div>
</div>
</div>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
</div>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
</blockquote>
</div>
<div> </div>
<br>-- <br>
<div dir="ltr">
<div dir="ltr">
<div>Andreas Plesch<br>Waltham, MA 02453</div>
</div>
</div>
</div>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
_______________________________________________<br>x3d-public mailing list<br><a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank" rel="noopener">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
<div> </div>
<br>-- <br>
<div dir="ltr">
<div dir="ltr">
<div>Andreas Plesch<br>Waltham, MA 02453</div>
</div>
</div>
</div>
</div>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
</blockquote>
</div>
<div> </div>
<div> </div>
-- <br>
<div dir="ltr">
<div dir="ltr">
<div>Andreas Plesch<br>Waltham, MA 02453</div>
</div>
</div>
</div>
</div>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
</div>
</div>
<p style="margin: 0.1rem 0px; line-height: 1;"> </p>
</blockquote>
</div>
<div> </div>
<br><span class="gmail_signature_prefix">-- </span><br>
<div class="gmail_signature" dir="ltr">
<div dir="ltr">
<div>Andreas Plesch<br>Waltham, MA 02453</div>
</div>
</div>
</div>
_______________________________________________<br>x3d-public mailing list<br><a href="mailto:x3d-public@web3d.org" target="_blank" rel="noopener">x3d-public@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank" rel="noopener noreferrer">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></blockquote>
</div>
</div>
</div>

<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>