diff --git a/.gitignore b/.gitignore
index 9ebfe1160fb9a87907de4a783e2f9869117051d5..37b57e4b9f69899c08d100b457dc7e87b7a73268 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,7 +13,6 @@ eq-prob*/
 eq-rate*/
 Scratch*.java
 nshmp-haz-log*
-models
 webapp/models
 webapp/jsdocs
 scratch*.html
diff --git a/etc/peer/models/Set1-Case1/active-crust/fault-sources/fault-config.json b/etc/peer/models/Set1-Case1/active-crust/fault-sources/fault-config.json
index 426ce4f294672fc9207af940aa89543692f32efa..3b7b32e809ad9b53be2f7fecd7893149bb77a111 100644
--- a/etc/peer/models/Set1-Case1/active-crust/fault-sources/fault-config.json
+++ b/etc/peer/models/Set1-Case1/active-crust/fault-sources/fault-config.json
@@ -1,7 +1,7 @@
 {
   "surface-spacing": 1.0,
   "rupture-scaling": "PEER",
-  "rupture-floating": "NSHM",
+  "rupture-floating": "OFF",
   "dip-slip-model": "FIXED",
   "dip-tree": null
 }
diff --git a/etc/peer/models/Set1-Case1/calc-config.json b/etc/peer/models/Set1-Case1/calc-config.json
index bd9f5996f85660d710642c6f115a7daf341e7d94..5a9404437d834d1b6feaf50e603fc11b08aa112f 100644
--- a/etc/peer/models/Set1-Case1/calc-config.json
+++ b/etc/peer/models/Set1-Case1/calc-config.json
@@ -1,15 +1,12 @@
 {
-  "model": {
-    "name": "PEER Test: Set1-Case1",
-    "surfaceSpacing": 1.0,
-    "ruptureFloating": "OFF",
-    "ruptureVariability": false,
-    "pointSourceType": "FINITE",
-    "areaGridScaling": "UNIFORM_0P01"
-  },
   "hazard": {
     "exceedanceModel": "NONE",
-    "valueFormat": "ANNUAL_RATE",
-    "imts": ["PGA"]
+    "valueFormat": "POISSON_PROBABILITY",
+    "imts": ["PGA"],
+   "customImls": { 
+      "PGA": [
+        0.001, 0.01, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35,
+        0.4, 0.45, 0.5, 0.55, 0.6, 0.7, 0.8, 0.9, 1.0]
+    }
   }
 }
diff --git a/etc/peer/models/Set1-Case2/active-crust/fault-sources/fault-config.json b/etc/peer/models/Set1-Case2/active-crust/fault-sources/fault-config.json
new file mode 100644
index 0000000000000000000000000000000000000000..c071b87d9403b1fcee9ece2a241cbd9d5836cd48
--- /dev/null
+++ b/etc/peer/models/Set1-Case2/active-crust/fault-sources/fault-config.json
@@ -0,0 +1,7 @@
+{
+  "surface-spacing": 0.02,
+  "rupture-scaling": "PEER",
+  "rupture-floating": "ON",
+  "dip-slip-model": "FIXED",
+  "dip-tree": null
+}
diff --git a/etc/peer/models/Set1-Case2/active-crust/fault-sources/features/set1-case2.geojson b/etc/peer/models/Set1-Case2/active-crust/fault-sources/features/set1-case2.geojson
new file mode 100644
index 0000000000000000000000000000000000000000..66326601d320ef75bdf059dd7fe1a922f52a4ac2
--- /dev/null
+++ b/etc/peer/models/Set1-Case2/active-crust/fault-sources/features/set1-case2.geojson
@@ -0,0 +1,21 @@
+{
+  "type": "Feature",
+  "id": 1,
+  "geometry": {
+    "type": "LineString",
+    "coordinates": [
+      [-122.00000, 38.22480],
+      [-122.00000, 38.00000]
+    ]
+  },
+  "properties": {
+    "name": "Set1-Case2 fault",
+    "state": "CA",
+    "upper-depth": 0.0,
+    "lower-depth": 12.0,
+    "dip": 90.0,
+    "rake": 0.0,
+    "rate-type": "RECURRENCE",
+    "length": 25.0
+  }
+}
diff --git a/etc/peer/models/Set1-Case2/active-crust/fault-sources/mfd-config.json b/etc/peer/models/Set1-Case2/active-crust/fault-sources/mfd-config.json
new file mode 100644
index 0000000000000000000000000000000000000000..a0def60f99a8bcba9a16458e10af5bef3facaa92
--- /dev/null
+++ b/etc/peer/models/Set1-Case2/active-crust/fault-sources/mfd-config.json
@@ -0,0 +1,6 @@
+{
+  "epistemic-tree": null,
+  "aleatory-properties": null,
+  "minimum-magnitude": 5.0,
+  "nshm-bin-model": true
+}
diff --git a/etc/peer/models/Set1-Case2/active-crust/fault-sources/mfd-map.json b/etc/peer/models/Set1-Case2/active-crust/fault-sources/mfd-map.json
new file mode 100644
index 0000000000000000000000000000000000000000..2db0c02517e60bcdacb6c16837c497cb08cf5fc7
--- /dev/null
+++ b/etc/peer/models/Set1-Case2/active-crust/fault-sources/mfd-map.json
@@ -0,0 +1,13 @@
+{
+  "set1-case2-mfd": [
+    {
+      "id": "set1-case2",
+      "weight": 1.0,
+      "value": {
+        "type": "SINGLE",
+        "m": 6.0,
+        "rate": 0.016042517
+      }
+    }
+  ]
+}
diff --git a/etc/peer/models/Set1-Case2/active-crust/fault-sources/set1-case2/rupture-set.json b/etc/peer/models/Set1-Case2/active-crust/fault-sources/set1-case2/rupture-set.json
new file mode 100644
index 0000000000000000000000000000000000000000..c48920af3422aa4253996685e961acbcbb017006
--- /dev/null
+++ b/etc/peer/models/Set1-Case2/active-crust/fault-sources/set1-case2/rupture-set.json
@@ -0,0 +1,5 @@
+{
+  "name": "PEER Set1-Case2",
+  "id": 1,
+  "mfd-tree": "set1-case2-mfd"
+}
diff --git a/etc/peer/models/Set1-Case2/active-crust/fault-sources/source-tree.json b/etc/peer/models/Set1-Case2/active-crust/fault-sources/source-tree.json
new file mode 100644
index 0000000000000000000000000000000000000000..fa4b53aac36a45cf3e6d46d305acc28d86568008
--- /dev/null
+++ b/etc/peer/models/Set1-Case2/active-crust/fault-sources/source-tree.json
@@ -0,0 +1,6 @@
+[
+  {
+    "id": "set1-case2",
+    "weight": 1.0
+  }
+]
diff --git a/etc/peer/models/Set1-Case2/active-crust/gmm-config.json b/etc/peer/models/Set1-Case2/active-crust/gmm-config.json
new file mode 100644
index 0000000000000000000000000000000000000000..dfe80f5535a5d8001d7091b5d2f5f443a0feae47
--- /dev/null
+++ b/etc/peer/models/Set1-Case2/active-crust/gmm-config.json
@@ -0,0 +1,5 @@
+{
+  "max-distance": 500.0,
+  "epistemic-model": null,
+  "epistemic-tree": null
+}
diff --git a/etc/peer/models/Set1-Case2/active-crust/gmm-tree.json b/etc/peer/models/Set1-Case2/active-crust/gmm-tree.json
new file mode 100644
index 0000000000000000000000000000000000000000..8392687bb5778aed9e7ac67063c89c1fa5ec6e1f
--- /dev/null
+++ b/etc/peer/models/Set1-Case2/active-crust/gmm-tree.json
@@ -0,0 +1,3 @@
+[
+  { "id": "SADIGH_97", "weight": 1.0 }
+]
diff --git a/etc/peer/models/Set1-Case2/calc-config.json b/etc/peer/models/Set1-Case2/calc-config.json
new file mode 100644
index 0000000000000000000000000000000000000000..6172c806383b96ef371ddae1d043f64142024638
--- /dev/null
+++ b/etc/peer/models/Set1-Case2/calc-config.json
@@ -0,0 +1,12 @@
+{
+  "hazard": {
+    "exceedanceModel": "NONE",
+    "valueFormat": "POISSON_PROBABILITY",
+    "imts": ["PGA"],
+    "customImls": {
+      "PGA": [
+        0.001, 0.01, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35,
+        0.4, 0.45, 0.5, 0.55, 0.6, 0.7, 0.8, 0.9, 1.0]
+    }
+  }
+}
diff --git a/etc/peer/models/Set1-Case2/model-info.json b/etc/peer/models/Set1-Case2/model-info.json
new file mode 100644
index 0000000000000000000000000000000000000000..b3d26fbdd80d5cf69664e3cb0e555749f0ec2a80
--- /dev/null
+++ b/etc/peer/models/Set1-Case2/model-info.json
@@ -0,0 +1,4 @@
+{
+  "name": "PEER Set1-Case2",
+  "site-class-vs30": { "BC": 760 }
+}
diff --git a/etc/peer/models/Set1-Case2/sites.csv b/etc/peer/models/Set1-Case2/sites.csv
new file mode 100644
index 0000000000000000000000000000000000000000..a52a1da8aedf21d070d540365d7e0de78cf159e9
--- /dev/null
+++ b/etc/peer/models/Set1-Case2/sites.csv
@@ -0,0 +1,8 @@
+name, lon, lat
+PEER S1-Fault-Site1, -122.0,   38.113
+PEER S1-Fault-Site2, -122.114, 38.113
+PEER S1-Fault-Site3, -122.57,  38.111
+PEER S1-Fault-Site4, -122.0,   38.0
+PEER S1-Fault-Site5, -122.0,   37.91
+PEER S1-Fault-Site6, -122.0,   38.225
+PEER S1-Fault-Site7, -121.886, 38.113