Notes for X3D HAnim

 

Following are my notes used in a discussion with Fashion Wearables in October. 

Recommended Web3D Standards
 https://www.web3d.org/standards/all
Humanoid Animation Interfaces 
 https://www.web3d.org/documents/specifications/19774/V2.0/index.html
X3D Base Interfaces
 https://www.web3d.org/documents/specifications/19775-1/V4.0/index.html
X3D SAI (Scene Access Interfaces)
 https://www.web3d.org/documents/specifications/19775-2/V3.3/index.html
XML Encoding
 https://www.web3d.org/documents/specifications/19776-1/V3.3/index.html
X3D Unified Object Model
 https://www.web3d.org/specifications/X3dUnifiedObjectModel-4.0.xml
Web3D HAnim Working Group
 https://www.web3d.org/working-groups/hanim
HAnim Examples Archive
 https://www.web3d.org/x3d/content/examples/HumanoidAnimation/index.html
X3D HAnim Example1
 https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickIndex.html
 https://create3000.github.io/x_ite/playground/?url=https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d
X3D HAnim Example 2 
 https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinScaledV2L1LOA4OnlyMarkersCanonical.xml

X3D Semantic Web Public Assets
https://www.web3d.org/x3d-semantic-web-public-assets

W3C Accessibility Guidelines (WCAG) 3.0
https://www.w3.org/TR/wcag-3.0/

X3D Semantic Web Public Assets
https://www.web3d.org/x3d-semantic-web-public-assets

W3C Accessibility Guidelines (WCAG) 3.0
https://www.w3.org/TR/wcag-3.0/

Interoperable Characters/Avatars You Tube
https://www.youtube.com/playlist?list=PL9H8jJb7mpbk3hjpUTvt6HYVIUkIpoNEz

Another Entry Point
https://webx3d.org/

 

Web3D ISO/IEC 19774 Humanoid Animation
  
The HAnim (Humanoid Animation) standard is a 
platform-independent ISO/IEC Standard to produce 
a realistic realtime anytime interactive 
Humanoid character operating in standardized 
web environments. 
     
Every detail of the HAnim standard is intended 
to promote sharable animations and interactions  
between similar models. 
 
From inception into the future this Humanoid model 
describes the primary extensible basis for 
development of the Virtual Twin concept, 
operating under direct user control and 
autonomously, alone or with others in 
a wide range of standardizable host environments. 
  
Host Coordinate System
    Standard GL (metres)
Character Coordinate System
    Standard GL (metres)
    0 0 0 at floor between feet, 
    model gaze toward +Z, 
    +X to model left, +Y up, 
    Right-hand rule
    Default before animation I pose (relaxed attention) 
    All Joints and points 0 0 1 0  

   
The importance of a known default before 
animation pose is prime when reusing 
'standard' animations and interactions 
designed for a similar character. 
  
The HAnim standard assumes that the basic  
character consists of a hierarchy of joints 
and at default pose, all Joints (and points)  
are at 0 0 1 0, zero degrees for all axes. 

This provides an intuitive animation system where 
X-axis rotation of a Joint produces Pitch motion, 
Y-axis produces Yaw, and Z-axis produces Roll.
    
The HAnim character can be composed at 
several levels of complexity of skeleton and 
geometry. 
  
Humanoid (container)
 skeleton (realistic hierarchy)
  Joint (basic motion animation target) 
   Segment (geometry, accessories, Sites) 
    Site (landmark, data, sensor)
   Joint 
    (... rest of hierarchy) 
 skin (indexed geometry, 
       continious deformable mesh, 
       animated by skeleton)
  
The Humanoid container holds the skeleton and 
associated geometries and sensors, and the skin. 
  
The skeleton can be produced at five levels of 
articulation:  
    LOA-0 represents only the humanoid_root Joint object 
    LOA-1 represents a hierarchy of 18 joints 
    LOA-2 consists of 71 joints
    LOA-3 consists of 94 joints
    LOA-4 consists of 148 joints
  
Geometry to vizualize the Humanoid can consist of:
 Level 1 geometry which provides for individual shapes 
for body part segments and accessories. 
These are animated directly by operation of the skeleton 
hierarchy and separately as required. 
 Level 2 provides Level 1 plus animation of a 
deformable mesh skin according to a weighted value 
shared among various joints that may have an effect 
upon motion of the individual points of the mesh. 
  
Sites: A set of surface feature landmarks provide 
a standardized reference locations on the model 
for various data points, interaction areas, 
accessory geometry, and sensors.  
  
So, the Five main elements of the HAnim Standard are:
 Humanoid
 Joint
 Segment 
 Site 
 Displacer 

Displacer provides an independent means to animate 
indiviual points or groups of points of a target 
geometry along a 3D vector using time or a scalar 
interpolator. 
 
  
Web3D X3D ISO/IEC HAnim Implementation 

X3D offers an open and free reference implementation 
of the HAnim standard via the X3D HAnim component.

  Open Inventor ---> 
    Virtual Reality Modeling Language (VRML) --->  
      Extensible 3D (X3D XML)  
  
X3D AuthorTime very human-readable user code 
can be created with simple text editor. 
Creates DAG scenegraph,  
Same child, Multiple parents:  DEF/USE.
Strongly typed nodes and parameters.
Validated by xml schema or other schema. 
None better realtime, live data structure 
 
X3D Scene Access Interface (SAI) Runtime.  

Internal and External programming operations 
are identical. 
Time- and Event-driven behavior graph. 
None better realtime live scene graph and event system.
   
To me, the rest of X3D was born and made to do HAnim.
  
Character Poses: 

Defined to produce best animation transport 

  1. Pose Before Animation/skin or garment binding
       I Pose (relaxed attention) 
         GL coordinate system, metres 
       All Joints 0 0 1 0
       All points 0 0 1 0  
    2. Move skeleton parts to match Skin or Garment binding Pose 
       Whatever natural pose, or A, T, or other pose referenced from 
         Default before animation pose. 
        Data for skin-skeleton binding is 
          Joint holds index of point and weight of Joint.
       Each point can be controlled by up to four Joints (gltf)
    3. Return to Default Pose, all Joints and points 0 0 1 0. 
        Default I pose should work. 
    4. Rinse and Repeat, adjusting vertex bindings for various motions.  

X3D HAnim Content Pool

Extensive example web3D archives, available showing VRML, XML, JSON, etc encodings.

 

 
metaverse