@prefix :        <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Poses/HAnimPosePrototype.ttl#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema:  <http://schema.org/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix x3d:     <https://www.web3d.org/specifications/x3d-4.0.xsd#> .
@prefix x3do:    <https://www.web3d.org/specifications/X3dOntology4.0#> .

:X3D a owl:NamedIndividual, x3do:X3D ;
  x3do:hasHead :head ;
  x3do:hasScene :Scene ;
  x3do:profile 'Full' ;
  x3do:version '4.0' ;
  x3do:noNamespaceSchemaLocation 'https://www.web3d.org/specifications/x3d-4.0.xsd' .
:head a owl:NamedIndividual, x3do:head ;
  x3do:hasParent :X3D ;
  x3do:hasMeta :meta_1_1, :meta_1_2, :meta_1_3, :meta_1_4, :meta_1_5, :meta_1_6, :meta_1_7, :meta_1_8, :meta_1_9, :meta_1_10, :meta_1_11, :meta_1_12, :meta_1_13, :meta_1_14, :meta_1_15, :meta_1_16, :meta_1_17, :meta_1_18, :meta_1_19, :meta_1_20, :meta_1_21, :meta_1_22, :meta_1_23, :meta_1_24, :meta_1_25, :meta_1_26, :meta_1_27, :meta_1_28, :meta_1_29, :meta_1_30, :meta_1_31, :meta_1_32, :meta_1_33, :meta_1_34, :meta_1_35, :meta_1_36, :meta_1_37, :meta_1_38, :meta_1_39, :meta_1_40 .
:meta_1_1 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'HAnimPosePrototype.x3d' ;
  x3do:name 'title' .
:meta_1_2 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Define an experimental new node to simply capture a single pose for an HAnimHumanoid model. Expected usage is to allow HAnimHumanoid to contain multiple Pose nodes which can be activated and composed.' ;
  x3do:name 'description' .
:meta_1_3 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'This model also takes advantage of Inline/IMPORT capabilities (equivalent to USE node) and thus avoids fully copying a large, complex HAnimHumanoid model. Multiple HAnimHumanoid models have been tested satisfactorily, for HAnim version 1 (X3d 3) AND HAnim version 2 (X3D 4).' ;
  x3do:name 'info' .
:meta_1_4 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '2 October 2025' ;
  x3do:name 'created' .
:meta_1_5 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '14 December 2025' ;
  x3do:name 'modified' .
:meta_1_6 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Don Brutzman' ;
  x3do:name 'creator' .
:meta_1_7 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Joe Williams' ;
  x3do:name 'creator' .
:meta_1_8 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Holger Seelig for X_ITE, Sunrize on Windows, scripting guidance, and Inline IMPORT functionality as node-reference equivalent to USE' ;
  x3do:name 'contributor' .
:meta_1_9 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'HAnimPosePrototype.console.txt' ;
  x3do:name 'reference' .
:meta_1_10 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'demonstration video https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Poses/HAnimPosePrototypeDemoVideo.mp4' ;
  x3do:name 'MovingImage' .
:meta_1_11 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'HAnimPoseExampleTouchDown.png' ;
  x3do:name 'Image' .
:meta_1_12 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'HAnimPoseExampleTouchDownFaceLeftAPose.png' ;
  x3do:name 'Image' .
:meta_1_13 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'images/HAnimPoseExampleBoxMan1.png' ;
  x3do:name 'Image' .
:meta_1_14 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'images/HAnimPoseExampleBoxMan2.png' ;
  x3do:name 'Image' .
:meta_1_15 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'images/HAnimPoseExampleJoeKick.png' ;
  x3do:name 'Image' .
:meta_1_16 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'images/HAnimPoseExampleJoeSkeletonSkinSite.png' ;
  x3do:name 'Image' .
:meta_1_17 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'images/HAnimPoseExampleKoreanCharacter01Jin.png' ;
  x3do:name 'Image' .
:meta_1_18 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'images/HAnimPoseExampleKoreanCharacter02Chul.png' ;
  x3do:name 'Image' .
:meta_1_19 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'images/HAnimPoseExampleKoreanCharacter03Hyun.png' ;
  x3do:name 'Image' .
:meta_1_20 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'images/HAnimPoseExampleKoreanCharacter04Young.png' ;
  x3do:name 'Image' .
:meta_1_21 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'images/HAnimPoseExampleKoreanCharacter05Ju.png' ;
  x3do:name 'Image' .
:meta_1_22 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'images/HAnimPoseExampleKoreanCharacter06Ga.png' ;
  x3do:name 'Image' .
:meta_1_23 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'images/HAnimPoseExampleKoreanCharacter07No.png' ;
  x3do:name 'Image' .
:meta_1_24 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'images/HAnimPoseExampleKoreanCharacter08Da.png' ;
  x3do:name 'Image' .
:meta_1_25 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'images/HAnimPoseExampleKoreanCharacter09Ru.png' ;
  x3do:name 'Image' .
:meta_1_26 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'images/HAnimPoseExampleKoreanCharacter10Mi.png' ;
  x3do:name 'Image' .
:meta_1_27 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'images/HAnimPoseExampleKoreanCharacter11Min.png' ;
  x3do:name 'Image' .
:meta_1_28 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'images/HAnimPoseExampleKoreanCharacter12Sun.png' ;
  x3do:name 'Image' .
:meta_1_29 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'HAnim Architecture volume 1 version 2.1 draft, clause 6 Object interfaces, section 6.4 Pose' ;
  x3do:name 'specificationSection' .
:meta_1_30 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/ObjectInterfaces.html#Pose' ;
  x3do:name 'specificationUrl' .
:meta_1_31 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'HAnim Architecture volume 1 version 2.1 draft, clause 4 Concepts, section 4.8.2 Modelling of human-like HAnim figures' ;
  x3do:name 'specificationSection' .
:meta_1_32 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#ModellingHumanLikeHAnimFigures' ;
  x3do:name 'specificationUrl' .
:meta_1_33 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'HAnim Architecture volume 1 version 2.1 draft, clause 4 Concepts, section 4.8.3 Poses' ;
  x3do:name 'specificationSection' .
:meta_1_34 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/concepts.html#Poses' ;
  x3do:name 'specificationUrl' .
:meta_1_35 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Direct scene manipulations with Javascript, https://doc.instantreality.org/tutorial/direct-scene-manipulations-with-javascript' ;
  x3do:name 'reference' .
:meta_1_36 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'earlier version of this prototype: originals/HAnimPosePreliminary.x3d' ;
  x3do:name 'reference' .
:meta_1_37 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit' ;
  x3do:name 'generator' .
:meta_1_38 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Sunrize X3D Editor V1.11.1, https://create3000.github.io/sunrize' ;
  x3do:name 'generator' .
:meta_1_39 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Poses/HAnimPosePrototype.x3d' ;
  x3do:name 'identifier' .
:meta_1_40 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/x3d/content/examples/license.html' ;
  x3do:name 'license' .
:meta dcterms:title "HAnimPosePrototype.x3d" .
:meta dcterms:description "Define an experimental new node to simply capture a single pose for an HAnimHumanoid model. Expected usage is to allow HAnimHumanoid to contain multiple Pose nodes which can be activated and composed." .
:meta dcterms:info "This model also takes advantage of Inline/IMPORT capabilities (equivalent to USE node) and thus avoids fully copying a large, complex HAnimHumanoid model. Multiple HAnimHumanoid models have been tested satisfactorily, for HAnim version 1 (X3d 3) AND HAnim version 2 (X3D 4)." .
:meta dcterms:created "2 October 2025" .
:meta dcterms:modified "14 December 2025" .
:meta dcterms:creator "Don Brutzman" .
:meta dcterms:creator "Joe Williams" .
:meta dcterms:reference "HAnimPosePrototype.console.txt" .
:meta dcterms:MovingImage "demonstration video https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Poses/HAnimPosePrototypeDemoVideo.mp4" .
:meta dcterms:Image "HAnimPoseExampleTouchDown.png" .
:meta dcterms:Image "HAnimPoseExampleTouchDownFaceLeftAPose.png" .
:meta dcterms:Image "images/HAnimPoseExampleBoxMan1.png" .
:meta dcterms:Image "images/HAnimPoseExampleBoxMan2.png" .
:meta dcterms:Image "images/HAnimPoseExampleJoeKick.png" .
:meta dcterms:Image "images/HAnimPoseExampleJoeSkeletonSkinSite.png" .
:meta dcterms:Image "images/HAnimPoseExampleKoreanCharacter01Jin.png" .
:meta dcterms:Image "images/HAnimPoseExampleKoreanCharacter02Chul.png" .
:meta dcterms:Image "images/HAnimPoseExampleKoreanCharacter03Hyun.png" .
:meta dcterms:Image "images/HAnimPoseExampleKoreanCharacter04Young.png" .
:meta dcterms:Image "images/HAnimPoseExampleKoreanCharacter05Ju.png" .
:meta dcterms:Image "images/HAnimPoseExampleKoreanCharacter06Ga.png" .
:meta dcterms:Image "images/HAnimPoseExampleKoreanCharacter07No.png" .
:meta dcterms:Image "images/HAnimPoseExampleKoreanCharacter08Da.png" .
:meta dcterms:Image "images/HAnimPoseExampleKoreanCharacter09Ru.png" .
:meta dcterms:Image "images/HAnimPoseExampleKoreanCharacter10Mi.png" .
:meta dcterms:Image "images/HAnimPoseExampleKoreanCharacter11Min.png" .
:meta dcterms:Image "images/HAnimPoseExampleKoreanCharacter12Sun.png" .
:meta dcterms:reference "Direct scene manipulations with Javascript, https://doc.instantreality.org/tutorial/direct-scene-manipulations-with-javascript" .
:meta dcterms:reference "earlier version of this prototype: originals/HAnimPosePreliminary.x3d" .
:meta dcterms:generator "X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit" .
:meta dcterms:generator "Sunrize X3D Editor V1.11.1, https://create3000.github.io/sunrize" .
:meta dcterms:identifier "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Poses/HAnimPosePrototype.x3d" .
:meta dcterms:license "https://www.web3d.org/x3d/content/examples/license.html" .
:Scene a owl:NamedIndividual, x3do:Scene ;
  x3do:hasParent :X3D ;
  x3do:hasChildren :ModelInfo, :Background_2_2, :NavigationInfo_2_3, :HandleInlineLoading, :Viewpoint_2_6, :T_Pose, :A_Pose, :TouchDown_Pose, :I_Pose, :H_Pose, :FaceLeft_Pose, :FaceRight_Pose, :InterfaceButtonsGroup, :HandleInlineLoadsensorRouting ;
  x3do:hasProtoDeclare :ProtoDeclare_2_5 .
:ModelInfo a owl:NamedIndividual, x3do:WorldInfo ;
  x3do:hasParent :Scene ;
  x3do:DEF 'ModelInfo' ;
  x3do:info '"Design to illustrate a potential HAnimPose node"' ;
  x3do:title 'HAnimPosePrototype.x3d' .
:Background_2_2 a owl:NamedIndividual, x3do:Background ;
  x3do:hasParent :Scene ;
  x3do:skyColor ( 0.8 0.8 1 ) .
:NavigationInfo_2_3 a owl:NamedIndividual, x3do:NavigationInfo ;
  x3do:hasParent :Scene .
:HandleInlineLoading a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :HumanoidInline, :HumanoidInlineLoadSensor ;
  x3do:hasIMPORT :IMPORT_2_4_2 ;
  x3do:DEF 'HandleInlineLoading' .
:HumanoidInline a owl:NamedIndividual, x3do:Inline ;
  x3do:hasParent :HandleInlineLoading ;
  x3do:DEF 'HumanoidInline' ;
  x3do:description 'remote HAnimHumanoid for IMPORT' ;
  x3do:url '"../Skin/BoxMan2.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/BoxMan2.x3d"' .
:IMPORT_2_4_2 a owl:NamedIndividual, x3do:IMPORT ;
  x3do:hasParent :HandleInlineLoading ;
  x3do:AS 'HumanoidImported' ;
  x3do:importedDEF 'BoxMan2' ;
  x3do:inlineDEF 'HumanoidInline' .
:HumanoidInlineLoadSensor a owl:NamedIndividual, x3do:LoadSensor ;
  x3do:hasParent :HandleInlineLoading ;
  x3do:hasChildren :HumanoidInline-USE-1 ;
  x3do:DEF 'HumanoidInlineLoadSensor' ;
  x3do:timeOut '2' .
:HumanoidInline-USE-1 a owl:NamedIndividual, x3do:Inline ;
  x3do:hasParent :HumanoidInlineLoadSensor ;
  owl:sameAs :HumanoidInline . # DEF matching this USE
:ProtoDeclare_2_5 a owl:NamedIndividual, x3do:ProtoDeclare ;
  x3do:hasParent :Scene ;
  x3do:hasProtoInterface :ProtoInterface_2_5_1 ;
  x3do:hasProtoBody :ProtoBody_2_5_2 ;
  x3do:appinfo 'Experimental node to assign joint values to a humanoid and assume a pose. Assumes that baseline HAnimHumanoid configuration must be I pose, which can be achieved by resetting every HAnimJoint to default values.' ;
  x3do:name 'HAnimPose' .
:ProtoInterface_2_5_1 a owl:NamedIndividual, x3do:ProtoInterface ;
  x3do:hasParent :ProtoDeclare_2_5 ;
  x3do:hasField :field_2_5_1_1, :field_2_5_1_2, :field_2_5_1_3, :field_2_5_1_4, :field_2_5_1_5, :field_2_5_1_6, :field_2_5_1_7, :field_2_5_1_8, :field_2_5_1_9, :field_2_5_1_10, :field_2_5_1_11, :field_2_5_1_12, :field_2_5_1_13, :field_2_5_1_14, :field_2_5_1_15 .
:field_2_5_1_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'HAnimHumanoid for this Pose to act upon' ;
  x3do:name 'parentHAnimHumanoid' ;
  x3do:type 'SFNode' .
:field_2_5_1_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'name of this pose' ;
  x3do:name 'name' ;
  x3do:type 'SFString' ;
  x3do:value 'newPoseName' .
:field_2_5_1_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'joint values to apply to HAnimHumanoid' ;
  x3do:name 'children' ;
  x3do:type 'MFNode' .
:field_2_5_1_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'explanation of purpose' ;
  x3do:name 'description' ;
  x3do:type 'SFString' .
:field_2_5_1_5 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'default value true' ;
  x3do:name 'enabled' ;
  x3do:type 'SFBool' ;
  x3do:value true .
:field_2_5_1_6 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'default is no loa' ;
  x3do:name 'loa' ;
  x3do:type 'SFInt32' ;
  x3do:value -1 .
:field_2_5_1_7 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'how many seconds to achieve the pose' ;
  x3do:name 'transitionDuration' ;
  x3do:type 'SFTime' ;
  x3do:value '0' .
:field_2_5_1_8 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'single Metadata* node' ;
  x3do:name 'metadata' ;
  x3do:type 'SFNode' .
:field_2_5_1_9 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'outputOnly' ;
  x3do:appinfo 'event indicating when pose transition is active' ;
  x3do:name 'isActive' ;
  x3do:type 'SFBool' .
:field_2_5_1_10 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOnly' ;
  x3do:appinfo 'this event tells the HAnimPose node to fully transition, equivalent to set_fraction=1' ;
  x3do:name 'commencePose' ;
  x3do:type 'SFBool' .
:field_2_5_1_11 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOnly' ;
  x3do:appinfo 'reset the skeleton to I pose with all joints zeroed' ;
  x3do:name 'resetAllJoints' ;
  x3do:type 'SFBool' .
:field_2_5_1_12 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOnly' ;
  x3do:appinfo 'allows transition to proceed incrementally from fraction [0..10' ;
  x3do:name 'set_fraction' ;
  x3do:type 'SFFloat' .
:field_2_5_1_13 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOnly' ;
  x3do:appinfo 'starts the animation clock' ;
  x3do:name 'set_startTime' ;
  x3do:type 'SFTime' .
:field_2_5_1_14 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOnly' ;
  x3do:appinfo 'possible notification from LoadSensor if using HAnimHumanoid Inline/IMPORT AS/USE' ;
  x3do:name 'isLoaded' ;
  x3do:type 'SFBool' .
:field_2_5_1_15 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_5_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'debug trace to Browser output console this is a local prototype field' ;
  x3do:name 'traceEnabled' ;
  x3do:type 'SFBool' ;
  x3do:value true .
:ProtoBody_2_5_2 a owl:NamedIndividual, x3do:ProtoBody ;
  x3do:hasParent :ProtoDeclare_2_5 ;
  x3do:hasChildren :ClockTimeSensor, :ResetTimeSensor, :PoseInterpolatorGroup, :ResetInterpolatorGroup, :HAnimPoseScript .
:ClockTimeSensor a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:hasIS :IS_2_5_2_1_1 ;
  x3do:DEF 'ClockTimeSensor' ;
  x3do:description 'control timing of pose animation when triggered' .
:IS_2_5_2_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :ClockTimeSensor ;
  x3do:hasConnect :connect_2_5_2_1_1_1, :connect_2_5_2_1_1_2, :connect_2_5_2_1_1_3, :connect_2_5_2_1_1_4, :connect_2_5_2_1_1_5 .
:connect_2_5_2_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_1 ;
  x3do:nodeField 'enabled' ;
  x3do:protoField 'enabled' .
:connect_2_5_2_1_1_2 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_1 ;
  x3do:nodeField 'cycleInterval' ;
  x3do:protoField 'transitionDuration' .
:connect_2_5_2_1_1_3 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_1 ;
  x3do:nodeField 'isActive' ;
  x3do:protoField 'isActive' .
:connect_2_5_2_1_1_4 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_1 ;
  x3do:nodeField 'startTime' ;
  x3do:protoField 'set_startTime' .
:connect_2_5_2_1_1_5 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_1_1 ;
  x3do:nodeField 'metadata' ;
  x3do:protoField 'metadata' .
:ResetTimeSensor a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:hasIS :IS_2_5_2_2_1 ;
  x3do:DEF 'ResetTimeSensor' ;
  x3do:description 'control timing of skeleton reset to "A" pose when triggered' .
:IS_2_5_2_2_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :ResetTimeSensor ;
  x3do:hasConnect :connect_2_5_2_2_1_1, :connect_2_5_2_2_1_2, :connect_2_5_2_2_1_3 .
:connect_2_5_2_2_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_2_1 ;
  x3do:nodeField 'enabled' ;
  x3do:protoField 'enabled' .
:connect_2_5_2_2_1_2 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_2_1 ;
  x3do:nodeField 'cycleInterval' ;
  x3do:protoField 'transitionDuration' .
:connect_2_5_2_2_1_3 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_2_1 ;
  x3do:nodeField 'startTime' ;
  x3do:protoField 'set_startTime' .
:PoseInterpolatorGroup a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:DEF 'PoseInterpolatorGroup' .
:ResetInterpolatorGroup a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:DEF 'ResetInterpolatorGroup' .
:HAnimPoseScript a owl:NamedIndividual, x3do:Script ;
  x3do:hasParent :ProtoBody_2_5_2 ;
  x3do:hasField :field_2_5_2_5_1, :field_2_5_2_5_2, :field_2_5_2_5_3, :field_2_5_2_5_4, :field_2_5_2_5_5, :field_2_5_2_5_6, :field_2_5_2_5_7, :field_2_5_2_5_8, :field_2_5_2_5_9, :field_2_5_2_5_10, :field_2_5_2_5_11, :field_2_5_2_5_12, :field_2_5_2_5_13, :field_2_5_2_5_14, :field_2_5_2_5_15, :field_2_5_2_5_16 ;
  x3do:hasIS :IS_2_5_2_5_17 ;
  x3do:DEF 'HAnimPoseScript' ;
  x3do:directOutput true ;
  x3do:url '"HAnimPosePrototypeScript.js" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Poses/HAnimPosePrototypeScript.js"' .
:field_2_5_2_5_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'Humanoid for this Pose to act upon' ;
  x3do:name 'parentHAnimHumanoid' ;
  x3do:type 'SFNode' .
:field_2_5_2_5_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'name of this pose' ;
  x3do:name 'name' ;
  x3do:type 'SFString' .
:field_2_5_2_5_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'default is no loa' ;
  x3do:name 'loa' ;
  x3do:type 'SFInt32' .
:field_2_5_2_5_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'explanation of purpose' ;
  x3do:name 'description' ;
  x3do:type 'SFString' .
:field_2_5_2_5_5 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'default value true' ;
  x3do:name 'enabled' ;
  x3do:type 'SFBool' .
:field_2_5_2_5_6 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:accessType 'inputOnly' ;
  x3do:appinfo 'reset the skeleton to I pose with all joints zeroed' ;
  x3do:name 'resetAllJoints' ;
  x3do:type 'SFBool' .
:field_2_5_2_5_7 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'joint values to apply to HAnimHumanoid' ;
  x3do:name 'children' ;
  x3do:type 'MFNode' .
:field_2_5_2_5_8 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'how many seconds to achieve the pose' ;
  x3do:name 'transitionDuration' ;
  x3do:type 'SFTime' .
:field_2_5_2_5_9 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:accessType 'inputOnly' ;
  x3do:appinfo 'this event tells the HAnimPose node to fully transition, equivalent to set_fraction=1' ;
  x3do:name 'commencePose' ;
  x3do:type 'SFBool' .
:field_2_5_2_5_10 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:accessType 'inputOnly' ;
  x3do:appinfo 'allows transition to proceed incrementally from fraction [0..10' ;
  x3do:name 'set_fraction' ;
  x3do:type 'SFFloat' .
:field_2_5_2_5_11 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:accessType 'inputOnly' ;
  x3do:appinfo 'starts the animation clock' ;
  x3do:name 'set_startTime' ;
  x3do:type 'SFTime' .
:field_2_5_2_5_12 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:accessType 'inputOnly' ;
  x3do:appinfo 'possible notification from LoadSensor if using HAnimHumanoid Inline/IMPORT AS/USE' ;
  x3do:name 'isLoaded' ;
  x3do:type 'SFBool' .
:field_2_5_2_5_13 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:accessType 'inputOutput' ;
  x3do:appinfo 'debug trace to Browser output console' ;
  x3do:name 'traceEnabled' ;
  x3do:type 'SFBool' .
:field_2_5_2_5_14 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'number of joints found in children field' ;
  x3do:name 'numberPoseJoints' ;
  x3do:type 'SFInt32' ;
  x3do:value 0 .
:field_2_5_2_5_15 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'number of joints found in Humanoid' ;
  x3do:name 'numberSkeletonJoints' ;
  x3do:type 'SFInt32' ;
  x3do:value 0 .
:field_2_5_2_5_16 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:accessType 'initializeOnly' ;
  x3do:appinfo 'OrientationInterpolator node array matching number of children' ;
  x3do:name 'jointOrientationInterpolators' ;
  x3do:type 'MFNode' .
:IS_2_5_2_5_17 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :HAnimPoseScript ;
  x3do:hasConnect :connect_2_5_2_5_17_1, :connect_2_5_2_5_17_2, :connect_2_5_2_5_17_3, :connect_2_5_2_5_17_4, :connect_2_5_2_5_17_5, :connect_2_5_2_5_17_6, :connect_2_5_2_5_17_7, :connect_2_5_2_5_17_8, :connect_2_5_2_5_17_9, :connect_2_5_2_5_17_10, :connect_2_5_2_5_17_11, :connect_2_5_2_5_17_12, :connect_2_5_2_5_17_13 .
:connect_2_5_2_5_17_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_5_17 ;
  x3do:nodeField 'parentHAnimHumanoid' ;
  x3do:protoField 'parentHAnimHumanoid' .
:connect_2_5_2_5_17_2 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_5_17 ;
  x3do:nodeField 'name' ;
  x3do:protoField 'name' .
:connect_2_5_2_5_17_3 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_5_17 ;
  x3do:nodeField 'loa' ;
  x3do:protoField 'loa' .
:connect_2_5_2_5_17_4 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_5_17 ;
  x3do:nodeField 'description' ;
  x3do:protoField 'description' .
:connect_2_5_2_5_17_5 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_5_17 ;
  x3do:nodeField 'enabled' ;
  x3do:protoField 'enabled' .
:connect_2_5_2_5_17_6 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_5_17 ;
  x3do:nodeField 'resetAllJoints' ;
  x3do:protoField 'resetAllJoints' .
:connect_2_5_2_5_17_7 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_5_17 ;
  x3do:nodeField 'children' ;
  x3do:protoField 'children' .
:connect_2_5_2_5_17_8 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_5_17 ;
  x3do:nodeField 'transitionDuration' ;
  x3do:protoField 'transitionDuration' .
:connect_2_5_2_5_17_9 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_5_17 ;
  x3do:nodeField 'commencePose' ;
  x3do:protoField 'commencePose' .
:connect_2_5_2_5_17_10 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_5_17 ;
  x3do:nodeField 'set_fraction' ;
  x3do:protoField 'set_fraction' .
:connect_2_5_2_5_17_11 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_5_17 ;
  x3do:nodeField 'set_startTime' ;
  x3do:protoField 'set_startTime' .
:connect_2_5_2_5_17_12 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_5_17 ;
  x3do:nodeField 'isLoaded' ;
  x3do:protoField 'isLoaded' .
:connect_2_5_2_5_17_13 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_5_2_5_17 ;
  x3do:nodeField 'traceEnabled' ;
  x3do:protoField 'traceEnabled' .
:Viewpoint_2_6 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:description 'HAnimPose for HumanoidInline IMPORT model' ;
  x3do:position ( 0 1 4 ) .
:T_Pose a owl:NamedIndividual, x3do:ProtoInstance ;
  x3do:hasParent :Scene ;
  x3do:hasFieldValue :fieldValue_2_7_1, :fieldValue_2_7_2, :fieldValue_2_7_3, :fieldValue_2_7_4, :fieldValue_2_7_5, :fieldValue_2_7_6, :fieldValue_2_7_7 ;
  x3do:DEF 'T_Pose' ;
  x3do:name 'HAnimPose' .
:fieldValue_2_7_1 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :T_Pose ;
  x3do:name 'name' ;
  x3do:value 'T' .
:fieldValue_2_7_2 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :T_Pose ;
  x3do:name 'enabled' ;
  x3do:value true .
:fieldValue_2_7_3 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :T_Pose ;
  x3do:hasChildren :HumanoidImported-USE-1 ;
  x3do:name 'parentHAnimHumanoid' .
:HumanoidImported-USE-1 a owl:NamedIndividual, x3do:HAnimHumanoid ;
  x3do:hasParent :fieldValue_2_7_3 ;
  owl:sameAs :HumanoidImported . # DEF matching this USE
:fieldValue_2_7_4 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :T_Pose ;
  x3do:name 'loa' ;
  x3do:value 1 .
:fieldValue_2_7_5 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :T_Pose ;
  x3do:name 'description' ;
  x3do:value 'arms stretched outward and level similar to letter T' .
:fieldValue_2_7_6 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :T_Pose ;
  x3do:hasChildren :PoseJoint_l_shoulder_1, :PoseJoint_r_shoulder_1 ;
  x3do:name 'children' .
:PoseJoint_l_shoulder_1 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_7_6 ;
  x3do:DEF 'PoseJoint_l_shoulder_1' ;
  x3do:description 'left shoulder' ;
  x3do:name 'l_shoulder' ;
  x3do:rotation ( 0 0 1 1.57 ) .
:PoseJoint_r_shoulder_1 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_7_6 ;
  x3do:DEF 'PoseJoint_r_shoulder_1' ;
  x3do:description 'right shoulder' ;
  x3do:name 'r_shoulder' ;
  x3do:rotation ( 0 0 -1 1.57 ) .
:fieldValue_2_7_7 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :T_Pose ;
  x3do:name 'transitionDuration' ;
  x3do:value '1.3' .
:A_Pose a owl:NamedIndividual, x3do:ProtoInstance ;
  x3do:hasParent :Scene ;
  x3do:hasFieldValue :fieldValue_2_8_1, :fieldValue_2_8_2, :fieldValue_2_8_3, :fieldValue_2_8_4, :fieldValue_2_8_5, :fieldValue_2_8_6, :fieldValue_2_8_7, :fieldValue_2_8_8 ;
  x3do:DEF 'A_Pose' ;
  x3do:name 'HAnimPose' .
:fieldValue_2_8_1 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :A_Pose ;
  x3do:name 'name' ;
  x3do:value 'A' .
:fieldValue_2_8_2 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :A_Pose ;
  x3do:name 'enabled' ;
  x3do:value true .
:fieldValue_2_8_3 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :A_Pose ;
  x3do:hasChildren :HumanoidImported-USE-2 ;
  x3do:name 'parentHAnimHumanoid' .
:HumanoidImported-USE-2 a owl:NamedIndividual, x3do:HAnimHumanoid ;
  x3do:hasParent :fieldValue_2_8_3 ;
  owl:sameAs :HumanoidImported . # DEF matching this USE
:fieldValue_2_8_4 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :A_Pose ;
  x3do:name 'loa' ;
  x3do:value 1 .
:fieldValue_2_8_5 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :A_Pose ;
  x3do:name 'description' ;
  x3do:value 'arms stretched outward and downward similar to letter A' .
:fieldValue_2_8_6 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :A_Pose ;
  x3do:hasChildren :PoseJoint_l_shoulder, :PoseJoint_r_shoulder ;
  x3do:name 'children' .
:PoseJoint_l_shoulder a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_8_6 ;
  x3do:DEF 'PoseJoint_l_shoulder' ;
  x3do:description 'left shoulder' ;
  x3do:name 'l_shoulder' ;
  x3do:rotation ( 0 0 1 0.5 ) .
:PoseJoint_r_shoulder a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_8_6 ;
  x3do:DEF 'PoseJoint_r_shoulder' ;
  x3do:description 'right shoulder' ;
  x3do:name 'r_shoulder' ;
  x3do:rotation ( 0 0 -1 0.5 ) .
:fieldValue_2_8_7 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :A_Pose ;
  x3do:name 'transitionDuration' ;
  x3do:value '1.2' .
:fieldValue_2_8_8 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :A_Pose ;
  x3do:name 'traceEnabled' ;
  x3do:value true .
:TouchDown_Pose a owl:NamedIndividual, x3do:ProtoInstance ;
  x3do:hasParent :Scene ;
  x3do:hasFieldValue :fieldValue_2_9_1, :fieldValue_2_9_2, :fieldValue_2_9_3, :fieldValue_2_9_4, :fieldValue_2_9_5, :fieldValue_2_9_6, :fieldValue_2_9_7, :fieldValue_2_9_8 ;
  x3do:DEF 'TouchDown_Pose' ;
  x3do:name 'HAnimPose' .
:fieldValue_2_9_1 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :TouchDown_Pose ;
  x3do:name 'name' ;
  x3do:value 'TouchDown' .
:fieldValue_2_9_2 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :TouchDown_Pose ;
  x3do:name 'enabled' ;
  x3do:value true .
:fieldValue_2_9_3 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :TouchDown_Pose ;
  x3do:hasChildren :HumanoidImported-USE-3 ;
  x3do:name 'parentHAnimHumanoid' .
:HumanoidImported-USE-3 a owl:NamedIndividual, x3do:HAnimHumanoid ;
  x3do:hasParent :fieldValue_2_9_3 ;
  owl:sameAs :HumanoidImported . # DEF matching this USE
:fieldValue_2_9_4 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :TouchDown_Pose ;
  x3do:name 'loa' ;
  x3do:value 1 .
:fieldValue_2_9_5 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :TouchDown_Pose ;
  x3do:name 'description' ;
  x3do:value 'arms and legs stretched outward providing a TouchDown gesture' .
:fieldValue_2_9_6 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :TouchDown_Pose ;
  x3do:hasChildren :HAnimJoint_2_9_6_1, :HAnimJoint_2_9_6_2, :HAnimJoint_2_9_6_3, :HAnimJoint_2_9_6_4, :HAnimJoint_2_9_6_5, :HAnimJoint_2_9_6_6, :HAnimJoint_2_9_6_7, :HAnimJoint_2_9_6_8, :HAnimJoint_2_9_6_9, :HAnimJoint_2_9_6_10, :HAnimJoint_2_9_6_11, :HAnimJoint_2_9_6_12, :HAnimJoint_2_9_6_13, :HAnimJoint_2_9_6_14, :HAnimJoint_2_9_6_15, :HAnimJoint_2_9_6_16 ;
  x3do:name 'children' .
:HAnimJoint_2_9_6_1 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_9_6 ;
  x3do:name 'humanoid_root' ;
  x3do:rotation ( 0 1 0 -0.698132 ) .
:HAnimJoint_2_9_6_2 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_9_6 ;
  x3do:name 'l_hip' ;
  x3do:rotation ( -1 1 1 1 ) .
:HAnimJoint_2_9_6_3 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_9_6 ;
  x3do:name 'l_knee' ;
  x3do:rotation ( 1 0 0 1 ) .
:HAnimJoint_2_9_6_4 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_9_6 ;
  x3do:name 'l_talocrural' ;
  x3do:rotation ( -0.2 -0 0.1 0.225 ) .
:HAnimJoint_2_9_6_5 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_9_6 ;
  x3do:name 'r_hip' ;
  x3do:rotation ( -1 -1 -1 1 ) .
:HAnimJoint_2_9_6_6 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_9_6 ;
  x3do:name 'r_knee' ;
  x3do:rotation ( 1 0 0 1 ) .
:HAnimJoint_2_9_6_7 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_9_6 ;
  x3do:name 'r_talocrural' ;
  x3do:rotation ( -0.2 0 0.1 0.25 ) .
:HAnimJoint_2_9_6_8 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_9_6 ;
  x3do:name 'vl5' ;
  x3do:rotation ( 0 0 0.01 0.2 ) .
:HAnimJoint_2_9_6_9 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_9_6 ;
  x3do:name 'vt10' ;
  x3do:rotation ( 0 0 0.01 0.1 ) .
:HAnimJoint_2_9_6_10 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_9_6 ;
  x3do:name 'vc4' ;
  x3do:rotation ( 0 0 -0.01 0.15 ) .
:HAnimJoint_2_9_6_11 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_9_6 ;
  x3do:name 'l_shoulder' ;
  x3do:rotation ( -1 0.5 1 2 ) .
:HAnimJoint_2_9_6_12 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_9_6 ;
  x3do:name 'l_elbow' ;
  x3do:rotation ( -1 0 0 1 ) .
:HAnimJoint_2_9_6_13 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_9_6 ;
  x3do:name 'l_radiocarpal' .
:HAnimJoint_2_9_6_14 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_9_6 ;
  x3do:name 'r_shoulder' ;
  x3do:rotation ( -1 -0.5 -1 2.6 ) .
:HAnimJoint_2_9_6_15 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_9_6 ;
  x3do:name 'r_elbow' ;
  x3do:rotation ( -1 0 0 1 ) .
:HAnimJoint_2_9_6_16 a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_9_6 ;
  x3do:name 'r_radiocarpal' .
:fieldValue_2_9_7 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :TouchDown_Pose ;
  x3do:name 'transitionDuration' ;
  x3do:value '1.2' .
:fieldValue_2_9_8 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :TouchDown_Pose ;
  x3do:name 'traceEnabled' ;
  x3do:value true .
:I_Pose a owl:NamedIndividual, x3do:ProtoInstance ;
  x3do:hasParent :Scene ;
  x3do:hasFieldValue :fieldValue_2_10_1, :fieldValue_2_10_2, :fieldValue_2_10_3, :fieldValue_2_10_4, :fieldValue_2_10_5, :fieldValue_2_10_6, :fieldValue_2_10_7, :fieldValue_2_10_8 ;
  x3do:DEF 'I_Pose' ;
  x3do:name 'HAnimPose' .
:fieldValue_2_10_1 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :I_Pose ;
  x3do:name 'name' ;
  x3do:value 'I' .
:fieldValue_2_10_2 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :I_Pose ;
  x3do:name 'enabled' ;
  x3do:value true .
:fieldValue_2_10_3 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :I_Pose ;
  x3do:hasChildren :HumanoidImported-USE-4 ;
  x3do:name 'parentHAnimHumanoid' .
:HumanoidImported-USE-4 a owl:NamedIndividual, x3do:HAnimHumanoid ;
  x3do:hasParent :fieldValue_2_10_3 ;
  owl:sameAs :HumanoidImported . # DEF matching this USE
:fieldValue_2_10_4 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :I_Pose ;
  x3do:name 'loa' ;
  x3do:value 1 .
:fieldValue_2_10_5 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :I_Pose ;
  x3do:name 'description' ;
  x3do:value 'arms and legs straight down default binding pose for baseline Humanoid' .
:fieldValue_2_10_6 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :I_Pose ;
  x3do:name 'children' .
:fieldValue_2_10_7 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :I_Pose ;
  x3do:name 'transitionDuration' ;
  x3do:value '1.5' .
:fieldValue_2_10_8 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :I_Pose ;
  x3do:name 'traceEnabled' ;
  x3do:value true .
:H_Pose a owl:NamedIndividual, x3do:ProtoInstance ;
  x3do:hasParent :Scene ;
  x3do:hasFieldValue :fieldValue_2_11_1, :fieldValue_2_11_2, :fieldValue_2_11_3, :fieldValue_2_11_4, :fieldValue_2_11_5 ;
  x3do:DEF 'H_Pose' ;
  x3do:name 'HAnimPose' .
:fieldValue_2_11_1 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :H_Pose ;
  x3do:name 'name' ;
  x3do:value 'H' .
:fieldValue_2_11_2 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :H_Pose ;
  x3do:name 'enabled' ;
  x3do:value false .
:fieldValue_2_11_3 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :H_Pose ;
  x3do:name 'description' ;
  x3do:value 'TODO experimental pose not yet implemented' .
:fieldValue_2_11_4 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :H_Pose ;
  x3do:name 'transitionDuration' ;
  x3do:value '1.4' .
:fieldValue_2_11_5 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :H_Pose ;
  x3do:name 'traceEnabled' ;
  x3do:value true .
:FaceLeft_Pose a owl:NamedIndividual, x3do:ProtoInstance ;
  x3do:hasParent :Scene ;
  x3do:hasFieldValue :fieldValue_2_12_1, :fieldValue_2_12_2, :fieldValue_2_12_3, :fieldValue_2_12_4, :fieldValue_2_12_5, :fieldValue_2_12_6, :fieldValue_2_12_7, :fieldValue_2_12_8 ;
  x3do:DEF 'FaceLeft_Pose' ;
  x3do:name 'HAnimPose' .
:fieldValue_2_12_1 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :FaceLeft_Pose ;
  x3do:name 'name' ;
  x3do:value 'FaceLeft' .
:fieldValue_2_12_2 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :FaceLeft_Pose ;
  x3do:name 'enabled' ;
  x3do:value true .
:fieldValue_2_12_3 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :FaceLeft_Pose ;
  x3do:hasChildren :HumanoidImported-USE-5 ;
  x3do:name 'parentHAnimHumanoid' .
:HumanoidImported-USE-5 a owl:NamedIndividual, x3do:HAnimHumanoid ;
  x3do:hasParent :fieldValue_2_12_3 ;
  owl:sameAs :HumanoidImported . # DEF matching this USE
:fieldValue_2_12_4 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :FaceLeft_Pose ;
  x3do:name 'loa' ;
  x3do:value 0 .
:fieldValue_2_12_5 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :FaceLeft_Pose ;
  x3do:name 'description' ;
  x3do:value 'Only modify humanoid_root Joint node to face left' .
:fieldValue_2_12_6 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :FaceLeft_Pose ;
  x3do:hasChildren :FaceLeft_humanoid_root ;
  x3do:name 'children' .
:FaceLeft_humanoid_root a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_12_6 ;
  x3do:DEF 'FaceLeft_humanoid_root' ;
  x3do:description 'Only rotate the model' ;
  x3do:name 'humanoid_root' ;
  x3do:rotation ( 0 1 0 1.570796 ) .
:fieldValue_2_12_7 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :FaceLeft_Pose ;
  x3do:name 'transitionDuration' ;
  x3do:value '1.1' .
:fieldValue_2_12_8 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :FaceLeft_Pose ;
  x3do:name 'traceEnabled' ;
  x3do:value true .
:FaceRight_Pose a owl:NamedIndividual, x3do:ProtoInstance ;
  x3do:hasParent :Scene ;
  x3do:hasFieldValue :fieldValue_2_13_1, :fieldValue_2_13_2, :fieldValue_2_13_3, :fieldValue_2_13_4, :fieldValue_2_13_5, :fieldValue_2_13_6, :fieldValue_2_13_7, :fieldValue_2_13_8 ;
  x3do:DEF 'FaceRight_Pose' ;
  x3do:name 'HAnimPose' .
:fieldValue_2_13_1 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :FaceRight_Pose ;
  x3do:name 'name' ;
  x3do:value 'FaceRight' .
:fieldValue_2_13_2 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :FaceRight_Pose ;
  x3do:name 'enabled' ;
  x3do:value true .
:fieldValue_2_13_3 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :FaceRight_Pose ;
  x3do:hasChildren :HumanoidImported-USE-6 ;
  x3do:name 'parentHAnimHumanoid' .
:HumanoidImported-USE-6 a owl:NamedIndividual, x3do:HAnimHumanoid ;
  x3do:hasParent :fieldValue_2_13_3 ;
  owl:sameAs :HumanoidImported . # DEF matching this USE
:fieldValue_2_13_4 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :FaceRight_Pose ;
  x3do:name 'loa' ;
  x3do:value 0 .
:fieldValue_2_13_5 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :FaceRight_Pose ;
  x3do:name 'description' ;
  x3do:value 'Only modify humanoid_root Joint node to face right' .
:fieldValue_2_13_6 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :FaceRight_Pose ;
  x3do:hasChildren :FaceRight_humanoid_root ;
  x3do:name 'children' .
:FaceRight_humanoid_root a owl:NamedIndividual, x3do:HAnimJoint ;
  x3do:hasParent :fieldValue_2_13_6 ;
  x3do:DEF 'FaceRight_humanoid_root' ;
  x3do:description 'Only rotate the model' ;
  x3do:name 'humanoid_root' ;
  x3do:rotation ( 0 1 0 -1.570796 ) .
:fieldValue_2_13_7 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :FaceRight_Pose ;
  x3do:name 'transitionDuration' ;
  x3do:value '1.1' .
:fieldValue_2_13_8 a owl:NamedIndividual, x3do:fieldValue ;
  x3do:hasParent :FaceRight_Pose ;
  x3do:name 'traceEnabled' ;
  x3do:value true .
:InterfaceButtonsGroup a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :DisplayHeader, :T_PoseInterface, :A_PoseInterface, :TouchDown_PoseInterface, :I_PoseInterface, :FaceLeftPoseInterface, :FaceRightPoseInterface, :AnimatePosesInterface, :ResetDefaultPoseInterface ;
  x3do:DEF 'InterfaceButtonsGroup' .
:DisplayHeader a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :InterfaceButtonsGroup ;
  x3do:hasChildren :Shape_2_14_1_1 ;
  x3do:DEF 'DisplayHeader' ;
  x3do:translation ( 0 2 0 ) .
:Shape_2_14_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :DisplayHeader ;
  x3do:hasGeometry :Text_2_14_1_1_1 ;
  x3do:hasAppearance :PoseTextAppearance .
:Text_2_14_1_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_14_1_1 ;
  x3do:hasFontStyle :HeaderFont ;
  x3do:string '"HAnimPosePrototype example implementation"' .
:HeaderFont a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_14_1_1_1 ;
  x3do:DEF 'HeaderFont' ;
  x3do:family '"SANS"' ;
  x3do:justify '"MIDDLE" "MIDDLE"' ;
  x3do:size 0.15 ;
  x3do:cssStyle 'BOLD' .
:PoseTextAppearance a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_1_1 ;
  x3do:hasMaterial :Material_2_14_1_1_2_1 ;
  x3do:DEF 'PoseTextAppearance' .
:Material_2_14_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :PoseTextAppearance ;
  x3do:diffuseColor ( 0.1 0.5 0.3 ) .
:T_PoseInterface a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :InterfaceButtonsGroup ;
  x3do:hasChildren :Shape_2_14_2_1, :Shape_2_14_2_2, :T_PoseTouchSensor ;
  x3do:hasROUTE :ROUTE_2_14_2_4 ;
  x3do:DEF 'T_PoseInterface' ;
  x3do:translation ( -1.5 1.5 0 ) .
:Shape_2_14_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :T_PoseInterface ;
  x3do:hasGeometry :Text_2_14_2_1_1 ;
  x3do:hasAppearance :PoseTextAppearance-USE-1 .
:Text_2_14_2_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_14_2_1 ;
  x3do:hasFontStyle :SharedFont ;
  x3do:string '"\"T\" Pose"' .
:SharedFont a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_14_2_1_1 ;
  x3do:DEF 'SharedFont' ;
  x3do:family '"SANS"' ;
  x3do:justify '"MIDDLE" "MIDDLE"' ;
  x3do:size 0.1 ;
  x3do:cssStyle 'BOLD' .
:PoseTextAppearance-USE-1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_2_1 ;
  owl:sameAs :PoseTextAppearance . # DEF matching this USE
:Shape_2_14_2_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :T_PoseInterface ;
  x3do:hasAppearance :TransparentAppearance ;
  x3do:hasGeometry :Box_2_14_2_2_2 .
:TransparentAppearance a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_2_2 ;
  x3do:hasMaterial :Material_2_14_2_2_1_1 ;
  x3do:DEF 'TransparentAppearance' .
:Material_2_14_2_2_1_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :TransparentAppearance ;
  x3do:transparency 0.8 .
:Box_2_14_2_2_2 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_14_2_2 ;
  x3do:size ( 0.45 0.2 0.001 ) .
:T_PoseTouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :T_PoseInterface ;
  x3do:DEF 'T_PoseTouchSensor' ;
  x3do:description 'select to move shoulders to "T" pose, leave other joints unchanged' .
:ROUTE_2_14_2_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :T_PoseInterface ;
  x3do:fromField 'isActive' ;
  x3do:fromNode 'T_PoseTouchSensor' ;
  x3do:toField 'commencePose' ;
  x3do:toNode 'T_Pose' .
:A_PoseInterface a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :InterfaceButtonsGroup ;
  x3do:hasChildren :Shape_2_14_3_1, :Shape_2_14_3_2, :A_PoseTouchSensor ;
  x3do:hasROUTE :ROUTE_2_14_3_4 ;
  x3do:DEF 'A_PoseInterface' ;
  x3do:translation ( -1.5 1 0 ) .
:Shape_2_14_3_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :A_PoseInterface ;
  x3do:hasGeometry :Text_2_14_3_1_1 ;
  x3do:hasAppearance :PoseTextAppearance-USE-2 .
:Text_2_14_3_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_14_3_1 ;
  x3do:hasFontStyle :SharedFont-USE-1 ;
  x3do:string '"\"A\" Pose"' .
:SharedFont-USE-1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_14_3_1_1 ;
  owl:sameAs :SharedFont . # DEF matching this USE
:PoseTextAppearance-USE-2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_3_1 ;
  owl:sameAs :PoseTextAppearance . # DEF matching this USE
:Shape_2_14_3_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :A_PoseInterface ;
  x3do:hasAppearance :TransparentAppearance-USE-1 ;
  x3do:hasGeometry :Box_2_14_3_2_2 .
:TransparentAppearance-USE-1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_3_2 ;
  owl:sameAs :TransparentAppearance . # DEF matching this USE
:Box_2_14_3_2_2 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_14_3_2 ;
  x3do:size ( 0.45 0.2 0.001 ) .
:A_PoseTouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :A_PoseInterface ;
  x3do:DEF 'A_PoseTouchSensor' ;
  x3do:description 'select to move shoulders to "A" pose, leave other joints unchanged' .
:ROUTE_2_14_3_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :A_PoseInterface ;
  x3do:fromField 'isActive' ;
  x3do:fromNode 'A_PoseTouchSensor' ;
  x3do:toField 'commencePose' ;
  x3do:toNode 'A_Pose' .
:TouchDown_PoseInterface a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :InterfaceButtonsGroup ;
  x3do:hasChildren :Shape_2_14_4_1, :Shape_2_14_4_2, :TouchDown_PoseTouchSensor ;
  x3do:hasROUTE :ROUTE_2_14_4_4 ;
  x3do:DEF 'TouchDown_PoseInterface' ;
  x3do:translation ( -1.5 0.5 0 ) .
:Shape_2_14_4_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :TouchDown_PoseInterface ;
  x3do:hasGeometry :Text_2_14_4_1_1 ;
  x3do:hasAppearance :PoseTextAppearance-USE-3 .
:Text_2_14_4_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_14_4_1 ;
  x3do:hasFontStyle :SharedFont-USE-2 ;
  x3do:string '"TouchDown Pose"' .
:SharedFont-USE-2 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_14_4_1_1 ;
  owl:sameAs :SharedFont . # DEF matching this USE
:PoseTextAppearance-USE-3 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_4_1 ;
  owl:sameAs :PoseTextAppearance . # DEF matching this USE
:Shape_2_14_4_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :TouchDown_PoseInterface ;
  x3do:hasAppearance :TransparentAppearance-USE-2 ;
  x3do:hasGeometry :Box_2_14_4_2_2 .
:TransparentAppearance-USE-2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_4_2 ;
  owl:sameAs :TransparentAppearance . # DEF matching this USE
:Box_2_14_4_2_2 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_14_4_2 ;
  x3do:size ( 0.85 0.2 0.001 ) .
:TouchDown_PoseTouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :TouchDown_PoseInterface ;
  x3do:DEF 'TouchDown_PoseTouchSensor' ;
  x3do:description 'select to transition all joints to TouchDown pose' .
:ROUTE_2_14_4_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :TouchDown_PoseInterface ;
  x3do:fromField 'isActive' ;
  x3do:fromNode 'TouchDown_PoseTouchSensor' ;
  x3do:toField 'commencePose' ;
  x3do:toNode 'TouchDown_Pose' .
:I_PoseInterface a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :InterfaceButtonsGroup ;
  x3do:hasChildren :Shape_2_14_5_1, :Shape_2_14_5_2, :I_PoseTouchSensor ;
  x3do:hasROUTE :ROUTE_2_14_5_4 ;
  x3do:DEF 'I_PoseInterface' ;
  x3do:translation ( -1.5 0.0 0 ) .
:Shape_2_14_5_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :I_PoseInterface ;
  x3do:hasGeometry :Text_2_14_5_1_1 ;
  x3do:hasAppearance :PoseTextAppearance-USE-4 .
:Text_2_14_5_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_14_5_1 ;
  x3do:hasFontStyle :SharedFont-USE-3 ;
  x3do:string '"\"I\" Pose"' .
:SharedFont-USE-3 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_14_5_1_1 ;
  owl:sameAs :SharedFont . # DEF matching this USE
:PoseTextAppearance-USE-4 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_5_1 ;
  owl:sameAs :PoseTextAppearance . # DEF matching this USE
:Shape_2_14_5_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :I_PoseInterface ;
  x3do:hasAppearance :TransparentAppearance-USE-3 ;
  x3do:hasGeometry :Box_2_14_5_2_2 .
:TransparentAppearance-USE-3 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_5_2 ;
  owl:sameAs :TransparentAppearance . # DEF matching this USE
:Box_2_14_5_2_2 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_14_5_2 ;
  x3do:size ( 0.45 0.2 0.001 ) .
:I_PoseTouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :I_PoseInterface ;
  x3do:DEF 'I_PoseTouchSensor' ;
  x3do:description 'select to transition all joints to "I" pose' .
:ROUTE_2_14_5_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :I_PoseInterface ;
  x3do:fromField 'isActive' ;
  x3do:fromNode 'I_PoseTouchSensor' ;
  x3do:toField 'commencePose' ;
  x3do:toNode 'I_Pose' .
:FaceLeftPoseInterface a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :InterfaceButtonsGroup ;
  x3do:hasChildren :Shape_2_14_6_1, :Shape_2_14_6_2, :FaceLeftTouchSensor ;
  x3do:hasROUTE :ROUTE_2_14_6_4 ;
  x3do:DEF 'FaceLeftPoseInterface' ;
  x3do:translation ( 1.5 1.5 0 ) .
:Shape_2_14_6_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :FaceLeftPoseInterface ;
  x3do:hasGeometry :Text_2_14_6_1_1 ;
  x3do:hasAppearance :PoseTextAppearance-USE-5 .
:Text_2_14_6_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_14_6_1 ;
  x3do:hasFontStyle :SharedFont-USE-4 ;
  x3do:string '"Face Left Pose"' .
:SharedFont-USE-4 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_14_6_1_1 ;
  owl:sameAs :SharedFont . # DEF matching this USE
:PoseTextAppearance-USE-5 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_6_1 ;
  owl:sameAs :PoseTextAppearance . # DEF matching this USE
:Shape_2_14_6_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :FaceLeftPoseInterface ;
  x3do:hasAppearance :TransparentAppearance-USE-4 ;
  x3do:hasGeometry :Box_2_14_6_2_2 .
:TransparentAppearance-USE-4 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_6_2 ;
  owl:sameAs :TransparentAppearance . # DEF matching this USE
:Box_2_14_6_2_2 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_14_6_2 ;
  x3do:size ( 0.9 0.2 0.001 ) .
:FaceLeftTouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :FaceLeftPoseInterface ;
  x3do:DEF 'FaceLeftTouchSensor' ;
  x3do:description 'select to rotate body and Face Left, leave other joints unchanged' .
:ROUTE_2_14_6_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :FaceLeftPoseInterface ;
  x3do:fromField 'isActive' ;
  x3do:fromNode 'FaceLeftTouchSensor' ;
  x3do:toField 'commencePose' ;
  x3do:toNode 'FaceLeft_Pose' .
:FaceRightPoseInterface a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :InterfaceButtonsGroup ;
  x3do:hasChildren :Shape_2_14_7_1, :Shape_2_14_7_2, :FaceRightTouchSensor ;
  x3do:hasROUTE :ROUTE_2_14_7_4 ;
  x3do:DEF 'FaceRightPoseInterface' ;
  x3do:translation ( 1.5 1 0 ) .
:Shape_2_14_7_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :FaceRightPoseInterface ;
  x3do:hasGeometry :Text_2_14_7_1_1 ;
  x3do:hasAppearance :PoseTextAppearance-USE-6 .
:Text_2_14_7_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_14_7_1 ;
  x3do:hasFontStyle :SharedFont-USE-5 ;
  x3do:string '"Face Right Pose"' .
:SharedFont-USE-5 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_14_7_1_1 ;
  owl:sameAs :SharedFont . # DEF matching this USE
:PoseTextAppearance-USE-6 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_7_1 ;
  owl:sameAs :PoseTextAppearance . # DEF matching this USE
:Shape_2_14_7_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :FaceRightPoseInterface ;
  x3do:hasAppearance :TransparentAppearance-USE-5 ;
  x3do:hasGeometry :Box_2_14_7_2_2 .
:TransparentAppearance-USE-5 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_7_2 ;
  owl:sameAs :TransparentAppearance . # DEF matching this USE
:Box_2_14_7_2_2 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_14_7_2 ;
  x3do:size ( 0.9 0.2 0.001 ) .
:FaceRightTouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :FaceRightPoseInterface ;
  x3do:DEF 'FaceRightTouchSensor' ;
  x3do:description 'select to rotate body and Face Right, leave other joints unchanged' .
:ROUTE_2_14_7_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :FaceRightPoseInterface ;
  x3do:fromField 'isActive' ;
  x3do:fromNode 'FaceRightTouchSensor' ;
  x3do:toField 'commencePose' ;
  x3do:toNode 'FaceRight_Pose' .
:AnimatePosesInterface a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :InterfaceButtonsGroup ;
  x3do:hasChildren :Shape_2_14_8_1, :Shape_2_14_8_2, :AnimatePosesTouchSensor, :AnimatePosesClock, :AnimatePosesLoopInterpolator ;
  x3do:hasROUTE :ROUTE_2_14_8_6, :ROUTE_2_14_8_7, :ROUTE_2_14_8_8 ;
  x3do:DEF 'AnimatePosesInterface' ;
  x3do:translation ( 1.5 0.5 0 ) .
:Shape_2_14_8_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :AnimatePosesInterface ;
  x3do:hasGeometry :Text_2_14_8_1_1 ;
  x3do:hasAppearance :AnimationTextAppearance .
:Text_2_14_8_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_14_8_1 ;
  x3do:hasFontStyle :SharedFont-USE-6 ;
  x3do:string '"Direct animation" "to, from \"I\" Pose"' .
:SharedFont-USE-6 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_14_8_1_1 ;
  owl:sameAs :SharedFont . # DEF matching this USE
:AnimationTextAppearance a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_8_1 ;
  x3do:hasMaterial :Material_2_14_8_1_2_1 ;
  x3do:DEF 'AnimationTextAppearance' .
:Material_2_14_8_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :AnimationTextAppearance ;
  x3do:diffuseColor ( 0.1 0.2 0.3 ) .
:Shape_2_14_8_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :AnimatePosesInterface ;
  x3do:hasAppearance :TransparentAppearance-USE-6 ;
  x3do:hasGeometry :Box_2_14_8_2_2 .
:TransparentAppearance-USE-6 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_8_2 ;
  owl:sameAs :TransparentAppearance . # DEF matching this USE
:Box_2_14_8_2_2 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_14_8_2 ;
  x3do:size ( 0.9 0.25 0.001 ) .
:AnimatePosesTouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :AnimatePosesInterface ;
  x3do:DEF 'AnimatePosesTouchSensor' ;
  x3do:description 'select to animate current pose to "I" pose, then back to original pose, using TimeSensor events' .
:AnimatePosesClock a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :AnimatePosesInterface ;
  x3do:DEF 'AnimatePosesClock' ;
  x3do:cycleInterval '4' ;
  x3do:description 'directly animate several poses' .
:AnimatePosesLoopInterpolator a owl:NamedIndividual, x3do:ScalarInterpolator ;
  x3do:hasParent :AnimatePosesInterface ;
  x3do:DEF 'AnimatePosesLoopInterpolator' ;
  x3do:key ( 0 0.05 0.45 0.55 0.95 1 ) ;
  x3do:keyValue ( 0 0 1 1 0 0 ) .
:ROUTE_2_14_8_6 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :AnimatePosesInterface ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'AnimatePosesTouchSensor' ;
  x3do:toField 'startTime' ;
  x3do:toNode 'AnimatePosesClock' .
:ROUTE_2_14_8_7 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :AnimatePosesInterface ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'AnimatePosesClock' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'AnimatePosesLoopInterpolator' .
:ROUTE_2_14_8_8 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :AnimatePosesInterface ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'AnimatePosesLoopInterpolator' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'I_Pose' .
:ResetDefaultPoseInterface a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :InterfaceButtonsGroup ;
  x3do:hasChildren :Shape_2_14_9_1, :Shape_2_14_9_2, :ResetPoseTouchSensor ;
  x3do:hasROUTE :ROUTE_2_14_9_4 ;
  x3do:DEF 'ResetDefaultPoseInterface' ;
  x3do:translation ( 1.5 0.0 0 ) .
:Shape_2_14_9_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ResetDefaultPoseInterface ;
  x3do:hasGeometry :Text_2_14_9_1_1 ;
  x3do:hasAppearance :AnimationTextAppearance-USE-1 .
:Text_2_14_9_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_14_9_1 ;
  x3do:hasFontStyle :SharedFont-USE-7 ;
  x3do:string '"Reset All Joints" "to Default \"I\" Pose"' .
:SharedFont-USE-7 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_14_9_1_1 ;
  owl:sameAs :SharedFont . # DEF matching this USE
:AnimationTextAppearance-USE-1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_9_1 ;
  owl:sameAs :AnimationTextAppearance . # DEF matching this USE
:Shape_2_14_9_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ResetDefaultPoseInterface ;
  x3do:hasAppearance :TransparentAppearance-USE-7 ;
  x3do:hasGeometry :Box_2_14_9_2_2 .
:TransparentAppearance-USE-7 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_9_2 ;
  owl:sameAs :TransparentAppearance . # DEF matching this USE
:Box_2_14_9_2_2 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_14_9_2 ;
  x3do:size ( 0.9 0.25 0.001 ) .
:ResetPoseTouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :ResetDefaultPoseInterface ;
  x3do:DEF 'ResetPoseTouchSensor' ;
  x3do:description 'select to immediately Rezero All Joints (to default "I" Pose) by sending resetAllJoints event' .
:ROUTE_2_14_9_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ResetDefaultPoseInterface ;
  x3do:fromField 'isActive' ;
  x3do:fromNode 'ResetPoseTouchSensor' ;
  x3do:toField 'resetAllJoints' ;
  x3do:toNode 'FaceLeft_Pose' .
:HandleInlineLoadsensorRouting a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Scene ;
  x3do:hasROUTE :ROUTE_2_15_1, :ROUTE_2_15_2, :ROUTE_2_15_3, :ROUTE_2_15_4, :ROUTE_2_15_5, :ROUTE_2_15_6, :ROUTE_2_15_7 ;
  x3do:DEF 'HandleInlineLoadsensorRouting' .
:ROUTE_2_15_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :HandleInlineLoadsensorRouting ;
  x3do:fromField 'isLoaded' ;
  x3do:fromNode 'HumanoidInlineLoadSensor' ;
  x3do:toField 'isLoaded' ;
  x3do:toNode 'A_Pose' .
:ROUTE_2_15_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :HandleInlineLoadsensorRouting ;
  x3do:fromField 'isLoaded' ;
  x3do:fromNode 'HumanoidInlineLoadSensor' ;
  x3do:toField 'isLoaded' ;
  x3do:toNode 'H_Pose' .
:ROUTE_2_15_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :HandleInlineLoadsensorRouting ;
  x3do:fromField 'isLoaded' ;
  x3do:fromNode 'HumanoidInlineLoadSensor' ;
  x3do:toField 'isLoaded' ;
  x3do:toNode 'I_Pose' .
:ROUTE_2_15_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :HandleInlineLoadsensorRouting ;
  x3do:fromField 'isLoaded' ;
  x3do:fromNode 'HumanoidInlineLoadSensor' ;
  x3do:toField 'isLoaded' ;
  x3do:toNode 'T_Pose' .
:ROUTE_2_15_5 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :HandleInlineLoadsensorRouting ;
  x3do:fromField 'isLoaded' ;
  x3do:fromNode 'HumanoidInlineLoadSensor' ;
  x3do:toField 'isLoaded' ;
  x3do:toNode 'FaceLeft_Pose' .
:ROUTE_2_15_6 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :HandleInlineLoadsensorRouting ;
  x3do:fromField 'isLoaded' ;
  x3do:fromNode 'HumanoidInlineLoadSensor' ;
  x3do:toField 'isLoaded' ;
  x3do:toNode 'FaceRight_Pose' .
:ROUTE_2_15_7 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :HandleInlineLoadsensorRouting ;
  x3do:fromField 'isLoaded' ;
  x3do:fromNode 'HumanoidInlineLoadSensor' ;
  x3do:toField 'isLoaded' ;
  x3do:toNode 'TouchDown_Pose' .
