<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">package HumanoidAnimation.Specifications;

import org.web3d.x3d.jsail.Core.*;
import org.web3d.x3d.jsail.EnvironmentalEffects.*;
import org.web3d.x3d.jsail.fields.*;
import org.web3d.x3d.jsail.Geometry3D.*;
import org.web3d.x3d.jsail.Grouping.*;
import org.web3d.x3d.jsail.HAnim.*;
import org.web3d.x3d.jsail.Navigation.*;
import org.web3d.x3d.jsail.Networking.*;
import org.web3d.x3d.jsail.PointingDeviceSensor.*;
import org.web3d.x3d.jsail.Rendering.*;
import org.web3d.x3d.jsail.RigidBodyPhysics.*;
import org.web3d.x3d.jsail.Shape.*;

// Javadoc metadata annotations follow, see below for X3DJSAIL Java source code.
/**
 * &lt;p&gt; HAnim Specification reference example providing full coverage (and no illustrated visibility) of all specified HAnim constructs, also suitable for re-use as an authoring template. &lt;/p&gt;
 &lt;p&gt; Related links:  source HAnim2SpecificationLOA3Illustrated.java, &lt;a href="https://www.web3d.org/x3d/content/examples/X3dResources.html" target="_blank"&gt;X3D Resources&lt;/a&gt;, &lt;a href="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html" target="_blank"&gt;X3D Scene Authoring Hints&lt;/a&gt;, and &lt;a href="https://www.web3d.org/x3d/content/X3dTooltips.html" target="_blank"&gt;X3D Tooltips&lt;/a&gt;. &lt;/p&gt;
	&lt;table style="color:black; border:0px solid; border-spacing:10px 0px;"&gt;
        &lt;caption&gt;Scene Meta Information&lt;/caption&gt;
		&lt;tr style="background-color:silver; border-color:silver;"&gt;
			&lt;td style="text-align:center; padding:10px 0px;"&gt;&lt;i&gt;meta tags&lt;/i&gt;&lt;/td&gt;
			&lt;td style="text-align:left;   padding:10px 0px;"&gt;HumanoidAnimation.Specifications.HAnim2SpecificationLOA3Illustrated&amp;nbsp; Document Metadata &lt;/td&gt;
		&lt;/tr&gt;

		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; title &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim2SpecificationLOA3Illustrated.x3d"&gt;HAnim2SpecificationLOA3Illustrated.x3d&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; description &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; HAnim Specification reference example providing full coverage (and no illustrated visibility) of all specified HAnim constructs, also suitable for re-use as an authoring template. &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/files/specifications/19774/V1.0/HAnim/BodyDimensionsAndLOAs.html#LOA3ExampleSourceWithDiamonds" target="_blank"&gt;https://www.web3d.org/files/specifications/19774/V1.0/HAnim/BodyDimensionsAndLOAs.html#LOA3ExampleSourceWithDiamonds&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; created &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; 18 February 2021 &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; modified &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; 23 December 2021 &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; creator &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; Don Brutzman &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim2SpecificationLOA3Invisible.x3d"&gt;HAnim2SpecificationLOA3Invisible.x3d&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim2SpecificationLOA3Animation.x3d"&gt;HAnim2SpecificationLOA3Animation.x3d&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; HAnimSpecificationExampleChangeLog.txt &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; Image &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/images/BonesAllSkeletonFrontViewLOA1.png"&gt;images/BonesAllSkeletonFrontViewLOA1.png&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; Image &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/images/BonesAllSkeletonFrontViewLOA2.png"&gt;images/BonesAllSkeletonFrontViewLOA2.png&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; Image &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/images/BonesAllSkeletonFrontViewLOA3.png"&gt;images/BonesAllSkeletonFrontViewLOA3.png&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; TODO &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; move relevant HAnimSite/Viewpoint pairs into skeleton at appropriate locations &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; TODO &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; insert MetadataInteger nodes indicating LOA for each Joint and Segment &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; Norman Badler et al., ANTHROPOMETRY FOR COMPUTER GRAPHICS HUMAN FIGURES, University of Pennsylvania, 1989. &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="http://www.cis.upenn.edu/~badler/anthro/89-71.ps" target="_blank"&gt;http://www.cis.upenn.edu/~badler/anthro/89-71.ps&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/tables/AnthropometryForComputerGraphicsHumanFigures89-71.pdf"&gt;tables/AnthropometryForComputerGraphicsHumanFigures89-71.pdf&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; translator &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; Don Brutzman and Joe Williams &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; generator &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; BS Contact Geo 8.001, &lt;a href="http://www.bitmanagement.de/en/products/interactive-3d-clients/bs-contact-geo" target="_blank"&gt;http://www.bitmanagement.de/en/products/interactive-3d-clients/bs-contact-geo&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; originals/LOA3ExampleSourceWithDiamondsOriginal.wrl &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/originals/LOA3ExampleSourceWithDiamondsOriginal.x3d"&gt;originals/LOA3ExampleSourceWithDiamondsOriginal.x3d&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/originals/LOA3ExampleSourceWithDiamondsOriginalBsContactExport.x3d"&gt;originals/LOA3ExampleSourceWithDiamondsOriginalBsContactExport.x3d&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; HAnim Specification Table 4.4 - Face Joint object names, &lt;a href="https://www.web3d.org/files/specifications/19774/V1.0/HAnim/concepts.html#FaceJointObjectNames" target="_blank"&gt;https://www.web3d.org/files/specifications/19774/V1.0/HAnim/concepts.html#FaceJointObjectNames&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; generator &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; X3D-Edit 3.3, &lt;a href="https://savage.nps.edu/X3D-Edit" target="_blank"&gt;https://savage.nps.edu/X3D-Edit&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; identifier &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim2SpecificationLOA3Illustrated.x3d" target="_blank"&gt;https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim2SpecificationLOA3Illustrated.x3d&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; license &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/../license.html"&gt;../license.html&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style="background-color:silver; border-color:silver;"&gt;
			&lt;td style="text-align:center;" colspan="2"&gt;  &amp;nbsp; &lt;/td&gt;
		&lt;/tr&gt;
	&lt;/table&gt;

	&lt;p&gt;
		This program uses the
		&lt;a href="https://www.web3d.org/specifications/java/X3DJSAIL.html" target="_blank"&gt;X3D Java Scene Access Interface Library (X3DJSAIL)&lt;/a&gt;.
		It has been produced using the 
		&lt;a href="https://www.web3d.org/x3d/stylesheets/X3dToJava.xslt" target="_blank"&gt;X3dToJava.xslt&lt;/a&gt;
		stylesheet
	       (&lt;a href="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/X3dToJava.xslt" target="_blank"&gt;version control&lt;/a&gt;)
                which is used to create Java source code from an original &lt;code&gt;.x3d&lt;/code&gt; model.
	&lt;/p&gt;

	* @author Don Brutzman
 */

public class HAnim2SpecificationLOA3Illustrated
{
	/** Default constructor to create this object. */
	public HAnim2SpecificationLOA3Illustrated ()
	{
	  initialize();
	}

	/** Create and initialize the X3D model for this object. */
	public final void initialize()
	{
            try { // catch-all
  x3dModel = new X3D().setProfile(X3D.PROFILE_IMMERSIVE).setVersion(X3D.VERSION_4_0)
  .setHead(new head()
    .addComponent(new component().setName("HAnim").setLevel(1))
    .addMeta(new meta().setName(meta.NAME_TITLE      ).setContent("HAnim2SpecificationLOA3Illustrated.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("HAnim Specification reference example providing full coverage (and no illustrated visibility) of all specified HAnim constructs, also suitable for re-use as an authoring template."))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("https://www.web3d.org/files/specifications/19774/V1.0/HAnim/BodyDimensionsAndLOAs.html#LOA3ExampleSourceWithDiamonds"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("18 February 2021"))
    .addMeta(new meta().setName(meta.NAME_MODIFIED   ).setContent("23 December 2021"))
    .addMeta(new meta().setName(meta.NAME_CREATOR    ).setContent("Don Brutzman"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("HAnim2SpecificationLOA3Invisible.x3d"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("HAnim2SpecificationLOA3Animation.x3d"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("HAnimSpecificationExampleChangeLog.txt"))
    .addMeta(new meta().setName(meta.NAME_IMAGE      ).setContent("images/BonesAllSkeletonFrontViewLOA1.png"))
    .addMeta(new meta().setName(meta.NAME_IMAGE      ).setContent("images/BonesAllSkeletonFrontViewLOA2.png"))
    .addMeta(new meta().setName(meta.NAME_IMAGE      ).setContent("images/BonesAllSkeletonFrontViewLOA3.png"))
    .addMeta(new meta().setName(meta.NAME_TODO       ).setContent("move relevant HAnimSite/Viewpoint pairs into skeleton at appropriate locations"))
    .addMeta(new meta().setName(meta.NAME_TODO       ).setContent("insert MetadataInteger nodes indicating LOA for each Joint and Segment"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("Norman Badler et al., ANTHROPOMETRY FOR COMPUTER GRAPHICS HUMAN FIGURES, University of Pennsylvania, 1989."))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("http://www.cis.upenn.edu/~badler/anthro/89-71.ps"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("tables/AnthropometryForComputerGraphicsHumanFigures89-71.pdf"))
    .addMeta(new meta().setName(meta.NAME_TRANSLATOR ).setContent("Don Brutzman and Joe Williams"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("BS Contact Geo 8.001, http://www.bitmanagement.de/en/products/interactive-3d-clients/bs-contact-geo"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("originals/LOA3ExampleSourceWithDiamondsOriginal.wrl"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("originals/LOA3ExampleSourceWithDiamondsOriginal.x3d"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("originals/LOA3ExampleSourceWithDiamondsOriginalBsContactExport.x3d"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("HAnim Specification Table 4.4 - Face Joint object names, https://www.web3d.org/files/specifications/19774/V1.0/HAnim/concepts.html#FaceJointObjectNames"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit"))
    .addMeta(new meta().setName(meta.NAME_IDENTIFIER ).setContent("https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnim2SpecificationLOA3Illustrated.x3d"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../license.html")))
  .setScene(new Scene()
    .addChild(new Background().setSkyColor(new MFColor(new double[] {0.3,0.3,0.3})))
    .addChild(new NavigationInfo())
    .addChild(new Group("Original_WorldInfo")
      .addChild(new WorldInfo().setInfo(new String[] {" HANIM 200x Default Joint Centers, Level-Of-Articulation 3 HANIM 200x (VRML97) Author name: eMpTy (a.k.a. Matthew T. Beitler) HANIM 200x (VRML97) Author email: beitler@cis.upenn.edu or beitler@acm.org HANIM 200x (VRML97) Author homepage: http://www.cis.upenn.edu/~beitler HANIM 200x (VRML97) Compliance Date: August 12, 2003 HANIM 200x Compliance Information: http://HAnim.org/Specifications/HAnim200x Construction Info (joint centers): The joint centers of this figure are based on the work of Norman Badler, director of the Center for Human Modeling and Simulation at the University of Pennsylvania. The original document which these joint centers are based on can be found at: http://www.cis.upenn.edu/~badler/anthro/89-71.ps "}).setTitle("HANIM 200x Default Joint Centers, LOA3")))
    .addComments(" TODO move viewpoints to be internal to HAnimHumanoid ")
    .addComments(" Viewpoint centerOfRotation=\"0 0.9149 0.0016\" matches initial at-rest locaton of the sacroliac. Note that these viewpoints are external to the HAnimHumanoid and do not move with the human. ")
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Front").setCenterOfRotation(0.0,0.9149,0.0016).setPosition(0.0,0.4,4.0))
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Front Close").setCenterOfRotation(0.0,0.9149,0.0016).setPosition(0.0,0.8,2.0))
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Front Closer").setCenterOfRotation(0.0,0.9149,0.0016).setPosition(0.0,1.2,1.0))
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Front Face").setCenterOfRotation(0.0,1.5,0.0016).setPosition(0.0,1.63,1.0))
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Right Side").setCenterOfRotation(0.0,0.9149,0.0016).setOrientation(0.0,1.0,0.0,1.5708).setPosition(2.6,0.8,0.0))
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Right Side Close").setCenterOfRotation(0.0,0.9149,0.0016).setOrientation(0.0,1.0,0.0,1.2).setPosition(1.0,0.8,0.5))
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Left Side Close").setCenterOfRotation(0.0,0.9149,0.0016).setOrientation(0.0,1.0,0.0,-1.2).setPosition(-1.0,0.8,0.5))
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Left Side").setCenterOfRotation(0.0,0.9149,0.0016).setOrientation(0.0,1.0,0.0,-1.5708).setPosition(-2.6,0.8,0.0))
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Top").setCenterOfRotation(0.0,0.9149,0.0016).setOrientation(1.0,0.0,0.0,-1.5708).setPosition(0.0,3.5,0.0))
    .addChild(new HAnimHumanoid("hanim_humanoid").setName("humanoid").setLoa(3).setVersion("2.0")
      .addComments(" original HAnimHumanoid info='\"authorName=Matthew T. Beitler Joe D. Williams Don Brutzman\" \"authorEmail=HAnim@web3D.org\" \"copyright=none\" \"creationDate=12 May 1999\" \"usageRestrictions=none\" \"humanoidVersion=2.0\" \"height=1.7504\"' ")
      .setMetadata(new MetadataSet().setName("HAnimHumanoid.info").setReference("https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid")
        .setMetadata(new MetadataString().setName("authorName").setValue(new String[] {"Matthew T. Beitler Joe D. Williams Don Brutzman"}))
        .setMetadata(new MetadataString().setName("authorEmail").setValue(new String[] {"HAnim@web3D.org"}))
        .setMetadata(new MetadataString().setName("copyright").setValue(new String[] {"none"}))
        .setMetadata(new MetadataString().setName("creationDate").setValue(new String[] {"12 May 1999"}))
        .setMetadata(new MetadataFloat().setName("height").setValue(new double[] {1.7504}))
        .setMetadata(new MetadataString().setName("humanoidVersion").setValue(new String[] {"2.0"}))
        .setMetadata(new MetadataString().setName("usageRestrictions").setValue(new String[] {"none"})))
      .addComments(" Only one root HAnimJoint is allowed ")
      .addSkeleton(new HAnimJoint("hanim_humanoid_root").setName("humanoid_root").setCenter(0.0,0.824,0.0277).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
        .addChild(new HAnimSegment("hanim_sacrum").setName("sacrum")
          .addComments(" Visualization sphere for &lt;HAnimJoint name='humanoid_root'/&gt; is placed within &lt;HAnimSegment name='sacrum'/&gt; ")
          .addChild(new TouchSensor().setDescription("HAnimJoint humanoid_root, HAnimSegment sacrum"))
          .addChild(new Transform().setTranslation(0.0,0.824,0.0277)
            .addChild(new Shape("HAnimJointShape")
              .setGeometry(new Sphere().setRadius(0.006))
              .setAppearance(new Appearance("HAnimJointAppearance")
                .setMaterial(new Material().setDiffuseColor(1.0,0.5,0.0).setTransparency(0.5)))))
          .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='humanoid_root'/&gt; to child &lt;HAnimJoint name='sacroiliac'/&gt; ")
          .addChild(new Shape()
            .setGeometry(new LineSet().setVertexCount(new int[] {2})
              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.824,0.0277,0.0,0.9149,0.0016})))
              .setColor(new ColorRGBA("HAnimSegmentLineColorRGBA").setColor(new MFColorRGBA(new double[] {1.0,1.0,0.0,1.0,1.0,1.0,0.0,0.1})))))
          .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='humanoid_root'/&gt; to child &lt;HAnimJoint name='vl5'/&gt; ")
          .addChild(new Shape()
            .setGeometry(new LineSet().setVertexCount(new int[] {2})
              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.824,0.0277,0.0028,1.0568,-0.0776})))
              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
        .addChild(new HAnimJoint("hanim_sacroiliac").setName("sacroiliac").setCenter(0.0,0.9149,0.0016).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
          .addChild(new HAnimSegment("hanim_pelvis").setName("pelvis")
            .addComments(" Visualization sphere for &lt;HAnimJoint name='sacroiliac'/&gt; is placed within &lt;HAnimSegment name='pelvis'/&gt; ")
            .addChild(new TouchSensor().setDescription("HAnimJoint sacroiliac, HAnimSegment pelvis"))
            .addChild(new Transform().setTranslation(0.0,0.9149,0.0016)
              .addChild(new Shape().setUSE("HAnimJointShape")))
            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='sacroiliac'/&gt; to child &lt;HAnimJoint name='l_hip'/&gt; ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,0.0961,0.9124,-0.0001})))
                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='sacroiliac'/&gt; to child &lt;HAnimJoint name='r_hip'/&gt; ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,-0.0961,0.9124,-0.0001})))
                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='sacroiliac'/&gt; to &lt;HAnimSite name='r_iliocristale_pt'/&gt; ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,-0.1525,1.0628,0.0035})))
                .setColor(new ColorRGBA("HAnimSiteLineColorRGBA").setColor(new MFColorRGBA(new double[] {1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.1})))))
            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='sacroiliac'/&gt; to &lt;HAnimSite name='r_trochanterion_pt'/&gt; ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,-0.1689,0.8419,0.0352})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='sacroiliac'/&gt; to &lt;HAnimSite name='l_iliocristale_pt'/&gt; ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,0.1612,1.0537,0.0008})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='sacroiliac'/&gt; to &lt;HAnimSite name='l_trochanterion_pt'/&gt; ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,0.1677,0.8336,0.0303})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='sacroiliac'/&gt; to &lt;HAnimSite name='r_asis_pt'/&gt; ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,-0.0887,1.0021,0.1112})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='sacroiliac'/&gt; to &lt;HAnimSite name='l_asis_pt'/&gt; ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,0.0925,0.9983,0.1052})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='sacroiliac'/&gt; to &lt;HAnimSite name='r_psis_pt'/&gt; ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,-0.0716,1.019,-0.1138})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='sacroiliac'/&gt; to &lt;HAnimSite name='l_psis_pt'/&gt; ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,0.0774,1.019,-0.1151})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='sacroiliac'/&gt; to &lt;HAnimSite name='crotch_pt'/&gt; ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,0.0034,0.8266,0.0257})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addChild(new HAnimSite("hanim_r_iliocristale_pt").setName("r_iliocristale_pt").setTranslation(-0.1525,1.0628,0.0035)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite r_iliocristale_pt"))
              .addChild(new Shape("HAnimSiteShape")
                .setGeometry(new IndexedFaceSet("DiamondIFS").setDEF("DiamondIFS").setCreaseAngle(0.5).setSolid(false).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,0,3,4,-1,0,4,1,-1,5,2,1,-1,5,3,2,-1,5,4,3,-1,5,1,4,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.008,0.0,-0.008,0.0,0.0,0.0,0.0,0.008,0.008,0.0,0.0,0.0,0.0,-0.008,0.0,-0.008,0.0}))))
                .setAppearance(new Appearance()
                  .setMaterial(new Material().setDiffuseColor(1.0,0.0,0.0)))))
            .addChild(new HAnimSite("hanim_r_trochanterion_pt").setName("r_trochanterion_pt").setTranslation(-0.1689,0.8419,0.0352)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite r_trochanterion_pt"))
              .addChild(new Shape().setUSE("HAnimSiteShape")))
            .addChild(new HAnimSite("hanim_l_iliocristale_pt").setName("l_iliocristale_pt").setTranslation(0.1612,1.0537,0.0008)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite l_iliocristale_pt"))
              .addChild(new Shape().setUSE("HAnimSiteShape")))
            .addChild(new HAnimSite("hanim_l_trochanterion_pt").setName("l_trochanterion_pt").setTranslation(0.1677,0.8336,0.0303)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite l_trochanterion_pt"))
              .addChild(new Shape().setUSE("HAnimSiteShape")))
            .addChild(new HAnimSite("hanim_r_asis_pt").setName("r_asis_pt").setTranslation(-0.0887,1.0021,0.1112)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite r_asis_pt"))
              .addChild(new Shape().setUSE("HAnimSiteShape")))
            .addChild(new HAnimSite("hanim_l_asis_pt").setName("l_asis_pt").setTranslation(0.0925,0.9983,0.1052)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite l_asis_pt"))
              .addChild(new Shape().setUSE("HAnimSiteShape")))
            .addChild(new HAnimSite("hanim_r_psis_pt").setName("r_psis_pt").setTranslation(-0.0716,1.019,-0.1138)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite r_psis_pt"))
              .addChild(new Shape().setUSE("HAnimSiteShape")))
            .addChild(new HAnimSite("hanim_l_psis_pt").setName("l_psis_pt").setTranslation(0.0774,1.019,-0.1151)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite l_psis_pt"))
              .addChild(new Shape().setUSE("HAnimSiteShape")))
            .addChild(new HAnimSite("hanim_crotch_pt").setName("crotch_pt").setTranslation(0.0034,0.8266,0.0257)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite crotch_pt"))
              .addChild(new Shape().setUSE("HAnimSiteShape"))))
          .addChild(new HAnimJoint("hanim_l_hip").setName("l_hip").setCenter(0.0961,0.9124,-0.0001).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
            .addChild(new HAnimSegment("hanim_l_thigh").setName("l_thigh")
              .addComments(" Visualization sphere for &lt;HAnimJoint name='l_hip'/&gt; is placed within &lt;HAnimSegment name='l_thigh'/&gt; ")
              .addChild(new TouchSensor().setDescription("HAnimJoint l_hip, HAnimSegment l_thigh"))
              .addChild(new Transform().setTranslation(0.0961,0.9124,-0.0001)
                .addChild(new Shape().setUSE("HAnimJointShape")))
              .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_hip'/&gt; to child &lt;HAnimJoint name='l_knee'/&gt; ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0961,0.9124,-0.0001,0.104,0.4867,0.0308})))
                  .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_hip'/&gt; to &lt;HAnimSite name='l_knee_crease_pt'/&gt; ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0961,0.9124,-0.0001,0.0993,0.4881,-0.0309})))
                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_hip'/&gt; to &lt;HAnimSite name='l_femoral_lateral_epicn_pt'/&gt; ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0961,0.9124,-0.0001,0.1598,0.4967,0.0297})))
                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_hip'/&gt; to &lt;HAnimSite name='l_femoral_medial_epicn_pt'/&gt; ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0961,0.9124,-0.0001,0.0398,0.4946,0.0303})))
                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
              .addChild(new HAnimSite("hanim_l_knee_crease_pt").setName("l_knee_crease_pt").setTranslation(0.0993,0.4881,-0.0309)
                .addComments(" HAnimSite visualization shape ")
                .addChild(new TouchSensor().setDescription("HAnimSite l_knee_crease_pt"))
                .addChild(new Shape().setUSE("HAnimSiteShape")))
              .addChild(new HAnimSite("hanim_l_femoral_lateral_epicondyle_pt").setName("l_femoral_lateral_epicondyle_pt").setTranslation(0.1598,0.4967,0.0297)
                .addComments(" HAnimSite visualization shape ")
                .addChild(new TouchSensor().setDescription("HAnimSite l_femoral_lateral_epicn_pt"))
                .addChild(new Shape().setUSE("HAnimSiteShape")))
              .addChild(new HAnimSite("hanim_l_femoral_medial_epicondyle_pt").setName("l_femoral_medial_epicondyle_pt").setTranslation(0.0398,0.4946,0.0303)
                .addComments(" HAnimSite visualization shape ")
                .addChild(new TouchSensor().setDescription("HAnimSite l_femoral_medial_epicn_pt"))
                .addChild(new Shape().setUSE("HAnimSiteShape"))))
            .addChild(new HAnimJoint("hanim_l_knee").setName("l_knee").setCenter(0.104,0.4867,0.0308).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
              .addChild(new HAnimSegment("hanim_l_calf").setName("l_calf")
                .addComments(" Visualization sphere for &lt;HAnimJoint name='l_knee'/&gt; is placed within &lt;HAnimSegment name='l_calf'/&gt; ")
                .addChild(new TouchSensor().setDescription("HAnimJoint l_knee, HAnimSegment l_calf"))
                .addChild(new Transform().setTranslation(0.104,0.4867,0.0308)
                  .addChild(new Shape().setUSE("HAnimJointShape")))
                .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_knee'/&gt; to child &lt;HAnimJoint name='l_talocrural'/&gt; ")
                .addChild(new Shape()
                  .setGeometry(new LineSet().setVertexCount(new int[] {2})
                    .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.104,0.4867,0.0308,0.1101,0.0656,-0.0736})))
                    .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
              .addChild(new HAnimJoint("hanim_l_talocrural").setName("l_talocrural").setCenter(0.1101,0.0656,-0.0736).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                .addChild(new HAnimSegment("hanim_l_talus").setName("l_talus")
                  .addComments(" Visualization sphere for &lt;HAnimJoint name='l_talocrural'/&gt; is placed within &lt;HAnimSegment name='l_talus'/&gt; ")
                  .addChild(new TouchSensor().setDescription("HAnimJoint l_talocrural, HAnimSegment l_talus"))
                  .addChild(new Transform().setTranslation(0.1101,0.0656,-0.0736)
                    .addChild(new Shape().setUSE("HAnimJointShape")))
                  .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_talocrural'/&gt; to child &lt;HAnimJoint name='l_tarsometatarsal_2'/&gt; ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1101,0.0656,-0.0736,0.1086,0.0001,-0.0368})))
                      .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_talocrural'/&gt; to &lt;HAnimSite name='l_lateral_malleolus_pt'/&gt; ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1101,0.0656,-0.0736,0.1308,0.0597,-0.1032})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_talocrural'/&gt; to &lt;HAnimSite name='l_medial_malleolus_pt'/&gt; ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1101,0.0656,-0.0736,0.089,0.0716,-0.0881})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_talocrural'/&gt; to &lt;HAnimSite name='l_sphyrion_pt'/&gt; ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1101,0.0656,-0.0736,0.089,0.0575,-0.0943})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_talocrural'/&gt; to &lt;HAnimSite name='l_calcaneous_post_pt'/&gt; ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1101,0.0656,-0.0736,0.0974,0.0259,-0.1171})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addChild(new HAnimSite("hanim_l_lateral_malleolus_pt").setName("l_lateral_malleolus_pt").setTranslation(0.1308,0.0597,-0.1032)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite l_lateral_malleolus_pt"))
                    .addChild(new Shape().setUSE("HAnimSiteShape")))
                  .addChild(new HAnimSite("hanim_l_medial_malleolus_pt").setName("l_medial_malleolus_pt").setTranslation(0.089,0.0716,-0.0881)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite l_medial_malleolus_pt"))
                    .addChild(new Shape().setUSE("HAnimSiteShape")))
                  .addChild(new HAnimSite("hanim_l_sphyrion_pt").setName("l_sphyrion_pt").setTranslation(0.089,0.0575,-0.0943)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite l_sphyrion_pt"))
                    .addChild(new Shape().setUSE("HAnimSiteShape")))
                  .addChild(new HAnimSite("hanim_l_calcaneus_posterior_pt").setName("l_calcaneus_posterior_pt").setTranslation(0.0974,0.0259,-0.1171)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite l_calcaneous_post_pt"))
                    .addChild(new Shape().setUSE("HAnimSiteShape"))))
                .addChild(new HAnimJoint("hanim_l_tarsometatarsal_2").setName("l_tarsometatarsal_2").setCenter(0.1086,0.0001,-0.0368).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                  .addChild(new HAnimSegment("hanim_l_metatarsal_2").setName("l_metatarsal_2")
                    .addComments(" Visualization sphere for &lt;HAnimJoint name='l_tarsometatarsal_2'/&gt; is placed within &lt;HAnimSegment name='l_metatarsal_2'/&gt; ")
                    .addChild(new TouchSensor().setDescription("HAnimJoint l_tarsometatarsal_2, HAnimSegment l_metatarsal_2"))
                    .addChild(new Transform().setTranslation(0.1086,0.0001,-0.0368)
                      .addChild(new Shape().setUSE("HAnimJointShape")))
                    .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_tarsometatarsal_2'/&gt; to child &lt;HAnimJoint name='l_metatarsophalangeal_2'/&gt; ")
                    .addChild(new Shape()
                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1086,0.0001,-0.0368,0.1086,0.0001,0.0368})))
                        .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                  .addChild(new HAnimJoint("hanim_l_metatarsophalangeal_2").setName("l_metatarsophalangeal_2").setCenter(0.1086,0.0001,0.0368).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                    .addChild(new HAnimSegment("hanim_l_tarsal_proximal_phalanx_2").setName("l_tarsal_proximal_phalanx_2")
                      .addComments(" Visualization sphere for &lt;HAnimJoint name='l_metatarsophalangeal_2'/&gt; is placed within &lt;HAnimSegment name='l_tarsal_proximal_phalanx_2'/&gt; ")
                      .addChild(new TouchSensor().setDescription("HAnimJoint l_metatarsophalangeal_2, HAnimSegment l_tarsal_proximal_phalanx_2"))
                      .addChild(new Transform().setTranslation(0.1086,0.0001,0.0368)
                        .addChild(new Shape().setUSE("HAnimJointShape")))
                      .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_metatarsophalangeal_2'/&gt; to child &lt;HAnimJoint name='l_tarsal_distal_interphalangeal_2'/&gt; ")
                      .addChild(new Shape()
                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1086,0.0001,0.0368,0.1086,0.0,0.0762})))
                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                      .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_metatarsophalangeal_2'/&gt; to &lt;HAnimSite name='l_metatarsal_pha1_pt'/&gt; ")
                      .addChild(new Shape()
                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1086,0.0001,0.0368,0.0816,0.0232,0.0106})))
                          .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                      .addChild(new HAnimSite("hanim_l_metatarsal_phalanx_1_pt").setName("l_metatarsal_phalanx_1_pt").setTranslation(0.0816,0.0232,0.0106)
                        .addComments(" HAnimSite visualization shape ")
                        .addChild(new TouchSensor().setDescription("HAnimSite l_metatarsal_pha1_pt"))
                        .addChild(new Shape().setUSE("HAnimSiteShape"))))
                    .addChild(new HAnimJoint("hanim_l_tarsal_distal_interphalangeal_2").setName("l_tarsal_distal_interphalangeal_2").setCenter(0.1086,0.0,0.0762).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                      .addChild(new HAnimSegment("hanim_l_tarsal_distal_phalanx_2").setName("l_tarsal_distal_phalanx_2")
                        .addComments(" Visualization sphere for &lt;HAnimJoint name='l_tarsal_distal_interphalangeal_2'/&gt; is placed within &lt;HAnimSegment name='l_tarsal_distal_phalanx_2'/&gt; ")
                        .addChild(new TouchSensor().setDescription("HAnimJoint l_tarsal_distal_interphalangeal_2, HAnimSegment l_tarsal_distal_phalanx_2"))
                        .addChild(new Transform().setTranslation(0.1086,0.0,0.0762)
                          .addChild(new Shape().setUSE("HAnimJointShape")))
                        .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_tarsal_distal_interphalangeal_2'/&gt; to &lt;HAnimSite name='l_forefoot_tip'/&gt; ")
                        .addChild(new Shape()
                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1086,0.0,0.0762,0.1354,0.0016,0.1476})))
                            .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                        .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_tarsal_distal_interphalangeal_2'/&gt; to &lt;HAnimSite name='l_metatarsal_pha5_pt'/&gt; ")
                        .addChild(new Shape()
                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1086,0.0,0.0762,0.1825,0.007,0.0928})))
                            .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                        .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_tarsal_distal_interphalangeal_2'/&gt; to &lt;HAnimSite name='l_digit2_pt'/&gt; ")
                        .addChild(new Shape()
                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1086,0.0,0.0762,0.1195,0.0079,0.1433})))
                            .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                        .addChild(new HAnimSite("hanim_l_forefoot_tip_pt").setName("l_forefoot_tip_pt").setTranslation(0.1354,0.0016,0.1476)
                          .addComments(" HAnimSite visualization shape ")
                          .addChild(new TouchSensor().setDescription("HAnimSite l_forefoot_tip"))
                          .addChild(new Shape().setUSE("HAnimSiteShape")))
                        .addChild(new HAnimSite("hanim_l_metatarsal_phalanx_5_pt").setName("l_metatarsal_phalanx_5_pt").setTranslation(0.1825,0.007,0.0928)
                          .addComments(" HAnimSite visualization shape ")
                          .addChild(new TouchSensor().setDescription("HAnimSite l_metatarsal_pha5_pt"))
                          .addChild(new Shape().setUSE("HAnimSiteShape")))
                        .addChild(new HAnimSite("hanim_l_tarsal_distal_phalanx_2_pt").setName("l_tarsal_distal_phalanx_2_pt").setTranslation(0.1195,0.0079,0.1433)
                          .addComments(" HAnimSite visualization shape ")
                          .addChild(new TouchSensor().setDescription("HAnimSite l_digit2_pt"))
                          .addChild(new Shape().setUSE("HAnimSiteShape"))))))))))
          .addChild(new HAnimJoint("hanim_r_hip").setName("r_hip").setCenter(-0.0961,0.9124,-0.0001).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
            .addChild(new HAnimSegment("hanim_r_thigh").setName("r_thigh")
              .addComments(" Visualization sphere for &lt;HAnimJoint name='r_hip'/&gt; is placed within &lt;HAnimSegment name='r_thigh'/&gt; ")
              .addChild(new TouchSensor().setDescription("HAnimJoint r_hip, HAnimSegment r_thigh"))
              .addChild(new Transform().setTranslation(-0.0961,0.9124,-0.0001)
                .addChild(new Shape().setUSE("HAnimJointShape")))
              .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_hip'/&gt; to child &lt;HAnimJoint name='r_knee'/&gt; ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0961,0.9124,-0.0001,-0.104,0.4867,0.0308})))
                  .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_hip'/&gt; to &lt;HAnimSite name='r_knee_crease_pt'/&gt; ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0961,0.9124,-0.0001,-0.0825,0.4932,-0.0326})))
                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_hip'/&gt; to &lt;HAnimSite name='r_femoral_lateral_epicn_pt'/&gt; ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0961,0.9124,-0.0001,-0.1421,0.4992,0.031})))
                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_hip'/&gt; to &lt;HAnimSite name='r_femoral_medial_epicn_pt'/&gt; ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0961,0.9124,-0.0001,-0.0221,0.5014,0.0289})))
                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
              .addChild(new HAnimSite("hanim_r_knee_crease_pt").setName("r_knee_crease_pt").setTranslation(-0.0825,0.4932,-0.0326)
                .addComments(" HAnimSite visualization shape ")
                .addChild(new TouchSensor().setDescription("HAnimSite r_knee_crease_pt"))
                .addChild(new Shape().setUSE("HAnimSiteShape")))
              .addChild(new HAnimSite("hanim_r_femoral_lateral_epicondyle_pt").setName("r_femoral_lateral_epicondyle_pt").setTranslation(-0.1421,0.4992,0.031)
                .addComments(" HAnimSite visualization shape ")
                .addChild(new TouchSensor().setDescription("HAnimSite r_femoral_lateral_epicn_pt"))
                .addChild(new Shape().setUSE("HAnimSiteShape")))
              .addChild(new HAnimSite("hanim_r_femoral_medial_epicondyle_pt").setName("r_femoral_medial_epicondyle_pt").setTranslation(-0.0221,0.5014,0.0289)
                .addComments(" HAnimSite visualization shape ")
                .addChild(new TouchSensor().setDescription("HAnimSite r_femoral_medial_epicn_pt"))
                .addChild(new Shape().setUSE("HAnimSiteShape"))))
            .addChild(new HAnimJoint("hanim_r_knee").setName("r_knee").setCenter(-0.104,0.4867,0.0308).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
              .addChild(new HAnimSegment("hanim_r_calf").setName("r_calf")
                .addComments(" Visualization sphere for &lt;HAnimJoint name='r_knee'/&gt; is placed within &lt;HAnimSegment name='r_calf'/&gt; ")
                .addChild(new TouchSensor().setDescription("HAnimJoint r_knee, HAnimSegment r_calf"))
                .addChild(new Transform().setTranslation(-0.104,0.4867,0.0308)
                  .addChild(new Shape().setUSE("HAnimJointShape")))
                .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_knee'/&gt; to child &lt;HAnimJoint name='r_talocrural'/&gt; ")
                .addChild(new Shape()
                  .setGeometry(new LineSet().setVertexCount(new int[] {2})
                    .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.104,0.4867,0.0308,-0.1101,0.0656,-0.0736})))
                    .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
              .addChild(new HAnimJoint("hanim_r_talocrural").setName("r_talocrural").setCenter(-0.1101,0.0656,-0.0736).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                .addChild(new HAnimSegment("hanim_r_talus").setName("r_talus")
                  .addComments(" Visualization sphere for &lt;HAnimJoint name='r_talocrural'/&gt; is placed within &lt;HAnimSegment name='r_talus'/&gt; ")
                  .addChild(new TouchSensor().setDescription("HAnimJoint r_talocrural, HAnimSegment r_talus"))
                  .addChild(new Transform().setTranslation(-0.1101,0.0656,-0.0736)
                    .addChild(new Shape().setUSE("HAnimJointShape")))
                  .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_talocrural'/&gt; to child &lt;HAnimJoint name='r_tarsometatarsal_2'/&gt; ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1101,0.0656,-0.0736,-0.1086,0.0001,-0.0368})))
                      .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_talocrural'/&gt; to &lt;HAnimSite name='r_lateral_malleolus_pt'/&gt; ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1101,0.0656,-0.0736,-0.1006,0.0658,-0.1075})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_talocrural'/&gt; to &lt;HAnimSite name='r_medial_malleolus_pt'/&gt; ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1101,0.0656,-0.0736,-0.0591,0.076,-0.0928})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_talocrural'/&gt; to &lt;HAnimSite name='r_sphyrion_pt'/&gt; ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1101,0.0656,-0.0736,-0.0603,0.061,-0.1002})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_talocrural'/&gt; to &lt;HAnimSite name='r_calcaneous_post_pt'/&gt; ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1101,0.0656,-0.0736,-0.0692,0.0297,-0.1221})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addChild(new HAnimSite("hanim_r_lateral_malleolus_pt").setName("r_lateral_malleolus_pt").setTranslation(-0.1006,0.0658,-0.1075)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite r_lateral_malleolus_pt"))
                    .addChild(new Shape().setUSE("HAnimSiteShape")))
                  .addChild(new HAnimSite("hanim_r_medial_malleolus_pt").setName("r_medial_malleolus_pt").setTranslation(-0.0591,0.076,-0.0928)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite r_medial_malleolus_pt"))
                    .addChild(new Shape().setUSE("HAnimSiteShape")))
                  .addChild(new HAnimSite("hanim_r_sphyrion_pt").setName("r_sphyrion_pt").setTranslation(-0.0603,0.061,-0.1002)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite r_sphyrion_pt"))
                    .addChild(new Shape().setUSE("HAnimSiteShape")))
                  .addChild(new HAnimSite("hanim_r_calcaneus_posterior_pt").setName("r_calcaneus_posterior_pt").setTranslation(-0.0692,0.0297,-0.1221)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite r_calcaneous_post_pt"))
                    .addChild(new Shape().setUSE("HAnimSiteShape"))))
                .addChild(new HAnimJoint("hanim_r_tarsometatarsal_2").setName("r_tarsometatarsal_2").setCenter(-0.1086,0.0001,-0.0368).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                  .addChild(new HAnimSegment("hanim_r_metatarsal_2").setName("r_metatarsal_2")
                    .addComments(" Visualization sphere for &lt;HAnimJoint name='r_tarsometatarsal_2'/&gt; is placed within &lt;HAnimSegment name='r_metatarsal_2'/&gt; ")
                    .addChild(new TouchSensor().setDescription("HAnimJoint r_tarsometatarsal_2, HAnimSegment r_metatarsal_2"))
                    .addChild(new Transform().setTranslation(-0.1086,0.0001,-0.0368)
                      .addChild(new Shape().setUSE("HAnimJointShape")))
                    .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_tarsometatarsal_2'/&gt; to child &lt;HAnimJoint name='r_metatarsophalangeal_2'/&gt; ")
                    .addChild(new Shape()
                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1086,0.0001,-0.0368,-0.1086,0.0001,0.0368})))
                        .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                  .addChild(new HAnimJoint("hanim_r_metatarsophalangeal_2").setName("r_metatarsophalangeal_2").setCenter(-0.1086,0.0001,0.0368).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                    .addChild(new HAnimSegment("hanim_r_tarsal_proximal_phalanx_2").setName("r_tarsal_proximal_phalanx_2")
                      .addComments(" Visualization sphere for &lt;HAnimJoint name='r_metatarsophalangeal_2'/&gt; is placed within &lt;HAnimSegment name='r_tarsal_proximal_phalanx_2'/&gt; ")
                      .addChild(new TouchSensor().setDescription("HAnimJoint r_metatarsophalangeal_2, HAnimSegment r_tarsal_proximal_phalanx_2"))
                      .addChild(new Transform().setTranslation(-0.1086,0.0001,0.0368)
                        .addChild(new Shape().setUSE("HAnimJointShape")))
                      .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_metatarsophalangeal_2'/&gt; to child &lt;HAnimJoint name='r_tarsal_distal_interphalangeal_2'/&gt; ")
                      .addChild(new Shape()
                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1086,0.0001,0.0368,-0.1086,0.0,0.0762})))
                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                      .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_metatarsophalangeal_2'/&gt; to &lt;HAnimSite name='r_metatarsal_pha1_pt'/&gt; ")
                      .addChild(new Shape()
                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1086,0.0001,0.0368,-0.0521,0.026,0.0127})))
                          .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                      .addChild(new HAnimSite("hanim_r_metatarsal_phalanx_1_pt").setName("r_metatarsal_phalanx_1_pt").setTranslation(-0.0521,0.026,0.0127)
                        .addComments(" HAnimSite visualization shape ")
                        .addChild(new TouchSensor().setDescription("HAnimSite r_metatarsal_pha1_pt"))
                        .addChild(new Shape().setUSE("HAnimSiteShape"))))
                    .addChild(new HAnimJoint("hanim_r_tarsal_distal_interphalangeal_2").setName("r_tarsal_distal_interphalangeal_2").setCenter(-0.1086,0.0,0.0762).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                      .addChild(new HAnimSegment("hanim_r_tarsal_distal_phalanx_2").setName("r_tarsal_distal_phalanx_2")
                        .addComments(" Visualization sphere for &lt;HAnimJoint name='r_tarsal_distal_interphalangeal_2'/&gt; is placed within &lt;HAnimSegment name='r_tarsal_distal_phalanx_2'/&gt; ")
                        .addChild(new TouchSensor().setDescription("HAnimJoint r_tarsal_distal_interphalangeal_2, HAnimSegment r_tarsal_distal_phalanx_2"))
                        .addChild(new Transform().setTranslation(-0.1086,0.0,0.0762)
                          .addChild(new Shape().setUSE("HAnimJointShape")))
                        .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_tarsal_distal_interphalangeal_2'/&gt; to &lt;HAnimSite name='r_forefoot_tip'/&gt; ")
                        .addChild(new Shape()
                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1086,0.0,0.0762,-0.1043,0.0227,0.145})))
                            .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                        .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_tarsal_distal_interphalangeal_2'/&gt; to &lt;HAnimSite name='r_metatarsal_pha5_pt'/&gt; ")
                        .addChild(new Shape()
                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1086,0.0,0.0762,-0.1523,0.0166,0.0895})))
                            .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                        .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_tarsal_distal_interphalangeal_2'/&gt; to &lt;HAnimSite name='r_digit2_pt'/&gt; ")
                        .addChild(new Shape()
                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1086,0.0,0.0762,-0.0883,0.0134,0.1383})))
                            .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                        .addChild(new HAnimSite("hanim_r_forefoot_tip_pt").setName("r_forefoot_tip_pt").setTranslation(-0.1043,0.0227,0.145)
                          .addComments(" HAnimSite visualization shape ")
                          .addChild(new TouchSensor().setDescription("HAnimSite r_forefoot_tip"))
                          .addChild(new Shape().setUSE("HAnimSiteShape")))
                        .addChild(new HAnimSite("hanim_r_metatarsal_phalanx_5_pt").setName("r_metatarsal_phalanx_5_pt").setTranslation(-0.1523,0.0166,0.0895)
                          .addComments(" HAnimSite visualization shape ")
                          .addChild(new TouchSensor().setDescription("HAnimSite r_metatarsal_pha5_pt"))
                          .addChild(new Shape().setUSE("HAnimSiteShape")))
                        .addChild(new HAnimSite("hanim_r_tarsal_distal_phalanx_2_pt").setName("r_tarsal_distal_phalanx_2_pt").setTranslation(-0.0883,0.0134,0.1383)
                          .addComments(" HAnimSite visualization shape ")
                          .addChild(new TouchSensor().setDescription("HAnimSite r_digit2_pt"))
                          .addChild(new Shape().setUSE("HAnimSiteShape")))))))))))
        .addChild(new HAnimJoint("hanim_vl5").setName("vl5").setCenter(0.0028,1.0568,-0.0776).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
          .addChild(new HAnimSegment("hanim_l5").setName("l5")
            .addComments(" Visualization sphere for &lt;HAnimJoint name='vl5'/&gt; is placed within &lt;HAnimSegment name='l5'/&gt; ")
            .addChild(new TouchSensor().setDescription("HAnimJoint vl5, HAnimSegment l5"))
            .addChild(new Transform().setTranslation(0.0028,1.0568,-0.0776)
              .addChild(new Shape().setUSE("HAnimJointShape")))
            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vl5'/&gt; to child &lt;HAnimJoint name='vl4'/&gt; ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0028,1.0568,-0.0776,0.0035,1.0925,-0.0787})))
                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='vl5'/&gt; to &lt;HAnimSite name='waist_preferred_post_pt'/&gt; ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0028,1.0568,-0.0776,0.0,1.0915,-0.1091})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='vl5'/&gt; to &lt;HAnimSite name='navel_pt'/&gt; ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0028,1.0568,-0.0776,0.0069,1.0966,0.1017})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addChild(new HAnimSite("hanim_waist_preferred_posterior_pt").setName("waist_preferred_posterior_pt").setTranslation(0.0,1.0915,-0.1091)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite waist_preferred_post_pt"))
              .addChild(new Shape().setUSE("HAnimSiteShape")))
            .addChild(new HAnimSite("hanim_navel_pt").setName("navel_pt").setTranslation(0.0069,1.0966,0.1017)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite navel_pt"))
              .addChild(new Shape().setUSE("HAnimSiteShape"))))
          .addChild(new HAnimJoint("hanim_vl4").setName("vl4").setCenter(0.0035,1.0925,-0.0787).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
            .addChild(new HAnimSegment("hanim_l4").setName("l4")
              .addComments(" Visualization sphere for &lt;HAnimJoint name='vl4'/&gt; is placed within &lt;HAnimSegment name='l4'/&gt; ")
              .addChild(new TouchSensor().setDescription("HAnimJoint vl4, HAnimSegment l4"))
              .addChild(new Transform().setTranslation(0.0035,1.0925,-0.0787)
                .addChild(new Shape().setUSE("HAnimJointShape")))
              .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vl4'/&gt; to child &lt;HAnimJoint name='vl3'/&gt; ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0035,1.0925,-0.0787,0.0041,1.1276,-0.0796})))
                  .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
            .addChild(new HAnimJoint("hanim_vl3").setName("vl3").setCenter(0.0041,1.1276,-0.0796).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
              .addChild(new HAnimSegment("hanim_l3").setName("l3")
                .addComments(" Visualization sphere for &lt;HAnimJoint name='vl3'/&gt; is placed within &lt;HAnimSegment name='l3'/&gt; ")
                .addChild(new TouchSensor().setDescription("HAnimJoint vl3, HAnimSegment l3"))
                .addChild(new Transform().setTranslation(0.0041,1.1276,-0.0796)
                  .addChild(new Shape().setUSE("HAnimJointShape")))
                .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vl3'/&gt; to child &lt;HAnimJoint name='vl2'/&gt; ")
                .addChild(new Shape()
                  .setGeometry(new LineSet().setVertexCount(new int[] {2})
                    .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0041,1.1276,-0.0796,0.0045,1.1546,-0.08})))
                    .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
              .addChild(new HAnimJoint("hanim_vl2").setName("vl2").setCenter(0.0045,1.1546,-0.08).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                .addChild(new HAnimSegment("hanim_l2").setName("l2")
                  .addComments(" Visualization sphere for &lt;HAnimJoint name='vl2'/&gt; is placed within &lt;HAnimSegment name='l2'/&gt; ")
                  .addChild(new TouchSensor().setDescription("HAnimJoint vl2, HAnimSegment l2"))
                  .addChild(new Transform().setTranslation(0.0045,1.1546,-0.08)
                    .addChild(new Shape().setUSE("HAnimJointShape")))
                  .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vl2'/&gt; to child &lt;HAnimJoint name='vl1'/&gt; ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0045,1.1546,-0.08,0.0048,1.1912,-0.0805})))
                      .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='vl2'/&gt; to &lt;HAnimSite name='r_rib10_pt'/&gt; ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0045,1.1546,-0.08,-0.0711,1.1941,0.1016})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='vl2'/&gt; to &lt;HAnimSite name='l_rib10_pt'/&gt; ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0045,1.1546,-0.08,0.0871,1.1925,0.0992})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='vl2'/&gt; to &lt;HAnimSite name='rib10_midspine_pt'/&gt; ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0045,1.1546,-0.08,0.0049,1.1908,-0.1113})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addChild(new HAnimSite("hanim_r_rib10_pt").setName("r_rib10_pt").setTranslation(-0.0711,1.1941,0.1016)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite r_rib10_pt"))
                    .addChild(new Shape().setUSE("HAnimSiteShape")))
                  .addChild(new HAnimSite("hanim_l_rib10_pt").setName("l_rib10_pt").setTranslation(0.0871,1.1925,0.0992)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite l_rib10_pt"))
                    .addChild(new Shape().setUSE("HAnimSiteShape")))
                  .addChild(new HAnimSite("hanim_rib10_midspine_pt").setName("rib10_midspine_pt").setTranslation(0.0049,1.1908,-0.1113)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite rib10_midspine_pt"))
                    .addChild(new Shape().setUSE("HAnimSiteShape"))))
                .addChild(new HAnimJoint("hanim_vl1").setName("vl1").setCenter(0.0048,1.1912,-0.0805).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                  .addChild(new HAnimSegment("hanim_l1").setName("l1")
                    .addComments(" Visualization sphere for &lt;HAnimJoint name='vl1'/&gt; is placed within &lt;HAnimSegment name='l1'/&gt; ")
                    .addChild(new TouchSensor().setDescription("HAnimJoint vl1, HAnimSegment l1"))
                    .addChild(new Transform().setTranslation(0.0048,1.1912,-0.0805)
                      .addChild(new Shape().setUSE("HAnimJointShape")))
                    .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vl1'/&gt; to child &lt;HAnimJoint name='vt12'/&gt; ")
                    .addChild(new Shape()
                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0048,1.1912,-0.0805,0.0051,1.2278,-0.0808})))
                        .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                  .addChild(new HAnimJoint("hanim_vt12").setName("vt12").setCenter(0.0051,1.2278,-0.0808).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                    .addChild(new HAnimSegment("hanim_t12").setName("t12")
                      .addComments(" Visualization sphere for &lt;HAnimJoint name='vt12'/&gt; is placed within &lt;HAnimSegment name='t12'/&gt; ")
                      .addChild(new TouchSensor().setDescription("HAnimJoint vt12, HAnimSegment t12"))
                      .addChild(new Transform().setTranslation(0.0051,1.2278,-0.0808)
                        .addChild(new Shape().setUSE("HAnimJointShape")))
                      .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vt12'/&gt; to child &lt;HAnimJoint name='vt11'/&gt; ")
                      .addChild(new Shape()
                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0051,1.2278,-0.0808,0.0053,1.2679,-0.081})))
                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                    .addChild(new HAnimJoint("hanim_vt11").setName("vt11").setCenter(0.0053,1.2679,-0.081).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                      .addChild(new HAnimSegment("hanim_t11").setName("t11")
                        .addComments(" Visualization sphere for &lt;HAnimJoint name='vt11'/&gt; is placed within &lt;HAnimSegment name='t11'/&gt; ")
                        .addChild(new TouchSensor().setDescription("HAnimJoint vt11, HAnimSegment t11"))
                        .addChild(new Transform().setTranslation(0.0053,1.2679,-0.081)
                          .addChild(new Shape().setUSE("HAnimJointShape")))
                        .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vt11'/&gt; to child &lt;HAnimJoint name='vt10'/&gt; ")
                        .addChild(new Shape()
                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0053,1.2679,-0.081,0.0056,1.2848,-0.0822})))
                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                      .addChild(new HAnimJoint("hanim_vt10").setName("vt10").setCenter(0.0056,1.2848,-0.0822).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                        .addChild(new HAnimSegment("hanim_t10").setName("t10")
                          .addComments(" Visualization sphere for &lt;HAnimJoint name='vt10'/&gt; is placed within &lt;HAnimSegment name='t10'/&gt; ")
                          .addChild(new TouchSensor().setDescription("HAnimJoint vt10, HAnimSegment t10"))
                          .addChild(new Transform().setTranslation(0.0056,1.2848,-0.0822)
                            .addChild(new Shape().setUSE("HAnimJointShape")))
                          .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vt10'/&gt; to child &lt;HAnimJoint name='vt9'/&gt; ")
                          .addChild(new Shape()
                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0056,1.2848,-0.0822,0.0057,1.3126,-0.0838})))
                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                          .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='vt10'/&gt; to &lt;HAnimSite name='substernale_pt'/&gt; ")
                          .addChild(new Shape()
                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0056,1.2848,-0.0822,0.0085,1.2995,0.1147})))
                              .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                          .addChild(new HAnimSite("hanim_substernale_pt").setName("substernale_pt").setTranslation(0.0085,1.2995,0.1147)
                            .addComments(" HAnimSite visualization shape ")
                            .addChild(new TouchSensor().setDescription("HAnimSite substernale_pt"))
                            .addChild(new Shape().setUSE("HAnimSiteShape"))))
                        .addChild(new HAnimJoint("hanim_vt9").setName("vt9").setCenter(0.0057,1.3126,-0.0838).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                          .addChild(new HAnimSegment("hanim_t9").setName("t9")
                            .addComments(" Visualization sphere for &lt;HAnimJoint name='vt9'/&gt; is placed within &lt;HAnimSegment name='t9'/&gt; ")
                            .addChild(new TouchSensor().setDescription("HAnimJoint vt9, HAnimSegment t9"))
                            .addChild(new Transform().setTranslation(0.0057,1.3126,-0.0838)
                              .addChild(new Shape().setUSE("HAnimJointShape")))
                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vt9'/&gt; to child &lt;HAnimJoint name='vt8'/&gt; ")
                            .addChild(new Shape()
                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0057,1.3126,-0.0838,0.0057,1.3382,-0.0845})))
                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='vt9'/&gt; to &lt;HAnimSite name='r_thelion_pt'/&gt; ")
                            .addChild(new Shape()
                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0057,1.3126,-0.0838,-0.0736,1.3385,0.1217})))
                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='vt9'/&gt; to &lt;HAnimSite name='l_thelion_pt'/&gt; ")
                            .addChild(new Shape()
                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0057,1.3126,-0.0838,0.0918,1.3382,0.1192})))
                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                            .addChild(new HAnimSite("hanim_r_thelion_pt").setName("r_thelion_pt").setTranslation(-0.0736,1.3385,0.1217)
                              .addComments(" HAnimSite visualization shape ")
                              .addChild(new TouchSensor().setDescription("HAnimSite r_thelion_pt"))
                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                            .addChild(new HAnimSite("hanim_l_thelion_pt").setName("l_thelion_pt").setTranslation(0.0918,1.3382,0.1192)
                              .addComments(" HAnimSite visualization shape ")
                              .addChild(new TouchSensor().setDescription("HAnimSite l_thelion_pt"))
                              .addChild(new Shape().setUSE("HAnimSiteShape"))))
                          .addChild(new HAnimJoint("hanim_vt8").setName("vt8").setCenter(0.0057,1.3382,-0.0845).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                            .addChild(new HAnimSegment("hanim_t8").setName("t8")
                              .addComments(" Visualization sphere for &lt;HAnimJoint name='vt8'/&gt; is placed within &lt;HAnimSegment name='t8'/&gt; ")
                              .addChild(new TouchSensor().setDescription("HAnimJoint vt8, HAnimSegment t8"))
                              .addChild(new Transform().setTranslation(0.0057,1.3382,-0.0845)
                                .addChild(new Shape().setUSE("HAnimJointShape")))
                              .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vt8'/&gt; to child &lt;HAnimJoint name='vt7'/&gt; ")
                              .addChild(new Shape()
                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0057,1.3382,-0.0845,0.0058,1.3625,-0.0833})))
                                  .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                            .addChild(new HAnimJoint("hanim_vt7").setName("vt7").setCenter(0.0058,1.3625,-0.0833).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                              .addChild(new HAnimSegment("hanim_t7").setName("t7")
                                .addComments(" Visualization sphere for &lt;HAnimJoint name='vt7'/&gt; is placed within &lt;HAnimSegment name='t7'/&gt; ")
                                .addChild(new TouchSensor().setDescription("HAnimJoint vt7, HAnimSegment t7"))
                                .addChild(new Transform().setTranslation(0.0058,1.3625,-0.0833)
                                  .addChild(new Shape().setUSE("HAnimJointShape")))
                                .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vt7'/&gt; to child &lt;HAnimJoint name='vt6'/&gt; ")
                                .addChild(new Shape()
                                  .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                    .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0058,1.3625,-0.0833,0.0059,1.3866,-0.08})))
                                    .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                              .addChild(new HAnimJoint("hanim_vt6").setName("vt6").setCenter(0.0059,1.3866,-0.08).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                .addChild(new HAnimSegment("hanim_t6").setName("t6")
                                  .addComments(" Visualization sphere for &lt;HAnimJoint name='vt6'/&gt; is placed within &lt;HAnimSegment name='t6'/&gt; ")
                                  .addChild(new TouchSensor().setDescription("HAnimJoint vt6, HAnimSegment t6"))
                                  .addChild(new Transform().setTranslation(0.0059,1.3866,-0.08)
                                    .addChild(new Shape().setUSE("HAnimJointShape")))
                                  .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vt6'/&gt; to child &lt;HAnimJoint name='vt5'/&gt; ")
                                  .addChild(new Shape()
                                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0059,1.3866,-0.08,0.006,1.4102,-0.0745})))
                                      .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                .addChild(new HAnimJoint("hanim_vt5").setName("vt5").setCenter(0.006,1.4102,-0.0745).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                  .addChild(new HAnimSegment("hanim_t5").setName("t5")
                                    .addComments(" Visualization sphere for &lt;HAnimJoint name='vt5'/&gt; is placed within &lt;HAnimSegment name='t5'/&gt; ")
                                    .addChild(new TouchSensor().setDescription("HAnimJoint vt5, HAnimSegment t5"))
                                    .addChild(new Transform().setTranslation(0.006,1.4102,-0.0745)
                                      .addChild(new Shape().setUSE("HAnimJointShape")))
                                    .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vt5'/&gt; to child &lt;HAnimJoint name='vt4'/&gt; ")
                                    .addChild(new Shape()
                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.006,1.4102,-0.0745,0.0061,1.432,-0.0675})))
                                        .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                  .addChild(new HAnimJoint("hanim_vt4").setName("vt4").setCenter(0.0061,1.432,-0.0675).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                    .addChild(new HAnimSegment("hanim_t4").setName("t4")
                                      .addComments(" Visualization sphere for &lt;HAnimJoint name='vt4'/&gt; is placed within &lt;HAnimSegment name='t4'/&gt; ")
                                      .addChild(new TouchSensor().setDescription("HAnimJoint vt4, HAnimSegment t4"))
                                      .addChild(new Transform().setTranslation(0.0061,1.432,-0.0675)
                                        .addChild(new Shape().setUSE("HAnimJointShape")))
                                      .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vt4'/&gt; to child &lt;HAnimJoint name='vt3'/&gt; ")
                                      .addChild(new Shape()
                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0061,1.432,-0.0675,0.0062,1.4583,-0.057})))
                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                    .addChild(new HAnimJoint("hanim_vt3").setName("vt3").setCenter(0.0062,1.4583,-0.057).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                      .addChild(new HAnimSegment("hanim_t3").setName("t3")
                                        .addComments(" Visualization sphere for &lt;HAnimJoint name='vt3'/&gt; is placed within &lt;HAnimSegment name='t3'/&gt; ")
                                        .addChild(new TouchSensor().setDescription("HAnimJoint vt3, HAnimSegment t3"))
                                        .addChild(new Transform().setTranslation(0.0062,1.4583,-0.057)
                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                        .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vt3'/&gt; to child &lt;HAnimJoint name='vt2'/&gt; ")
                                        .addChild(new Shape()
                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0062,1.4583,-0.057,0.0063,1.4761,-0.0484})))
                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                      .addChild(new HAnimJoint("hanim_vt2").setName("vt2").setCenter(0.0063,1.4761,-0.0484).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                        .addChild(new HAnimSegment("hanim_t2").setName("t2")
                                          .addComments(" Visualization sphere for &lt;HAnimJoint name='vt2'/&gt; is placed within &lt;HAnimSegment name='t2'/&gt; ")
                                          .addChild(new TouchSensor().setDescription("HAnimJoint vt2, HAnimSegment t2"))
                                          .addChild(new Transform().setTranslation(0.0063,1.4761,-0.0484)
                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                          .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vt2'/&gt; to child &lt;HAnimJoint name='vt1'/&gt; ")
                                          .addChild(new Shape()
                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0063,1.4761,-0.0484,0.0065,1.4951,-0.0387})))
                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                        .addChild(new HAnimJoint("hanim_vt1").setName("vt1").setCenter(0.0065,1.4951,-0.0387).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                          .addChild(new HAnimSegment("hanim_t1").setName("t1")
                                            .addComments(" Visualization sphere for &lt;HAnimJoint name='vt1'/&gt; is placed within &lt;HAnimSegment name='t1'/&gt; ")
                                            .addChild(new TouchSensor().setDescription("HAnimJoint vt1, HAnimSegment t1"))
                                            .addChild(new Transform().setTranslation(0.0065,1.4951,-0.0387)
                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vt1'/&gt; to child &lt;HAnimJoint name='vc7'/&gt; ")
                                            .addChild(new Shape()
                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0065,1.4951,-0.0387,0.0066,1.5132,-0.0301})))
                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vt1'/&gt; to child &lt;HAnimJoint name='l_sternoclavicular'/&gt; ")
                                            .addChild(new Shape()
                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0065,1.4951,-0.0387,0.082,1.4488,-0.0353})))
                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vt1'/&gt; to child &lt;HAnimJoint name='r_sternoclavicular'/&gt; ")
                                            .addChild(new Shape()
                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0065,1.4951,-0.0387,-0.082,1.4488,-0.0353})))
                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='vt1'/&gt; to &lt;HAnimSite name='suprasternale_pt'/&gt; ")
                                            .addChild(new Shape()
                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0065,1.4951,-0.0387,0.0084,1.4714,0.0551})))
                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='vt1'/&gt; to &lt;HAnimSite name='cervicale_pt'/&gt; ")
                                            .addChild(new Shape()
                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0065,1.4951,-0.0387,0.0064,1.52,-0.0815})))
                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                            .addChild(new HAnimSite("hanim_suprasternale_pt").setName("suprasternale_pt").setTranslation(0.0084,1.4714,0.0551)
                                              .addComments(" HAnimSite visualization shape ")
                                              .addChild(new TouchSensor().setDescription("HAnimSite suprasternale_pt"))
                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                            .addChild(new HAnimSite("hanim_cervicale_pt").setName("cervicale_pt").setTranslation(0.0064,1.52,-0.0815)
                                              .addComments(" HAnimSite visualization shape ")
                                              .addChild(new TouchSensor().setDescription("HAnimSite cervicale_pt"))
                                              .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                          .addChild(new HAnimJoint("hanim_vc7").setName("vc7").setCenter(0.0066,1.5132,-0.0301).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                            .addChild(new HAnimSegment("hanim_c7").setName("c7")
                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='vc7'/&gt; is placed within &lt;HAnimSegment name='c7'/&gt; ")
                                              .addChild(new TouchSensor().setDescription("HAnimJoint vc7, HAnimSegment c7"))
                                              .addChild(new Transform().setTranslation(0.0066,1.5132,-0.0301)
                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                              .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vc7'/&gt; to child &lt;HAnimJoint name='vc6'/&gt; ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.5132,-0.0301,0.0066,1.5357,-0.0143})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='vc7'/&gt; to &lt;HAnimSite name='r_neck_base_pt'/&gt; ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.5132,-0.0301,-0.0419,1.5149,-0.022})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='vc7'/&gt; to &lt;HAnimSite name='l_neck_base_pt'/&gt; ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.5132,-0.0301,0.0646,1.5141,-0.038})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addChild(new HAnimSite("hanim_r_neck_base_pt").setName("r_neck_base_pt").setTranslation(-0.0419,1.5149,-0.022)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite r_neck_base_pt"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                              .addChild(new HAnimSite("hanim_l_neck_base_pt").setName("l_neck_base_pt").setTranslation(0.0646,1.5141,-0.038)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite l_neck_base_pt"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                            .addChild(new HAnimJoint("hanim_vc6").setName("vc6").setCenter(0.0066,1.5357,-0.0143).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                              .addChild(new HAnimSegment("hanim_c6").setName("c6")
                                                .addComments(" Visualization sphere for &lt;HAnimJoint name='vc6'/&gt; is placed within &lt;HAnimSegment name='c6'/&gt; ")
                                                .addChild(new TouchSensor().setDescription("HAnimJoint vc6, HAnimSegment c6"))
                                                .addChild(new Transform().setTranslation(0.0066,1.5357,-0.0143)
                                                  .addChild(new Shape().setUSE("HAnimJointShape")))
                                                .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vc6'/&gt; to child &lt;HAnimJoint name='vc5'/&gt; ")
                                                .addChild(new Shape()
                                                  .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                    .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.5357,-0.0143,0.0066,1.552,-0.0082})))
                                                    .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                              .addChild(new HAnimJoint("hanim_vc5").setName("vc5").setCenter(0.0066,1.552,-0.0082).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                .addChild(new HAnimSegment("hanim_c5").setName("c5")
                                                  .addComments(" Visualization sphere for &lt;HAnimJoint name='vc5'/&gt; is placed within &lt;HAnimSegment name='c5'/&gt; ")
                                                  .addChild(new TouchSensor().setDescription("HAnimJoint vc5, HAnimSegment c5"))
                                                  .addChild(new Transform().setTranslation(0.0066,1.552,-0.0082)
                                                    .addChild(new Shape().setUSE("HAnimJointShape")))
                                                  .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vc5'/&gt; to child &lt;HAnimJoint name='vc4'/&gt; ")
                                                  .addChild(new Shape()
                                                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.552,-0.0082,0.0066,1.5662,-0.0084})))
                                                      .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                .addChild(new HAnimJoint("hanim_vc4").setName("vc4").setCenter(0.0066,1.5662,-0.0084).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                  .addChild(new HAnimSegment("hanim_c4").setName("c4")
                                                    .addComments(" Visualization sphere for &lt;HAnimJoint name='vc4'/&gt; is placed within &lt;HAnimSegment name='c4'/&gt; ")
                                                    .addChild(new TouchSensor().setDescription("HAnimJoint vc4, HAnimSegment c4"))
                                                    .addChild(new Transform().setTranslation(0.0066,1.5662,-0.0084)
                                                      .addChild(new Shape().setUSE("HAnimJointShape")))
                                                    .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vc4'/&gt; to child &lt;HAnimJoint name='vc3'/&gt; ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.5662,-0.0084,0.0066,1.58,-0.0103})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                  .addChild(new HAnimJoint("hanim_vc3").setName("vc3").setCenter(0.0066,1.58,-0.0103).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                    .addChild(new HAnimSegment("hanim_c3").setName("c3")
                                                      .addComments(" Visualization sphere for &lt;HAnimJoint name='vc3'/&gt; is placed within &lt;HAnimSegment name='c3'/&gt; ")
                                                      .addChild(new TouchSensor().setDescription("HAnimJoint vc3, HAnimSegment c3"))
                                                      .addChild(new Transform().setTranslation(0.0066,1.58,-0.0103)
                                                        .addChild(new Shape().setUSE("HAnimJointShape")))
                                                      .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vc3'/&gt; to child &lt;HAnimJoint name='vc2'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.58,-0.0103,0.0066,1.5928,-0.0103})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                    .addChild(new HAnimJoint("hanim_vc2").setName("vc2").setCenter(0.0066,1.5928,-0.0103).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_c2").setName("c2")
                                                        .addComments(" Visualization sphere for &lt;HAnimJoint name='vc2'/&gt; is placed within &lt;HAnimSegment name='c2'/&gt; ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint vc2, HAnimSegment c2"))
                                                        .addChild(new Transform().setTranslation(0.0066,1.5928,-0.0103)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vc2'/&gt; to child &lt;HAnimJoint name='vc1'/&gt; ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.5928,-0.0103,0.0066,1.6144,-0.0034})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_vc1").setName("vc1").setCenter(0.0066,1.6144,-0.0034).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_c1").setName("c1")
                                                          .addComments(" Visualization sphere for &lt;HAnimJoint name='vc1'/&gt; is placed within &lt;HAnimSegment name='c1'/&gt; ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint vc1, HAnimSegment c1"))
                                                          .addChild(new Transform().setTranslation(0.0066,1.6144,-0.0034)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='vc1'/&gt; to child &lt;HAnimJoint name='skullbase'/&gt; ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.6144,-0.0034,0.0044,1.6209,0.0236})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_skullbase").setName("skullbase").setCenter(0.0044,1.6209,0.0236).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_skull").setName("skull")
                                                            .addComments(" Visualization sphere for &lt;HAnimJoint name='skullbase'/&gt; is placed within &lt;HAnimSegment name='skull'/&gt; ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint skullbase, HAnimSegment skull"))
                                                            .addChild(new Transform().setTranslation(0.0044,1.6209,0.0236)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='skullbase'/&gt; to child &lt;HAnimJoint name='l_eyeball_joint'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0336,1.6332,0.0502})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='skullbase'/&gt; to child &lt;HAnimJoint name='l_eyelid_joint'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0336,1.6332,0.0502})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='skullbase'/&gt; to child &lt;HAnimJoint name='l_eyebrow_joint'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0336,1.635,0.0506})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='skullbase'/&gt; to child &lt;HAnimJoint name='r_eyeball_joint'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,-0.0336,1.6332,0.0502})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='skullbase'/&gt; to child &lt;HAnimJoint name='r_eyelid_joint'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,-0.0336,1.6332,0.0502})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='skullbase'/&gt; to child &lt;HAnimJoint name='r_eyebrow_joint'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,-0.0336,1.635,0.0506})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='skullbase'/&gt; to child &lt;HAnimJoint name='temporomandibular'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0,1.63,0.015})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='skullbase'/&gt; to &lt;HAnimSite name='skull_tip'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.005,1.7504,0.0055})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='skullbase'/&gt; to &lt;HAnimSite name='sellion_pt'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0058,1.6316,0.0852})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='skullbase'/&gt; to &lt;HAnimSite name='r_infraorbitale_pt'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,-0.0237,1.6171,0.0752})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='skullbase'/&gt; to &lt;HAnimSite name='l_infraorbitale_pt'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0341,1.6171,0.0752})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='skullbase'/&gt; to &lt;HAnimSite name='supramenton_pt'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0061,1.541,0.0805})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='skullbase'/&gt; to &lt;HAnimSite name='r_tragion_pt'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,-0.0646,1.6347,0.0302})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='skullbase'/&gt; to &lt;HAnimSite name='r_gonion_pt'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,-0.052,1.5529,0.0347})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='skullbase'/&gt; to &lt;HAnimSite name='l_tragion_pt'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0739,1.6348,0.0282})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='skullbase'/&gt; to &lt;HAnimSite name='l_gonion_pt'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0631,1.553,0.033})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='skullbase'/&gt; to &lt;HAnimSite name='nuchale_pt'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0039,1.5972,-0.0796})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addChild(new HAnimSite("hanim_skull_vertex_pt").setName("skull_vertex_pt").setTranslation(0.005,1.7504,0.0055)
                                                              .addComments(" TODO move skull_tip x to zero, check others for symmetry ")
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite skull_tip"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_sellion_pt").setName("sellion_pt").setTranslation(0.0058,1.6316,0.0852)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite sellion_pt"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_r_infraorbitale_pt").setName("r_infraorbitale_pt").setTranslation(-0.0237,1.6171,0.0752)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite r_infraorbitale_pt"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_l_infraorbitale_pt").setName("l_infraorbitale_pt").setTranslation(0.0341,1.6171,0.0752)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite l_infraorbitale_pt"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_supramenton_pt").setName("supramenton_pt").setTranslation(0.0061,1.541,0.0805)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite supramenton_pt"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_r_tragion_pt").setName("r_tragion_pt").setTranslation(-0.0646,1.6347,0.0302)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite r_tragion_pt"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_r_gonion_pt").setName("r_gonion_pt").setTranslation(-0.052,1.5529,0.0347)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite r_gonion_pt"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_l_tragion_pt").setName("l_tragion_pt").setTranslation(0.0739,1.6348,0.0282)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite l_tragion_pt"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_l_gonion_pt").setName("l_gonion_pt").setTranslation(0.0631,1.553,0.033)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite l_gonion_pt"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_nuchale_pt").setName("nuchale_pt").setTranslation(0.0039,1.5972,-0.0796)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite nuchale_pt"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                                          .addChild(new HAnimJoint("hanim_l_eyeball_joint").setName("l_eyeball_joint").setCenter(0.0336,1.6332,0.0502).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_l_eyeball").setName("l_eyeball")
                                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='l_eyeball_joint'/&gt; is placed within &lt;HAnimSegment name='l_eyeball'/&gt; ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint l_eyeball_joint, HAnimSegment l_eyeball"))
                                                              .addChild(new Transform().setTranslation(0.0336,1.6332,0.0502)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite/Viewpoint visualization line segment from ancestor &lt;HAnimJoint name='l_eyeball_joint'/&gt; to &lt;HAnimSite name='l_eyeball_site_view'/&gt; ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0336,1.6332,0.0502,0.034,1.64,0.05})))
                                                                  .setColor(new ColorRGBA("HAnimSiteViewpointLineColorRGBA").setColor(new MFColorRGBA(new double[] {1.0,1.0,0.0,1.0,1.0,1.0,0.0,0.1})))))
                                                              .addChild(new HAnimSite("hanim_l_eyeball_site_view").setName("l_eyeball_site_view").setTranslation(0.034,1.64,0.05)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite l_eyeball_site_view"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape"))
                                                                .addChild(new Viewpoint("hanim_l_eyeball_site_viewpoint").setDescription("l_eyeball_site_viewpoint looking forward").setOrientation(0.0,1.0,0.0,3.141593).setPosition(0.0,0.0,0.0))
                                                                .addComments(" HAnimSite/Viewpoint visualization shape ")
                                                                .addChild(new Anchor().setDescription("HAnimSite hanim_l_eyeball_site_view Viewpoint").setUrl(new String[] {"#hanim_l_eyeball_site_viewpoint"})
                                                                  .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
                                                                    .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
                                                                    .addChild(new Shape("HAnimSiteViewpointShape")
                                                                      .setGeometry(new IndexedFaceSet("SiteViewpointDiamondIFS").setDEF("SiteViewpointDiamondIFS").setCreaseAngle(0.5).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,0,3,4,-1,0,4,1,-1,5,2,1,-1,5,3,2,-1,5,4,3,-1,5,1,4,-1})
                                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.010,0.0,-0.010,0.0,0.0,0.0,0.0,0.010,0.010,0.0,0.0,0.0,0.0,-0.010,0.0,-0.010,0.0}))))
                                                                      .setAppearance(new Appearance()
                                                                        .setMaterial(new Material().setDiffuseColor(1.0,1.0,0.0).setTransparency(0.3)))))))))
                                                          .addChild(new HAnimJoint("hanim_l_eyelid_joint").setName("l_eyelid_joint").setCenter(0.0336,1.6332,0.0502).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_l_eyelid").setName("l_eyelid")
                                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='l_eyelid_joint'/&gt; is placed within &lt;HAnimSegment name='l_eyelid'/&gt; ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint l_eyelid_joint, HAnimSegment l_eyelid"))
                                                              .addChild(new Transform().setTranslation(0.0336,1.6332,0.0502)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))))
                                                          .addChild(new HAnimJoint("hanim_l_eyebrow_joint").setName("l_eyebrow_joint").setCenter(0.0336,1.635,0.0506).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_l_eyebrow").setName("l_eyebrow")
                                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='l_eyebrow_joint'/&gt; is placed within &lt;HAnimSegment name='l_eyebrow'/&gt; ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint l_eyebrow_joint, HAnimSegment l_eyebrow"))
                                                              .addChild(new Transform().setTranslation(0.0336,1.635,0.0506)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))))
                                                          .addChild(new HAnimJoint("hanim_r_eyeball_joint").setName("r_eyeball_joint").setCenter(-0.0336,1.6332,0.0502).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_r_eyeball").setName("r_eyeball")
                                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='r_eyeball_joint'/&gt; is placed within &lt;HAnimSegment name='r_eyeball'/&gt; ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint r_eyeball_joint, HAnimSegment r_eyeball"))
                                                              .addChild(new Transform().setTranslation(-0.0336,1.6332,0.0502)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite/Viewpoint visualization line segment from ancestor &lt;HAnimJoint name='r_eyeball_joint'/&gt; to &lt;HAnimSite name='r_eyeball_site_view'/&gt; ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0336,1.6332,0.0502,-0.034,1.64,0.05})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteViewpointLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_r_eyeball_site_view").setName("r_eyeball_site_view").setTranslation(-0.034,1.64,0.05)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite r_eyeball_site_view"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape"))
                                                                .addChild(new Viewpoint("hanim_r_eyeball_site_viewpoint").setDescription("r_eyeball_site_viewpoint looking forward").setOrientation(0.0,1.0,0.0,3.141593).setPosition(0.0,0.0,0.0))
                                                                .addComments(" HAnimSite/Viewpoint visualization shape ")
                                                                .addChild(new Anchor().setDescription("HAnimSite hanim_r_eyeball_site_view Viewpoint").setUrl(new String[] {"#hanim_r_eyeball_site_viewpoint"})
                                                                  .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
                                                                    .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
                                                                    .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))))
                                                          .addChild(new HAnimJoint("hanim_r_eyelid_joint").setName("r_eyelid_joint").setCenter(-0.0336,1.6332,0.0502).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_r_eyelid").setName("r_eyelid")
                                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='r_eyelid_joint'/&gt; is placed within &lt;HAnimSegment name='r_eyelid'/&gt; ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint r_eyelid_joint, HAnimSegment r_eyelid"))
                                                              .addChild(new Transform().setTranslation(-0.0336,1.6332,0.0502)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))))
                                                          .addChild(new HAnimJoint("hanim_r_eyebrow_joint").setName("r_eyebrow_joint").setCenter(-0.0336,1.635,0.0506).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_r_eyebrow").setName("r_eyebrow")
                                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='r_eyebrow_joint'/&gt; is placed within &lt;HAnimSegment name='r_eyebrow'/&gt; ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint r_eyebrow_joint, HAnimSegment r_eyebrow"))
                                                              .addChild(new Transform().setTranslation(-0.0336,1.635,0.0506)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))))
                                                          .addChild(new HAnimJoint("hanim_temporomandibular").setName("temporomandibular").setCenter(0.0,1.63,0.015).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addComments(" Single joint, single segment for jaw, two sites for left/right TMJs https://en.wikipedia.org/wiki/Temporomandibular_joint ")
                                                            .addChild(new HAnimSegment("hanim_jaw").setName("jaw")
                                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='temporomandibular'/&gt; is placed within &lt;HAnimSegment name='jaw'/&gt; ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint temporomandibular, HAnimSegment jaw"))
                                                              .addChild(new Transform().setTranslation(0.0,1.63,0.015)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='temporomandibular'/&gt; to &lt;HAnimSite name='temporomandibular_l_site_pt'/&gt; ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,1.63,0.015,0.045,1.63,0.0})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='temporomandibular'/&gt; to &lt;HAnimSite name='temporomandibular_r_site_pt'/&gt; ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,1.63,0.015,-0.045,1.63,0.0})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_temporomandibular_l_site_pt").setName("temporomandibular_l_site_pt").setTranslation(0.045,1.63,0.0)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite temporomandibular_l_site_pt"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                              .addChild(new HAnimSite("hanim_temporomandibular_r_site_pt").setName("temporomandibular_r_site_pt").setTranslation(-0.045,1.63,0.0)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite temporomandibular_r_site_pt"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape")))))))))))))
                                          .addChild(new HAnimJoint("hanim_l_sternoclavicular").setName("l_sternoclavicular").setCenter(0.082,1.4488,-0.0353).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                            .addChild(new HAnimSegment("hanim_l_clavicle").setName("l_clavicle")
                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='l_sternoclavicular'/&gt; is placed within &lt;HAnimSegment name='l_clavicle'/&gt; ")
                                              .addChild(new TouchSensor().setDescription("HAnimJoint l_sternoclavicular, HAnimSegment l_clavicle"))
                                              .addChild(new Transform().setTranslation(0.082,1.4488,-0.0353)
                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                              .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_sternoclavicular'/&gt; to child &lt;HAnimJoint name='l_acromioclavicular'/&gt; ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.082,1.4488,-0.0353,0.0962,1.4269,-0.0424})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_sternoclavicular'/&gt; to &lt;HAnimSite name='l_clavicale_pt'/&gt; ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.082,1.4488,-0.0353,0.0271,1.4943,0.0394})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_sternoclavicular'/&gt; to &lt;HAnimSite name='l_acromion_pt'/&gt; ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.082,1.4488,-0.0353,0.2032,1.476,-0.049})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_sternoclavicular'/&gt; to &lt;HAnimSite name='l_axilla_ant_pt'/&gt; ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.082,1.4488,-0.0353,0.1777,1.4065,-0.0075})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_sternoclavicular'/&gt; to &lt;HAnimSite name='l_axilla_post_pt'/&gt; ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.082,1.4488,-0.0353,0.1706,1.4072,-0.0875})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addChild(new HAnimSite("hanim_l_clavicle_pt").setName("l_clavicle_pt").setTranslation(0.0271,1.4943,0.0394)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite l_clavicale_pt"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                              .addChild(new HAnimSite("hanim_l_acromion_pt").setName("l_acromion_pt").setTranslation(0.2032,1.476,-0.049)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite l_acromion_pt"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                              .addChild(new HAnimSite("hanim_l_axilla_proximal_pt").setName("l_axilla_proximal_pt").setTranslation(0.1777,1.4065,-0.0075)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite l_axilla_ant_pt"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                              .addChild(new HAnimSite("hanim_l_axilla_distal_pt").setName("l_axilla_distal_pt").setTranslation(0.1706,1.4072,-0.0875)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite l_axilla_post_pt"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                            .addChild(new HAnimJoint("hanim_l_acromioclavicular").setName("l_acromioclavicular").setCenter(0.0962,1.4269,-0.0424).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                              .addChild(new HAnimSegment("hanim_l_scapula").setName("l_scapula")
                                                .addComments(" Visualization sphere for &lt;HAnimJoint name='l_acromioclavicular'/&gt; is placed within &lt;HAnimSegment name='l_scapula'/&gt; ")
                                                .addChild(new TouchSensor().setDescription("HAnimJoint l_acromioclavicular, HAnimSegment l_scapula"))
                                                .addChild(new Transform().setTranslation(0.0962,1.4269,-0.0424)
                                                  .addChild(new Shape().setUSE("HAnimJointShape")))
                                                .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_acromioclavicular'/&gt; to child &lt;HAnimJoint name='l_shoulder'/&gt; ")
                                                .addChild(new Shape()
                                                  .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                    .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0962,1.4269,-0.0424,0.2029,1.4376,-0.0387})))
                                                    .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                              .addChild(new HAnimJoint("hanim_l_shoulder").setName("l_shoulder").setCenter(0.2029,1.4376,-0.0387).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                .addChild(new HAnimSegment("hanim_l_upperarm").setName("l_upperarm")
                                                  .addComments(" Visualization sphere for &lt;HAnimJoint name='l_shoulder'/&gt; is placed within &lt;HAnimSegment name='l_upperarm'/&gt; ")
                                                  .addChild(new TouchSensor().setDescription("HAnimJoint l_shoulder, HAnimSegment l_upperarm"))
                                                  .addChild(new Transform().setTranslation(0.2029,1.4376,-0.0387)
                                                    .addChild(new Shape().setUSE("HAnimJointShape")))
                                                  .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_shoulder'/&gt; to child &lt;HAnimJoint name='l_elbow'/&gt; ")
                                                  .addChild(new Shape()
                                                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2029,1.4376,-0.0387,0.2014,1.1357,-0.0682})))
                                                      .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                  .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_shoulder'/&gt; to &lt;HAnimSite name='l_humeral_lateral_epicn_pt'/&gt; ")
                                                  .addChild(new Shape()
                                                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2029,1.4376,-0.0387,0.228,1.1482,-0.11})))
                                                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                  .addChild(new HAnimSite("hanim_l_humeral_lateral_epicondyle_pt").setName("l_humeral_lateral_epicondyle_pt").setTranslation(0.228,1.1482,-0.11)
                                                    .addComments(" HAnimSite visualization shape ")
                                                    .addChild(new TouchSensor().setDescription("HAnimSite l_humeral_lateral_epicn_pt"))
                                                    .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                                .addChild(new HAnimJoint("hanim_l_elbow").setName("l_elbow").setCenter(0.2014,1.1357,-0.0682).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                  .addChild(new HAnimSegment("hanim_l_forearm").setName("l_forearm")
                                                    .addComments(" Visualization sphere for &lt;HAnimJoint name='l_elbow'/&gt; is placed within &lt;HAnimSegment name='l_forearm'/&gt; ")
                                                    .addChild(new TouchSensor().setDescription("HAnimJoint l_elbow, HAnimSegment l_forearm"))
                                                    .addChild(new Transform().setTranslation(0.2014,1.1357,-0.0682)
                                                      .addChild(new Shape().setUSE("HAnimJointShape")))
                                                    .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_elbow'/&gt; to child &lt;HAnimJoint name='l_radiocarpal'/&gt; ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2014,1.1357,-0.0682,0.1984,0.8663,-0.0583})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                    .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_elbow'/&gt; to &lt;HAnimSite name='l_radial_styloid_pt'/&gt; ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2014,1.1357,-0.0682,0.1901,0.8645,-0.0415})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                    .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_elbow'/&gt; to &lt;HAnimSite name='l_olecranon_pt'/&gt; ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2014,1.1357,-0.0682,0.1962,1.1375,-0.1123})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                    .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_elbow'/&gt; to &lt;HAnimSite name='l_humeral_medial_epicn_pt'/&gt; ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2014,1.1357,-0.0682,0.1735,1.1272,-0.1113})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                    .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_elbow'/&gt; to &lt;HAnimSite name='l_radiale_pt'/&gt; ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2014,1.1357,-0.0682,0.2182,1.1212,-0.1167})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                    .addChild(new HAnimSite("hanim_l_radial_styloid_pt").setName("l_radial_styloid_pt").setTranslation(0.1901,0.8645,-0.0415)
                                                      .addComments(" HAnimSite visualization shape ")
                                                      .addChild(new TouchSensor().setDescription("HAnimSite l_radial_styloid_pt"))
                                                      .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                    .addChild(new HAnimSite("hanim_l_olecranon_pt").setName("l_olecranon_pt").setTranslation(0.1962,1.1375,-0.1123)
                                                      .addComments(" HAnimSite visualization shape ")
                                                      .addChild(new TouchSensor().setDescription("HAnimSite l_olecranon_pt"))
                                                      .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                    .addChild(new HAnimSite("hanim_l_humeral_medial_epicondyle_pt").setName("l_humeral_medial_epicondyle_pt").setTranslation(0.1735,1.1272,-0.1113)
                                                      .addComments(" HAnimSite visualization shape ")
                                                      .addChild(new TouchSensor().setDescription("HAnimSite l_humeral_medial_epicn_pt"))
                                                      .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                    .addChild(new HAnimSite("hanim_l_radiale_pt").setName("l_radiale_pt").setTranslation(0.2182,1.1212,-0.1167)
                                                      .addComments(" HAnimSite visualization shape ")
                                                      .addChild(new TouchSensor().setDescription("HAnimSite l_radiale_pt"))
                                                      .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                                  .addChild(new HAnimJoint("hanim_l_radiocarpal").setName("l_radiocarpal").setCenter(0.1984,0.8663,-0.0583).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                    .addChild(new HAnimSegment("hanim_l_carpal").setName("l_carpal")
                                                      .addComments(" Visualization sphere for &lt;HAnimJoint name='l_radiocarpal'/&gt; is placed within &lt;HAnimSegment name='l_carpal'/&gt; ")
                                                      .addChild(new TouchSensor().setDescription("HAnimJoint l_radiocarpal, HAnimSegment l_carpal"))
                                                      .addChild(new Transform().setTranslation(0.1984,0.8663,-0.0583)
                                                        .addChild(new Shape().setUSE("HAnimJointShape")))
                                                      .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_radiocarpal'/&gt; to child &lt;HAnimJoint name='l_thumb1'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.1924,0.8472,-0.0534})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_radiocarpal'/&gt; to child &lt;HAnimJoint name='l_index0'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.1983,0.8024,-0.028})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_radiocarpal'/&gt; to child &lt;HAnimJoint name='l_middle0'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.1987,0.8029,-0.053})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_radiocarpal'/&gt; to child &lt;HAnimJoint name='l_ring0'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.1956,0.8019,-0.0794})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_radiocarpal'/&gt; to child &lt;HAnimJoint name='l_pinky0'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.1925,0.8066,-0.1036})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_radiocarpal'/&gt; to &lt;HAnimSite name='l_metacarpal_pha2_pt'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.2009,0.8139,-0.0237})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                      .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_radiocarpal'/&gt; to &lt;HAnimSite name='l_ulnar_styloid_pt'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.2142,0.8529,-0.0648})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                      .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_radiocarpal'/&gt; to &lt;HAnimSite name='l_metacarpal_pha5_pt'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.1929,0.786,-0.1122})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                      .addComments(" HAnimSite/Viewpoint visualization line segment from ancestor &lt;HAnimJoint name='l_radiocarpal'/&gt; to &lt;HAnimSite name='l_hand_front_view'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.3,0.75,0.45})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSiteViewpointLineColorRGBA"))))
                                                      .addChild(new HAnimSite("hanim_l_metacarpal_phalanx_2_pt").setName("l_metacarpal_phalanx_2_pt").setTranslation(0.2009,0.8139,-0.0237)
                                                        .addComments(" HAnimSite visualization shape ")
                                                        .addChild(new TouchSensor().setDescription("HAnimSite l_metacarpal_pha2_pt"))
                                                        .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                      .addChild(new HAnimSite("hanim_l_ulnar_styloid_pt").setName("l_ulnar_styloid_pt").setTranslation(0.2142,0.8529,-0.0648)
                                                        .addComments(" HAnimSite visualization shape ")
                                                        .addChild(new TouchSensor().setDescription("HAnimSite l_ulnar_styloid_pt"))
                                                        .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                      .addChild(new HAnimSite("hanim_l_metacarpal_phalanx_5_pt").setName("l_metacarpal_phalanx_5_pt").setTranslation(0.1929,0.786,-0.1122)
                                                        .addComments(" HAnimSite visualization shape ")
                                                        .addChild(new TouchSensor().setDescription("HAnimSite l_metacarpal_pha5_pt"))
                                                        .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                      .addChild(new HAnimSite("hanim_l_hand_front_view").setName("l_hand_front_view").setTranslation(0.3,0.75,0.45)
                                                        .addComments(" HAnimSite visualization shape ")
                                                        .addChild(new TouchSensor().setDescription("HAnimSite l_hand_front_view"))
                                                        .addChild(new Shape().setUSE("HAnimSiteShape"))
                                                        .addChild(new Viewpoint("hanim_l_hand_front_viewpoint").setDescription("left hand front").setCenterOfRotation(0.0,0.7,0.0).setPosition(0.0,0.0,0.0))
                                                        .addComments(" HAnimSite/Viewpoint visualization shape ")
                                                        .addChild(new Anchor().setDescription("HAnimSite hanim_l_hand_front_view Viewpoint").setUrl(new String[] {"#hanim_l_hand_front_viewpoint"})
                                                          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
                                                            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
                                                            .addChild(new Shape().setUSE("HAnimSiteViewpointShape"))))))
                                                    .addChild(new HAnimJoint("hanim_l_carpometacarpal_1").setName("l_carpometacarpal_1").setCenter(0.1924,0.8472,-0.0534).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_l_metacarpal_1").setName("l_metacarpal_1")
                                                        .addComments(" Visualization sphere for &lt;HAnimJoint name='l_thumb1'/&gt; is placed within &lt;HAnimSegment name='l_metacarpal_1'/&gt; ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint l_thumb1, HAnimSegment l_metacarpal_1"))
                                                        .addChild(new Transform().setTranslation(0.1924,0.8472,-0.0534)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_thumb1'/&gt; to child &lt;HAnimJoint name='l_thumb2'/&gt; ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1924,0.8472,-0.0534,0.1951,0.8226,0.0246})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_l_metacarpophalangeal_1").setName("l_metacarpophalangeal_1").setCenter(0.1951,0.8226,0.0246).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_l_carpal_proximal_phalanx_1").setName("l_carpal_proximal_phalanx_1")
                                                          .addComments(" Visualization sphere for &lt;HAnimJoint name='l_thumb2'/&gt; is placed within &lt;HAnimSegment name='l_carpal_proximal_phalanx_1'/&gt; ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint l_thumb2, HAnimSegment l_carpal_proximal_phalanx_1"))
                                                          .addChild(new Transform().setTranslation(0.1951,0.8226,0.0246)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_thumb2'/&gt; to child &lt;HAnimJoint name='l_thumb3'/&gt; ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1951,0.8226,0.0246,0.1955,0.8159,0.0464})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_l_carpal_interphalangeal_1").setName("l_carpal_interphalangeal_1").setCenter(0.1955,0.8159,0.0464).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_l_carpal_distal_phalanx_1").setName("l_carpal_distal_phalanx_1")
                                                            .addComments(" Visualization sphere for &lt;HAnimJoint name='l_thumb3'/&gt; is placed within &lt;HAnimSegment name='l_carpal_distal_phalanx_1'/&gt; ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint l_thumb3, HAnimSegment l_carpal_distal_phalanx_1"))
                                                            .addChild(new Transform().setTranslation(0.1955,0.8159,0.0464)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_thumb3'/&gt; to &lt;HAnimSite name='l_thumb_distal_tip'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1955,0.8159,0.0464,0.1982,0.8061,0.0759})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addChild(new HAnimSite("hanim_l_carpal_distal_phalanx_1_pt").setName("l_carpal_distal_phalanx_1_pt").setTranslation(0.1982,0.8061,0.0759)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite l_thumb_distal_tip"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))))))
                                                    .addChild(new HAnimJoint("hanim_l_carpometacarpal_2").setName("l_carpometacarpal_2").setCenter(0.1983,0.8024,-0.028).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_l_metacarpal_2").setName("l_metacarpal_2")
                                                        .addComments(" Visualization sphere for &lt;HAnimJoint name='l_index0'/&gt; is placed within &lt;HAnimSegment name='l_metacarpal_2'/&gt; ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint l_index0, HAnimSegment l_metacarpal_2"))
                                                        .addChild(new Transform().setTranslation(0.1983,0.8024,-0.028)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_index0'/&gt; to child &lt;HAnimJoint name='l_index1'/&gt; ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1983,0.8024,-0.028,0.1983,0.7815,-0.028})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_l_metacarpophalangeal_2").setName("l_metacarpophalangeal_2").setCenter(0.1983,0.7815,-0.028).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_l_carpal_proximal_phalanx_2").setName("l_carpal_proximal_phalanx_2")
                                                          .addComments(" Visualization sphere for &lt;HAnimJoint name='l_index1'/&gt; is placed within &lt;HAnimSegment name='l_carpal_proximal_phalanx_2'/&gt; ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint l_index1, HAnimSegment l_carpal_proximal_phalanx_2"))
                                                          .addChild(new Transform().setTranslation(0.1983,0.7815,-0.028)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_index1'/&gt; to child &lt;HAnimJoint name='l_index2'/&gt; ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1983,0.7815,-0.028,0.2017,0.7363,-0.0248})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_l_carpal_proximal_interphalangeal_2").setName("l_carpal_proximal_interphalangeal_2").setCenter(0.2017,0.7363,-0.0248).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_l_carpal_middle_phalanx_2").setName("l_carpal_middle_phalanx_2")
                                                            .addComments(" Visualization sphere for &lt;HAnimJoint name='l_index2'/&gt; is placed within &lt;HAnimSegment name='l_carpal_middle_phalanx_2'/&gt; ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint l_index2, HAnimSegment l_carpal_middle_phalanx_2"))
                                                            .addChild(new Transform().setTranslation(0.2017,0.7363,-0.0248)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_index2'/&gt; to child &lt;HAnimJoint name='l_index3'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2017,0.7363,-0.0248,0.2028,0.7139,-0.0236})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                          .addChild(new HAnimJoint("hanim_l_carpal_distal_interphalangeal_2").setName("l_carpal_distal_interphalangeal_2").setCenter(0.2028,0.7139,-0.0236).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_l_carpal_distal_phalanx_2").setName("l_carpal_distal_phalanx_2")
                                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='l_index3'/&gt; is placed within &lt;HAnimSegment name='l_carpal_distal_phalanx_2'/&gt; ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint l_index3, HAnimSegment l_carpal_distal_phalanx_2"))
                                                              .addChild(new Transform().setTranslation(0.2028,0.7139,-0.0236)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_index3'/&gt; to &lt;HAnimSite name='l_index_distal_tip'/&gt; ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2028,0.7139,-0.0236,0.2089,0.6858,-0.0245})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_index3'/&gt; to &lt;HAnimSite name='l_dactylion_pt'/&gt; ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2028,0.7139,-0.0236,0.2056,0.6743,-0.0482})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_l_carpal_distal_phalanx_2_pt").setName("l_carpal_distal_phalanx_2_pt").setTranslation(0.2089,0.6858,-0.0245)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite l_index_distal_tip"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                              .addChild(new HAnimSite("hanim_l_dactylion_pt").setName("l_dactylion_pt").setTranslation(0.2056,0.6743,-0.0482)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite l_dactylion_pt"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))))))
                                                    .addChild(new HAnimJoint("hanim_l_carpometacarpal_3").setName("l_carpometacarpal_3").setCenter(0.1987,0.8029,-0.053).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_l_metacarpal_3").setName("l_metacarpal_3")
                                                        .addComments(" Visualization sphere for &lt;HAnimJoint name='l_middle0'/&gt; is placed within &lt;HAnimSegment name='l_metacarpal_3'/&gt; ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint l_middle0, HAnimSegment l_metacarpal_3"))
                                                        .addChild(new Transform().setTranslation(0.1987,0.8029,-0.053)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_middle0'/&gt; to child &lt;HAnimJoint name='l_middle1'/&gt; ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1987,0.8029,-0.053,0.1987,0.7818,-0.053})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_l_metacarpophalangeal_3").setName("l_metacarpophalangeal_3").setCenter(0.1987,0.7818,-0.053).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_l_carpal_proximal_phalanx_3").setName("l_carpal_proximal_phalanx_3")
                                                          .addComments(" Visualization sphere for &lt;HAnimJoint name='l_middle1'/&gt; is placed within &lt;HAnimSegment name='l_carpal_proximal_phalanx_3'/&gt; ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint l_middle1, HAnimSegment l_carpal_proximal_phalanx_3"))
                                                          .addChild(new Transform().setTranslation(0.1987,0.7818,-0.053)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_middle1'/&gt; to child &lt;HAnimJoint name='l_middle2'/&gt; ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1987,0.7818,-0.053,0.2013,0.7273,-0.0503})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_l_carpal_proximal_interphalangeal_3").setName("l_carpal_proximal_interphalangeal_3").setCenter(0.2013,0.7273,-0.0503).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_l_carpal_middle_phalanx_3").setName("l_carpal_middle_phalanx_3")
                                                            .addComments(" Visualization sphere for &lt;HAnimJoint name='l_middle2'/&gt; is placed within &lt;HAnimSegment name='l_carpal_middle_phalanx_3'/&gt; ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint l_middle2, HAnimSegment l_carpal_middle_phalanx_3"))
                                                            .addChild(new Transform().setTranslation(0.2013,0.7273,-0.0503)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_middle2'/&gt; to child &lt;HAnimJoint name='l_middle3'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2013,0.7273,-0.0503,0.2026,0.7011,-0.0494})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                          .addChild(new HAnimJoint("hanim_l_carpal_distal_interphalangeal_3").setName("l_carpal_distal_interphalangeal_3").setCenter(0.2026,0.7011,-0.0494).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_l_carpal_distal_phalanx_3").setName("l_carpal_distal_phalanx_3")
                                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='l_middle3'/&gt; is placed within &lt;HAnimSegment name='l_carpal_distal_phalanx_3'/&gt; ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint l_middle3, HAnimSegment l_carpal_distal_phalanx_3"))
                                                              .addChild(new Transform().setTranslation(0.2026,0.7011,-0.0494)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_middle3'/&gt; to &lt;HAnimSite name='l_middle_distal_tip'/&gt; ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2026,0.7011,-0.0494,0.208,0.6731,-0.0491})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_l_carpal_distal_phalanx_3_pt").setName("l_carpal_distal_phalanx_3_pt").setTranslation(0.208,0.6731,-0.0491)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite l_middle_distal_tip"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))))))
                                                    .addChild(new HAnimJoint("hanim_l_carpometacarpal_4").setName("l_carpometacarpal_4").setCenter(0.1956,0.8019,-0.0794).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_l_metacarpal_4").setName("l_metacarpal_4")
                                                        .addComments(" Visualization sphere for &lt;HAnimJoint name='l_ring0'/&gt; is placed within &lt;HAnimSegment name='l_metacarpal_4'/&gt; ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint l_ring0, HAnimSegment l_metacarpal_4"))
                                                        .addChild(new Transform().setTranslation(0.1956,0.8019,-0.0794)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_ring0'/&gt; to child &lt;HAnimJoint name='l_ring1'/&gt; ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1956,0.8019,-0.0794,0.1956,0.7815,-0.0794})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_l_metacarpophalangeal_4").setName("l_metacarpophalangeal_4").setCenter(0.1956,0.7815,-0.0794).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_l_carpal_proximal_phalanx_4").setName("l_carpal_proximal_phalanx_4")
                                                          .addComments(" Visualization sphere for &lt;HAnimJoint name='l_ring1'/&gt; is placed within &lt;HAnimSegment name='l_carpal_proximal_phalanx_4'/&gt; ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint l_ring1, HAnimSegment l_carpal_proximal_phalanx_4"))
                                                          .addChild(new Transform().setTranslation(0.1956,0.7815,-0.0794)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_ring1'/&gt; to child &lt;HAnimJoint name='l_ring2'/&gt; ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1956,0.7815,-0.0794,0.1973,0.7287,-0.0777})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_l_carpal_proximal_interphalangeal_4").setName("l_carpal_proximal_interphalangeal_4").setCenter(0.1973,0.7287,-0.0777).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_l_carpal_middle_phalanx_4").setName("l_carpal_middle_phalanx_4")
                                                            .addComments(" Visualization sphere for &lt;HAnimJoint name='l_ring2'/&gt; is placed within &lt;HAnimSegment name='l_carpal_middle_phalanx_4'/&gt; ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint l_ring2, HAnimSegment l_carpal_middle_phalanx_4"))
                                                            .addChild(new Transform().setTranslation(0.1973,0.7287,-0.0777)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_ring2'/&gt; to child &lt;HAnimJoint name='l_ring3'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1973,0.7287,-0.0777,0.1983,0.7045,-0.0767})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                          .addChild(new HAnimJoint("hanim_l_carpal_distal_interphalangeal_4").setName("l_carpal_distal_interphalangeal_4").setCenter(0.1983,0.7045,-0.0767).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_l_carpal_distal_phalanx_4").setName("l_carpal_distal_phalanx_4")
                                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='l_ring3'/&gt; is placed within &lt;HAnimSegment name='l_carpal_distal_phalanx_4'/&gt; ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint l_ring3, HAnimSegment l_carpal_distal_phalanx_4"))
                                                              .addChild(new Transform().setTranslation(0.1983,0.7045,-0.0767)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_ring3'/&gt; to &lt;HAnimSite name='l_ring_distal_tip'/&gt; ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1983,0.7045,-0.0767,0.2035,0.675,-0.0756})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_l_carpal_distal_phalanx_4_pt").setName("l_carpal_distal_phalanx_4_pt").setTranslation(0.2035,0.675,-0.0756)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite l_ring_distal_tip"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))))))
                                                    .addChild(new HAnimJoint("hanim_l_carpometacarpal_5").setName("l_carpometacarpal_5").setCenter(0.1925,0.8066,-0.1036).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_l_metacarpal_5").setName("l_metacarpal_5")
                                                        .addComments(" Visualization sphere for &lt;HAnimJoint name='l_pinky0'/&gt; is placed within &lt;HAnimSegment name='l_metacarpal_5'/&gt; ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint l_pinky0, HAnimSegment l_metacarpal_5"))
                                                        .addChild(new Transform().setTranslation(0.1925,0.8066,-0.1036)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_pinky0'/&gt; to child &lt;HAnimJoint name='l_pinky1'/&gt; ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1925,0.8066,-0.1036,0.1925,0.7866,-0.1036})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_l_metacarpophalangeal_5").setName("l_metacarpophalangeal_5").setCenter(0.1925,0.7866,-0.1036).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_l_carpal_proximal_phalanx_5").setName("l_carpal_proximal_phalanx_5")
                                                          .addComments(" Visualization sphere for &lt;HAnimJoint name='l_pinky1'/&gt; is placed within &lt;HAnimSegment name='l_carpal_proximal_phalanx_5'/&gt; ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint l_pinky1, HAnimSegment l_carpal_proximal_phalanx_5"))
                                                          .addChild(new Transform().setTranslation(0.1925,0.7866,-0.1036)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_pinky1'/&gt; to child &lt;HAnimJoint name='l_pinky2'/&gt; ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1925,0.7866,-0.1036,0.1938,0.7452,-0.1024})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_l_carpal_proximal_interphalangeal_5").setName("l_carpal_proximal_interphalangeal_5").setCenter(0.1938,0.7452,-0.1024).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_l_carpal_middle_phalanx_5").setName("l_carpal_middle_phalanx_5")
                                                            .addComments(" Visualization sphere for &lt;HAnimJoint name='l_pinky2'/&gt; is placed within &lt;HAnimSegment name='l_carpal_middle_phalanx_5'/&gt; ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint l_pinky2, HAnimSegment l_carpal_middle_phalanx_5"))
                                                            .addChild(new Transform().setTranslation(0.1938,0.7452,-0.1024)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='l_pinky2'/&gt; to child &lt;HAnimJoint name='l_pinky3'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1938,0.7452,-0.1024,0.1948,0.7277,-0.1017})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                          .addChild(new HAnimJoint("hanim_l_carpal_distal_interphalangeal_5").setName("l_carpal_distal_interphalangeal_5").setCenter(0.1948,0.7277,-0.1017).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_l_carpal_distal_phalanx_5").setName("l_carpal_distal_phalanx_5")
                                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='l_pinky3'/&gt; is placed within &lt;HAnimSegment name='l_carpal_distal_phalanx_5'/&gt; ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint l_pinky3, HAnimSegment l_carpal_distal_phalanx_5"))
                                                              .addChild(new Transform().setTranslation(0.1948,0.7277,-0.1017)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='l_pinky3'/&gt; to &lt;HAnimSite name='l_pinky_distal_tip'/&gt; ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1948,0.7277,-0.1017,0.2014,0.7009,-0.1012})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_l_carpal_distal_phalanx_5_pt").setName("l_carpal_distal_phalanx_5_pt").setTranslation(0.2014,0.7009,-0.1012)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite l_pinky_distal_tip"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape")))))))))))))
                                          .addChild(new HAnimJoint("hanim_r_sternoclavicular").setName("r_sternoclavicular").setCenter(-0.082,1.4488,-0.0353).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                            .addChild(new HAnimSegment("hanim_r_clavicle").setName("r_clavicle")
                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='r_sternoclavicular'/&gt; is placed within &lt;HAnimSegment name='r_clavicle'/&gt; ")
                                              .addChild(new TouchSensor().setDescription("HAnimJoint r_sternoclavicular, HAnimSegment r_clavicle"))
                                              .addChild(new Transform().setTranslation(-0.082,1.4488,-0.0353)
                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                              .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_sternoclavicular'/&gt; to child &lt;HAnimJoint name='r_acromioclavicular'/&gt; ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.082,1.4488,-0.0353,-0.0962,1.4269,-0.0424})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_sternoclavicular'/&gt; to &lt;HAnimSite name='r_clavicale_pt'/&gt; ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.082,1.4488,-0.0353,-0.0115,1.4943,0.04})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_sternoclavicular'/&gt; to &lt;HAnimSite name='r_acromion_pt'/&gt; ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.082,1.4488,-0.0353,-0.1905,1.4791,-0.0431})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_sternoclavicular'/&gt; to &lt;HAnimSite name='r_axilla_ant_pt'/&gt; ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.082,1.4488,-0.0353,-0.1626,1.4072,-0.0031})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_sternoclavicular'/&gt; to &lt;HAnimSite name='r_axilla_post_pt'/&gt; ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.082,1.4488,-0.0353,-0.1603,1.4098,-0.0826})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addChild(new HAnimSite("hanim_r_clavicle_pt").setName("r_clavicle_pt").setTranslation(-0.0115,1.4943,0.04)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite r_clavicale_pt"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                              .addChild(new HAnimSite("hanim_r_acromion_pt").setName("r_acromion_pt").setTranslation(-0.1905,1.4791,-0.0431)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite r_acromion_pt"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                              .addChild(new HAnimSite("hanim_r_axilla_proximal_pt").setName("r_axilla_proximal_pt").setTranslation(-0.1626,1.4072,-0.0031)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite r_axilla_ant_pt"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                              .addChild(new HAnimSite("hanim_r_axilla_distal_pt").setName("r_axilla_distal_pt").setTranslation(-0.1603,1.4098,-0.0826)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite r_axilla_post_pt"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                            .addChild(new HAnimJoint("hanim_r_acromioclavicular").setName("r_acromioclavicular").setCenter(-0.0962,1.4269,-0.0424).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                              .addChild(new HAnimSegment("hanim_r_scapula").setName("r_scapula")
                                                .addComments(" Visualization sphere for &lt;HAnimJoint name='r_acromioclavicular'/&gt; is placed within &lt;HAnimSegment name='r_scapula'/&gt; ")
                                                .addChild(new TouchSensor().setDescription("HAnimJoint r_acromioclavicular, HAnimSegment r_scapula"))
                                                .addChild(new Transform().setTranslation(-0.0962,1.4269,-0.0424)
                                                  .addChild(new Shape().setUSE("HAnimJointShape")))
                                                .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_acromioclavicular'/&gt; to child &lt;HAnimJoint name='r_shoulder'/&gt; ")
                                                .addChild(new Shape()
                                                  .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                    .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0962,1.4269,-0.0424,-0.2029,1.4376,-0.0387})))
                                                    .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                              .addChild(new HAnimJoint("hanim_r_shoulder").setName("r_shoulder").setCenter(-0.2029,1.4376,-0.0387).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                .addChild(new HAnimSegment("hanim_r_upperarm").setName("r_upperarm")
                                                  .addComments(" Visualization sphere for &lt;HAnimJoint name='r_shoulder'/&gt; is placed within &lt;HAnimSegment name='r_upperarm'/&gt; ")
                                                  .addChild(new TouchSensor().setDescription("HAnimJoint r_shoulder, HAnimSegment r_upperarm"))
                                                  .addChild(new Transform().setTranslation(-0.2029,1.4376,-0.0387)
                                                    .addChild(new Shape().setUSE("HAnimJointShape")))
                                                  .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_shoulder'/&gt; to child &lt;HAnimJoint name='r_elbow'/&gt; ")
                                                  .addChild(new Shape()
                                                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2029,1.4376,-0.0387,-0.2014,1.1357,-0.0682})))
                                                      .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                  .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_shoulder'/&gt; to &lt;HAnimSite name='r_humeral_lateral_epicn_pt'/&gt; ")
                                                  .addChild(new Shape()
                                                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2029,1.4376,-0.0387,-0.2224,1.1517,-0.1033})))
                                                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                  .addChild(new HAnimSite("hanim_r_humeral_lateral_epicondyle_pt").setName("r_humeral_lateral_epicondyle_pt").setTranslation(-0.2224,1.1517,-0.1033)
                                                    .addComments(" HAnimSite visualization shape ")
                                                    .addChild(new TouchSensor().setDescription("HAnimSite r_humeral_lateral_epicn_pt"))
                                                    .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                                .addChild(new HAnimJoint("hanim_r_elbow").setName("r_elbow").setCenter(-0.2014,1.1357,-0.0682).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                  .addChild(new HAnimSegment("hanim_r_forearm").setName("r_forearm")
                                                    .addComments(" Visualization sphere for &lt;HAnimJoint name='r_elbow'/&gt; is placed within &lt;HAnimSegment name='r_forearm'/&gt; ")
                                                    .addChild(new TouchSensor().setDescription("HAnimJoint r_elbow, HAnimSegment r_forearm"))
                                                    .addChild(new Transform().setTranslation(-0.2014,1.1357,-0.0682)
                                                      .addChild(new Shape().setUSE("HAnimJointShape")))
                                                    .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_elbow'/&gt; to child &lt;HAnimJoint name='r_radiocarpal'/&gt; ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2014,1.1357,-0.0682,-0.1984,0.8663,-0.0583})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                    .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_elbow'/&gt; to &lt;HAnimSite name='r_radial_styloid_pt'/&gt; ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2014,1.1357,-0.0682,-0.1884,0.8676,-0.036})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                    .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_elbow'/&gt; to &lt;HAnimSite name='r_olecranon_pt'/&gt; ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2014,1.1357,-0.0682,-0.1907,1.1405,-0.1065})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                    .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_elbow'/&gt; to &lt;HAnimSite name='r_humeral_medial_epicn_pt'/&gt; ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2014,1.1357,-0.0682,-0.168,1.1298,-0.1062})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                    .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_elbow'/&gt; to &lt;HAnimSite name='r_radiale_pt'/&gt; ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2014,1.1357,-0.0682,-0.213,1.1305,-0.1091})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                    .addChild(new HAnimSite("hanim_r_radial_styloid_pt").setName("r_radial_styloid_pt").setTranslation(-0.1884,0.8676,-0.036)
                                                      .addComments(" HAnimSite visualization shape ")
                                                      .addChild(new TouchSensor().setDescription("HAnimSite r_radial_styloid_pt"))
                                                      .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                    .addChild(new HAnimSite("hanim_r_olecranon_pt").setName("r_olecranon_pt").setTranslation(-0.1907,1.1405,-0.1065)
                                                      .addComments(" HAnimSite visualization shape ")
                                                      .addChild(new TouchSensor().setDescription("HAnimSite r_olecranon_pt"))
                                                      .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                    .addChild(new HAnimSite("hanim_r_humeral_medial_epicondyle_pt").setName("r_humeral_medial_epicondyle_pt").setTranslation(-0.168,1.1298,-0.1062)
                                                      .addComments(" HAnimSite visualization shape ")
                                                      .addChild(new TouchSensor().setDescription("HAnimSite r_humeral_medial_epicn_pt"))
                                                      .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                    .addChild(new HAnimSite("hanim_r_radiale_pt").setName("r_radiale_pt").setTranslation(-0.213,1.1305,-0.1091)
                                                      .addComments(" HAnimSite visualization shape ")
                                                      .addChild(new TouchSensor().setDescription("HAnimSite r_radiale_pt"))
                                                      .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                                  .addChild(new HAnimJoint("hanim_r_radiocarpal").setName("r_radiocarpal").setCenter(-0.1984,0.8663,-0.0583).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                    .addChild(new HAnimSegment("hanim_r_carpal").setName("r_carpal")
                                                      .addComments(" Visualization sphere for &lt;HAnimJoint name='r_radiocarpal'/&gt; is placed within &lt;HAnimSegment name='r_carpal'/&gt; ")
                                                      .addChild(new TouchSensor().setDescription("HAnimJoint r_radiocarpal, HAnimSegment r_carpal"))
                                                      .addChild(new Transform().setTranslation(-0.1984,0.8663,-0.0583)
                                                        .addChild(new Shape().setUSE("HAnimJointShape")))
                                                      .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_radiocarpal'/&gt; to child &lt;HAnimJoint name='r_thumb1'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.1924,0.8472,-0.0534})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_radiocarpal'/&gt; to child &lt;HAnimJoint name='r_index0'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.1983,0.8024,-0.028})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_radiocarpal'/&gt; to child &lt;HAnimJoint name='r_middle0'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.1987,0.8029,-0.053})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_radiocarpal'/&gt; to child &lt;HAnimJoint name='r_ring0'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.1956,0.8019,-0.0794})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_radiocarpal'/&gt; to child &lt;HAnimJoint name='r_pinky0'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.1925,0.8066,-0.1036})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_radiocarpal'/&gt; to &lt;HAnimSite name='r_metacarpal_pha2_pt'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.1977,0.8169,-0.0177})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                      .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_radiocarpal'/&gt; to &lt;HAnimSite name='r_ulnar_styloid_pt'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.2117,0.8562,-0.0584})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                      .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_radiocarpal'/&gt; to &lt;HAnimSite name='r_metacarpal_pha5_pt'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.1929,0.789,-0.1064})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                      .addComments(" HAnimSite/Viewpoint visualization line segment from ancestor &lt;HAnimJoint name='r_radiocarpal'/&gt; to &lt;HAnimSite name='r_hand_front_view'/&gt; ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.3,0.75,0.45})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSiteViewpointLineColorRGBA"))))
                                                      .addChild(new HAnimSite("hanim_r_metacarpal_phalanx_2_pt").setName("r_metacarpal_phalanx_2_pt").setTranslation(-0.1977,0.8169,-0.0177)
                                                        .addComments(" HAnimSite visualization shape ")
                                                        .addChild(new TouchSensor().setDescription("HAnimSite r_metacarpal_pha2_pt"))
                                                        .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                      .addChild(new HAnimSite("hanim_r_ulnar_styloid_pt").setName("r_ulnar_styloid_pt").setTranslation(-0.2117,0.8562,-0.0584)
                                                        .addComments(" HAnimSite visualization shape ")
                                                        .addChild(new TouchSensor().setDescription("HAnimSite r_ulnar_styloid_pt"))
                                                        .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                      .addChild(new HAnimSite("hanim_r_metacarpal_phalanx_5_pt").setName("r_metacarpal_phalanx_5_pt").setTranslation(-0.1929,0.789,-0.1064)
                                                        .addComments(" HAnimSite visualization shape ")
                                                        .addChild(new TouchSensor().setDescription("HAnimSite r_metacarpal_pha5_pt"))
                                                        .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                      .addChild(new HAnimSite("hanim_r_hand_front_view").setName("r_hand_front_view").setTranslation(-0.3,0.75,0.45)
                                                        .addComments(" HAnimSite visualization shape ")
                                                        .addChild(new TouchSensor().setDescription("HAnimSite r_hand_front_view"))
                                                        .addChild(new Shape().setUSE("HAnimSiteShape"))
                                                        .addChild(new Viewpoint("hanim_r_hand_front_viewpoint").setDescription("right hand front").setCenterOfRotation(0.0,0.7,0.0).setPosition(0.0,0.0,0.0))
                                                        .addComments(" HAnimSite/Viewpoint visualization shape ")
                                                        .addChild(new Anchor().setDescription("HAnimSite hanim_r_hand_front_view Viewpoint").setUrl(new String[] {"#hanim_r_hand_front_viewpoint"})
                                                          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
                                                            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
                                                            .addChild(new Shape().setUSE("HAnimSiteViewpointShape"))))))
                                                    .addChild(new HAnimJoint("hanim_r_carpometacarpal_1").setName("r_carpometacarpal_1").setCenter(-0.1924,0.8472,-0.0534).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_r_metacarpal_1").setName("r_metacarpal_1")
                                                        .addComments(" Visualization sphere for &lt;HAnimJoint name='r_thumb1'/&gt; is placed within &lt;HAnimSegment name='r_metacarpal_1'/&gt; ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint r_thumb1, HAnimSegment r_metacarpal_1"))
                                                        .addChild(new Transform().setTranslation(-0.1924,0.8472,-0.0534)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_thumb1'/&gt; to child &lt;HAnimJoint name='r_thumb2'/&gt; ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1924,0.8472,-0.0534,-0.1951,0.8226,0.0246})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_r_metacarpophalangeal_1").setName("r_metacarpophalangeal_1").setCenter(-0.1951,0.8226,0.0246).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_r_carpal_proximal_phalanx_1").setName("r_carpal_proximal_phalanx_1")
                                                          .addComments(" Visualization sphere for &lt;HAnimJoint name='r_thumb2'/&gt; is placed within &lt;HAnimSegment name='r_carpal_proximal_phalanx_1'/&gt; ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint r_thumb2, HAnimSegment r_carpal_proximal_phalanx_1"))
                                                          .addChild(new Transform().setTranslation(-0.1951,0.8226,0.0246)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_thumb2'/&gt; to child &lt;HAnimJoint name='r_thumb3'/&gt; ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1951,0.8226,0.0246,-0.1955,0.8159,0.0464})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_r_carpal_interphalangeal_1").setName("r_carpal_interphalangeal_1").setCenter(-0.1955,0.8159,0.0464).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_r_carpal_distal_phalanx_1").setName("r_carpal_distal_phalanx_1")
                                                            .addComments(" Visualization sphere for &lt;HAnimJoint name='r_thumb3'/&gt; is placed within &lt;HAnimSegment name='r_carpal_distal_phalanx_1'/&gt; ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint r_thumb3, HAnimSegment r_carpal_distal_phalanx_1"))
                                                            .addChild(new Transform().setTranslation(-0.1955,0.8159,0.0464)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_thumb3'/&gt; to &lt;HAnimSite name='r_thumb_distal_tip'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1955,0.8159,0.0464,-0.1869,0.809,0.082})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addChild(new HAnimSite("hanim_r_carpal_distal_phalanx_1_pt").setName("r_carpal_distal_phalanx_1_pt").setTranslation(-0.1869,0.809,0.082)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite r_thumb_distal_tip"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))))))
                                                    .addChild(new HAnimJoint("hanim_r_carpometacarpal_2").setName("r_carpometacarpal_2").setCenter(-0.1983,0.8024,-0.028).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_r_metacarpal_2").setName("r_metacarpal_2")
                                                        .addComments(" Visualization sphere for &lt;HAnimJoint name='r_index0'/&gt; is placed within &lt;HAnimSegment name='r_metacarpal_2'/&gt; ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint r_index0, HAnimSegment r_metacarpal_2"))
                                                        .addChild(new Transform().setTranslation(-0.1983,0.8024,-0.028)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_index0'/&gt; to child &lt;HAnimJoint name='r_index1'/&gt; ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1983,0.8024,-0.028,-0.1983,0.7815,-0.028})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_r_metacarpophalangeal_2").setName("r_metacarpophalangeal_2").setCenter(-0.1983,0.7815,-0.028).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_r_carpal_proximal_phalanx_2").setName("r_carpal_proximal_phalanx_2")
                                                          .addComments(" Visualization sphere for &lt;HAnimJoint name='r_index1'/&gt; is placed within &lt;HAnimSegment name='r_carpal_proximal_phalanx_2'/&gt; ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint r_index1, HAnimSegment r_carpal_proximal_phalanx_2"))
                                                          .addChild(new Transform().setTranslation(-0.1983,0.7815,-0.028)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_index1'/&gt; to child &lt;HAnimJoint name='r_index2'/&gt; ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1983,0.7815,-0.028,-0.2017,0.7363,-0.0248})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_r_carpal_proximal_interphalangeal_2").setName("r_carpal_proximal_interphalangeal_2").setCenter(-0.2017,0.7363,-0.0248).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_r_carpal_middle_phalanx_2").setName("r_carpal_middle_phalanx_2")
                                                            .addComments(" Visualization sphere for &lt;HAnimJoint name='r_index2'/&gt; is placed within &lt;HAnimSegment name='r_carpal_middle_phalanx_2'/&gt; ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint r_index2, HAnimSegment r_carpal_middle_phalanx_2"))
                                                            .addChild(new Transform().setTranslation(-0.2017,0.7363,-0.0248)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_index2'/&gt; to child &lt;HAnimJoint name='r_index3'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2017,0.7363,-0.0248,-0.2028,0.7139,-0.0236})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                          .addChild(new HAnimJoint("hanim_r_carpal_distal_interphalangeal_2").setName("r_carpal_distal_interphalangeal_2").setCenter(-0.2028,0.7139,-0.0236).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_r_carpal_distal_phalanx_2").setName("r_carpal_distal_phalanx_2")
                                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='r_index3'/&gt; is placed within &lt;HAnimSegment name='r_carpal_distal_phalanx_2'/&gt; ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint r_index3, HAnimSegment r_carpal_distal_phalanx_2"))
                                                              .addChild(new Transform().setTranslation(-0.2028,0.7139,-0.0236)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_index3'/&gt; to &lt;HAnimSite name='r_index_distal_tip'/&gt; ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2028,0.7139,-0.0236,-0.198,0.6883,-0.018})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_index3'/&gt; to &lt;HAnimSite name='r_dactylion_pt'/&gt; ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2028,0.7139,-0.0236,-0.1941,0.6772,-0.0423})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_r_carpal_distal_phalanx_2_pt").setName("r_carpal_distal_phalanx_2_pt").setTranslation(-0.198,0.6883,-0.018)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite r_index_distal_tip"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                              .addChild(new HAnimSite("hanim_r_dactylion_pt").setName("r_dactylion_pt").setTranslation(-0.1941,0.6772,-0.0423)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite r_dactylion_pt"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))))))
                                                    .addChild(new HAnimJoint("hanim_r_carpometacarpal_3").setName("r_carpometacarpal_3").setCenter(-0.1987,0.8029,-0.053).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_r_metacarpal_3").setName("r_metacarpal_3")
                                                        .addComments(" Visualization sphere for &lt;HAnimJoint name='r_middle0'/&gt; is placed within &lt;HAnimSegment name='r_metacarpal_3'/&gt; ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint r_middle0, HAnimSegment r_metacarpal_3"))
                                                        .addChild(new Transform().setTranslation(-0.1987,0.8029,-0.053)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_middle0'/&gt; to child &lt;HAnimJoint name='r_middle1'/&gt; ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1987,0.8029,-0.053,-0.1987,0.7818,-0.053})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_r_metacarpophalangeal_3").setName("r_metacarpophalangeal_3").setCenter(-0.1987,0.7818,-0.053).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_r_carpal_proximal_phalanx_3").setName("r_carpal_proximal_phalanx_3")
                                                          .addComments(" Visualization sphere for &lt;HAnimJoint name='r_middle1'/&gt; is placed within &lt;HAnimSegment name='r_carpal_proximal_phalanx_3'/&gt; ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint r_middle1, HAnimSegment r_carpal_proximal_phalanx_3"))
                                                          .addChild(new Transform().setTranslation(-0.1987,0.7818,-0.053)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_middle1'/&gt; to child &lt;HAnimJoint name='r_middle2'/&gt; ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1987,0.7818,-0.053,-0.2013,0.7273,-0.0503})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_r_carpal_proximal_interphalangeal_3").setName("r_carpal_proximal_interphalangeal_3").setCenter(-0.2013,0.7273,-0.0503).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_r_carpal_middle_phalanx_3").setName("r_carpal_middle_phalanx_3")
                                                            .addComments(" Visualization sphere for &lt;HAnimJoint name='r_middle2'/&gt; is placed within &lt;HAnimSegment name='r_carpal_middle_phalanx_3'/&gt; ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint r_middle2, HAnimSegment r_carpal_middle_phalanx_3"))
                                                            .addChild(new Transform().setTranslation(-0.2013,0.7273,-0.0503)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_middle2'/&gt; to child &lt;HAnimJoint name='r_middle3'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2013,0.7273,-0.0503,-0.2026,0.7011,-0.0494})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                          .addChild(new HAnimJoint("hanim_r_carpal_distal_interphalangeal_3").setName("r_carpal_distal_interphalangeal_3").setCenter(-0.2026,0.7011,-0.0494).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_r_carpal_distal_phalanx_3").setName("r_carpal_distal_phalanx_3")
                                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='r_middle3'/&gt; is placed within &lt;HAnimSegment name='r_carpal_distal_phalanx_3'/&gt; ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint r_middle3, HAnimSegment r_carpal_distal_phalanx_3"))
                                                              .addChild(new Transform().setTranslation(-0.2026,0.7011,-0.0494)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_middle3'/&gt; to &lt;HAnimSite name='r_middle_distal_tip'/&gt; ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2026,0.7011,-0.0494,-0.1969,0.6758,-0.0427})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_r_carpal_distal_phalanx_3_pt").setName("r_carpal_distal_phalanx_3_pt").setTranslation(-0.1969,0.6758,-0.0427)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite r_middle_distal_tip"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))))))
                                                    .addChild(new HAnimJoint("hanim_r_carpometacarpal_4").setName("r_carpometacarpal_4").setCenter(-0.1956,0.8019,-0.0794).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_r_metacarpal_4").setName("r_metacarpal_4")
                                                        .addComments(" Visualization sphere for &lt;HAnimJoint name='r_ring0'/&gt; is placed within &lt;HAnimSegment name='r_metacarpal_4'/&gt; ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint r_ring0, HAnimSegment r_metacarpal_4"))
                                                        .addChild(new Transform().setTranslation(-0.1956,0.8019,-0.0794)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_ring0'/&gt; to child &lt;HAnimJoint name='r_ring1'/&gt; ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1956,0.8019,-0.0794,-0.1956,0.7815,-0.0794})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_r_metacarpophalangeal_4").setName("r_metacarpophalangeal_4").setCenter(-0.1956,0.7815,-0.0794).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_r_carpal_proximal_phalanx_4").setName("r_carpal_proximal_phalanx_4")
                                                          .addComments(" Visualization sphere for &lt;HAnimJoint name='r_ring1'/&gt; is placed within &lt;HAnimSegment name='r_carpal_proximal_phalanx_4'/&gt; ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint r_ring1, HAnimSegment r_carpal_proximal_phalanx_4"))
                                                          .addChild(new Transform().setTranslation(-0.1956,0.7815,-0.0794)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_ring1'/&gt; to child &lt;HAnimJoint name='r_ring2'/&gt; ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1956,0.7815,-0.0794,-0.1973,0.7287,-0.0777})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_r_carpal_proximal_interphalangeal_4").setName("r_carpal_proximal_interphalangeal_4").setCenter(-0.1973,0.7287,-0.0777).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_r_carpal_middle_phalanx_4").setName("r_carpal_middle_phalanx_4")
                                                            .addComments(" Visualization sphere for &lt;HAnimJoint name='r_ring2'/&gt; is placed within &lt;HAnimSegment name='r_carpal_middle_phalanx_4'/&gt; ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint r_ring2, HAnimSegment r_carpal_middle_phalanx_4"))
                                                            .addChild(new Transform().setTranslation(-0.1973,0.7287,-0.0777)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_ring2'/&gt; to child &lt;HAnimJoint name='r_ring3'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1973,0.7287,-0.0777,-0.1983,0.7045,-0.0767})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                          .addChild(new HAnimJoint("hanim_r_carpal_distal_interphalangeal_4").setName("r_carpal_distal_interphalangeal_4").setCenter(-0.1983,0.7045,-0.0767).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_r_carpal_distal_phalanx_4").setName("r_carpal_distal_phalanx_4")
                                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='r_ring3'/&gt; is placed within &lt;HAnimSegment name='r_carpal_distal_phalanx_4'/&gt; ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint r_ring3, HAnimSegment r_carpal_distal_phalanx_4"))
                                                              .addChild(new Transform().setTranslation(-0.1983,0.7045,-0.0767)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_ring3'/&gt; to &lt;HAnimSite name='r_ring_distal_tip'/&gt; ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1983,0.7045,-0.0767,-0.1934,0.6778,-0.0693})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_r_carpal_distal_phalanx_4_pt").setName("r_carpal_distal_phalanx_4_pt").setTranslation(-0.1934,0.6778,-0.0693)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite r_ring_distal_tip"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))))))
                                                    .addChild(new HAnimJoint("hanim_r_carpometacarpal_5").setName("r_carpometacarpal_5").setCenter(-0.1925,0.8066,-0.1036).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_r_metacarpal_5").setName("r_metacarpal_5")
                                                        .addComments(" Visualization sphere for &lt;HAnimJoint name='r_pinky0'/&gt; is placed within &lt;HAnimSegment name='r_metacarpal_5'/&gt; ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint r_pinky0, HAnimSegment r_metacarpal_5"))
                                                        .addChild(new Transform().setTranslation(-0.1925,0.8066,-0.1036)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_pinky0'/&gt; to child &lt;HAnimJoint name='r_pinky1'/&gt; ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1925,0.8066,-0.1036,-0.1925,0.7866,-0.1036})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_r_metacarpophalangeal_5").setName("r_metacarpophalangeal_5").setCenter(-0.1925,0.7866,-0.1036).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_r_carpal_proximal_phalanx_5").setName("r_carpal_proximal_phalanx_5")
                                                          .addComments(" Visualization sphere for &lt;HAnimJoint name='r_pinky1'/&gt; is placed within &lt;HAnimSegment name='r_carpal_proximal_phalanx_5'/&gt; ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint r_pinky1, HAnimSegment r_carpal_proximal_phalanx_5"))
                                                          .addChild(new Transform().setTranslation(-0.1925,0.7866,-0.1036)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_pinky1'/&gt; to child &lt;HAnimJoint name='r_pinky2'/&gt; ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1925,0.7866,-0.1036,-0.1938,0.7452,-0.1024})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_r_carpal_proximal_interphalangeal_5").setName("r_carpal_proximal_interphalangeal_5").setCenter(-0.1938,0.7452,-0.1024).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_r_carpal_middle_phalanx_5").setName("r_carpal_middle_phalanx_5")
                                                            .addComments(" Visualization sphere for &lt;HAnimJoint name='r_pinky2'/&gt; is placed within &lt;HAnimSegment name='r_carpal_middle_phalanx_5'/&gt; ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint r_pinky2, HAnimSegment r_carpal_middle_phalanx_5"))
                                                            .addChild(new Transform().setTranslation(-0.1938,0.7452,-0.1024)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line from current &lt;HAnimJoint name='r_pinky2'/&gt; to child &lt;HAnimJoint name='r_pinky3'/&gt; ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1938,0.7452,-0.1024,-0.1948,0.7277,-0.1017})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                          .addChild(new HAnimJoint("hanim_r_carpal_distal_interphalangeal_5").setName("r_carpal_distal_interphalangeal_5").setCenter(-0.1948,0.7277,-0.1017).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_r_carpal_distal_phalanx_5").setName("r_carpal_distal_phalanx_5")
                                                              .addComments(" Visualization sphere for &lt;HAnimJoint name='r_pinky3'/&gt; is placed within &lt;HAnimSegment name='r_carpal_distal_phalanx_5'/&gt; ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint r_pinky3, HAnimSegment r_carpal_distal_phalanx_5"))
                                                              .addChild(new Transform().setTranslation(-0.1948,0.7277,-0.1017)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor &lt;HAnimJoint name='r_pinky3'/&gt; to &lt;HAnimSite name='r_pinky_distal_tip'/&gt; ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1948,0.7277,-0.1017,-0.1938,0.7035,-0.0949})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_r_carpal_distal_phalanx_5_pt").setName("r_carpal_distal_phalanx_5_pt").setTranslation(-0.1938,0.7035,-0.0949)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite r_pinky_distal_tip"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape")))))))))))))))))))))))))))))))
      .addComments(" original HAnimHumanoid info='\"authorName=Matthew T. Beitler Joe D. Williams Don Brutzman\" \"authorEmail=HAnim@web3D.org\" \"copyright=none\" \"creationDate=12 May 1999\" \"usageRestrictions=none\" \"humanoidVersion=2.0\" \"height=1.7504\"' ")
      .addComments(" Only one root HAnimJoint is allowed ")
      .addComments(" USE nodes go here for access by inverse kinematics (IK) engines and other tools ")
      .addComments(" Top-level HAnimSite/Viewpoint nodes that move with the human center but are unaffected by body animation ")
      .addViewpoints(new HAnimSite("hanim_l_inclined_view").setName("l_inclined_view").setRotation(-0.113,0.993,0.0347,0.671).setTranslation(1.62,1.05,2.06)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite l_inclined_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_l_inclined_viewpoint").setDescription("left inclined").setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_l_inclined_view Viewpoint").setUrl(new String[] {"#hanim_l_inclined_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addComments(" original HAnimHumanoid info='\"authorName=Matthew T. Beitler Joe D. Williams Don Brutzman\" \"authorEmail=HAnim@web3D.org\" \"copyright=none\" \"creationDate=12 May 1999\" \"usageRestrictions=none\" \"humanoidVersion=2.0\" \"height=1.7504\"' ")
      .addComments(" Only one root HAnimJoint is expected ")
      .addComments(" USE nodes go here for access by inverse kinematics (IK) engines and other tools ")
      .addComments(" Top-level HAnimSite/Viewpoint nodes that move with the human center but are unaffected by body animation ")
      .addViewpoints(new HAnimSite("hanim_r_inclined_view").setName("r_inclined_view").setRotation(-0.113,-0.993,0.0347,0.671).setTranslation(-1.62,1.05,2.06)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite r_inclined_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_r_inclined_viewpoint").setDescription("right inclined").setCenterOfRotation(0.0,0.9,0.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_r_inclined_view Viewpoint").setUrl(new String[] {"#hanim_r_inclined_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addComments(" original HAnimHumanoid info='\"authorName=Matthew T. Beitler Joe D. Williams Don Brutzman\" \"authorEmail=HAnim@web3D.org\" \"copyright=none\" \"creationDate=12 May 1999\" \"usageRestrictions=none\" \"humanoidVersion=2.0\" \"height=1.7504\"' ")
      .addComments(" Only one root HAnimJoint is expected ")
      .addComments(" USE nodes go here for access by inverse kinematics (IK) engines and other tools ")
      .addComments(" Top-level HAnimSite/Viewpoint nodes that move with the human center but are unaffected by body animation ")
      .addViewpoints(new HAnimSite("hanim_front_view").setName("front_view").setTranslation(0.0,0.85,2.58)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite front_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_front_viewpoint").setDescription("front").setCenterOfRotation(0.0,0.9,0.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_front_view Viewpoint").setUrl(new String[] {"#hanim_front_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addComments(" original HAnimHumanoid info='\"authorName=Matthew T. Beitler Joe D. Williams Don Brutzman\" \"authorEmail=HAnim@web3D.org\" \"copyright=none\" \"creationDate=12 May 1999\" \"usageRestrictions=none\" \"humanoidVersion=2.0\" \"height=1.7504\"' ")
      .addComments(" Only one root HAnimJoint is expected ")
      .addComments(" USE nodes go here for access by inverse kinematics (IK) engines and other tools ")
      .addComments(" Top-level HAnimSite/Viewpoint nodes that move with the human center but are unaffected by body animation ")
      .addViewpoints(new HAnimSite("hanim_back_view").setName("back_view").setRotation(0.0,1.0,0.0,3.14).setTranslation(0.0,0.85,-2.58)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite back_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_back_viewpoint").setDescription("back").setCenterOfRotation(0.0,0.9,0.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_back_view Viewpoint").setUrl(new String[] {"#hanim_back_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addComments(" original HAnimHumanoid info='\"authorName=Matthew T. Beitler Joe D. Williams Don Brutzman\" \"authorEmail=HAnim@web3D.org\" \"copyright=none\" \"creationDate=12 May 1999\" \"usageRestrictions=none\" \"humanoidVersion=2.0\" \"height=1.7504\"' ")
      .addComments(" Only one root HAnimJoint is expected ")
      .addComments(" USE nodes go here for access by inverse kinematics (IK) engines and other tools ")
      .addComments(" Top-level HAnimSite/Viewpoint nodes that move with the human center but are unaffected by body animation ")
      .addViewpoints(new HAnimSite("hanim_l_side_view").setName("l_side_view").setRotation(0.0,1.0,0.0,1.5708).setTranslation(2.6,0.854,0.0)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite l_side_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_l_side_viewpoint").setDescription("left side").setCenterOfRotation(0.0,0.9,0.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_l_side_view Viewpoint").setUrl(new String[] {"#hanim_l_side_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addComments(" original HAnimHumanoid info='\"authorName=Matthew T. Beitler Joe D. Williams Don Brutzman\" \"authorEmail=HAnim@web3D.org\" \"copyright=none\" \"creationDate=12 May 1999\" \"usageRestrictions=none\" \"humanoidVersion=2.0\" \"height=1.7504\"' ")
      .addComments(" Only one root HAnimJoint is expected ")
      .addComments(" USE nodes go here for access by inverse kinematics (IK) engines and other tools ")
      .addComments(" Top-level HAnimSite/Viewpoint nodes that move with the human center but are unaffected by body animation ")
      .addViewpoints(new HAnimSite("hanim_Top_view").setName("Top_view").setRotation(1.0,0.0,0.0,-1.57).setTranslation(0.0,3.5,0.0)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite Top_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_Top_viewpoint").setDescription("Top").setCenterOfRotation(0.0,0.9,0.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_Top_view Viewpoint").setUrl(new String[] {"#hanim_Top_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addComments(" original HAnimHumanoid info='\"authorName=Matthew T. Beitler Joe D. Williams Don Brutzman\" \"authorEmail=HAnim@web3D.org\" \"copyright=none\" \"creationDate=12 May 1999\" \"usageRestrictions=none\" \"humanoidVersion=2.0\" \"height=1.7504\"' ")
      .addComments(" Only one root HAnimJoint is expected ")
      .addComments(" USE nodes go here for access by inverse kinematics (IK) engines and other tools ")
      .addComments(" Top-level HAnimSite/Viewpoint nodes that move with the human center but are unaffected by body animation ")
      .addComments(" TODO move relevant HAnimSite/Viewpoint pairs into skeleton at appropriate locations, if so also revert containerField to default ")
      .addViewpoints(new HAnimSite("hanim_front_close_view").setName("front_close_view").setTranslation(0.0,0.854,1.575)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite front_close_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_front_close_viewpoint").setDescription("front close").setCenterOfRotation(0.0,0.0,1.575).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_front_close_view Viewpoint").setUrl(new String[] {"#hanim_front_close_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addComments(" original HAnimHumanoid info='\"authorName=Matthew T. Beitler Joe D. Williams Don Brutzman\" \"authorEmail=HAnim@web3D.org\" \"copyright=none\" \"creationDate=12 May 1999\" \"usageRestrictions=none\" \"humanoidVersion=2.0\" \"height=1.7504\"' ")
      .addComments(" Only one root HAnimJoint is expected ")
      .addComments(" USE nodes go here for access by inverse kinematics (IK) engines and other tools ")
      .addComments(" Top-level HAnimSite/Viewpoint nodes that move with the human center but are unaffected by body animation ")
      .addComments(" TODO move relevant HAnimSite/Viewpoint pairs into skeleton at appropriate locations, if so also revert containerField to default ")
      .addViewpoints(new HAnimSite("hanim_side_close_view").setName("side_close_view").setRotation(0.0,1.0,0.0,1.5708).setTranslation(1.56,0.854,0.0)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite side_close_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_side_close_viewpoint").setDescription("side close").setCenterOfRotation(1.6,0.0,0.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_side_close_view Viewpoint").setUrl(new String[] {"#hanim_side_close_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addComments(" original HAnimHumanoid info='\"authorName=Matthew T. Beitler Joe D. Williams Don Brutzman\" \"authorEmail=HAnim@web3D.org\" \"copyright=none\" \"creationDate=12 May 1999\" \"usageRestrictions=none\" \"humanoidVersion=2.0\" \"height=1.7504\"' ")
      .addComments(" Only one root HAnimJoint is expected ")
      .addComments(" USE nodes go here for access by inverse kinematics (IK) engines and other tools ")
      .addComments(" Top-level HAnimSite/Viewpoint nodes that move with the human center but are unaffected by body animation ")
      .addComments(" TODO move relevant HAnimSite/Viewpoint pairs into skeleton at appropriate locations, if so also revert containerField to default ")
      .addViewpoints(new HAnimSite("hanim_head_front_close_view").setName("head_front_close_view").setTranslation(0.0,1.5,1.0)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite head_front_close_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_head_front_close_viewpoint").setDescription("head front close").setCenterOfRotation(0.0,0.0,1.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_head_front_close_view Viewpoint").setUrl(new String[] {"#hanim_head_front_close_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addComments(" original HAnimHumanoid info='\"authorName=Matthew T. Beitler Joe D. Williams Don Brutzman\" \"authorEmail=HAnim@web3D.org\" \"copyright=none\" \"creationDate=12 May 1999\" \"usageRestrictions=none\" \"humanoidVersion=2.0\" \"height=1.7504\"' ")
      .addComments(" Only one root HAnimJoint is expected ")
      .addComments(" USE nodes go here for access by inverse kinematics (IK) engines and other tools ")
      .addComments(" Top-level HAnimSite/Viewpoint nodes that move with the human center but are unaffected by body animation ")
      .addComments(" TODO move relevant HAnimSite/Viewpoint pairs into skeleton at appropriate locations, if so also revert containerField to default ")
      .addViewpoints(new HAnimSite("hanim_chest_front_close_view").setName("chest_front_close_view").setTranslation(0.0,1.2,1.0)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite chest_front_close_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_chest_front_close_viewpoint").setDescription("chest front close").setCenterOfRotation(0.0,0.0,1.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_chest_front_close_view Viewpoint").setUrl(new String[] {"#hanim_chest_front_close_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addComments(" original HAnimHumanoid info='\"authorName=Matthew T. Beitler Joe D. Williams Don Brutzman\" \"authorEmail=HAnim@web3D.org\" \"copyright=none\" \"creationDate=12 May 1999\" \"usageRestrictions=none\" \"humanoidVersion=2.0\" \"height=1.7504\"' ")
      .addComments(" Only one root HAnimJoint is expected ")
      .addComments(" USE nodes go here for access by inverse kinematics (IK) engines and other tools ")
      .addComments(" Top-level HAnimSite/Viewpoint nodes that move with the human center but are unaffected by body animation ")
      .addComments(" TODO move relevant HAnimSite/Viewpoint pairs into skeleton at appropriate locations, if so also revert containerField to default ")
      .addViewpoints(new HAnimSite("hanim_pelvis_front_close_view").setName("pelvis_front_close_view").setTranslation(0.0,0.8,1.0)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite pelvis_front_close_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_pelvis_front_close_viewpoint").setDescription("pelvis front close").setCenterOfRotation(0.0,0.0,1.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_pelvis_front_close_view Viewpoint").setUrl(new String[] {"#hanim_pelvis_front_close_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addComments(" original HAnimHumanoid info='\"authorName=Matthew T. Beitler Joe D. Williams Don Brutzman\" \"authorEmail=HAnim@web3D.org\" \"copyright=none\" \"creationDate=12 May 1999\" \"usageRestrictions=none\" \"humanoidVersion=2.0\" \"height=1.7504\"' ")
      .addComments(" Only one root HAnimJoint is expected ")
      .addComments(" USE nodes go here for access by inverse kinematics (IK) engines and other tools ")
      .addComments(" Top-level HAnimSite/Viewpoint nodes that move with the human center but are unaffected by body animation ")
      .addComments(" TODO move relevant HAnimSite/Viewpoint pairs into skeleton at appropriate locations, if so also revert containerField to default ")
      .addViewpoints(new HAnimSite("hanim_knees_front_close_view").setName("knees_front_close_view").setTranslation(0.0,0.4,1.0)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite knees_front_close_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_knees_front_close_viewpoint").setDescription("knees front close").setCenterOfRotation(0.0,0.4,0.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_knees_front_close_view Viewpoint").setUrl(new String[] {"#hanim_knees_front_close_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addComments(" original HAnimHumanoid info='\"authorName=Matthew T. Beitler Joe D. Williams Don Brutzman\" \"authorEmail=HAnim@web3D.org\" \"copyright=none\" \"creationDate=12 May 1999\" \"usageRestrictions=none\" \"humanoidVersion=2.0\" \"height=1.7504\"' ")
      .addComments(" Only one root HAnimJoint is expected ")
      .addComments(" USE nodes go here for access by inverse kinematics (IK) engines and other tools ")
      .addComments(" Top-level HAnimSite/Viewpoint nodes that move with the human center but are unaffected by body animation ")
      .addComments(" TODO move relevant HAnimSite/Viewpoint pairs into skeleton at appropriate locations, if so also revert containerField to default ")
      .addViewpoints(new HAnimSite("hanim_feet_front_close_view").setName("feet_front_close_view").setTranslation(0.0,0.0,1.0)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite feet_front_close_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_feet_front_close_viewpoint").setDescription("feet front close").setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_feet_front_close_view Viewpoint").setUrl(new String[] {"#hanim_feet_front_close_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addComments(" original HAnimHumanoid info='\"authorName=Matthew T. Beitler Joe D. Williams Don Brutzman\" \"authorEmail=HAnim@web3D.org\" \"copyright=none\" \"creationDate=12 May 1999\" \"usageRestrictions=none\" \"humanoidVersion=2.0\" \"height=1.7504\"' ")
      .addComments(" Only one root HAnimJoint is expected ")
      .addComments(" USE nodes go here for access by inverse kinematics (IK) engines and other tools ")
      .addComments(" Top-level HAnimSite/Viewpoint nodes that move with the human center but are unaffected by body animation ")
      .addComments(" TODO move relevant HAnimSite/Viewpoint pairs into skeleton at appropriate locations, if so also revert containerField to default ")
      .addComments(" right between the eyes, stationary position not animating except with body itself ")
      .addViewpoints(new HAnimSite("hanim_eye_level_view").setName("eye_level_view").setTranslation(0.0,1.6332,0.0502)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite eye_level_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_eye_level_viewpoint").setDescription("eye level looking forward").setOrientation(0.0,1.0,0.0,3.141593).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_eye_level_view Viewpoint").setUrl(new String[] {"#hanim_eye_level_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addJoints(new HAnimJoint().setUSE("hanim_humanoid_root"))
      .addJoints(new HAnimJoint().setUSE("hanim_sacroiliac"))
      .addJoints(new HAnimJoint().setUSE("hanim_vl5"))
      .addJoints(new HAnimJoint().setUSE("hanim_vl4"))
      .addJoints(new HAnimJoint().setUSE("hanim_vl3"))
      .addJoints(new HAnimJoint().setUSE("hanim_vl2"))
      .addJoints(new HAnimJoint().setUSE("hanim_vl1"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt12"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt11"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt10"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt9"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt8"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt7"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt6"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt5"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt4"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt3"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt2"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt1"))
      .addJoints(new HAnimJoint().setUSE("hanim_vc7"))
      .addJoints(new HAnimJoint().setUSE("hanim_vc6"))
      .addJoints(new HAnimJoint().setUSE("hanim_vc5"))
      .addJoints(new HAnimJoint().setUSE("hanim_vc4"))
      .addJoints(new HAnimJoint().setUSE("hanim_vc3"))
      .addJoints(new HAnimJoint().setUSE("hanim_vc2"))
      .addJoints(new HAnimJoint().setUSE("hanim_vc1"))
      .addJoints(new HAnimJoint().setUSE("hanim_skullbase"))
      .addJoints(new HAnimJoint().setUSE("hanim_temporomandibular"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_acromioclavicular"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_acromioclavicular"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_carpal_distal_interphalangeal_2"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_carpal_distal_interphalangeal_2"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_carpal_distal_interphalangeal_3"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_carpal_distal_interphalangeal_3"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_carpal_distal_interphalangeal_4"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_carpal_distal_interphalangeal_4"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_carpal_distal_interphalangeal_5"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_carpal_distal_interphalangeal_5"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_carpal_interphalangeal_1"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_carpal_interphalangeal_1"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_carpal_proximal_interphalangeal_2"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_carpal_proximal_interphalangeal_2"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_carpal_proximal_interphalangeal_3"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_carpal_proximal_interphalangeal_3"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_carpal_proximal_interphalangeal_4"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_carpal_proximal_interphalangeal_4"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_carpal_proximal_interphalangeal_5"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_carpal_proximal_interphalangeal_5"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_carpometacarpal_1"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_carpometacarpal_1"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_carpometacarpal_2"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_carpometacarpal_2"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_carpometacarpal_3"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_carpometacarpal_3"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_carpometacarpal_4"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_carpometacarpal_4"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_carpometacarpal_5"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_carpometacarpal_5"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_elbow"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_elbow"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_eyeball_joint"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_eyeball_joint"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_eyebrow_joint"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_eyebrow_joint"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_eyelid_joint"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_eyelid_joint"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_hip"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_hip"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_knee"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_knee"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_metacarpophalangeal_1"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_metacarpophalangeal_1"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_metacarpophalangeal_2"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_metacarpophalangeal_2"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_metacarpophalangeal_3"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_metacarpophalangeal_3"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_metacarpophalangeal_4"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_metacarpophalangeal_4"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_metacarpophalangeal_5"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_metacarpophalangeal_5"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_metatarsophalangeal_2"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_metatarsophalangeal_2"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_radiocarpal"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_radiocarpal"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_shoulder"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_shoulder"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_sternoclavicular"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_sternoclavicular"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_talocrural"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_talocrural"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_tarsal_distal_interphalangeal_2"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_tarsal_distal_interphalangeal_2"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_tarsometatarsal_2"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_tarsometatarsal_2"))
      .addSegments(new HAnimSegment().setUSE("hanim_pelvis"))
      .addSegments(new HAnimSegment().setUSE("hanim_skull"))
      .addSegments(new HAnimSegment().setUSE("hanim_jaw"))
      .addSegments(new HAnimSegment().setUSE("hanim_c1"))
      .addSegments(new HAnimSegment().setUSE("hanim_c2"))
      .addSegments(new HAnimSegment().setUSE("hanim_c3"))
      .addSegments(new HAnimSegment().setUSE("hanim_c4"))
      .addSegments(new HAnimSegment().setUSE("hanim_c5"))
      .addSegments(new HAnimSegment().setUSE("hanim_c6"))
      .addSegments(new HAnimSegment().setUSE("hanim_c7"))
      .addSegments(new HAnimSegment().setUSE("hanim_t1"))
      .addSegments(new HAnimSegment().setUSE("hanim_t2"))
      .addSegments(new HAnimSegment().setUSE("hanim_t3"))
      .addSegments(new HAnimSegment().setUSE("hanim_t4"))
      .addSegments(new HAnimSegment().setUSE("hanim_t5"))
      .addSegments(new HAnimSegment().setUSE("hanim_t6"))
      .addSegments(new HAnimSegment().setUSE("hanim_t7"))
      .addSegments(new HAnimSegment().setUSE("hanim_t8"))
      .addSegments(new HAnimSegment().setUSE("hanim_t9"))
      .addSegments(new HAnimSegment().setUSE("hanim_t10"))
      .addSegments(new HAnimSegment().setUSE("hanim_t11"))
      .addSegments(new HAnimSegment().setUSE("hanim_t12"))
      .addSegments(new HAnimSegment().setUSE("hanim_l1"))
      .addSegments(new HAnimSegment().setUSE("hanim_l2"))
      .addSegments(new HAnimSegment().setUSE("hanim_l3"))
      .addSegments(new HAnimSegment().setUSE("hanim_l4"))
      .addSegments(new HAnimSegment().setUSE("hanim_l5"))
      .addSegments(new HAnimSegment().setUSE("hanim_sacrum"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_calf"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_calf"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_carpal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_carpal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_carpal_distal_phalanx_1"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_carpal_distal_phalanx_1"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_carpal_distal_phalanx_2"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_carpal_distal_phalanx_2"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_carpal_distal_phalanx_3"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_carpal_distal_phalanx_3"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_carpal_distal_phalanx_4"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_carpal_distal_phalanx_4"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_carpal_distal_phalanx_5"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_carpal_distal_phalanx_5"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_carpal_middle_phalanx_2"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_carpal_middle_phalanx_2"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_carpal_middle_phalanx_3"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_carpal_middle_phalanx_3"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_carpal_middle_phalanx_4"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_carpal_middle_phalanx_4"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_carpal_middle_phalanx_5"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_carpal_middle_phalanx_5"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_carpal_proximal_phalanx_1"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_carpal_proximal_phalanx_1"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_carpal_proximal_phalanx_2"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_carpal_proximal_phalanx_2"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_carpal_proximal_phalanx_3"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_carpal_proximal_phalanx_3"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_carpal_proximal_phalanx_4"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_carpal_proximal_phalanx_4"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_carpal_proximal_phalanx_5"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_carpal_proximal_phalanx_5"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_clavicle"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_clavicle"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_eyeball"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_eyeball"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_eyebrow"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_eyebrow"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_eyelid"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_eyelid"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_forearm"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_forearm"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_metacarpal_1"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_metacarpal_1"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_metacarpal_2"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_metacarpal_2"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_metacarpal_3"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_metacarpal_3"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_metacarpal_4"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_metacarpal_4"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_metacarpal_5"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_metacarpal_5"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_metatarsal_2"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_metatarsal_2"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_scapula"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_scapula"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_talus"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_talus"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_tarsal_distal_phalanx_2"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_tarsal_distal_phalanx_2"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_tarsal_proximal_phalanx_2"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_tarsal_proximal_phalanx_2"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_thigh"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_thigh"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_upperarm"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_upperarm"))
      .addSites(new HAnimSite().setUSE("hanim_crotch_pt"))
      .addSites(new HAnimSite().setUSE("hanim_skull_vertex_pt"))
      .addSites(new HAnimSite().setUSE("hanim_sellion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_supramenton_pt"))
      .addSites(new HAnimSite().setUSE("hanim_nuchale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_suprasternale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_cervicale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_substernale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_rib10_midspine_pt"))
      .addSites(new HAnimSite().setUSE("hanim_waist_preferred_posterior_pt"))
      .addSites(new HAnimSite().setUSE("hanim_navel_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_acromion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_acromion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_asis_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_asis_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_axilla_distal_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_axilla_distal_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_axilla_proximal_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_axilla_proximal_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_calcaneus_posterior_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_calcaneus_posterior_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_carpal_distal_phalanx_1_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_carpal_distal_phalanx_1_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_carpal_distal_phalanx_2_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_carpal_distal_phalanx_2_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_carpal_distal_phalanx_3_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_carpal_distal_phalanx_3_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_carpal_distal_phalanx_4_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_carpal_distal_phalanx_4_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_carpal_distal_phalanx_5_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_carpal_distal_phalanx_5_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_clavicle_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_clavicle_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_dactylion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_dactylion_pt"))
      .addViewpoints(new HAnimSite().setUSE("hanim_l_eyeball_site_view"))
      .addViewpoints(new HAnimSite().setUSE("hanim_r_eyeball_site_view"))
      .addSites(new HAnimSite().setUSE("hanim_l_femoral_lateral_epicondyle_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_femoral_lateral_epicondyle_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_femoral_medial_epicondyle_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_femoral_medial_epicondyle_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_forefoot_tip_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_forefoot_tip_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_gonion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_gonion_pt"))
      .addViewpoints(new HAnimSite().setUSE("hanim_l_hand_front_view"))
      .addViewpoints(new HAnimSite().setUSE("hanim_r_hand_front_view"))
      .addSites(new HAnimSite().setUSE("hanim_l_humeral_lateral_epicondyle_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_humeral_lateral_epicondyle_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_humeral_medial_epicondyle_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_humeral_medial_epicondyle_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_iliocristale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_iliocristale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_infraorbitale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_infraorbitale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_knee_crease_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_knee_crease_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_lateral_malleolus_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_lateral_malleolus_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_medial_malleolus_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_medial_malleolus_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_metacarpal_phalanx_2_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_metacarpal_phalanx_2_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_metacarpal_phalanx_5_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_metacarpal_phalanx_5_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_metatarsal_phalanx_1_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_metatarsal_phalanx_1_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_metatarsal_phalanx_5_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_metatarsal_phalanx_5_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_neck_base_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_neck_base_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_olecranon_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_olecranon_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_psis_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_psis_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_radial_styloid_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_radial_styloid_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_radiale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_radiale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_rib10_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_rib10_pt"))
      .addSites(new HAnimSite().setUSE("hanim_temporomandibular_l_site_pt"))
      .addSites(new HAnimSite().setUSE("hanim_temporomandibular_r_site_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_sphyrion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_sphyrion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_tarsal_distal_phalanx_2_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_tarsal_distal_phalanx_2_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_thelion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_thelion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_tragion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_tragion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_trochanterion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_trochanterion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_ulnar_styloid_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_ulnar_styloid_pt"))));
            }
            catch (Exception ex)
            {       
                System.err.println ("*** Further hints on X3DJSAIL errors and exceptions at");
                System.err.println ("*** https://www.web3d.org/specifications/java/X3DJSAIL.html");
                throw (ex);
            }
	}
	// end of initialize() method

	/** The initialized model object, created within initialize() method. */
	private X3D x3dModel;

	/** 
	 * Provide a 
	 * &lt;a href="https://dzone.com/articles/java-copy-shallow-vs-deep-in-which-you-will-swim" target="_blank"&gt;shallow copy&lt;/a&gt;
	 * of the X3D model.
	 * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Core/X3D.html"&gt;X3D&lt;/a&gt;
	 * @return HAnim2SpecificationLOA3Illustrated model
	 */
	public X3D getX3dModel()
	{	  
		return x3dModel;
	}
	   
    /** 
     * Default main() method provided for test purposes, uses CommandLine to set global ConfigurationProperties for this object.
     * @param args array of input parameters, provided as arguments
     * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Core/X3D.html#handleArguments-java.lang.String:A-"&gt;X3D.handleArguments(args)&lt;/a&gt;
     * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Core/X3D.html#validationReport--"&gt;X3D.validationReport()&lt;/a&gt;
     * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/CommandLine.html"&gt;CommandLine&lt;/a&gt;
     * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/CommandLine.html#USAGE"&gt;CommandLine.USAGE&lt;/a&gt;
     * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/ConfigurationProperties.html"&gt;ConfigurationProperties&lt;/a&gt;
     */
    public static void main(String args[])
    {
        System.out.println("Build this X3D model, showing validation diagnostics...");
        X3D thisExampleX3dModel = new HAnim2SpecificationLOA3Illustrated().getX3dModel();
//      System.out.println("X3D model construction complete.");
	
        // next handle command line arguments
        boolean hasArguments = (args != null) &amp;&amp; (args.length &gt; 0);
        boolean validate = true; // default
        boolean argumentsLoadNewModel = false;
        String  fileName = new String();

        if (args != null)
        {
                for (String arg : args)
                {
                        if (arg.toLowerCase().startsWith("-v") || arg.toLowerCase().contains("validate"))
                        {
                                validate = true; // making sure
                        }
                        if (arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_X3D) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_CLASSICVRML) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_X3DB) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_VRML97) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_EXI) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_GZIP) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_ZIP) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_HTML) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_XHTML))
                        {
                                argumentsLoadNewModel = true;
                                fileName = arg;
                        }
                }
        }
        if      (argumentsLoadNewModel)
                System.out.println("WARNING: \"HumanoidAnimation.Specifications.HAnim2SpecificationLOA3Illustrated\" model invocation is attempting to load file \"" + fileName + "\" instead of simply validating itself... file loading ignored.");
        else if (hasArguments) // if no arguments provided, this method produces usage warning
                thisExampleX3dModel.handleArguments(args);
	
        if (validate)
        {
            //  System.out.println("--- TODO fix duplicated outputs ---"); // omit when duplicated outputs problem is solved/refactored
		String validationResults = thisExampleX3dModel.validationReport();
            //  System.out.println("-----------------------------------"); // omit when duplicated outputs problem is solved/refactored
                System.out.print("HumanoidAnimation.Specifications.HAnim2SpecificationLOA3Illustrated self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

                // experimental: test X3DJSAIL output files
                // Specifications/HAnim2SpecificationLOA3Illustrated_JavaExport.* file validation is checked when building X3D Example Archives
                String filenameX3D  = "Specifications/HAnim2SpecificationLOA3Illustrated_JavaExport.x3d"; 
                String filenameX3DV = "Specifications/HAnim2SpecificationLOA3Illustrated_JavaExport.x3dv"; 
                String filenameJSON = "Specifications/HAnim2SpecificationLOA3Illustrated_JavaExport.json";
                thisExampleX3dModel.toFileX3D        (filenameX3D);
                thisExampleX3dModel.toFileClassicVRML(filenameX3DV);
// TODO         thisExampleX3dModel.toFileJSON       (filenameJSON);
        }
    }
}
</pre></body></html>