diff --git a/index.html b/index.html
index 6af5ca1a1328543e832a9248b3714c58d57886a5..56098c18d1b17b24732dd8dffe96acbf6e8f0832 100644
--- a/index.html
+++ b/index.html
@@ -209,7 +209,9 @@
 
             vec2 currentVelocity;
             if (u_scale == 1.0) currentVelocity = 1.0/u_scale*texture2D(u_velocity, fragCoord/u_textureSize).xy;
-            else currentVelocity = 1.0/u_scale*bilinearInterp((fragCoord-pxCenter)*u_scale, u_velocity, u_textureSize*u_scale);
+            else {
+                currentVelocity = 1.0/u_scale*bilinearInterp((fragCoord-pxCenter)*u_scale, u_velocity, u_textureSize*u_scale);
+            }
 
             //implicitly solve advection
 
diff --git a/js/main.js b/js/main.js
index 658c2b796631e2fff92ea60bb4c1a89ee143aff7..a457d1dfca64731ee34df28eb76811fcf127d0fb 100755
--- a/js/main.js
+++ b/js/main.js
@@ -33,7 +33,7 @@ function initGL() {
     canvas.onmousemove = onMouseMove;
     canvas.onmousedown = onMouseDown;
     canvas.onmouseup = onMouseUp;
-    canvas.onmouseout = onMouseUp;
+    // canvas.onmouseout = onMouseUp;
 
     window.onresize = onResize;
 
@@ -107,8 +107,8 @@ function render(){
         if (mouseEnable){
             GPU.setUniformForProgram("force", "u_mouseEnable", 1.0, "1f");
             GPU.setUniformForProgram("force", "u_mouseCoord", [mouseCoordinates[0]*scale, mouseCoordinates[1]*scale], "2f");
-            GPU.setUniformForProgram("force", "u_mouseDir", [2*(mouseCoordinates[0]-lastMouseCoordinates[0])*scale,
-                2*(mouseCoordinates[1]-lastMouseCoordinates[1])*scale], "2f");
+            GPU.setUniformForProgram("force", "u_mouseDir", [3*(mouseCoordinates[0]-lastMouseCoordinates[0])*scale,
+                3*(mouseCoordinates[1]-lastMouseCoordinates[1])*scale], "2f");
         } else {
             GPU.setUniformForProgram("force", "u_mouseEnable", 0.0, "1f");
         }
@@ -162,13 +162,13 @@ function resetWindow(){
     actualHeight = body.clientHeight;
 
     var maxDim = Math.max(actualHeight, actualWidth);
-    var _scale = maxDim/150;
+    var _scale = Math.ceil(maxDim/150);
     if (_scale < 1) _scale = 1;
 
     width = Math.floor(actualWidth/_scale);
     height = Math.floor(actualHeight/_scale);
 
-    scale = (width/actualWidth + height/actualHeight)/2;
+    scale = 1/_scale;
     console.log(scale);
 
     canvas.width = actualWidth;
@@ -230,7 +230,14 @@ function resetWindow(){
 
 function onMouseMove(e){
     lastMouseCoordinates = mouseCoordinates;
-    mouseCoordinates = [e.clientX, actualHeight-e.clientY];
+    var x = e.clientX;
+    var padding = 100;
+    if (x<padding) x = padding;
+    if (x>actualWidth-padding) x = actualWidth-padding;
+    var y = e.clientY;
+    if (y<padding) y = padding;
+    if (y>actualHeight-padding) y = actualHeight-padding;
+    mouseCoordinates = [x, actualHeight-y];
 }
 
 function onMouseDown(){