--- a
+++ b/Application/Examples/SeatedHuman/Model/JointsAndDrivers.any
@@ -0,0 +1,450 @@
+AnyFolder Jnt={
+  
+  AnyFolder &RefP=..EnvironmentModel;
+  AnyFolder &RefS=.Segments;
+  AnyFolder &RefH = ..BodyModel;
+  
+  //----------------------------------------------
+  // Joints - Pelvis - Seat
+  //----------------------------------------------
+  
+  AnyFolder PelvisSeatJnt = {
+    
+    AnyKinLinear PelvisSeatLinMeasure = {
+      AnyRefFrame &SeatRef = ..RefP.Seg.Seat.SeatPelvisJntNode;
+      SeatRef = {
+        //AnyDrawRefFrame test ={ScaleXYZ={0.4,0.4,0.4};};
+      };
+      AnyRefFrame &PelvisRef = ..RefS.Pelvis.Seat_contactCenter;
+      Ref = 0;
+    };
+    
+    AnyKinRotational PelvisSeatRotMeasure = {
+      AnyRefFrame &SeatRef = ..RefP.Seg.Seat.SeatPelvisJntNode;
+      AnyRefFrame &PelvisRef = ..RefS.Pelvis.Seat_contactCenter;  
+      Type = RotVector;
+    };
+    
+    AnyKinEqSimpleDriver PelvisSeatEq = {
+      AnyKinLinear &LinearMeasure  = .PelvisSeatLinMeasure;
+      AnyKinRotational &RotMeasure = .PelvisSeatRotMeasure;        
+      MeasureOrganizer = {0,2,3,4};
+      DriverPos = {-0.04,0,0,0};
+      DriverVel = {0,0,0,0};
+      Reaction.Type = {Off,Off,Off,Off};
+    };          
+    
+    AnyKinMeasureOrg PelvisSeatMeasureOrg = {
+      AnyKinLinear &LinearMeasure = .PelvisSeatLinMeasure;
+      MeasureOrganizer = {0};
+    };
+  }; // PelvisSeatJnt
+  
+  //------------------------------------------------
+  // Joint - BackRest - Thorax 
+  //------------------------------------------------
+  AnyFolder BackRestThoraxJnt = {
+    
+    AnyKinLinear BackRestThoraxLinMeasure = {
+      AnyRefFrame &BackRestRef = ..RefP.Seg.BackRest;
+      AnyRefFrame &ThoraxRef = ..RefH.Trunk.SegmentsThorax.ThoraxSeg.T2SupportNode;//ThoraxBackRestJntNode;
+      Ref = 0;
+    };
+    
+    AnyKinEqSimpleDriver BackRestThoraxEq = {
+      AnyKinLinear &LinearMeasure = .BackRestThoraxLinMeasure;
+      MeasureOrganizer = {0};
+      DriverPos = {0.03};
+      DriverVel = {0};
+      Reaction.Type = {Off};
+    };
+  }; // BackRestThoraxJnt
+  
+  AnyFolder FootRestFootJnt = {
+    
+    AnyFolder Right = {      
+      
+      AnyKinLinear FootRestFootLinMeasure = {
+        AnyRefFrame &FootRestRef = ...RefP.Seg.FootRest.FootRestRotNodeRight;//FootRestFootJntNodeRight;
+        AnyRefFrame &FootRef = ...RefH.Right.Leg.Seg.Foot.AnatomicalFrame.FootFootRestJntNode;
+        Ref = 0;
+      };
+      
+      AnyKinRotational FootRestFootRotMeasure = {
+        AnyRefFrame &FootRestRef = .FootRestFootLinMeasure.FootRestRef;
+        AnyRefFrame &FootRef = .FootRestFootLinMeasure.FootRef;
+        Type = RotVector;
+      };
+      
+      AnyKinEqSimpleDriver FootRestFootEq = {
+        AnyKinLinear &LinMeasure = .FootRestFootLinMeasure;
+        AnyKinRotational &RotMeasure = .FootRestFootRotMeasure;
+        MeasureOrganizer = {0,1,2,4,5};
+        DriverPos = {0.01,0,0,0,0};
+        DriverVel = {0,0,0,0,0};       
+        Reaction.Type = {Off,Off,Off,Off,Off};        
+      };  
+      
+      AnyKinMeasureOrg FootRestFootMeasureOrg = {
+        AnyKinLinear &LinearMeasure = .FootRestFootLinMeasure;
+        MeasureOrganizer = {0};
+      };
+      
+      AnyKinEqSimpleDriver AnkleDriver ={
+        #if BM_LEG_MODEL == _LEG_MODEL_LEG_
+          AnyJoint &ref = ...RefH.Right.Leg.Jnt.Ankle;
+          MeasureOrganizer={1};
+        #else
+          AnyJoint &ref = ...RefH.Right.Leg.Jnt.SubTalar;
+        #endif        
+        DriverPos={0};
+        DriverVel={0};
+        Reaction.Type = {Off};
+      };
+    }; //Right
+    
+    AnyFolder Left = {
+      
+      AnyKinLinear FootRestFootLinMeasure = {
+        AnyRefFrame &FootRestRef = ...RefP.Seg.FootRest.FootRestRotNodeLeft;
+        AnyRefFrame &FootRef = ...RefH.Left.Leg.Seg.Foot.AnatomicalFrame.FootFootRestJntNode;
+        Ref = 0;
+      };
+      
+      AnyKinRotational FootRestFootRotMeasure = {
+        AnyRefFrame &FootRestRef = .FootRestFootLinMeasure.FootRestRef;
+        AnyRefFrame &FootRef = .FootRestFootLinMeasure.FootRef;
+
+        Type = RotVector;
+      };
+      AnyKinEqSimpleDriver FootRestFootEq = {
+        AnyKinLinear &LinMeasure = .FootRestFootLinMeasure;
+        AnyKinRotational &RotMeasure = .FootRestFootRotMeasure;
+        MeasureOrganizer = {0,1,2,4,5};
+        DriverPos = {0.01,0,0,0,0};
+        DriverVel = {0,0,0,0,0};  
+        Reaction.Type = {Off,Off,Off,Off,Off};        
+      };       
+      
+      AnyKinMeasureOrg FootRestFootMeasureOrg = {
+        AnyKinLinear &LinearMeasure = .FootRestFootLinMeasure;
+        MeasureOrganizer = {0};
+      };
+      
+      AnyKinEqSimpleDriver AnkleDriver ={
+        #if BM_LEG_MODEL == _LEG_MODEL_LEG_
+          AnyJoint &ref = ...RefH.Left.Leg.Jnt.Ankle;
+          MeasureOrganizer={1};
+        #else
+          AnyJoint &ref = ...RefH.Left.Leg.Jnt.SubTalar;
+        #endif        
+        DriverPos={0};
+        DriverVel={0};
+        Reaction.Type = {Off};
+      };
+    }; //Left    
+    
+  }; // FootFootRestJnt  
+  
+  AnyFolder UlnaArmRestJnt = {
+    
+    AnyFolder Right = {
+      AnyKinEqSimpleDriver ArmRestElbowLinMeasureXDrv={
+        AnyKinLinear ArmRestElbowLinMeasure = {
+          AnyRefFrame &ArmRest = ....RefP.Seg.Right.ArmRest.ArmRestUlnaJntNodeBack;
+          AnyRefFrame &Ulna = ....RefH.Right.ShoulderArm.Seg.Ulna.ol;
+        };        
+        MeasureOrganizer = {1};
+        DriverPos={0};
+        DriverVel={0};
+        Reaction.Type={Off};
+      };
+            
+      AnyKinEqSimpleDriver ArmRestWristLinMeasureXDrv={
+        AnyKinLinear ArmRestWristLinMeasure = {
+          AnyRefFrame &ArmRest = ....RefP.Seg.Right.ArmRest.ArmRestUlnaJntNodeFront;
+          AnyRefFrame &Ulna = ....RefH.Right.ShoulderArm.Seg.Ulna.us;
+        };
+        MeasureOrganizer = {1,2};
+        DriverPos={0,0};
+        DriverVel={0,0};
+        Reaction.Type={Off,Off};
+      };      
+    }; // Right
+    
+    AnyFolder Left = {
+      AnyKinEqSimpleDriver ArmRestElbowLinMeasureXDrv={
+        AnyKinLinear ArmRestElbowLinMeasure = {
+          AnyRefFrame &ArmRest = ....RefP.Seg.Left.ArmRest.ArmRestUlnaJntNodeBack;
+          AnyRefFrame &Ulna = ....RefH.Left.ShoulderArm.Seg.Ulna.ol;
+        };        
+        MeasureOrganizer = {1};
+        DriverPos={0};
+        DriverVel={0};
+        Reaction.Type={Off};
+      };
+            
+      AnyKinEqSimpleDriver ArmRestWristLinMeasureXDrv={
+        AnyKinLinear ArmRestWristLinMeasure = {
+          AnyRefFrame &ArmRest = ....RefP.Seg.Left.ArmRest.ArmRestUlnaJntNodeFront;
+          AnyRefFrame &Ulna = ....RefH.Left.ShoulderArm.Seg.Ulna.us;
+        };
+        MeasureOrganizer = {1,2};
+        DriverPos={0,0};
+        DriverVel={0,0};
+        Reaction.Type={Off,Off};
+      };      
+    }; // Left    
+  }; // UlnaArmRestJnt
+}; //Jnt
+
+//--------------------------------------------------
+// Drivers
+//--------------------------------------------------
+
+AnyFolder Drivers = {
+  
+  AnyFolder &RefHM = Main.Model.BodyModel;
+  AnyFolder &RefPM = Main.Model.EnvironmentModel;
+  AnyFolder &DrvPos = Main.DrvPos;
+  AnyFolder &DrvVel = Main.DrvVel;
+  AnyFolder &JntPos=..Mannequin.Posture;
+  AnyFolder &JntVel=..Mannequin.PostureVel;
+  
+  //-------------------------------------------------------
+  //  Drivers - spine
+  //-------------------------------------------------------
+  
+  AnyKinEqSimpleDriver PelvisSeatDrv = {
+    AnyKinMeasure& LinMeasure = ..Jnt.PelvisSeatJnt.PelvisSeatLinMeasure;
+    MeasureOrganizer = {1};    
+    DriverPos = {-.DrvPos.PelvisSeatLinXPos};
+    DriverVel = {-.DrvVel.PelvisSeatLinXVel};
+    Reaction.Type = {Off}; 
+  };    
+  
+  //-------------------------------------------------------
+  //  Drivers - spine
+  //-------------------------------------------------------
+  
+  //Thorax pelvis rotation driver
+  AnyKinEqSimpleDriver PostureDriver ={
+    AnyKinMeasure& Ref2 = ...BodyModel.Interface.Trunk.PelvisThoraxLateralBending;        
+    AnyKinMeasure& Ref3 = ...BodyModel.Interface.Trunk.PelvisThoraxRotation;   
+    //AnyKinMeasure& Ref1 = ...BodyModel.Interface.Trunk.PelvisThoraxExtension;
+    
+    DriverPos = pi/180*{
+      .JntPos.PelvisThoraxLateralBending,
+      .JntPos.PelvisThoraxRotation
+      // .JntPos.PelvisThoraxExtension
+    };
+    DriverVel = pi/180*{
+      .JntVel.PelvisThoraxLateralBending,
+      .JntVel.PelvisThoraxRotation
+      //  .JntVel.PelvisThoraxExtension
+    };
+    Reaction.Type = {Off,Off};  
+  };  
+  
+  //Neck driver 
+  AnyKinEqSimpleDriver NeckJntDriver = {
+    AnyKinMeasure& lb = ...BodyModel.Interface.Trunk.SkullThoraxLateralBending;
+    AnyKinMeasure& ar = ...BodyModel.Interface.Trunk.SkullThoraxRotation;
+    AnyKinMeasure& fe = ...BodyModel.Interface.Trunk.SkullThoraxFlexion;
+    DriverPos = pi/180*{.JntPos.NeckLateralBending, .JntPos.NeckRotation, -1*.JntPos.NeckExtension};
+    DriverVel = pi/180*{.JntVel.NeckLateralBending, .JntVel.NeckRotation, -1*.JntVel.NeckExtension};
+    Reaction.Type = {Off, Off, Off};
+  };
+  
+  //This was not previously... but is easier to use with the detailed spine
+  AnyKinRotational PelvisGlobalRotMeasure = {
+    AnyRefFrame &PelvisRef = .RefHM.Trunk.SegmentsLumbar.PelvisSeg;  
+    AnyRefFrame &GlobalRef = .RefPM.GlobalRef;
+    Type = RotVector;
+  };
+  
+  AnyKinMeasureOrg PelvisGlobalRotZMeasure = {
+    AnyKinMeasure& RotMeasure = .PelvisGlobalRotMeasure;
+    MeasureOrganizer = {2};
+  };
+  
+  AnyKinRotational ThoraxGlobalRotMeasure = {
+    AnyRefFrame &ThoraxRef = .RefHM.Trunk.SegmentsThorax.ThoraxSeg;  
+    AnyRefFrame &GlobalRef = .RefPM.GlobalRef;
+    Type = RotVector;
+  }; 
+  
+  AnyKinMeasureOrg ThoraxGlobalRotZMeasure = {
+    AnyKinMeasure& RotMeasure = .ThoraxGlobalRotMeasure;
+    MeasureOrganizer = {2};
+  }; 
+  
+  
+//  AnyKinEqSimpleDriver PelvisSeatRhythmDrv = {
+//    AnyKinMeasureLinComb Measure = {
+//      AnyKinMeasure& u1 = ..PelvisGlobalRotZMeasure;
+//      AnyKinMeasure& u2 = ..ThoraxGlobalRotZMeasure;
+//      Coef = {{1/(0.0533), -1/(0.0533)}};
+//      Const = {-(0.6665/(-0.1433))};
+//    }; // Measure
+//    DriverPos = {180*pi/180+Main.DrvPos.GlobalBackRestRotZPos};
+//    DriverVel = {Main.DrvVel.GlobalBackRestRotZVel};
+//    Reaction.Type = {Off};
+//  }; // SeatBackRestDrv
+
+//AnyKinEqSimpleDriver tmp = {
+//  AnyKinRotational PelvisThorax = {
+//    AnyRefFrame &Thorax = Main.Model.BodyModel.Trunk.SegmentsThorax.ThoraxSeg;
+//    AnyRefFrame &Pelvis = Main.Model.BodyModel.Trunk.SegmentsLumbar.PelvisSeg;
+//    Type = RotAxesAngles;
+//  };
+//  MeasureOrganizer = {0};
+//  DriverPos = {30*pi/180};
+//  DriverVel = {-15*pi/180};
+//};
+
+
+  AnyKinEq ThoraxThighRhythm = {
+    AnyKinMeasureLinComb ThoraxThighRhythmComb = {
+      AnyKinMeasureOrg Org = {
+        AnySphericalJoint &rhip1 = Main.Model.BodyModel.Right.Leg.Jnt.Hip;
+        AnySphericalJoint &lhip2 = Main.Model.BodyModel.Left.Leg.Jnt.Hip;
+        AnyKinRotational PelvisThorax = {
+          AnyRefFrame &Thorax = Main.Model.BodyModel.Trunk.SegmentsThorax.ThoraxSeg;
+          AnyRefFrame &Pelvis = Main.Model.BodyModel.Trunk.SegmentsLumbar.PelvisSeg;
+          Type = RotAxesAngles;
+        };
+        MeasureOrganizer = {2, 5, 6};
+      };
+      OutDim = 1;
+      Coef = {{0.5, 0.5, 3.0}};
+      Const = {0};
+    };
+    Reaction.Type={Off}; 
+  };
+  
+  AnyFolder Right = {
+    
+    // ************************************
+    // Drivers for the right arm
+    // ************************************
+    
+    //Sterno clavicular joint driver
+    AnyKinEqSimpleDriver SCDriverRight ={
+      AnyKinMeasure& ref1 =....BodyModel.Interface.Right.SternoClavicularProtraction;
+      AnyKinMeasure& ref2 =....BodyModel.Interface.Right.SternoClavicularElevation;
+      DriverPos = pi/180*{
+        ..JntPos.Right.SternoClavicularProtraction,
+        ..JntPos.Right.SternoClavicularElevation
+      };
+      DriverVel = {
+        ..JntVel.Right.SternoClavicularProtraction,
+        ..JntVel.Right.SternoClavicularElevation
+      };
+      Reaction.Type={Off,Off};
+    };
+    
+    //Glenohumeral joint 
+    AnyKinEqSimpleDriver GHDriverRight={
+      AnyKinMeasure& ref1 = ....BodyModel.Interface.Right.GlenohumeralAbduction;
+//      AnyKinMeasure& ref3 = ....BodyModel.Interface.Right.GlenohumeralExternalRotation;
+      
+      DriverPos=pi/180*{
+        ..JntPos.Right.GlenohumeralAbduction  //GH joint
+//        ..JntPos.Right.GlenohumeralExternalRotation  //GH joint
+      };
+      DriverVel = pi/180*{
+        ..JntVel.Right.GlenohumeralAbduction  //GH joint
+//        ..JntVel.Right.GlenohumeralExternalRotation  //GH joint
+      };
+      Reaction.Type={Off};
+    };
+    
+    //Elbow pronation driver
+    AnyKinEqSimpleDriver ElbowPronationDriverRight={
+      AnyKinMeasure& Elbow =....BodyModel.Interface.Right.ElbowPronation;
+      DriverPos = pi/180*{..JntPos.Right.ElbowPronation };  
+      
+      DriverVel=pi/180*{..JntVel.Right.ElbowPronation };  
+      Reaction.Type={Off};
+    };
+    
+    //Wrist driver 
+    AnyKinEqSimpleDriver WristDriverRight ={
+      AnyKinMeasure& ref1 =....BodyModel.Interface.Right.WristFlexion;
+      AnyKinMeasure& ref2 =....BodyModel.Interface.Right.WristAbduction;
+      DriverPos = pi/180*{
+        ..JntPos.Right.WristFlexion,
+        ..JntPos.Right.WristAbduction
+      };
+      
+      DriverVel = pi/180*{
+        ..JntVel.Right.WristFlexion,
+        ..JntVel.Right.WristAbduction};
+      Reaction.Type={Off,Off};
+    };
+    
+  }; //End Right
+  
+  AnyFolder Left = {
+    
+    // ************************************
+    // Drivers for the left arm
+    // ************************************
+    
+    //Sterno clavicular joint driver
+    AnyKinEqSimpleDriver SCDriverLeft ={
+      AnyKinMeasure& ref1 =....BodyModel.Interface.Left.SternoClavicularProtraction;
+      AnyKinMeasure& ref2 =....BodyModel.Interface.Left.SternoClavicularElevation;
+      
+      DriverPos = pi/180*{
+        ..JntPos.Left.SternoClavicularProtraction,
+        ..JntPos.Left.SternoClavicularElevation
+      };
+      
+      DriverVel = pi/180*{
+        ..JntVel.Left.SternoClavicularProtraction,
+        ..JntVel.Left.SternoClavicularElevation
+      };
+      
+      Reaction.Type={Off,Off};
+    };
+    
+    //Glenohumeral joint 
+    AnyKinEqSimpleDriver GHDriverLeft={
+      AnyKinMeasure& ref1 = ....BodyModel.Interface.Left.GlenohumeralAbduction;
+//      AnyKinMeasure& ref3 = ....BodyModel.Interface.Left.GlenohumeralExternalRotation;
+      
+      DriverPos=pi/180*{
+        ..JntPos.Left.GlenohumeralAbduction  //GH joint
+//        ..JntPos.Left.GlenohumeralExternalRotation  //GH joint
+      };
+      DriverVel = pi/180*{
+        ..JntVel.Left.GlenohumeralAbduction  //GH joint
+//        ..JntVel.Left.GlenohumeralExternalRotation  //GH joint
+      };
+      Reaction.Type={Off};
+    };
+    
+    //Elbow pronation driver 
+    AnyKinEqSimpleDriver ElbowPSDriverLeft={
+      AnyKinMeasure& Elbow =....BodyModel.Interface.Left.ElbowPronation;
+      DriverPos= pi/180*{..JntPos.Left.ElbowPronation };  
+      DriverVel = pi/180*{..JntVel.Left.ElbowPronation };  
+      Reaction.Type={Off};
+    };
+    //Wrist driver
+    AnyKinEqSimpleDriver WristDriverLeft ={
+      AnyKinMeasure& ref1 =....BodyModel.Interface.Left.WristFlexion;
+      AnyKinMeasure& ref2 =....BodyModel.Interface.Left.WristAbduction;
+      DriverPos = pi/180*{
+        ..JntPos.Left.WristFlexion,
+        ..JntPos.Left.WristAbduction};
+      
+      DriverVel = pi/180*{
+        ..JntVel.Left.WristFlexion,
+        ..JntVel.Left.WristAbduction};
+      Reaction.Type={Off,Off};
+    };
+  }; //End Left    
+}; // Drivers