diff --git a/js/models/BasePlane.js b/js/models/BasePlane.js
index 9773bb61c023741d5b3d56de686f1f56781261b0..c6ef4b20636a592e46f9bc60edf7ac34d9c4003b 100644
--- a/js/models/BasePlane.js
+++ b/js/models/BasePlane.js
@@ -10,7 +10,8 @@ BasePlane = Backbone.Model.extend({
         mesh: null,
         dimX: 100,
         dimY: 100,
-        material: new THREE.MeshBasicMaterial({color:0x000000, transparent:true, opacity:0.2, wireframe:true, side:THREE.DoubleSide})
+        material: new THREE.MeshBasicMaterial({color:0x000000, transparent:true, opacity:0.2, wireframe:true, side:THREE.DoubleSide}),
+        unitGeometry: null
     },
 
     //pass in fillGeometry
@@ -18,28 +19,35 @@ BasePlane = Backbone.Model.extend({
     initialize: function(options){
 
         //draw mesh
-        this.set("mesh", this._makeBasePlaneMesh(options.cellType, options.connectionType, options.scale));
+        this.set("mesh", this._makeBasePlaneMesh(options.cellType, options.connectionType));
+        this.updateScale(options.scale);
         this._showMesh();
 
     },
 
     updateGeometry: function(cellType, connectionType, scale){
         this._removeMesh();
-        this.set("mesh", this._makeBasePlaneMesh(cellType, connectionType, scale));
+        this.set("mesh", this._makeBasePlaneMesh(cellType, connectionType));
+        this.updateScale(scale);
         this._showMesh();
     },
 
     updateScale: function(scale){
-
+        var newGeometry = this.get("unitGeometry").clone();
+        newGeometry.applyMatrix(new THREE.Matrix4().makeScale(scale, scale, scale));
+        var geometry = this.get("mesh").geometry;
+        geometry.vertices = newGeometry.vertices;
+        geometry.verticesNeedUpdate = true;
     },
 
-    _makeBasePlaneMesh: function(cellType, connectionType, scale){
+    _makeBasePlaneMesh: function(cellType, connectionType){
         if (cellType == "cube"){
             return this._createGridMesh();
         } else if (cellType == "octa"){
             if (connectionType == "face"){
-                return this._createOctaFaceMesh(scale);
+                return this._createOctaFaceMesh();
             } else if (connectionType == "edge"){
+                if (this.get("zIndex")%2 == 0) return this._createOctaFaceMesh();
 
             } else if (connectionType == "vertex"){
 
@@ -47,14 +55,14 @@ BasePlane = Backbone.Model.extend({
         }
     },
 
-    _createOctaFaceMesh: function(scale){
+    _createOctaFaceMesh: function(){
 
         var geometry = new THREE.Geometry();
 
         var vertices = geometry.vertices;
         var faces = geometry.faces;
 
-        var triangleHeight = scale/2*Math.sqrt(3);
+        var triangleHeight = 1/2*Math.sqrt(3);
         var dimX = this.get("dimX");
         var dimY = this.get("dimY");
 
@@ -62,8 +70,8 @@ BasePlane = Backbone.Model.extend({
             for (var i=-dimY;i<=dimY;i++){
 
                 var xOffset = 0;
-                if (Math.abs(j)%2==1) xOffset = scale/2;
-                vertices.push(new THREE.Vector3(i*scale + xOffset, j*triangleHeight, 0));
+                if (Math.abs(j)%2==1) xOffset = 1/2;
+                vertices.push(new THREE.Vector3(i + xOffset, j*triangleHeight, 0));
 
                 if (j == -dimX || i == -dimY) continue;
 
@@ -81,6 +89,8 @@ BasePlane = Backbone.Model.extend({
 
         }
         geometry.computeFaceNormals();
+        geometry.dynamic = true;
+        this.set("unitGeometry", geometry.clone());
 
         return new THREE.Mesh(geometry, this.get("material"));
     },
@@ -102,7 +112,8 @@ BasePlane = Backbone.Model.extend({
     destroy: function(){
         this.set("zIndex", null);
         this.set("mesh", null);
-        this.set("material, null");
+        this.set("material", null);
+        this.set("unitGeometry", null);
     }
 
 });
\ No newline at end of file
diff --git a/js/models/lattice.js b/js/models/lattice.js
index 0f5c22e926b65e0c383efb49e0ac30ce6136d794..496d62f404b761638f352dc95e400c96665ecbd8 100644
--- a/js/models/lattice.js
+++ b/js/models/lattice.js
@@ -206,6 +206,7 @@ Lattice = Backbone.Model.extend({
 
     _scaleDidChange: function(){
         var scale = this.get("scale");
+        this.get("basePlane").updateScale(scale);
         this._iterCells(this.get("cells"), function(cell){
             if (cell) cell.changeScale(scale);
         });