diff --git a/index.html b/index.html
index 4166764f2bb34618f8bc671e20ffde28ecdf71c3..a79f706153fd2415207fc024e58ef8add7b6723c 100644
--- a/index.html
+++ b/index.html
@@ -423,18 +423,24 @@
         <div class="indent">
             Mesh Material:
             <div class="indent">
-                <label class="radio">
-                    <input name="colorMode" value="color" data-toggle="radio" class="custom-radio" type="radio"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>
-                    Colored Material
+                <label class="checkbox" for="meshVisible">
+                    <input id="meshVisible" data-toggle="checkbox" class="custom-checkbox layersSelector" type="checkbox"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>
+                    Mesh Visible
                 </label>
-                <div id="coloredMaterialOptions" class="indent">
-                    <label>Color 1 (rgb hex): &nbsp;&nbsp;</label><input id="color1" value="" placeholder="" class="hexVal form-control" type="text"><br/>
-                    <label>Color 2 (rgb hex): &nbsp;&nbsp;</label><input id="color2" value="" placeholder="" class="hexVal form-control" type="text"><br/>
+                <div id="meshMaterialOptions">
+                    <label class="radio">
+                        <input name="colorMode" value="color" data-toggle="radio" class="custom-radio" type="radio"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>
+                        Colored Material
+                    </label>
+                    <div id="coloredMaterialOptions" class="indent">
+                        <label>Color 1 (rgb hex): &nbsp;&nbsp;</label><input id="color1" value="" placeholder="" class="hexVal form-control" type="text"><br/>
+                        <label>Color 2 (rgb hex): &nbsp;&nbsp;</label><input id="color2" value="" placeholder="" class="hexVal form-control" type="text"><br/>
+                    </div>
+                    <label class="radio">
+                        <input name="colorMode" value="normal" data-toggle="radio" class="custom-radio" type="radio"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>
+                        Face Normals Material
+                    </label>
                 </div>
-                <label class="radio">
-                    <input name="colorMode" value="normal" data-toggle="radio" class="custom-radio" type="radio"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>
-                    Face Normals Material
-                </label>
             </div><br/>
             Edges:
             <div class="indent">
diff --git a/js/controls.js b/js/controls.js
index f7735561ad15d1c688f2645a443b3d357a81dc7d..debd38c55d48187be670c8630df42cfe7d9902db 100644
--- a/js/controls.js
+++ b/js/controls.js
@@ -119,6 +119,13 @@ function initControls(globals){
         globals.model.updateEdgeVisibility();
     });
 
+    setCheckbox("#meshVisible", globals.meshVisible, function(val){
+        globals.meshVisible = val;
+        globals.model.updateMeshVisibility();
+        if (globals.meshVisible) $("#meshMaterialOptions").show();
+        else $("#meshMaterialOptions").hide();
+    });
+
     function setButtonGroup(id, callback){
         $(id+" a").click(function(e){
             e.preventDefault();
diff --git a/js/globals.js b/js/globals.js
index fe6a08a987053d14c6654a64ce94758bfc9941ce..6c8b9b752c490fdf8f15ffc09f443efd08999dc2 100644
--- a/js/globals.js
+++ b/js/globals.js
@@ -14,6 +14,7 @@ function initGlobals(){
         color1: "ec008b",
         color2: "dddddd",
         edgesVisible: true,
+        meshVisible: true,
 
         //flags
         fixedHasChanged: false,
diff --git a/js/model.js b/js/model.js
index 2ac62c3f3059da5a37129cebfaff418f8e3f20c0..1459fce85ba8bb1cbd120363c06b4bb5ba60786e 100644
--- a/js/model.js
+++ b/js/model.js
@@ -27,6 +27,10 @@ function initModel(globals){
         }
     }
 
+    function updateMeshVisibility(){
+        object3D.visible = globals.meshVisible;
+    }
+
     var geometry = new THREE.Geometry();
     geometry.dynamic = true;
     var object3D = new THREE.Mesh(geometry, material);
@@ -231,6 +235,7 @@ function initModel(globals){
         getObjectsToIntersect: getObjectsToIntersect,
         setMeshMaterial: setMeshMaterial,
         updateEdgeVisibility: updateEdgeVisibility,
+        updateMeshVisibility: updateMeshVisibility,
         getGeometry: getGeometry
     }
 }
\ No newline at end of file