[x3d-public] SFRotation default value spec. inconsistency

Holger Seelig holger.seelig at yahoo.de
Sun Feb 16 00:33:13 PST 2025


I think the default value is 0 0 1 0 for rotations. It’s already the case for the old JavaScript VRML 2.0 spec:

https://www.web3d.org/documents/specifications/14772/V2.0/part1/fieldsRef.html#SFRotation

As well as the Field Type Reference say 0 0 1 0:

https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/fieldTypes.html#SFRotationAndMFRotation

On the other hand all rotation values in the spec have a 0 0 1 0 rotation as well:

https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/Architecture.html

Holger

--
Holger Seelig
Leipzig, Germany

holger.seelig at yahoo.de
https://create3000.github.io/x_ite/

> Am 16.02.2025 um 06:11 schrieb Andreas Plesch <andreasplesch at gmail.com>:
> 
> 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 <mailto: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 <mailto:andreasplesch at gmail.com>>
>> Sent: Feb 14, 2025 11:36 AM
>> To: Holger Seelig <holger.seelig at yahoo.de <mailto:holger.seelig at yahoo.de>>
>> Cc: X3D <x3d-public at web3d.org <mailto:x3d-public at web3d.org>>, Joseph D Williams <joedwil at earthlink.net <mailto: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 <mailto: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 <mailto: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 <mailto: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 <mailto:andreasplesch at gmail.com>>
>>> Sent: Feb 10, 2025 12:37 PM
>>> To: Joe D Williams <joedwil at earthlink.net <mailto:joedwil at earthlink.net>>
>>> Cc: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org <mailto: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 <mailto:joedwil at earthlink.net>> wrote:
>>>> not zerp,  zero
>>>> -----Original Message-----
>>>> From: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org <mailto:x3d-public at web3d.org>>
>>>> Sent: Feb 10, 2025 9:50 AM
>>>> To: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org <mailto:x3d-public at web3d.org>>, X3D Graphics public mailing list <x3d-public at web3d.org <mailto:x3d-public at web3d.org>>
>>>> Cc: Joe D Williams <joedwil at earthlink.net <mailto:joedwil at earthlink.net>>, Andreas Plesch <andreasplesch at gmail.com <mailto: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 <mailto:x3d-public at web3d.org>>
>>>> Sent: Feb 10, 2025 8:44 AM
>>>> To: X3D Graphics public mailing list <x3d-public at web3d.org <mailto:x3d-public at web3d.org>>
>>>> Cc: Andreas Plesch <andreasplesch at gmail.com <mailto: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 <mailto: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 <mailto: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/198dc108/attachment-0001.html>


More information about the x3d-public mailing list