From 08fe0ca8db31e66d103c5b251125377a3f41d5cf Mon Sep 17 00:00:00 2001
From: amandaghassaei <amandaghassaei@gmail.com>
Date: Sat, 21 May 2016 12:37:28 -0400
Subject: [PATCH] multiple lattices

---
 assets/demos/BeamBending.json               | 140 ++--
 assets/demos/Bendy.json                     |  32 +-
 assets/demos/Gripper.json                   | 778 ++++++++++----------
 assets/demos/Locomotion.json                | 104 +--
 assets/demos/Undulating.json                |  36 +-
 assets/demos/XYStage.json                   | 102 +--
 js/lattice/Lattice.js                       |   2 +-
 js/menus/ImportMenuView.js                  |   2 +-
 js/menus/MenuWrapperView.js                 |   2 +-
 js/menus/otherUI/NavHierarchicalMenu.js     |   1 -
 js/menus/templates/MaterialMenuView.html    |   6 +-
 js/menus/templates/NavHierarchicalMenu.html |   8 +-
 js/models/AppState.js                       |  15 +-
 js/models/FileSaver.js                      |  59 +-
 js/models/Globals.js                        |  27 +-
 js/plists/MaterialsPlist.js                 | 168 ++++-
 js/plists/PList.js                          |   3 +-
 js/simulation/EM/emSimCell.js               |   6 +-
 18 files changed, 833 insertions(+), 658 deletions(-)

diff --git a/assets/demos/BeamBending.json b/assets/demos/BeamBending.json
index a66c9498..bf39505a 100644
--- a/assets/demos/BeamBending.json
+++ b/assets/demos/BeamBending.json
@@ -26,85 +26,85 @@
 			[
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null
 				]
@@ -430,228 +430,228 @@
 			[
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				]
 			],
 			[
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				]
 			],
diff --git a/assets/demos/Bendy.json b/assets/demos/Bendy.json
index ff57286a..bc5caec6 100644
--- a/assets/demos/Bendy.json
+++ b/assets/demos/Bendy.json
@@ -113,7 +113,7 @@
 					null,
 					null,
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					null
@@ -129,7 +129,7 @@
 					null,
 					null,
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					null
@@ -253,7 +253,7 @@
 					null,
 					null,
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					{
@@ -271,7 +271,7 @@
 					null,
 					null,
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					{
@@ -397,7 +397,7 @@
 					null,
 					null,
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					{
@@ -415,7 +415,7 @@
 					null,
 					null,
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					{
@@ -541,7 +541,7 @@
 					null,
 					null,
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					{
@@ -559,7 +559,7 @@
 					null,
 					null,
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					{
@@ -685,7 +685,7 @@
 					null,
 					null,
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					{
@@ -703,7 +703,7 @@
 					null,
 					null,
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					{
@@ -829,7 +829,7 @@
 					null,
 					null,
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					{
@@ -847,7 +847,7 @@
 					null,
 					null,
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					{
@@ -898,7 +898,7 @@
 					null,
 					null,
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					{
@@ -909,7 +909,7 @@
 					null,
 					null,
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
@@ -918,7 +918,7 @@
 					null,
 					null,
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					{
@@ -980,7 +980,7 @@
 					null,
 					null,
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
diff --git a/assets/demos/Gripper.json b/assets/demos/Gripper.json
index 06ccfc2a..4f4c46a3 100644
--- a/assets/demos/Gripper.json
+++ b/assets/demos/Gripper.json
@@ -31,14 +31,14 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					null
@@ -64,14 +64,14 @@
 				],
 				[
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
@@ -120,7 +120,7 @@
 				],
 				[
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					null
@@ -146,7 +146,7 @@
 				],
 				[
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					null
@@ -190,29 +190,29 @@
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					null
@@ -238,31 +238,31 @@
 				],
 				[
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				]
 			],
@@ -274,7 +274,7 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
@@ -310,7 +310,7 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
@@ -425,24 +425,24 @@
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -476,59 +476,59 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				]
 			],
 			[
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -536,21 +536,21 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -558,43 +558,43 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -624,13 +624,13 @@
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -638,21 +638,21 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -660,21 +660,21 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -682,21 +682,21 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -704,21 +704,21 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -748,29 +748,29 @@
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
@@ -784,7 +784,7 @@
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
@@ -798,66 +798,66 @@
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				]
 			],
 			[
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -865,21 +865,21 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -887,43 +887,43 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -953,13 +953,13 @@
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -967,21 +967,21 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -989,21 +989,21 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1011,21 +1011,21 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1033,21 +1033,21 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1077,29 +1077,29 @@
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
@@ -1113,7 +1113,7 @@
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
@@ -1127,55 +1127,55 @@
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				]
 			],
 			[
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1183,10 +1183,10 @@
 						"materialID": "signal"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1194,21 +1194,21 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1216,10 +1216,10 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1227,32 +1227,32 @@
 						"materialID": "signal"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1282,13 +1282,13 @@
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1296,10 +1296,10 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1307,10 +1307,10 @@
 						"materialID": "signal"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1318,21 +1318,21 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1340,10 +1340,10 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1351,10 +1351,10 @@
 						"materialID": "signal"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1362,21 +1362,21 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1406,24 +1406,24 @@
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1431,10 +1431,10 @@
 						"materialID": "signal"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1442,21 +1442,21 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1464,10 +1464,10 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1475,133 +1475,133 @@
 						"materialID": "signal"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				]
 			],
 			[
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1631,101 +1631,101 @@
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1755,202 +1755,202 @@
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				]
 			],
 			[
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -1980,101 +1980,101 @@
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
@@ -2104,101 +2104,101 @@
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					}
 				]
 			]
diff --git a/assets/demos/Locomotion.json b/assets/demos/Locomotion.json
index a65f72e1..dab9004e 100644
--- a/assets/demos/Locomotion.json
+++ b/assets/demos/Locomotion.json
@@ -212,19 +212,19 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				]
@@ -243,7 +243,7 @@
 				],
 				[
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					{
@@ -252,10 +252,10 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
 						"materialID": "signal"
@@ -263,10 +263,10 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				]
@@ -284,19 +284,19 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				]
@@ -534,19 +534,19 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				]
@@ -565,7 +565,7 @@
 				],
 				[
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					{
@@ -574,10 +574,10 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
 						"materialID": "signal"
@@ -585,10 +585,10 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				]
@@ -606,19 +606,19 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				]
@@ -856,19 +856,19 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				]
@@ -887,7 +887,7 @@
 				],
 				[
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					{
@@ -896,10 +896,10 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
 						"materialID": "signal"
@@ -907,10 +907,10 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				]
@@ -928,19 +928,19 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				]
@@ -1178,19 +1178,19 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				]
@@ -1209,7 +1209,7 @@
 				],
 				[
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					{
@@ -1218,10 +1218,10 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
 						"materialID": "signal"
@@ -1229,10 +1229,10 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				]
@@ -1250,19 +1250,19 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null
 				]
diff --git a/assets/demos/Undulating.json b/assets/demos/Undulating.json
index 17aeb836..acc2cfc7 100644
--- a/assets/demos/Undulating.json
+++ b/assets/demos/Undulating.json
@@ -335,13 +335,13 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
@@ -363,13 +363,13 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
@@ -391,13 +391,13 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
@@ -419,13 +419,13 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
@@ -447,13 +447,13 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
@@ -475,13 +475,13 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
@@ -503,13 +503,13 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
@@ -531,13 +531,13 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
@@ -559,13 +559,13 @@
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
 					},
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					{
 						"materialID": "flexureCond"
diff --git a/assets/demos/XYStage.json b/assets/demos/XYStage.json
index c24a83a0..9a90127a 100644
--- a/assets/demos/XYStage.json
+++ b/assets/demos/XYStage.json
@@ -26,56 +26,56 @@
 			[
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
@@ -84,42 +84,42 @@
 			[
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
@@ -131,7 +131,7 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
@@ -140,42 +140,42 @@
 			[
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
 						"materialID": "flexureCond"
@@ -186,7 +186,7 @@
 				],
 				[
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					{
@@ -195,7 +195,7 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
 						"materialID": "flexureCond"
@@ -208,42 +208,42 @@
 			[
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
@@ -255,7 +255,7 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
@@ -264,56 +264,56 @@
 			[
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "fiberGlass"
+						"materialID": "insulating"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
@@ -322,21 +322,21 @@
 			[
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
 						"materialID": "flexureCond"
@@ -347,14 +347,14 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
@@ -378,7 +378,7 @@
 			[
 				[
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					null
@@ -390,7 +390,7 @@
 				],
 				[
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					{
@@ -404,7 +404,7 @@
 				],
 				[
 					{
-						"materialID": "piezo"
+						"materialID": "actuator"
 					},
 					null,
 					null
@@ -428,21 +428,21 @@
 			[
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					{
 						"materialID": "flexureCond"
@@ -453,14 +453,14 @@
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
 				],
 				[
 					{
-						"materialID": "brass"
+						"materialID": "conductive"
 					},
 					null,
 					null
diff --git a/js/lattice/Lattice.js b/js/lattice/Lattice.js
index 65b6a295..cb4a2fcc 100644
--- a/js/lattice/Lattice.js
+++ b/js/lattice/Lattice.js
@@ -282,7 +282,7 @@ define(['underscore', 'backbone', 'appState', 'globals', 'plist', 'materialsPlis
             if (latticeData.parts) newPartType = _.keys(latticeData.parts)[0];
             this.set("partType", newPartType, {silent:true});
 
-            var newMaterialClass = (latticeData.materialClasses || _.keys(materialsPlist.allMaterialClasses))[0];
+            var newMaterialClass = (_.keys(materialsPlist.allMaterialClasses[appState.get("hierLevel")]))[0];
             appState.set("materialClass", newMaterialClass);
 
             if (latticeData.options){
diff --git a/js/menus/ImportMenuView.js b/js/menus/ImportMenuView.js
index 9b858d03..db65a384 100644
--- a/js/menus/ImportMenuView.js
+++ b/js/menus/ImportMenuView.js
@@ -45,7 +45,7 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'text!menus/te
 
         _buildWall: function(e){
             e.preventDefault();
-            lattice.getUItarget().addCellsInRange({min:{x:-5,y:-5,z:0}, max:{x:5,y:5,z:3}});
+            lattice.addCellsInRange({min:{x:-5,y:-5,z:0}, max:{x:5,y:5,z:3}});
         },
 
         _readDataURL: function(event, numFiles, filename, files){
diff --git a/js/menus/MenuWrapperView.js b/js/menus/MenuWrapperView.js
index 76eed6e5..9c2a9881 100644
--- a/js/menus/MenuWrapperView.js
+++ b/js/menus/MenuWrapperView.js
@@ -232,7 +232,7 @@ define(['jquery', 'underscore', 'plist', 'backbone', 'lattice', 'appState', 'tex
 
         _clearCells: function(e){
             e.preventDefault();
-            lattice.getUItarget().clearCells();
+            lattice.clearCells();
         },
 
         _getPropertyOwner: function($target){
diff --git a/js/menus/otherUI/NavHierarchicalMenu.js b/js/menus/otherUI/NavHierarchicalMenu.js
index 2a679577..cd54248c 100644
--- a/js/menus/otherUI/NavHierarchicalMenu.js
+++ b/js/menus/otherUI/NavHierarchicalMenu.js
@@ -23,7 +23,6 @@ define(['jquery', 'underscore', 'backbone', 'text!menus/templates/NavHierarchica
             e.preventDefault();
             var $target = $(e.target);
             if ($target.data("hierlevel")) this.model.set("hierLevel", $target.data("hierlevel"));
-            console.log(this.model.get("hierLevel"));
         },
 
 
diff --git a/js/menus/templates/MaterialMenuView.html b/js/menus/templates/MaterialMenuView.html
index a825280d..2ec27650 100644
--- a/js/menus/templates/MaterialMenuView.html
+++ b/js/menus/templates/MaterialMenuView.html
@@ -1,10 +1,10 @@
 <% if (!inSimMode){ %>
     Material Class: &nbsp;&nbsp;
         <div class="btn-group">
-            <button data-toggle="dropdown" class="btn dropdown-toggle" type="button"><%= allMaterialClasses[materialClass] %><span class="caret"></span></button>
+            <button data-toggle="dropdown" class="btn dropdown-toggle" type="button"><%= allMaterialClasses[hierLevel][materialClass] %><span class="caret"></span></button>
             <ul role="menu" class="dropdown-menu">
-                <% _.each(allLattices[cellType].connection[connectionType].type[applicationType].materialClasses || _.keys(allMaterialClasses), function(key){ %>
-                    <li><a class="appState dropdownSelector" data-property="materialClass" data-value="<%= key %>" href="#"><%= allMaterialClasses[key] %></a></li>
+                <% _.each(allLattices[cellType].connection[connectionType].type[applicationType].materialClasses || _.keys(allMaterialClasses[hierLevel]), function(key){ %>
+                    <li><a class="appState dropdownSelector" data-property="materialClass" data-value="<%= key %>" href="#"><%= allMaterialClasses[hierLevel][key] %></a></li>
                 <% }); %>
             </ul>
         </div><br/><br/>
diff --git a/js/menus/templates/NavHierarchicalMenu.html b/js/menus/templates/NavHierarchicalMenu.html
index 1acc01a9..49d58f2e 100644
--- a/js/menus/templates/NavHierarchicalMenu.html
+++ b/js/menus/templates/NavHierarchicalMenu.html
@@ -1,4 +1,4 @@
-<li><a class="hierDropdown" data-hierlevel="element" href="#"><%if (hierLevel=="element"){ %><span class="fui-check"></span> <% } %>Element</a></li>
-<li><a class="hierDropdown" data-hierlevel="function" href="#"><%if (hierLevel=="function"){ %><span class="fui-check"></span> <% } %>Function</a></li>
-<li><a class="hierDropdown" data-hierlevel="module" href="#"><%if (hierLevel=="module"){ %><span class="fui-check"></span> <% } %>Module</a></li>
-<li><a class="hierDropdown" data-hierlevel="system" href="#"><%if (hierLevel=="system"){ %><span class="fui-check"></span> <% } %>System</a></li>
\ No newline at end of file
+<li><a class="hierDropdown" data-hierlevel="element" href="#"><%if (hierLevel=="element"){ %><span class="fui-check"></span> <% } %>Elements</a></li>
+<li><a class="hierDropdown" data-hierlevel="function" href="#"><%if (hierLevel=="function"){ %><span class="fui-check"></span> <% } %>Functions</a></li>
+<li><a class="hierDropdown" data-hierlevel="module" href="#"><%if (hierLevel=="module"){ %><span class="fui-check"></span> <% } %>Modules</a></li>
+<li><a class="hierDropdown" data-hierlevel="system" href="#"><%if (hierLevel=="system"){ %><span class="fui-check"></span> <% } %>Systems</a></li>
\ No newline at end of file
diff --git a/js/models/AppState.js b/js/models/AppState.js
index 19ca0bd8..cbb76e97 100644
--- a/js/models/AppState.js
+++ b/js/models/AppState.js
@@ -5,8 +5,8 @@
 //a class to store global app state, model for navbar and menu wrapper
 //never deallocated
 
-define(['underscore', 'backbone', 'threeModel', 'three', 'plist', 'globals'],
-    function(_, Backbone, three, THREE, plist, globals){
+define(['underscore', 'backbone', 'threeModel', 'three', 'plist', 'materialsPlist', 'globals'],
+    function(_, Backbone, three, THREE, plist, materialsPlist, globals){
 
     var AppState = Backbone.Model.extend({
 
@@ -60,6 +60,7 @@ define(['underscore', 'backbone', 'threeModel', 'three', 'plist', 'globals'],
             this.listenTo(this, "change:axesAreVisible", this._showAxes);
             this.listenTo(this, "change:focusOnLattice", this._focusOnLattice);
             this.listenTo(this, "change:showOneLayer", this.showSketchLayer);
+            this.listenTo(this, "change:hierLevel", this._updateHierarchicalLevel);
 
             this.downKeys = {};//track keypresses to prevent repeat keystrokes on hold
             this.lastCellMode = this.get("cellMode");//store this to toggle on/off hide mode
@@ -217,6 +218,15 @@ define(['underscore', 'backbone', 'threeModel', 'three', 'plist', 'globals'],
             three.render();
         },
 
+        _updateHierarchicalLevel: function(){
+            //save last assembly
+            globals.saveHierarchicalAssembly(this.previous("hierLevel"));
+            this.lattice.clearCells();
+            var currentLevel = this.get("hierLevel");
+            this.set("materialClass", (_.keys(materialsPlist.allMaterialClasses[currentLevel]))[0]);
+            globals.loadHierarchicalAssembly(currentLevel);
+        },
+
 
 
         //key bindings
@@ -320,7 +330,6 @@ define(['underscore', 'backbone', 'threeModel', 'three', 'plist', 'globals'],
                     e.preventDefault();
                     e.stopPropagation();
                     //also continue to case 46
-                    break;
                 case 46://delete
                     if (state){
                         var selection3D = globals.get("selection3D");
diff --git a/js/models/FileSaver.js b/js/models/FileSaver.js
index 049e7766..f02e0508 100644
--- a/js/models/FileSaver.js
+++ b/js/models/FileSaver.js
@@ -3,24 +3,19 @@
  */
 
 
-define(['underscore', 'fileSaverLib', 'lattice', 'materials', 'ribbon', 'menuWrapper'], function(_, saveAs, lattice, materials, ribbon, menuWrapper){
+define(['underscore', 'fileSaverLib', 'lattice', 'materials', 'ribbon', 'menuWrapper', 'globals'],
+    function(_, saveAs, lattice, materials, ribbon, menuWrapper, globals){
 
-    function _saveFile(data, name, extension, noQuotes){
+    function _saveFile(data, name, extension){
 //        require(['jsonFn'], function(JSONfn){
 //        console.log(data.toString());
             var jsonString = JSON.stringify(data, null, '\t');
 
-            if (noQuotes){
-                jsonString = jsonString.replace(/"/g, '');
-            }
+            //if (noQuotes){
+            //    jsonString = jsonString.replace(/"/g, '');
+            //}
 
             saveData(jsonString, name, extension);
-            if (data.assembler){
-                jsonString.replace(/\\"/g,"\uFFFF"); //U+ FFFF
-                jsonString = jsonString.replace(/\"([^"]+)\":/g,"$1:").replace(/\uFFFF/g,"\\\"");
-                var blob = new Blob([jsonString], {type: "text/plain;charset=utf-8"});
-                saveAs(blob, name + "-forAmanda" + "." + extension);
-            }
 //        });
     }
 
@@ -50,13 +45,16 @@ define(['underscore', 'fileSaverLib', 'lattice', 'materials', 'ribbon', 'menuWra
         });
     }
 
-    function saveAssembler(){
-
+    function generateSaveString(){
+        var data = {
+            assembly:_getLatticeDataToSave(),
+            materials:_getMaterialsDataToSave()
+        };
+        var jsonString = JSON.stringify(data, null, '\t');
+        return jsonString;
     }
 
-    function saveSequences(seqArray, name){
-        _saveFile(seqArray, name || "seqs", "txt", true);
-    }
+
 
     function saveMaterial(material){
         var data = {materials:{}};
@@ -68,12 +66,6 @@ define(['underscore', 'fileSaverLib', 'lattice', 'materials', 'ribbon', 'menuWra
         _saveFile(data, "Machine Config", "json");
     }
 
-    function _getAssemblerDataToSave(){
-        var assemblerData = _.omit(globals.cam.toJSON(), ["origin", "stock", "exporter", "appState", "lattice", "machine", "simLineNumber"]);
-        if (!globals.cam.get("editsMadeToProgram")) assemblerData.dataOut = "";
-        return assemblerData;
-    }
-
     function _getLatticeDataToSave(){
         return lattice.getSaveJSON();
     }
@@ -88,10 +80,6 @@ define(['underscore', 'fileSaverLib', 'lattice', 'materials', 'ribbon', 'menuWra
 
 
     function loadFile(data){//parsed json todo make this better - load composite
-        if (data.assembler) {
-            _loadAssembler(data.assembler);
-            return;
-        }
         if (!data.materials){
             console.warn("no material definitions in this file");
             return;
@@ -116,13 +104,6 @@ define(['underscore', 'fileSaverLib', 'lattice', 'materials', 'ribbon', 'menuWra
         }
     }
 
-    function _loadAssembler(data){
-        require(['cam'], function(cam){
-            cam.selectMachine(data);
-            console.log("loaded");
-        });
-    }
-
     function _setData(object, data){
         _.each(_.keys(data), function(key){
             if (data[key] && data[key].x){//vector object
@@ -152,17 +133,19 @@ define(['underscore', 'fileSaverLib', 'lattice', 'materials', 'ribbon', 'menuWra
         saveData(data, "script", "js");
     }
 
-
-    return {//return public methods
+    var publicMethods = {//return public methods
 //        save: save,
         save: save,
         saveData: saveData,
+        generateSaveString: generateSaveString,
         saveMaterial: saveMaterial,
         saveMachineConfig: saveMachineConfig,
-//        saveAssembler: saveAssembler,
         loadFile: loadFile,
-        saveSequences: saveSequences,
         saveSTL: saveSTL,
         saveConsoleScript: saveConsoleScript
-    }
+    };
+
+    globals.set("fileSaver", publicMethods);
+
+    return publicMethods;
 });
\ No newline at end of file
diff --git a/js/models/Globals.js b/js/models/Globals.js
index ae4f164a..eb121842 100644
--- a/js/models/Globals.js
+++ b/js/models/Globals.js
@@ -11,7 +11,14 @@ define(['backbone'], function(Backbone){
             baseplane: null,
             highlighter: null,
             selection3D: null,
-            selectedRegion: null
+            selectedRegion: null,
+            fileSaver: null,
+            savedAssemblies:{
+                element: null,
+                function: null,
+                module: null,
+                system: null
+            }
         },
 
         destroySelectedRegion: function(){
@@ -22,9 +29,27 @@ define(['backbone'], function(Backbone){
         destroySelection3D: function(){
             if (this.get("selection3D")) this.get("selection3D").destroy();
             this.set("selection3D", null);
+        },
+
+        saveHierarchicalAssembly: function(type){
+            if (type == "element" || type == "function" || type == "module" || type == "system") {
+                var data = this.get("fileSaver").generateSaveString();
+                this.get("savedAssemblies")[type] = data;
+            }
+            else console.warn("unknown type " + type);
+        },
+
+        loadHierarchicalAssembly: function(type){
+            if (type == "element" || type == "function" || type == "module" || type == "system") {
+                var string = this.get("savedAssemblies")[type];
+                if (string) this.get("fileSaver").loadFile(JSON.parse(string));
+            }
+            else console.warn("unknown type " + type);
         }
 
 
+
+
     });
     return new Globals();
 });
\ No newline at end of file
diff --git a/js/plists/MaterialsPlist.js b/js/plists/MaterialsPlist.js
index 8bad2265..5467267a 100644
--- a/js/plists/MaterialsPlist.js
+++ b/js/plists/MaterialsPlist.js
@@ -7,12 +7,23 @@ define([], function(){
 
     return {
         allMaterialClasses:{
-            em: "Electro-Mechanical"
+            element:{
+                element: "Elemental Bricks"
+            },
+            function:{
+                em: "Functional Bricks"
+            },
+            module:{
+                module: "Robotic Modules"
+            },
+            system:{
+                system: "Systems"
+            }
         },
 
         allMaterials:{
             em:{
-                fiberGlass: {
+                insulating: {
                     name: "Structural Insulating",
                     color: "#8a2be2",
                     altColor: "#8a2be2",
@@ -35,7 +46,7 @@ define([], function(){
                         k: 30
                     }
                 },
-                brass:{
+                conductive:{
                     name: "Structural Conductive",
                     color: "#b5a642",
                     altColor: "#857B64",
@@ -93,7 +104,7 @@ define([], function(){
 //                },
 
 
-                piezo: {
+                actuator: {
                     name: "Actuator",
                     color: "#FFCC00",
                     altColor: "#FFCC00",
@@ -159,6 +170,155 @@ define([], function(){
                 //        k: 1000
                 //    }
                 //}
+            },
+            element:{
+                fiberglass: {
+                    name: "Fiberglass",
+                    color: "#8a2be2",
+                    altColor: "#8a2be2",
+                    properties:{
+                        conductive: false,
+                        density: 3500,//kg/m^3
+                        elasMod: 17.2,
+                        k: 500
+                    }
+                },
+                rubber: {
+                    name: "Rubber",
+                    color: "#cda4f3",
+                    altColor: "#cda4f3",
+                    texture: "stripes",
+                    properties:{
+                        conductive: false,
+                        density: 3500,//kg/m^3
+                        elasMod: 0.01,
+                        k: 30
+                    }
+                },
+                brass:{
+                    name: "Brass",
+                    color: "#b5a642",
+                    altColor: "#857B64",
+                    properties:{
+                        conductive: true,
+                        density: 8500,//kg/m^3
+                        elasMod: 1000,//Gpascals (kg/(s^2*m)/10000000000)
+                        k: 500
+                    }
+                },
+                alum:{
+                    name: "Aluminum",
+                    color: "#9CC9CB",
+                    altColor: "#9CC9CB",
+                    properties:{
+                        conductive: true,
+                        density: 8500,//kg/m^3
+                        elasMod: 1000,//Gpascals (kg/(s^2*m)/10000000000)
+                        k: 1000
+                    }
+                },
+                heatResist: {
+                    name: "Kapton",
+                    color: "#9CC9CB",
+                    altColor: "#9CC9CB",
+                    properties:{
+                        conductive: false,
+                        density: 500,//kg/m^3
+                        elasMod: 17.2
+                    }
+                },
+                carbon: {
+                    name: "Resistive",
+                    color: "#222",
+                    altColor: "#000",
+                    properties:{
+                        conductive: false,
+                        density: 500,//kg/m^3
+                        elasMod: 181,
+                        k: 1000
+                    }
+                },
+                piezo: {
+                    name: "Piezo",
+                    color: "#FFCC00",
+                    altColor: "#FFCC00",
+                    properties:{
+                        conductive: false,
+                        density: 6500,//kg/m^3
+                        elasMod: 50,
+                        k: 200
+                    }
+                },
+                nmos: {
+                    name: "NMOS",
+                    color: "#F99987",
+                    altColor: "#F99987",
+                    properties:{
+                        conductive: false,
+                        density: 6500,//kg/m^3
+                        elasMod: 50,
+                        k: 1000
+                    }
+                },
+                pmos: {
+                    name: "PMOS",
+                    color: "#0EE3B8",
+                    altColor: "#0EE3B8",
+                    properties:{
+                        conductive: false,
+                        density: 6500,//kg/m^3
+                        elasMod: 50,
+                        k: 1000
+                    }
+                },
+                diode: {
+                    name: "Diode",
+                    color: "#dfccaf",
+                    altColor: "#dfccaf",
+                    properties:{
+                        conductive: false,
+                        density: 6500,//kg/m^3
+                        elasMod: 50,
+                        k: 1000
+                    }
+                },
+                zener: {
+                    name: "Zener Diode",
+                    color: "#bf390b",
+                    altColor: "#bf390b",
+                    properties:{
+                        conductive: false,
+                        density: 6500,//kg/m^3
+                        elasMod: 50,
+                        k: 1000
+                    }
+                }
+            },
+            module: {
+                diode: {
+                    name: "Diode",
+                    color: "#dfccaf",
+                    altColor: "#dfccaf",
+                    properties: {
+                        conductive: false,
+                        density: 6500,//kg/m^3
+                        elasMod: 50,
+                        k: 1000
+                    }
+                }
+            },
+            system: {
+                zener: {
+                    name: "Zener Diode",
+                    color: "#bf390b",
+                    altColor: "#bf390b",
+                    properties:{
+                        conductive: false,
+                        density: 6500,//kg/m^3
+                        elasMod: 50,
+                        k: 1000
+                    }
+                }
             }
         }
     }
diff --git a/js/plists/PList.js b/js/plists/PList.js
index d575676c..92cc60b1 100644
--- a/js/plists/PList.js
+++ b/js/plists/PList.js
@@ -92,8 +92,7 @@ define(['three'], function(THREE){
             }
         },
 
-        allCellModes:{//supercell, cell, part, node, beam
-            supercell: "Hierarchical Mode  &nbsp;&nbsp;(H)",
+        allCellModes:{//cell, part
             cell: "Voxel Mode  &nbsp;&nbsp;(V)",
             part: "Part Mode  &nbsp;&nbsp;(P)",
             hide: "Hide Cells  &nbsp;&nbsp;(O)"
diff --git a/js/simulation/EM/emSimCell.js b/js/simulation/EM/emSimCell.js
index bed60f2c..1ffeff7e 100644
--- a/js/simulation/EM/emSimCell.js
+++ b/js/simulation/EM/emSimCell.js
@@ -159,7 +159,7 @@ define(["underscore", "cell", "lattice", "plist", "three"],
     };
 
     DMACell.prototype.isAcutator = function(){
-        return this.getMaterialID() == "piezo";
+        return this.getMaterialID() == "actuator";
     };
 
     DMACell.prototype.isSignalGenerator = function(){
@@ -202,8 +202,8 @@ define(["underscore", "cell", "lattice", "plist", "three"],
         return this.getMaterial().isConductive();
     };
 
-    EMSimCell.prototype.isPiezo = function(){
-        return this.cell.getMaterialID() == "piezo";
+    EMSimCell.prototype.isActuator = function(){
+        return this.cell.getMaterialID() == "actuator";
     };
 
     EMSimCell.prototype.setNominalSize = function(size){
-- 
GitLab