diff --git a/js/baseplane/HexagonalBasePlane.js b/js/baseplane/HexagonalBasePlane.js
index b012fd787ed5a1e1778b3a546f5561a4ff3dad6c..40be1725d6be14f5bf581633e7771d3af6894d7d 100644
--- a/js/baseplane/HexagonalBasePlane.js
+++ b/js/baseplane/HexagonalBasePlane.js
@@ -14,32 +14,45 @@ define(['underscore', 'backbone', 'appState', 'lattice', 'threeModel', 'three',
 
         _makeBasePlaneMesh: function(){
 
-            var scale = lattice.xScale();
-            var dimX = this.get("dimX")*scale;
-            var dimY = this.get("dimY")*scale;
-
-//            var geometry = new THREE.Geometry();
-//
-//            for ( var i = - dimX; i <= dimX+1; i += scale ) {
-//                geometry.vertices.push( new THREE.Vector3(-dimX-scale/2, i-scale/2, 0.01));
-//                geometry.vertices.push( new THREE.Vector3(dimX-scale/2, i-scale/2, 0.01));
-//                geometry.vertices.push( new THREE.Vector3(i-scale/2, -dimX-scale/2, 0.01));
-//                geometry.vertices.push( new THREE.Vector3(i-scale/2, dimX-scale/2, 0.01));
-//
-//            }
-//
+            var xScale = lattice.xScale();
+            var yScale = lattice.yScale();
+            var dimX = this.get("dimX");
+            var dimY = this.get("dimY");
+
+            var geometry = new THREE.Geometry();
+
+            for (var i=-dimY;i<=dimY+1;i++) {
+                for (var j=-dimX;j<=dimX;j+=1){
+                    if (i%2 == 0){
+                        geometry.vertices.push( new THREE.Vector3(j*xScale-xScale/2, i*yScale-1/2, 0.01));
+                        geometry.vertices.push( new THREE.Vector3((j+0.5)*xScale-xScale/2, i*yScale-1, 0.01));
+                        geometry.vertices.push( new THREE.Vector3((j+0.5)*xScale-xScale/2, i*yScale-1, 0.01));
+                        geometry.vertices.push( new THREE.Vector3((j+1)*xScale-xScale/2, i*yScale-1/2, 0.01));
+                        geometry.vertices.push( new THREE.Vector3(j*xScale-xScale/2, i*yScale-1/2, 0.01));
+                        geometry.vertices.push( new THREE.Vector3(j*xScale-xScale/2, (i+1)*yScale-1, 0.01));
+                    } else {
+                        geometry.vertices.push( new THREE.Vector3(j*xScale-xScale/2, i*yScale-1, 0.01));
+                        geometry.vertices.push( new THREE.Vector3((j+0.5)*xScale-xScale/2, i*yScale-1/2, 0.01));
+                        geometry.vertices.push( new THREE.Vector3((j+0.5)*xScale-xScale/2, i*yScale-1/2, 0.01));
+                        geometry.vertices.push( new THREE.Vector3((j+1)*xScale-xScale/2, i*yScale-1, 0.01))
+                        geometry.vertices.push( new THREE.Vector3((j+0.5)*xScale-xScale/2, i*yScale-1/2, 0.01));
+                        geometry.vertices.push( new THREE.Vector3((j+0.5)*xScale-xScale/2, (i+1)*yScale-1, 0.01));
+                    }
+                }
+            }
+
             var planeGeometry = new THREE.Geometry();
-            planeGeometry.vertices.push( new THREE.Vector3(-dimX-scale/2, -dimX-scale/2, 0));
-            planeGeometry.vertices.push( new THREE.Vector3(dimX+scale/2, -dimX-scale/2, 0));
-            planeGeometry.vertices.push( new THREE.Vector3(-dimX-scale/2, dimX+scale/2, 0));
-            planeGeometry.vertices.push( new THREE.Vector3(dimX+scale/2, dimX+scale/2, 0));
+            planeGeometry.vertices.push( new THREE.Vector3(-dimX*xScale-xScale/2, -dimX*yScale-yScale/2, 0));
+            planeGeometry.vertices.push( new THREE.Vector3(dimX*xScale+xScale/2, -dimX*yScale-yScale/2, 0));
+            planeGeometry.vertices.push( new THREE.Vector3(-dimX*xScale-xScale/2, dimX*yScale+yScale/2, 0));
+            planeGeometry.vertices.push( new THREE.Vector3(dimX*xScale+xScale/2, dimX*yScale+yScale/2, 0));
             planeGeometry.faces.push(new THREE.Face3(0, 1, 3));
             planeGeometry.faces.push(new THREE.Face3(0, 3, 2));
             planeGeometry.computeFaceNormals();
 
             var mesh = new THREE.Mesh(planeGeometry, new THREE.MeshBasicMaterial({color:0x000000, transparent:true, opacity:0.0}));
-            return [mesh];
-//            return [mesh, new THREE.Line(geometry, new THREE.LineBasicMaterial({color:0x000000, transparent:true, linewidth:2, opacity:this.get("material").opacity}), THREE.LinePieces)];
+//            return [mesh];
+            return [mesh, new THREE.Line(geometry, new THREE.LineBasicMaterial({color:0x000000, transparent:true, linewidth:2, opacity:this.get("material").opacity}), THREE.LinePieces)];
         }
     });
 });
\ No newline at end of file
diff --git a/js/baseplane/HexagonalRotBasePlane.js b/js/baseplane/HexagonalRotBasePlane.js
index 0812c0347372e35f868178be53c84dffb9235ccb..a6b27cd7b3f115423c079b7e7c3c45ce8e82c501 100644
--- a/js/baseplane/HexagonalRotBasePlane.js
+++ b/js/baseplane/HexagonalRotBasePlane.js
@@ -12,6 +12,10 @@ define(['underscore', 'backbone', 'appState', 'lattice', 'threeModel', 'three',
             var params = SquareBasePlane.prototype.calcHighlighterParams.call(this, face, point);
             params.position.x += lattice.xScale()/2;
             return params;
+        },
+
+        nextCellPosition: function(highlighterPosition){
+            return highlighterPosition;
         }
 
     });
diff --git a/js/baseplane/RotEdgeOctaBasePlane.js b/js/baseplane/RotEdgeOctaBasePlane.js
index 9c7e6b714069d83ae1038d17e0386336f4074aef..b8d808c67de56358db83983126a259d4c3989736 100644
--- a/js/baseplane/RotEdgeOctaBasePlane.js
+++ b/js/baseplane/RotEdgeOctaBasePlane.js
@@ -16,10 +16,7 @@ define(['underscore', 'backbone', 'appState', 'lattice', 'threeModel', 'three',
         },
 
         nextCellPosition: function(highlighterPosition){
-            highlighterPosition.x -= lattice.xScale()/2;
-            highlighterPosition.y -= lattice.yScale()/2;//undo what we did in calc highlighter params
-            var newPosition = highlighterPosition.clone().add(highlighterPosition.clone().sub(this.getAbsolutePosition()));
-            return lattice.getIndexForPosition(newPosition);
+            return highlighterPosition;
         }
 
     });
diff --git a/js/lattice/latticeSubclasses/HexagonalLattice.js b/js/lattice/latticeSubclasses/HexagonalLattice.js
index 98fbbb5aed7b0d3a1edbb1b7785119a9d8449970..b62b5c27dd5df9a616e5070a8c78c4a69c1db3e4 100644
--- a/js/lattice/latticeSubclasses/HexagonalLattice.js
+++ b/js/lattice/latticeSubclasses/HexagonalLattice.js
@@ -9,7 +9,7 @@ define(['underscore', 'backbone', 'appState', 'globals', 'plist', 'three', 'thre
     var HexLattice =  {
 
         _initLatticeType: function(){
-            require(['squareBaseplane'], function(BasePlaneClass){
+            require(['hexBaseplane'], function(BasePlaneClass){
                 globals.basePlane = new BasePlaneClass();
             });
             require([this.getHighlighterFile()], function(HighlighterClass){
diff --git a/js/lattice/latticeSubclasses/HexagonalRotLattice.js b/js/lattice/latticeSubclasses/HexagonalRotLattice.js
index 67aed09be89b892527939f4f53fb2c8b5701080d..661869041f7e488fc41024cbc7324df3969455f0 100644
--- a/js/lattice/latticeSubclasses/HexagonalRotLattice.js
+++ b/js/lattice/latticeSubclasses/HexagonalRotLattice.js
@@ -44,7 +44,7 @@ define(['underscore', 'backbone', 'appState', 'globals', 'plist', 'three', 'thre
 
         xScale: function(cellSeparation){
             if (cellSeparation === undefined) cellSeparation = this.get("cellSeparation").xy;
-            return 2+Math.sqrt(3)/2+2*cellSeparation;
+            return 3+2*cellSeparation;
         },
 
         yScale: function(cellSeparation){