private boolean evaluateOShape() {
		PVector rHandlHand = PVector.sub(skeleton.getJointLCS(Skeleton.RIGHT_HAND),skeleton.getJointLCS(Skeleton.LEFT_HAND));
		if (SkeletonMath.isValueBetween(rHandlHand.mag(),0,100+(100*postureTolerance))) {
			float angleLUpper = PVector.angleBetween(skeleton.getLeftUpperArmLCS(),skeleton.getOrientationY());
			float angleRUpper = PVector.angleBetween(skeleton.getRightUpperArmLCS(),skeleton.getOrientationY());
			float angleLLower = PVector.angleBetween(skeleton.getLeftLowerArmLCS(),skeleton.getLeftUpperArmLCS());
			float angleRLower = PVector.angleBetween(skeleton.getRightLowerArmLCS(),skeleton.getRightUpperArmLCS());
			float angleToBody = PVector.angleBetween(PVector.add(skeleton.getLeftUpperArmLCS(),skeleton.getRightUpperArmLCS()),skeleton.getOrientationY());
			if (SkeletonMath.isValueBetween(angleLUpper,PApplet.radians(40)-postureAngleTolerance,PApplet.radians(50)+postureAngleTolerance) && SkeletonMath.isValueBetween(angleRUpper,PApplet.radians(40)-postureAngleTolerance,PApplet.radians(50)+postureAngleTolerance)) { // ~45 degree
				if (SkeletonMath.isValueBetween(angleLLower,PApplet.radians(95)-postureAngleTolerance,PApplet.radians(105)+postureAngleTolerance) && SkeletonMath.isValueBetween(angleRLower,PApplet.radians(95)-postureAngleTolerance,PApplet.radians(105)+postureAngleTolerance)) { // ~100 degree
					if (SkeletonMath.isValueBetween(angleToBody,0,PApplet.radians(15)+postureAngleTolerance)) { // sum of upper arms parallel to body y axis
						return true;
					}
				}
			}
		}
		return false;
	}