X3D version 4.0 was approved by Web3D Consortium and ISO in 2023.
X3D version 4.0 offers many new features including interoperability with HTML5, glTF
2.0 Physically Based Rendering (PBR), and Web Audio API.
<meta name='warning' content='HAnimJoint and HAnimSegment names upgraded to HAnim2 but graph topology has inconsistencies
that do not match loa=1 specification hierarchy'/>
<HAnimHumanoid DEF='hanim_Ju' name='Ju'/> version='2.0' with X3D version='4.0'
====================================================================================================================
<HAnimHumanoid DEF='hanim_Ju' name='Ju'/> node count(HAnimJoint) within skeleton hierarchy = 18
<HAnimHumanoid DEF='hanim_Ju' name='Ju'/> node count(HAnimSegment) within skeleton hierarchy = 18
<HAnimHumanoid DEF='hanim_Ju' name='Ju'/> node count(HAnimSite) within HAnimHumanoid = 0
<HAnimHumanoid DEF='hanim_Ju' name='Ju'/> node count(HAnimSite//Viewpoint) within skeleton hierarchy = 0
<HAnimHumanoid DEF='hanim_Ju' name='Ju'/> node count(HAnimDisplacer) within skeleton hierarchy = 0
<HAnimHumanoid DEF='hanim_Ju' name='Ju'/> node count(<HAnimJoint USE='*' containerField = 'joints'/>) = 18
<HAnimHumanoid DEF='hanim_Ju' name='Ju'/> node count(<HAnimSegment USE='*' containerField = 'segments'/>) = 18
<HAnimHumanoid DEF='hanim_Ju' name='Ju'/> node count(<HAnimSite USE='*' containerField = 'sites'/>) = 0
<HAnimHumanoid DEF='hanim_Ju' name='Ju'/> node count(<HAnimSite DEF='*' name ends with '_view'/>) = 0
====================================================================================================================
<HAnimJoint DEF='hanim_l_hip' name='l_hip'/> has parent HAnimJoint name='humanoid_root' rather than expected parent name='sacroiliac', recommend checking model
<HAnimJoint DEF='hanim_l_metatarsophalangeal_2' name='l_metatarsophalangeal_2'/> has parent HAnimJoint name='l_talocrural' rather than expected parent name='l_tarsometatarsal_2', recommend checking model
<HAnimJoint DEF='hanim_r_hip' name='r_hip'/> has parent HAnimJoint name='humanoid_root' rather than expected parent name='sacroiliac', recommend checking model
<HAnimJoint DEF='hanim_r_metatarsophalangeal_2' name='r_metatarsophalangeal_2'/> has parent HAnimJoint name='r_talocrural' rather than expected parent name='r_tarsometatarsal_2', recommend checking model
<HAnimJoint DEF='hanim_l_shoulder' name='l_shoulder'/> has parent HAnimJoint name='sacroiliac' rather than expected parent name='l_acromioclavicular', recommend checking model
<HAnimJoint DEF='hanim_r_shoulder' name='r_shoulder'/> has parent HAnimJoint name='sacroiliac' rather than expected parent name='r_acromioclavicular', recommend checking model
<HAnimJoint DEF='hanim_vl5' name='vl5'/> has parent HAnimJoint name='sacroiliac' rather than expected parent name='humanoid_root', recommend checking model
<HAnimJoint DEF='hanim_skullbase' name='skullbase'/> has parent HAnimJoint name='vl5' rather than expected parent name='vc1', recommend checking model