[x3d-public] SFRotation default value spec. inconsistency

Andreas Plesch andreasplesch at gmail.com
Sat Feb 15 21:11:43 PST 2025


I agree, probably the best default value for a unit quaternion is 0 0 0 1.

However, X3D does not concern itself with quaternions, only axis-angle
rotations.

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
?

If yes, which one ? I would vote for 0 1 0 0 since rotations around Y seem
more common.

-Andreas

On Sat, Feb 15, 2025 at 11:04 PM <joedwil at earthlink.net> wrote:

> Doesn't this mean that the _best_ default value, for no rotation, is
> 'legally' for unit quaternion = 0 0 0 1
>
> because the square root of the sum of the squares of all four components
> does = 1 ?
>
> 0 0 0 0 would not be a legal unit quaternion.
>
> While the axis-angle default is 0 0 1 0 as appears in Part 1 is mostly for
> convenience
>
> since many value combinations can produce zero rotation?
>
> Also sure shows why axis-angle is so much easier to work with when typing
> numbers,
>
> pitch and yaw and roll for all.
>
> Thanks,
>
> Joe
>
>
>
> -----Original Message-----
> From: Andreas Plesch <andreasplesch at gmail.com>
> Sent: Feb 14, 2025 11:36 AM
> To: Holger Seelig <holger.seelig at yahoo.de>
> Cc: X3D <x3d-public at web3d.org>, Joseph D Williams <joedwil at earthlink.net>
> Subject: Re: [x3d-public] SFRotation default value spec. inconsistency
>
>
> 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.
>
> Only unit quaternions represent rotations. A (0,0,0,0) quaternion does not
> represent any rotation (but of course exists outside of rotations).
>
> Andreas
>
> 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.
>
> On Fri, Feb 14, 2025 at 10:22 AM Holger Seelig <holger.seelig at yahoo.de>
> wrote:
>
>> All quaternions must be normalized to be a legal rotation, so the length
>> of the quaternion must always be one.
>>
>> Holger
>> --
>> Holger Seelig
>> Leipzig, Germany
>>
>> holger.seelig at yahoo.de
>> https://create3000.github.io/x_ite/
>>
>> Am 14.02.2025 um 15:38 schrieb Joe D Williams via x3d-public <
>> x3d-public at web3d.org>:
>>
>> > So, sensibly, a zero rotation around any axis corresponds to the "zero
>> unit Quaternion" (0, 0, 0, 1 XYZW),
>>
>>
>> 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?
>> Thanks,
>> Joe
>>
>>
>>
>>
>>
>> -----Original Message-----
>> From: Andreas Plesch <andreasplesch at gmail.com>
>> Sent: Feb 10, 2025 12:37 PM
>> To: Joe D Williams <joedwil at earthlink.net>
>> Cc: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org>
>> Subject: Re: [x3d-public] SFRotation default value spec. inconsistency
>>
>>
>> https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_node_rotation
>> has indeed (0, 0, 0, 1 XYZW) as a default value.
>>
>> This is difficult to interpret as a rotation around an axis since the
>> corresponding axis would be at first glance (0 0 0).
>>
>> x3dom converts quaternion (0, 0, 0, 1 XYZW) to (axis),angle (0,0,0),0 as
>> does https://www.andre-gaschler.com/rotationconverter/ .
>>
>> 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).
>>
>> 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.
>>
>> 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).
>>
>> -Andreas
>>
>> On Mon, Feb 10, 2025 at 12:57 PM Joe D Williams <joedwil at earthlink.net>
>> wrote:
>>
>>> not zerp,  zero
>>>
>>> -----Original Message-----
>>> From: Extensible 3D (X3D) Graphics public discussion <
>>> x3d-public at web3d.org>
>>> Sent: Feb 10, 2025 9:50 AM
>>> To: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org>,
>>> X3D Graphics public mailing list <x3d-public at web3d.org>
>>> Cc: Joe D Williams <joedwil at earthlink.net>, Andreas Plesch <
>>> andreasplesch at gmail.com>
>>> Subject: Re: [x3d-public] SFRotation default value spec. inconsistency
>>>
>>>
>>> I think the 0 0 1 0 should be used everywhere for default axis-angle.
>>> I thinkI see 'zerp' unit quaternions (as in gltf as 0 0 0 1  XYZW)
>>> Thanks,
>>> Joe
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: Extensible 3D (X3D) Graphics public discussion <
>>> x3d-public at web3d.org>
>>> Sent: Feb 10, 2025 8:44 AM
>>> To: X3D Graphics public mailing list <x3d-public at web3d.org>
>>> Cc: Andreas Plesch <andreasplesch at gmail.com>
>>> Subject: Re: [x3d-public] SFRotation default value spec. inconsistency
>>>
>>>
>>> The JS SAI spec. at
>>> https://www.web3d.org/documents/specifications/19777-1/V3.3/Part1/functions.html#FieldServices
>>>
>>> does not list functions for SFColorRGBA, only SFColor. There may be an
>>> earlier report. -Andreas
>>>
>>> On Mon, Feb 10, 2025 at 11:31 AM Andreas Plesch <andreasplesch at gmail.com>
>>> wrote:
>>>
>>>>
>>>> https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/fieldTypes.html#SFRotationAndMFRotation
>>>>
>>>> specifies that (0 0 1 0) is the value of an uninitialized SFRotation
>>>> given as (x y z a).
>>>>
>>>> However, the JS SAI spec. in table 7.18 in
>>>> https://www.web3d.org/documents/specifications/19777-1/V3.3/Part1/functions.html#SFRotationInstanceCreationFunction
>>>>
>>>> effectively makes (0 1 0 0) the default value if no parameters are
>>>> provided.
>>>>
>>>> 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.
>>>>
>>>> -Andreas
>>>>
>>>> --
>>>> Andreas Plesch
>>>> Waltham, MA 02453
>>>>
>>>
>>>
>>> --
>>> Andreas Plesch
>>> Waltham, MA 02453
>>>
>>>
>>>
>>>
>>>
>>
>>
>> --
>> Andreas Plesch
>> Waltham, MA 02453
>>
>>
>> _______________________________________________
>> x3d-public mailing list
>> x3d-public at web3d.org
>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>
>>
>
> --
> Andreas Plesch
> Waltham, MA 02453
>
>
>


-- 
Andreas Plesch
Waltham, MA 02453
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250216/fe49dcfe/attachment.html>


More information about the x3d-public mailing list