diff --git a/src/main/java/lab/DrawingThread.java b/src/main/java/lab/DrawingThread.java
index bac23778ca78f5778c11626505ba7a4420db604e..9324c887b8eb6e51e26f8c768ed05a5a3d972657 100755
--- a/src/main/java/lab/DrawingThread.java
+++ b/src/main/java/lab/DrawingThread.java
@@ -6,6 +6,8 @@ import javafx.scene.canvas.GraphicsContext;
 
 public class DrawingThread extends AnimationTimer {
 
+	private static final int FPS = 100;
+
 	private final Canvas canvas;
 	
 	private final GraphicsContext gc;
@@ -25,13 +27,19 @@ public class DrawingThread extends AnimationTimer {
 	 */
 	@Override
 	public void handle(long now) {
-		gc.clearRect(0, 0, canvas.getWidth(), canvas.getHeight());
-		world.draw(gc);
-		if (lasttime > 0) {
-			//time are in nanoseconds and method simulate expects seconds
-			world.simulate((now - lasttime) / 1e9);
+		
+		double deltaT = (now - lasttime) / 1e9;
+		if (deltaT >= 1./FPS) {
+			gc.clearRect(0, 0, canvas.getWidth(), canvas.getHeight());
+			world.draw(gc);
+			if (lasttime > 0) {
+				//time are in nanoseconds and method simulate expects seconds
+				
+				world.simulate(deltaT);
+			}
+			lasttime = now;
 		}
-		lasttime = now;
+		
 	}
 
 }