anchor.diff:                sweptAngle = (circle.progress - (previousGesture as CircleGesture).progress) * 2 * Math.PI;
               }
             }
  +          
  +          link["/gestures/circle/state"].value = Value.of(getState(circle.state));
  +          link["/gestures/circle/direction"].value = Value.of(clockwiseness);
  +          link["/gestures/circle/sweptAngle"].value = Value.of(LeapUtil.toDegrees(sweptAngle));
  +          link["/gestures/circle/progress"].value = Value.of(circle.progress);
  +          link["/gestures/circle/radius"].value = Value.of(circle.radius);
             //print("Circle id:" + circle.id.toString() + ", " + circle.state.toString() + ", progress:" + circle.progress.toString() + ", radius:" + circle.radius.toString() + ", angle:" + LeapUtil.toDegrees(sweptAngle).toString() + ", " + clockwiseness);
             break;
           case Gesture.TYPE_SWIPE:
             SwipeGesture swipe = gesture as SwipeGesture;
             
  -          DSNode swipeNode = rootNode.children["gestures"].children["swipe"];
  -          
  -          var state = getState(swipe.state);
  -          if (swipeNode.children["state"].value.toString() != state) {
  -            swipeNode.children["state"].value = Value.of(state);
  -          }
  -          
  -          var direction = getDirection(swipe.direction);
  -          if (swipeNode.children["direction"].value.toString() != direction) {
  -            swipeNode.children["direction"].value = Value.of(direction);
  -          }
  +          link["/gestures/swipe/state"].value = Value.of(getState(swipe.state));
  +          link["/gestures/swipe/direction"].value = Value.of(getDirection(swipe.direction));
             
             //print("Swipe id:" + swipe.id.toString() + ", " + swipe.state.toString() + ", position:" + swipe.position.toString() + ", direction:" + swipe.direction.toString() + ", speed:" + swipe.speed.toString());
             break;
  
positive.code:       }
  
        // Get the hand's sphere radius and palm position
        //print("Hand sphere radius:" + hand.sphereRadius.toString() + " mm, palm position:" + hand.palmPosition.toString());
  
        // Get the hand's normal vector and direction
  
negative.code:     Frame frame = event.frame;
  
      //print("Frame id:" + frame.id.toString() + ", timestamp:" + frame.timestamp.toString() + ", hands:" + frame.hands.length.toString() + ", fingers:" + frame.fingers.length.toString() + ", tools:" + frame.tools.length.toString() + ", gestures:" + frame.gestures().length.toString());
  
      link["/hands/count"].value = Value.of(frame.hands.length);
  
      for (int i = 0; i < frame.hands.length; i++){
        // Get the first hand
        Hand hand = frame.hands[i];
        String handPath = "/hands/hand"+(i+1).toString();
        // Check if the hand has any fingers
        FingerList fingers = hand.fingerList;
        if (fingers.length > 0) {
  