[x3d-public] Mantis 407: RigidBodyCollection errorCorrection and maxCorrectionSpeed field definitions

Don Brutzman brutzman at nps.edu
Mon Jul 5 11:31:13 PDT 2021


With some effort, Dick and I improved RigidBodyCollection field definitions today.

* Mantis 407: 37.4.11 RigidBodyCollection -- Missing Definition
   https://www.web3d.org/member-only/mantis/view.php?id=407

We first refined /errorCorrection/ field definition to reduce ambiguity, then attempted to add a missing definition for /maxCorrectionSpeed/ field.  Prose modifications to spec appear after the following node signature.

==================================================
X3D4 Architecture, 37.4.11 RigidBodyCollection
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/rigidBodyPhysics.html#RigidBodyCollection

RigidBodyCollection : X3DChildNode {
   MFNode  [in]     set_contacts                     [Contact]
   SFBool  [in,out] autoDisable             FALSE
   MFNode  [in,out] bodies                  []       [RigidBody]
   SFFloat [in,out] constantForceMix        0.0001   [0,∞)
   SFFloat [in,out] contactSurfaceThickness 0        [0,∞)
   SFFloat [in,out] disableAngularSpeed     0        [0,∞)
   SFFloat [in,out] disableLinearSpeed      0        [0,∞)

   SFTime  [in,out] disableTime             0       [0,∞)
   SFBool  [in,out] enabled                 TRUE
   SFFloat [in,out] errorCorrection         0.8      [0,1]
   SFVec3f [in,out] gravity                 0 -9.8 0
   SFInt32 [in,out] iterations              10	    [0,∞)
   MFNode  [in,out] joints                  []       [X3DRigidJointNode]
   SFFloat [in,out] maxCorrectionSpeed      -1       [0,∞) or -1
   SFBool  [in,out] preferAccuracy          FALSE
   SFNode  []       collider                NULL     [CollisionCollection]
}
[...]

The errorCorrection field is a rate factor that describes how quickly the system should resolve intersection errors due to floating point inaccuracies. This value ranges between 0 and 1. A value of 0 means no correction at all is performed, a value of 0.8 indicates that 80% of each error is corrected in a single step, while a value of 1 indicates that all errors should be each error is completely corrected in a single step.

EDITORS NOTE: the following field definition deserves close review, with possibility of being removed or fully redefined.

The maxCorrectionSpeed field limits the amount of change that can be applied to resolve intersection error, effectively modifying object positions, using an absolute value of speed. A value of -1 indicates that no speed limitation exists, while a value of 0 indicates that no corrections are allowed.
==================================================

All review and feedback welcome, especially with respect to implementation.

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 http://faculty.nps.edu/brutzman



More information about the x3d-public mailing list