diff --git a/js/menus/AnimationMenuView.js b/js/menus/AnimationMenuView.js
index 087a27b2f769f81ebc41be659a909cee7e3e9c41..72eb3c9ac9f8c6243b9bef5705e9f0248a47bd2f 100644
--- a/js/menus/AnimationMenuView.js
+++ b/js/menus/AnimationMenuView.js
@@ -94,6 +94,7 @@ AnimationMenuView = Backbone.View.extend({
     },
 
     render: function(){
+        if (this.model.changedAttributes()["currentNav"]) return;
         if (this.model.get("currentTab") != "animate") return;
         if (dmaGlobals.assembler.get("needsPostProcessing") && !dmaGlobals.assembler.get("editsMadeToProgram")) dmaGlobals.assembler.postProcess();
         this.$el.html(this.template(_.extend(this.model.toJSON(), dmaGlobals.assembler.toJSON())));
diff --git a/js/menus/AssemblerMenuView.js b/js/menus/AssemblerMenuView.js
index 5aa7e5eb5843becd642047cd9913b17c78242a5b..bc00644f9651db7b6a8133e3e2f85023c62b6d5c 100644
--- a/js/menus/AssemblerMenuView.js
+++ b/js/menus/AssemblerMenuView.js
@@ -52,6 +52,7 @@ AssemblerMenuView = Backbone.View.extend({
     },
 
     render: function(){
+        if (this.model.changedAttributes()["currentNav"]) return;
         if (this.model.get("currentTab") != "assembler") return;
         if ($("input").is(":focus")) return;
         this.$el.html(this.template(_.extend(this.model.toJSON(), this.assembler.toJSON(), dmaGlobals.lattice.toJSON())));
diff --git a/js/menus/CamMenuView.js b/js/menus/CamMenuView.js
index 01933cf39d124d66cde69f7f554b8cd86b7f81c1..07563989869a117eccc8f1132bba4cea96e8f200 100644
--- a/js/menus/CamMenuView.js
+++ b/js/menus/CamMenuView.js
@@ -124,6 +124,7 @@ CamMenuView = Backbone.View.extend({
     },
 
     render: function(){
+        if (this.model.changedAttributes()["currentNav"]) return;
         if (this.model.get("currentTab") != "cam") return;
         if ($("input").is(":focus")) return;
         var data = _.extend(this.model.toJSON(), this.assembler.toJSON(), this.lattice.toJSON());
diff --git a/js/menus/ImportMenuView.js b/js/menus/ImportMenuView.js
index 374468e29e4ef71bde51187592100791eecf09c5..9a2a59f2dcbbf74ac6e2211638e6abdfe887a463 100644
--- a/js/menus/ImportMenuView.js
+++ b/js/menus/ImportMenuView.js
@@ -88,6 +88,7 @@ ImportMenuView = Backbone.View.extend({
     },
 
     render: function(){
+        if (this.model.changedAttributes()["currentNav"]) return;
         if (this.model.get("currentTab") != "import") return;
         this.$el.html(this.template(_.extend(this.model.toJSON(), this.fillGeometry.toJSON())));
     },
diff --git a/js/menus/LatticeMenuView.js b/js/menus/LatticeMenuView.js
index 1db2299be77e54b9cdf9208f5b1e4316bd3e3e3c..b2e22ac8a6d076202cbb7b1807b03d7b2166633e 100644
--- a/js/menus/LatticeMenuView.js
+++ b/js/menus/LatticeMenuView.js
@@ -120,6 +120,7 @@ LatticeMenuView = Backbone.View.extend({
     },
 
     render: function(){
+        if (this.model.changedAttributes()["currentNav"]) return;
         if (this.model.get("currentTab") != "lattice") return;
         this.$el.html(this.template(_.extend(this.model.toJSON(), this.lattice.toJSON())));
 
diff --git a/js/menus/MaterialMenuView.js b/js/menus/MaterialMenuView.js
index 03a1748c304e5fe2c772b37cd4556557520a85a5..40f67daabab34a661886c69b0ac826f0f8c46182 100644
--- a/js/menus/MaterialMenuView.js
+++ b/js/menus/MaterialMenuView.js
@@ -15,6 +15,7 @@ MaterialMenuView = Backbone.View.extend({
     },
 
     render: function(){
+        if (this.model.changedAttributes()["currentNav"]) return;
         if (this.model.get("currentTab") != "material") return;
         this.$el.html(this.template());
     },
diff --git a/js/menus/OptimizationMenuView.js b/js/menus/OptimizationMenuView.js
index 1b5ef1c226ad18f5688edfa01d92f7a8932fc38f..f3f5b133623d1dea9b2feabd8a067fa0c0c83050 100644
--- a/js/menus/OptimizationMenuView.js
+++ b/js/menus/OptimizationMenuView.js
@@ -15,6 +15,7 @@ OptimizationMenuView = Backbone.View.extend({
     },
 
     render: function(){
+        if (this.model.changedAttributes()["currentNav"]) return;
         if (this.model.get("currentTab") != "optimize") return;
         this.$el.html(this.template());
     },
diff --git a/js/menus/PartMenuView.js b/js/menus/PartMenuView.js
index 2f7d62ee9ccf92e3abaee7c7ad204a766f52b004..10f9343e3f9556c7734edbb4e9be0003cebd1576 100644
--- a/js/menus/PartMenuView.js
+++ b/js/menus/PartMenuView.js
@@ -49,6 +49,7 @@ PartMenuView = Backbone.View.extend({
     },
 
     render: function(){
+        if (this.model.changedAttributes()["currentNav"]) return;
         if (this.model.get("currentTab") != "part") return;
         this.$el.html(this.template(_.extend(this.model.toJSON(), this.lattice.toJSON())));
     },
diff --git a/js/menus/PhysicsMenuView.js b/js/menus/PhysicsMenuView.js
index 9becd2a4f72c09fa539df6880ea2d806778fe56d..9a29ca6892c73aa697e1eef411ebdb7f3e00f451 100644
--- a/js/menus/PhysicsMenuView.js
+++ b/js/menus/PhysicsMenuView.js
@@ -15,6 +15,7 @@ PhysicsMenuView = Backbone.View.extend({
     },
 
     render: function(){
+        if (this.model.changedAttributes()["currentNav"]) return;
         if (this.model.get("currentTab") != "physics") return;
         this.$el.html(this.template());
     },
diff --git a/js/menus/ScriptMenuView.js b/js/menus/ScriptMenuView.js
index f70011355a4dd0bdfb931e629278d35c4d887246..f06833a4fc28d7b1c8371c39b0924d2177d57d6d 100644
--- a/js/menus/ScriptMenuView.js
+++ b/js/menus/ScriptMenuView.js
@@ -15,6 +15,7 @@ ScriptMenuView = Backbone.View.extend({
     },
 
     render: function(){
+        if (this.model.changedAttributes()["currentNav"]) return;
         if (this.model.get("currentTab") != "script") return;
         this.$el.html(this.template(this.model.toJSON()));
     },
diff --git a/js/menus/SendMenuView.js b/js/menus/SendMenuView.js
index 5b59b1111a368195a684a229d376949854675e4c..f6a8b79cdf4da388bf257a2b6188bfbf93d71759 100644
--- a/js/menus/SendMenuView.js
+++ b/js/menus/SendMenuView.js
@@ -17,6 +17,7 @@ SendMenuView = Backbone.View.extend({
     },
 
     render: function(){
+        if (this.model.changedAttributes()["currentNav"]) return;
         if (this.model.get("currentTab") != "send") return;
         this.$el.html(this.template(this.model.toJSON()));
     },
diff --git a/js/menus/SketchMenuView.js b/js/menus/SketchMenuView.js
index 6d7df911a95f8e4bc6c31347c23f27466164f4c5..7cf33c77f5f50230e8e9924b60ce68a1777c6245 100644
--- a/js/menus/SketchMenuView.js
+++ b/js/menus/SketchMenuView.js
@@ -24,6 +24,7 @@ SketchMenuView = Backbone.View.extend({
     },
 
     render: function(){
+        if (this.model.changedAttributes()["currentNav"]) return;
         if (this.appState.get("currentTab") != "sketch") return;
         this.$el.html(this.template(this.model.get("basePlane").toJSON()));
 
diff --git a/js/models/AppState.js b/js/models/AppState.js
index 9c5b44ecaac224324032f988b364fd0813d3774f..51c8299b4bff2a2c292b3594af6358c3a05e9389 100644
--- a/js/models/AppState.js
+++ b/js/models/AppState.js
@@ -69,7 +69,8 @@ AppState = Backbone.Model.extend({
                 },
                 edge: null,
                 edgeRot: {
-                    vox: "Snap Voxel"
+                    voxLowPoly: "Snap Voxel (low res)",
+                    vox: "Snap Voxel (high res)"
                     //beam:"Beam"
                 },
                 vertex: null//{