diff --git a/index.html b/index.html
index 149178f36c83f36f1d590fc08b9ca048504a7797..1278abba7b8c39e711b1d47f0a74b2d875e6d1f5 100755
--- a/index.html
+++ b/index.html
@@ -536,7 +536,8 @@
     </div><br/>
     <b>Animation Settings:</b><br/>
         <div class="indent">
-            <span class="smallTxt">&Delta; t = <span id="deltaT"></span> seconds</span><br/><br/>
+            <span class="smallTxt">&Delta; t = <span id="deltaT"></span> seconds</span><br/>
+            <span class="smallTxt">Num steps per render: &nbsp;&nbsp;<input id="numStepsPerRender" value="" placeholder="" class="int form-control" type="text"></span><br/><br/>
             <a href="#" id="shouldCenterGeo" class="floatRight btn btn-lg btn-default">Re-center geometry</a>
         </div>
     <div class="extraSpace"></div>
diff --git a/js/controls.js b/js/controls.js
index 1655539d1884411dbf467f1596a68e90f9c4967f..9e7336b19049efa7000710724fa4d83f432736a7 100755
--- a/js/controls.js
+++ b/js/controls.js
@@ -275,6 +275,10 @@ function initControls(globals){
         globals.shouldCenterGeo = true;
     });
 
+    setInput("#numStepsPerRender", globals.numSteps, function(val){
+        globals.numSteps = val;
+    }, 1);
+
     function setButtonGroup(id, callback){
         $(id+" a").click(function(e){
             e.preventDefault();
diff --git a/js/dynamic/dynamicSolver.js b/js/dynamic/dynamicSolver.js
index be9460ad84996a156b2ec5c30662aa92b79697e3..e4d292961704dc530d1fd06c9c8d50ec96d03f25 100755
--- a/js/dynamic/dynamicSolver.js
+++ b/js/dynamic/dynamicSolver.js
@@ -44,10 +44,9 @@ function initDynamicSolver(globals){
 
         initTypedArrays();
         initTexturesAndPrograms(globals.gpuMath);
-        steps = parseInt(setSolveParams());
+        setSolveParams();
     }
 
-    var steps;
     var programsInited = false;//flag for initial setup
 
     var textureDim = 0;
@@ -111,7 +110,7 @@ function initDynamicSolver(globals){
             }
         }
 
-        if (_numSteps == undefined) _numSteps = steps;
+        if (_numSteps == undefined) _numSteps = globals.numSteps;
         for (var j=0;j<_numSteps;j++){
             solveStep();
         }
@@ -229,7 +228,6 @@ function initDynamicSolver(globals){
     function setSolveParams(){
         var dt = calcDt()/2;//todo factor of ten?
         $("#deltaT").html(dt);
-        var numSteps = 0.5/dt;
         globals.gpuMath.setProgram("thetaCalc");
         globals.gpuMath.setUniformForProgram("thetaCalc", "u_dt", dt, "1f");
         globals.gpuMath.setProgram("velocityCalc");
@@ -237,7 +235,6 @@ function initDynamicSolver(globals){
         globals.gpuMath.setProgram("positionCalc");
         globals.gpuMath.setUniformForProgram("positionCalc", "u_dt", dt, "1f");
         globals.controls.setDeltaT(dt);
-        return numSteps;
     }
 
     function calcDt(){
diff --git a/js/globals.js b/js/globals.js
index 8293b6bcfb8bb51b03e96d20d9f2fcbf0521fc01..64a37ecab80632a154220728ebcc6059109a0fcb 100755
--- a/js/globals.js
+++ b/js/globals.js
@@ -67,7 +67,9 @@ function initGlobals(){
         pausedForPatternView: false,
 
         userInteractionEnabled: false,
-        vrEnabled: false
+        vrEnabled: false,
+
+        numSteps: 100
 
     };