diff --git a/js/simulation/electronics/eSim.js b/js/simulation/electronics/eSim.js
index f6d086e7762a8bfd27b8795d82e71058315f9031..8ea1fee2988ed1f130d1343833d25d112056dad8 100644
--- a/js/simulation/electronics/eSim.js
+++ b/js/simulation/electronics/eSim.js
@@ -3,7 +3,7 @@
  */
 
 
-define(['underscore', 'backbone'], function(_, Backbone){
+define(['underscore', 'backbone', 'threeModel'], function(_, Backbone, three){
 
     var eSim = Backbone.Model.extend({
 
@@ -35,9 +35,9 @@ define(['underscore', 'backbone'], function(_, Backbone){
         },
 
         _hideAllFields: function(){
-            if (this.get("electricField")) this.get("electricField").hide();
-            if (this.get("chargeField")) this.get("chargeField").hide();
-            if (this.get("capacitanceField")) this.get("capacitanceField").hide();
+            if (this.get("electricField")) this.get("electricField").hide(true);
+            if (this.get("chargeField")) this.get("chargeField").hide(true);
+            if (this.get("capacitanceField")) this.get("capacitanceField").hide(true);
         },
 
         _refreshVisibleField: function(){
@@ -45,10 +45,11 @@ define(['underscore', 'backbone'], function(_, Backbone){
             var height = this.get("simZHeight");
             var visibleSim = this.get("visibleStaticSim");
             if (visibleSim == "none") {
+                three.render();
                 console.warn("no visible simulation selected");
                 return;
             }
-            this.get(visibleSim).show(height);
+            if (this.get(visibleSim)) this.get(visibleSim).show(height);
         }
 
 
diff --git a/js/simulation/electronics/eSimField.js b/js/simulation/electronics/eSimField.js
index 972d52d3bb5d216dba0429276e7aba366cfde4ed..d584587037912bc5d5a111585e6fdb16f14808e8 100644
--- a/js/simulation/electronics/eSimField.js
+++ b/js/simulation/electronics/eSimField.js
@@ -5,14 +5,14 @@
 
 //hold and display data for various fields
 
-define(['underscore', 'threeModel'], function(_, threeModel){
+define(['underscore', 'threeModel'], function(_, three){
 
     function ESimField(data, offset, resolution, height){
 
         this._object3D = new THREE.Object3D();
         this._setData(data, offset, resolution, height);
 
-        threeModel.sceneAdd(this._object3D);
+        three.sceneAdd(this._object3D);
         this.hide();
     }
 
@@ -75,11 +75,12 @@ define(['underscore', 'threeModel'], function(_, threeModel){
 
         this._setObject3DPosition(this._offset, this._resolution, height);
         this._object3D.visible = true;
-        threeModel.render();
+        three.render();
     };
 
-    ESimField.prototype.hide = function(){
+    ESimField.prototype.hide = function(noRender){
         this._object3D.visible = false;
+        if (!noRender) three.render();
     };
 
     ESimField.prototype._loop = function(data, callback){
@@ -94,7 +95,7 @@ define(['underscore', 'threeModel'], function(_, threeModel){
 
     ESimField.prototype.destroy = function(){
         this._destroyData();
-        threeModel.sceneRemove(this._object3D);
+        three.sceneRemove(this._object3D);
         this._object3D = null;
     };