diff --git a/css/main.css b/css/main.css
index a0f790fdc953280781538295accaa4a94b41ddf9..6b2ca0fecd781e2edf4f434ab198b93f8d9b32cf 100644
--- a/css/main.css
+++ b/css/main.css
@@ -336,6 +336,6 @@ svg{
 .smallTxt{
     font-size: 14px;
 }
-#stlFilename{
+input.form-control.bigInput{
     width:300px;
 }
diff --git a/index.html b/index.html
index 8bc516f5df8861a5a8c9e58a83a8a18e495c6bfa..f978ddb1c7c0966168dfc7e3893a20ebe8e2e422 100644
--- a/index.html
+++ b/index.html
@@ -374,6 +374,7 @@
     <script type="text/javascript" src="js/dynamic/dynamicSolver.js"></script>
     <script type="text/javascript" src="js/pattern.js"></script>
     <script type="text/javascript" src="js/saveSTL.js"></script>
+    <script type="text/javascript" src="js/saveFOLD.js"></script>
     <script type="text/javascript" src="js/importer.js"></script>
 
 
@@ -411,6 +412,7 @@
                     <li><a class="loadFile" href="#">Import... (SVG / FOLD / txt)</a></li>
 
                     <li class="divider"></li>
+                    <li><a id="exportFOLD" href="#">Save Simulation as FOLD...</a></li>
                     <li><a id="exportSTL" href="#">Save Simulation as STL...</a></li>
                     <li><a id="saveSVG" href="#">Save Pattern as SVG...</a></li>
                     <!--<li><a id="saveSVGScreenshot" href="#">Save SVG screenshot</a></li>-->
@@ -597,9 +599,9 @@
                   <span aria-hidden="true">&times;</span>
                 </button>
                 <p><b>Export STL</b><br/><br/>
-                    Filename: &nbsp;&nbsp;<input id="stlFilename" value="" placeholder="" class="text form-control" type="text"> .stl<br/><br/>
-                    Scale: &nbsp;&nbsp;<input id="stlScale" value="" placeholder="" class="form-control" type="text"><br/><br/>
-                    Dimensions: &nbsp;&nbsp;<b><span id="stlDimensions"></span></b><br/>
+                    Filename: &nbsp;&nbsp;<input id="stlFilename" value="" placeholder="" class="bigInput text form-control" type="text"> .stl<br/><br/>
+                    Scale: &nbsp;&nbsp;<input value="" placeholder="" class="exportScale form-control" type="text"><br/><br/>
+                    Dimensions: &nbsp;&nbsp;<b><span class="exportDimensions"></span></b><br/>
                     <span class="smallTxt">(the STL file format is unitless, but typically assumed to be either in inches or mm)</span><br/><br/>
                     <label class="bigLabel checkbox" for="doublesidedSTL">
                         <input id="doublesidedSTL" data-toggle="checkbox" class="custom-checkbox layersSelector" type="checkbox"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>
@@ -614,6 +616,29 @@
         </div><!-- /.modal-content -->
     </div><!-- /.modal-dialog -->
 </div><!-- /.modal -->
+<div class="modal fade" id="exportFOLDModal" tabindex="-1" role="dialog">
+    <div class="modal-dialog modal-med">
+        <div class="modal-content">
+            <div class="modal-body">
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                  <span aria-hidden="true">&times;</span>
+                </button>
+                <p><b>Export FOLD</b><br/><br/>
+                    Filename: &nbsp;&nbsp;<input id="foldFilename" value="" placeholder="" class="bigInput text form-control" type="text"> .stl<br/><br/>
+                    Author: &nbsp;&nbsp;<input id="foldAuthor" value="Amanda Ghassaei" placeholder="" class="bigInput text form-control" type="text"><br/><br/>
+                    Scale: &nbsp;&nbsp;<input value="" placeholder="" class="exportScale form-control" type="text"><br/><br/>
+                    Dimensions: &nbsp;&nbsp;<b><span class="exportDimensions"></span></b><br/>
+                    <span class="smallTxt">(the FOLD file format is unitless)</span><br/><br/>
+
+                </p>
+            </div>
+            <div class="modal-footer">
+                <button id="doFOLDsave" type="button" class="btn btn-success" data-dismiss="modal">Save</button>
+                <button type="button" class="btn btn default" data-dismiss="modal">Cancel</button>
+            </div>
+        </div><!-- /.modal-content -->
+    </div><!-- /.modal-dialog -->
+</div><!-- /.modal -->
 <div class="modal fade" id="importFoldModal" tabindex="-1" role="dialog">
     <div class="modal-dialog modal-med">
         <div class="modal-content">
diff --git a/js/controls.js b/js/controls.js
index c78d436d68f9fef22bc72dc6532ec214e34a33c5..32a9c74de556231c128e95c722c62c91deeb56bf 100644
--- a/js/controls.js
+++ b/js/controls.js
@@ -21,19 +21,24 @@ function initControls(globals){
         $('#tipsModal').modal('show');
     });
 
+    setLink("#exportFOLD", function(){
+        updateDimensions();
+        $("#foldFilename").val(globals.filename + " : " + parseInt(globals.creasePercent*100) +  "PercentFolded");
+        $('#exportFOLDModal').modal('show');
+    });
     setLink("#exportSTL", function(){
         updateDimensions();
         $("#stlFilename").val(globals.filename + " : " + parseInt(globals.creasePercent*100) +  "PercentFolded");
         $('#exportSTLModal').modal('show');
     });
-    setInput("#stlScale", globals.stlScale, function(val){
-        globals.stlScale = val;
+    setInput(".exportScale", globals.exportScale, function(val){
+        globals.exportScale = val;
         updateDimensions();
     }, 0);
     function updateDimensions(){
         var dim = globals.model.getDimensions();
-        dim.multiplyScalar(globals.stlScale/globals.scale);
-        $("#stlDimensions").html(dim.x.toFixed(2) + " x " + dim.y.toFixed(2) + " x " + dim.z.toFixed(2));
+        dim.multiplyScalar(globals.exportScale/globals.scale);
+        $(".exportDimensions").html(dim.x.toFixed(2) + " x " + dim.y.toFixed(2) + " x " + dim.z.toFixed(2));
     }
     setCheckbox("#doublesidedSTL", globals.doublesidedSTL, function(val){
         globals.doublesidedSTL = val;
@@ -42,6 +47,9 @@ function initControls(globals){
     setLink("#doSTLsave", function(){
         saveSTL();
     });
+    setLink("#doFOLDsave", function(){
+        saveFOLD();
+    });
 
 
     setLink("#navPattern", function(){
diff --git a/js/globals.js b/js/globals.js
index f4d6b33169e6c1779fb61265d2a70d22a4ffa46f..1b41b2d4ea2c54fdf30456668c600ef6d942b68b 100644
--- a/js/globals.js
+++ b/js/globals.js
@@ -55,7 +55,7 @@ function initGlobals(){
         filename: null,
         extension: null,
         doublesidedSTL: false,
-        stlScale: 1,
+        exportScale: 1,
 
         userInteractionEnabled: false
 
diff --git a/js/saveFOLD.js b/js/saveFOLD.js
new file mode 100644
index 0000000000000000000000000000000000000000..ddc0efd3647b864043d356d1a6efa06076719c3f
--- /dev/null
+++ b/js/saveFOLD.js
@@ -0,0 +1,28 @@
+/**
+ * Created by amandaghassaei on 5/6/17.
+ */
+
+function saveFOLD(){
+
+    var geo = new THREE.Geometry().fromBufferGeometry( globals.model.getGeometry() );
+
+    if (geo.vertices.length == 0 || geo.faces.length == 0) {
+        globals.warn("No geometry to save.");
+        return;
+    }
+
+    if (globals.exportScale != 1){
+        for (var i=0;i<geo.vertices.length;i++){
+            geo.vertices[i].multiplyScalar(globals.exportScale);
+        }
+    }
+
+    // var data = [];
+    // data.push({geo: geo, offset:new THREE.Vector3(0,0,0), orientation:new THREE.Quaternion(0,0,0,1)});
+    // var stlBin = geometryToSTLBin(data);
+    // if (!stlBin) return;
+    // var blob = new Blob([stlBin], {type: 'application/octet-binary'});
+    var filename = $("#foldFilename").val();
+    if (filename == "") filename = globals.filename;
+    saveAs(blob, filename + ".fold");
+}
\ No newline at end of file
diff --git a/js/saveSTL.js b/js/saveSTL.js
index 39f984a4fba129bd886baebb93cff233bcd4292d..7e114983fd47602adb2ca744054b2fddbe870ddd 100644
--- a/js/saveSTL.js
+++ b/js/saveSTL.js
@@ -11,9 +11,9 @@ function saveSTL(){
         return;
     }
 
-    if (globals.stlScale != 1){
+    if (globals.exportScale != 1){
         for (var i=0;i<geo.vertices.length;i++){
-            geo.vertices[i].multiplyScalar(globals.stlScale);
+            geo.vertices[i].multiplyScalar(globals.exportScale);
         }
     }