 
   {
     frame: (frame)->
+
       scope.stats.begin() if scope.stats
       for leapHand in frame.hands
+
         # this works around a subtle bug where non-extended fingers would appear after extended ones
         leapHand.fingers = _sortBy(leapHand.fingers, (finger)-> finger.id)
         handMesh = leapHand.data('riggedHand.mesh')
         palm = handMesh.children[0]
+
+        handMesh.scaleFromHand(leapHand)
 
         palm.positionLeap.fromArray(leapHand.palmPosition)
         # wrist -> mcp -> pip -> dip -> tip

        .sub(handMesh.positionRaw)
        .add(handMesh.position)

    handMesh

  getMesh = (leapHand)->

  @use('versionCheck', {requiredProtocolVersion: 6})

  scope.offset ||= new THREE.Vector3(0,-10,0)
  scope.scale ||= 100
  # this allow the hand to move disproportionately to its size.
  scope.positionScale ||= 1
  scope.initScene = initScene
