diff --git a/Assets/Compare/LiveComparer.cs b/Assets/Compare/LiveComparer.cs
index f954aa7b14458269b1262de2e2f34353af33e6f9..8e2a8795f935c91f3ac1907a31f020546eba8764 100644
--- a/Assets/Compare/LiveComparer.cs
+++ b/Assets/Compare/LiveComparer.cs
@@ -31,37 +31,51 @@ public class LiveComparer : MonoBehaviour
 
 	void Update ()
 	{
-		if (replay.currentFrame != lastFrame && replay.currentFrame > 0 && replay.currentFrame < 100)
+		if (replay.currentFrame >= 0 && replay.currentFrame < 100)
 		{
-			lastFrame = replay.currentFrame;
-
 			FetchPalmsCoordinates ();
-			ComputeScore ();
+			ComputeFrameScore ();
+
+			if (replay.currentFrame != lastFrame)
+			{
+				lastFrame = replay.currentFrame;
+				ComputeTotalScore ();
+			}
+
 			UpdateScoreLabels ();
 		}
 	}
 
-	void ComputeScore()
+	void ComputeFrameScore()
 	{
 		//for now we only consider the left hand
 		frameScore = 100.0f;
 
+		float positionFactor = 10.0f;
+		float rotationFactor = 5.0f;
+
 		Vector3 differencePosition = leftPalmPosition - 
 			replay.gestureToReplay.states [replay.currentFrame].position;
 		Vector3 differenceRotation = leftPalmRotation - 
 			replay.gestureToReplay.states [replay.currentFrame].rotation;
-		
+
 		float absoluteDifferencePosition = Mathf.Abs(differencePosition.x) + 
 			Mathf.Abs(differencePosition.y) + 
 			Mathf.Abs(differencePosition.z);
 		float absoluteDifferenceRotation = Mathf.Abs(differenceRotation.x) + 
 			Mathf.Abs(differenceRotation.y) + 
 			Mathf.Abs(differenceRotation.z);
-		
-		frameScore -= absoluteDifferencePosition + absoluteDifferenceRotation;
 
+		frameScore -= absoluteDifferencePosition * positionFactor + absoluteDifferenceRotation * rotationFactor;
+	}
+
+	void ComputeTotalScore()
+	{
 		sumScore += frameScore;
-		totalScore = sumScore / (replay.currentFrame);
+		if (replay.currentFrame != 0)
+			totalScore = sumScore / (replay.currentFrame);
+		else
+			totalScore = 0;
 	}
 
 	void FetchPalmsCoordinates()
diff --git a/Assets/Replay/Replay.cs b/Assets/Replay/Replay.cs
index a20df2cea6d0501ab101cc418afbcedb1e5c22dc..e9972da86c525cbe12189b037a68b3b7416084ac 100644
--- a/Assets/Replay/Replay.cs
+++ b/Assets/Replay/Replay.cs
@@ -12,7 +12,7 @@ public class Replay: MonoBehaviour
 	public Text textFrame;
 
 	public Gesture gestureToReplay;
-	public int currentFrame = -1;
+	public int currentFrame = 0;
 	float lastTimestamp = 0;
 	bool startReplay = false;
 	List<string> replays = new List<string>();
@@ -41,12 +41,14 @@ public class Replay: MonoBehaviour
 	{
 		lastTimestamp = Time.unscaledTime;
 		startReplay = true;
-		currentFrame = -1;
+		currentFrame = 0;
 	}
 
 	public void UpdateSelectedGesture(int id)
 	{
 		gestureToReplay = new Gesture (replays[id] + "/0");
+		currentFrame = 0;
+		ApplyCurrentFrameToModel ();
 	}
 
 	void Update ()
@@ -58,7 +60,7 @@ public class Replay: MonoBehaviour
 				//if replay not finished
 				//compute criteria to go to the next frame
 				bool goToNextFrame = false;
-				if (currentFrame == -1)
+				if (currentFrame == 0)
 					goToNextFrame = true;
 				else
 				{
@@ -71,20 +73,25 @@ public class Replay: MonoBehaviour
 				if (goToNextFrame)
 				{
 					currentFrame++;
-					handModel.transform.position = gestureToReplay.states [currentFrame].position;
-
-					float factor = 180 / 3.14f * rotationFactor;
-					Vector3 rot = gestureToReplay.states [currentFrame].rotation * factor;
-
-					handModel.transform.rotation = Quaternion.Euler (rot);
-					lastTimestamp = Time.unscaledTime;
-
-					//update UI
-					textFrame.text = "Frame: " + currentFrame;
+					ApplyCurrentFrameToModel ();
 				}
 			}
 			else
 				startReplay = false;
 		}
 	}
+
+	void ApplyCurrentFrameToModel()
+	{
+		handModel.transform.position = gestureToReplay.states [currentFrame].position;
+
+		float factor = 180 / 3.14f * rotationFactor;
+		Vector3 rot = gestureToReplay.states [currentFrame].rotation * factor;
+
+		handModel.transform.rotation = Quaternion.Euler (rot);
+		lastTimestamp = Time.unscaledTime;
+
+		//update UI
+		textFrame.text = "Frame: " + currentFrame;
+	}
 }
diff --git a/Assets/Scenes/Replay.unity b/Assets/Scenes/Replay.unity
index f3203c8df0d3c68c2fc369a5a699f7cd5c4e16e7..9db222d45d1c4d5291890ca50f0f5314f855b479 100644
--- a/Assets/Scenes/Replay.unity
+++ b/Assets/Scenes/Replay.unity
@@ -2372,7 +2372,7 @@ MonoBehaviour:
   handModel: {fileID: 1805769538}
   dropdown: {fileID: 1882596559}
   textFrame: {fileID: 2041325546}
-  currentFrame: -1
+  currentFrame: 0
 --- !u!4 &2026651520
 Transform:
   m_ObjectHideFlags: 0