diff --git a/assets/stls/parts/GIKEndPart.STL b/assets/stls/parts/GIKEndPart.STL
new file mode 100755
index 0000000000000000000000000000000000000000..69b0489036035262fcb258938a4ad7e57b4a0407
Binary files /dev/null and b/assets/stls/parts/GIKEndPart.STL differ
diff --git a/assets/stls/parts/GIKEndPartLowPoly.STL b/assets/stls/parts/GIKEndPartLowPoly.STL
new file mode 100755
index 0000000000000000000000000000000000000000..9034310b61f0d79fd989d06125f5b8eb0e2f3cf9
Binary files /dev/null and b/assets/stls/parts/GIKEndPartLowPoly.STL differ
diff --git a/assets/stls/parts/GIKPart.STL b/assets/stls/parts/GIKPart.STL
new file mode 100755
index 0000000000000000000000000000000000000000..1e6cce3510f4ab617d0719349379e559ea6c367f
Binary files /dev/null and b/assets/stls/parts/GIKPart.STL differ
diff --git a/assets/stls/parts/GIKPartLowPoly.STL b/assets/stls/parts/GIKPartLowPoly.STL
new file mode 100755
index 0000000000000000000000000000000000000000..caceba0652aade11784be73e9643bc827d839700
Binary files /dev/null and b/assets/stls/parts/GIKPartLowPoly.STL differ
diff --git a/assets/stls/parts/troxOcta.stl b/assets/stls/parts/troxOcta.stl
deleted file mode 100644
index b113b73de405df5e33499edd9ad871dc3429ab96..0000000000000000000000000000000000000000
Binary files a/assets/stls/parts/troxOcta.stl and /dev/null differ
diff --git a/assets/stls/parts/troxTetra.stl b/assets/stls/parts/troxTetra.stl
deleted file mode 100644
index cf90fabbb97fa7942fa35e424b421996a002de25..0000000000000000000000000000000000000000
Binary files a/assets/stls/parts/troxTetra.stl and /dev/null differ
diff --git a/index.html b/index.html
index 63cc8af5d493d2f5fb0473e4126ede9dd3176c53..5f6609a2058c31da8f05d95c23357a7f9cedd676 100644
--- a/index.html
+++ b/index.html
@@ -50,7 +50,6 @@
     <script src="js/fea/DmaCellTetra.js"></script>
     <script src="js/fea/DmaCellOther.js"></script>
     <script src="js/fea/DmaPart.js"></script>
-    <script src="js/fea/DMAPartTrox.js"></script>
 
     <!--models-->
     <script src="js/models/ThreeModel.js"></script>
diff --git a/js/fea/DMAPartTrox.js b/js/fea/DMAPartTrox.js
deleted file mode 100644
index 9c0ecd2fb86f97f085595cdbe1dcef68ca3cb055..0000000000000000000000000000000000000000
--- a/js/fea/DMAPartTrox.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * Created by aghassaei on 4/9/15.
- */
-
-
-(function () {
-
-    var tetraTrox;
-
-    //import part geometry
-    var loader = new THREE.STLLoader();
-    loader.load("assets/stls/parts/troxTetra.stl", function(geometry){
-
-        tetraTrox = geometry;
-        tetraTrox.computeBoundingBox();
-        var unitScale = 1/3.25;
-        tetraTrox.applyMatrix(new THREE.Matrix4().makeScale(unitScale, unitScale, unitScale));
-//        tetraTrox.applyMatrix(new THREE.Matrix4().makeTranslation(0.25,-0.6, -0.45));
-//        tetraTrox.applyMatrix(new THREE.Matrix4().makeRotationZ(-Math.PI/6));
-    });
-
-    function DMATetraTroxPart(type, parent){
-        DMAPart.call(this, type, parent);
-    }
-    DMATetraTroxPart.prototype = Object.create(DMAPart.prototype);
-
-    DMATetraTroxPart.prototype._makeMeshForType = function(){
-        console.log("mesh");
-        var mesh = new THREE.Mesh(tetraTrox, partMaterial);
-        mesh.myPart = this;//need a ref back to this part
-        return mesh;
-    };
-
-    self.DMATetraTroxPart = DMATetraTroxPart;
-
-    var octaTrox;
-
-    //import part geometry
-    loader.load("assets/stls/parts/troxOcta.stl", function(geometry){
-
-        octaTrox = geometry;
-        octaTrox.computeBoundingBox();
-        var unitScale = 1/3.25;
-        octaTrox.applyMatrix(new THREE.Matrix4().makeScale(unitScale, unitScale, unitScale));
-//        octaTrox.applyMatrix(new THREE.Matrix4().makeTranslation(0.25,-0.6, -0.45));
-//        octaTrox.applyMatrix(new THREE.Matrix4().makeRotationZ(-Math.PI/6));
-    });
-
-    function DMAOctaTroxPart(type, parent){
-        DMAPart.call(this, type, parent);
-    }
-    DMAOctaTroxPart.prototype = Object.create(DMAPart.prototype);
-
-    DMAOctaTroxPart.prototype._makeMeshForType = function(){
-        var mesh = new THREE.Mesh(octaTrox, partMaterial);
-        mesh.myPart = this;//need a ref back to this part
-        return mesh;
-    };
-
-    self.DMAOctaTroxPart = DMAOctaTroxPart;
-
-})();
diff --git a/js/fea/DmaCellOther.js b/js/fea/DmaCellOther.js
index f860da2a7663bb7e3c595af7d25e4526414e9f20..911863d2848985712e9701700eea76e35bcd3d0d 100644
--- a/js/fea/DmaCellOther.js
+++ b/js/fea/DmaCellOther.js
@@ -84,6 +84,12 @@ var cellMaterial = [new THREE.MeshNormalMaterial()];
         this.superCellLength = length;
     };
 
+    DMAGIKCell.prototype._initParts = function(){
+        var parts  = [];
+        parts.push(new DMAGIKPart(0, this));
+        return parts;
+};
+
     self.DMAGIKCell = DMAGIKCell;
 
 })();
diff --git a/js/fea/DmaPart.js b/js/fea/DmaPart.js
index 804b40e278338275f15c0ca57e86a97e9171ff3a..aa3b57ba1b493ac8be0cec2e05789b6f50c97b1d 100644
--- a/js/fea/DmaPart.js
+++ b/js/fea/DmaPart.js
@@ -209,6 +209,10 @@ var partMaterial = new THREE.MeshLambertMaterial({ color:0xffffff, shading: THRE
 
 })();
 
+//////////////////////////////////////////////////////////////
+/////////////////Micro LEGO///////////////////////////////////
+//////////////////////////////////////////////////////////////
+
 
 (function () {
 
@@ -223,17 +227,17 @@ var partMaterial = new THREE.MeshLambertMaterial({ color:0xffffff, shading: THRE
 //        unitPartGeo.applyMatrix(new THREE.Matrix4().makeTranslation(0,0,0.09));
     });
 
-    function DMAEdgeVoxPartLowPoly(type, parent){
+    function DMAGIKPart(type, parent){
         DMAPart.call(this, type, parent);
     }
-    DMAEdgeVoxPartLowPoly.prototype = Object.create(DMAPart.prototype);
+    DMAGIKPart.prototype = Object.create(DMAPart.prototype);
 
-    DMAEdgeVoxPartLowPoly.prototype._makeMeshForType = function(){
+    DMAGIKPart.prototype._makeMeshForType = function(){
         var mesh = new THREE.Mesh(unitPartGeo, partMaterial);
         mesh.myPart = this;//need a ref back to this part
         return mesh;
     };
 
-    self.DMAEdgeVoxPartLowPoly = DMAEdgeVoxPartLowPoly;
+    self.DMAMicroLegoPart = DMAGIKPart;
 
 })();
\ No newline at end of file
diff --git a/js/models/AppState.js b/js/models/AppState.js
index acd60e9031114cdd35b5ad38330d920d2465b5ac..f247f5336a0f79826eb59164505cde5f2cb54fd6 100644
--- a/js/models/AppState.js
+++ b/js/models/AppState.js
@@ -80,7 +80,12 @@ AppState = Backbone.Model.extend({
 //                }
             },
             tetra: {vertex: null},
-            cube: {face: null},
+            cube: {face: null,
+                gik: {
+                    lego: "Micro LEGO (high res)",
+                    legoLowPoly: "Micro LEGO (low res)"
+                }
+            },
             truncatedCube: {face: null},
             kelvin: {face: null}
         },
diff --git a/js/models/Lattice.js b/js/models/Lattice.js
index 29d3272962a502dc268bd6702bb380a689d3f869..9219e32c91a64398b02750faead1f551bdfd2214 100644
--- a/js/models/Lattice.js
+++ b/js/models/Lattice.js
@@ -24,7 +24,7 @@ Lattice = Backbone.Model.extend({
 
         cellType: "cube",
         connectionType: "gik",
-        partType: "triangle",
+        partType: "lego",
         gikLength: 4
     },