diff --git a/macrovision.html b/macrovision.html
index 395fe2b8..f9b89cbd 100644
--- a/macrovision.html
+++ b/macrovision.html
@@ -10,6 +10,7 @@
   
   
   
+  
   
   
   
diff --git a/macrovision.js b/macrovision.js
index fe85a478..fb301c4d 100644
--- a/macrovision.js
+++ b/macrovision.js
@@ -2936,13 +2936,14 @@ function prepareEntities() {
     availableEntities["buildings"] = makeBuildings();
     availableEntities["characters"] = makeCharacters();
     availableEntities["cities"] = makeCities();
+    availableEntities["dildos"] = makeDildos();
     availableEntities["fiction"] = makeFiction();
     availableEntities["food"] = makeFood();
     availableEntities["landmarks"] = makeLandmarks();
     availableEntities["naturals"] = makeNaturals();
     availableEntities["objects"] = makeObjects();
-    availableEntities["dildos"] = makeDildos();
     availableEntities["pokemon"] = makePokemon();
+    availableEntities["real-buildings"] = makeRealBuildings();
     availableEntities["species"] = makeSpecies();
     availableEntities["vehicles"] = makeVehicles();
 
diff --git a/media/attribution.js b/media/attribution.js
index da66b1f9..ef471950 100644
--- a/media/attribution.js
+++ b/media/attribution.js
@@ -11725,6 +11725,13 @@ const attributionData = {
                 "dimensions-guide"
             ]
         },
+        {
+            prefix: "./media/real-buildings/",
+            all: "https://wiki.openstreetmap.org/wiki/Blender",
+            authors: [
+                "openstreetmap"
+            ]
+        },
         {
             prefix: "./media/species/synx/",
             files: [
@@ -15653,6 +15660,10 @@ const attributionData = {
             "name": "qundium",
             "url": "https://www.furaffinity.net/user/qundium"
         },
+        "openstreetmap": {
+            "name": "OpenStreetMap",
+            "url": "https://openstreetmap.org"
+        },
     }
 }
 
diff --git a/media/real-buildings/Chase Tower-North (Top).svg b/media/real-buildings/Chase Tower-North (Top).svg
new file mode 100644
index 00000000..fca62a7d
--- /dev/null
+++ b/media/real-buildings/Chase Tower-North (Top).svg	
@@ -0,0 +1,39 @@
+
+
+
diff --git a/media/real-buildings/Chase Tower-North.svg b/media/real-buildings/Chase Tower-North.svg
new file mode 100644
index 00000000..4c37f3c1
--- /dev/null
+++ b/media/real-buildings/Chase Tower-North.svg	
@@ -0,0 +1,23 @@
+
+
+
diff --git a/media/real-buildings/Chase Tower-Northwest.svg b/media/real-buildings/Chase Tower-Northwest.svg
new file mode 100644
index 00000000..d2f043c9
--- /dev/null
+++ b/media/real-buildings/Chase Tower-Northwest.svg	
@@ -0,0 +1,53 @@
+
+
+
diff --git a/media/real-buildings/Chase Tower-West (Top).svg b/media/real-buildings/Chase Tower-West (Top).svg
new file mode 100644
index 00000000..1ca9965e
--- /dev/null
+++ b/media/real-buildings/Chase Tower-West (Top).svg	
@@ -0,0 +1,36 @@
+
+
+
diff --git a/media/real-buildings/Chase Tower-West.svg b/media/real-buildings/Chase Tower-West.svg
new file mode 100644
index 00000000..ba280c15
--- /dev/null
+++ b/media/real-buildings/Chase Tower-West.svg	
@@ -0,0 +1,52 @@
+
+
+
diff --git a/media/real-buildings/Crain Communications Building-North (Top).svg b/media/real-buildings/Crain Communications Building-North (Top).svg
new file mode 100644
index 00000000..cc204c0b
--- /dev/null
+++ b/media/real-buildings/Crain Communications Building-North (Top).svg	
@@ -0,0 +1,31 @@
+
+
+
diff --git a/media/real-buildings/Crain Communications Building-North.svg b/media/real-buildings/Crain Communications Building-North.svg
new file mode 100644
index 00000000..1cb2106b
--- /dev/null
+++ b/media/real-buildings/Crain Communications Building-North.svg	
@@ -0,0 +1,36 @@
+
+
+
diff --git a/media/real-buildings/Crain Communications Building-Northwest.svg b/media/real-buildings/Crain Communications Building-Northwest.svg
new file mode 100644
index 00000000..949b6e09
--- /dev/null
+++ b/media/real-buildings/Crain Communications Building-Northwest.svg	
@@ -0,0 +1,36 @@
+
+
+
diff --git a/media/real-buildings/Crain Communications Building-West (Top).svg b/media/real-buildings/Crain Communications Building-West (Top).svg
new file mode 100644
index 00000000..f0429a6f
--- /dev/null
+++ b/media/real-buildings/Crain Communications Building-West (Top).svg	
@@ -0,0 +1,28 @@
+
+
+
diff --git a/media/real-buildings/Crain Communications Building-West.svg b/media/real-buildings/Crain Communications Building-West.svg
new file mode 100644
index 00000000..6c930067
--- /dev/null
+++ b/media/real-buildings/Crain Communications Building-West.svg	
@@ -0,0 +1,39 @@
+
+
+
diff --git a/media/real-buildings/Harbor Point-North (Top).svg b/media/real-buildings/Harbor Point-North (Top).svg
new file mode 100644
index 00000000..1f380d0e
--- /dev/null
+++ b/media/real-buildings/Harbor Point-North (Top).svg	
@@ -0,0 +1,45 @@
+
+
+
diff --git a/media/real-buildings/Harbor Point-North.svg b/media/real-buildings/Harbor Point-North.svg
new file mode 100644
index 00000000..cd698509
--- /dev/null
+++ b/media/real-buildings/Harbor Point-North.svg	
@@ -0,0 +1,27 @@
+
+
+
diff --git a/media/real-buildings/Harbor Point-Northwest.svg b/media/real-buildings/Harbor Point-Northwest.svg
new file mode 100644
index 00000000..3343f48b
--- /dev/null
+++ b/media/real-buildings/Harbor Point-Northwest.svg	
@@ -0,0 +1,23 @@
+
+
+
diff --git a/media/real-buildings/Harbor Point-West (Top).svg b/media/real-buildings/Harbor Point-West (Top).svg
new file mode 100644
index 00000000..6e58c793
--- /dev/null
+++ b/media/real-buildings/Harbor Point-West (Top).svg	
@@ -0,0 +1,45 @@
+
+
+
diff --git a/media/real-buildings/Harbor Point-West.svg b/media/real-buildings/Harbor Point-West.svg
new file mode 100644
index 00000000..d88b6a1d
--- /dev/null
+++ b/media/real-buildings/Harbor Point-West.svg	
@@ -0,0 +1,28 @@
+
+
+
diff --git a/media/real-buildings/McCormick Place Convention Center-North (Top).svg b/media/real-buildings/McCormick Place Convention Center-North (Top).svg
new file mode 100644
index 00000000..38b509f9
--- /dev/null
+++ b/media/real-buildings/McCormick Place Convention Center-North (Top).svg	
@@ -0,0 +1,141 @@
+
+
+
diff --git a/media/real-buildings/McCormick Place Convention Center-North.svg b/media/real-buildings/McCormick Place Convention Center-North.svg
new file mode 100644
index 00000000..0583cf10
--- /dev/null
+++ b/media/real-buildings/McCormick Place Convention Center-North.svg	
@@ -0,0 +1,67 @@
+
+
+
diff --git a/media/real-buildings/McCormick Place Convention Center-Northwest.svg b/media/real-buildings/McCormick Place Convention Center-Northwest.svg
new file mode 100644
index 00000000..a9199f9a
--- /dev/null
+++ b/media/real-buildings/McCormick Place Convention Center-Northwest.svg	
@@ -0,0 +1,51 @@
+
+
+
diff --git a/media/real-buildings/McCormick Place Convention Center-West (Top).svg b/media/real-buildings/McCormick Place Convention Center-West (Top).svg
new file mode 100644
index 00000000..9b8c7dd6
--- /dev/null
+++ b/media/real-buildings/McCormick Place Convention Center-West (Top).svg	
@@ -0,0 +1,141 @@
+
+
+
diff --git a/media/real-buildings/McCormick Place Convention Center-West.svg b/media/real-buildings/McCormick Place Convention Center-West.svg
new file mode 100644
index 00000000..3b86de74
--- /dev/null
+++ b/media/real-buildings/McCormick Place Convention Center-West.svg	
@@ -0,0 +1,38 @@
+
+
+
diff --git a/media/real-buildings/North Harbor Tower-North (Top).svg b/media/real-buildings/North Harbor Tower-North (Top).svg
new file mode 100644
index 00000000..f58c718a
--- /dev/null
+++ b/media/real-buildings/North Harbor Tower-North (Top).svg	
@@ -0,0 +1,71 @@
+
+
+
diff --git a/media/real-buildings/North Harbor Tower-North.svg b/media/real-buildings/North Harbor Tower-North.svg
new file mode 100644
index 00000000..240e7b36
--- /dev/null
+++ b/media/real-buildings/North Harbor Tower-North.svg	
@@ -0,0 +1,46 @@
+
+
+
diff --git a/media/real-buildings/North Harbor Tower-Northwest.svg b/media/real-buildings/North Harbor Tower-Northwest.svg
new file mode 100644
index 00000000..b1694358
--- /dev/null
+++ b/media/real-buildings/North Harbor Tower-Northwest.svg	
@@ -0,0 +1,115 @@
+
+
+
diff --git a/media/real-buildings/North Harbor Tower-West (Top).svg b/media/real-buildings/North Harbor Tower-West (Top).svg
new file mode 100644
index 00000000..45fca689
--- /dev/null
+++ b/media/real-buildings/North Harbor Tower-West (Top).svg	
@@ -0,0 +1,72 @@
+
+
+
diff --git a/media/real-buildings/North Harbor Tower-West.svg b/media/real-buildings/North Harbor Tower-West.svg
new file mode 100644
index 00000000..4515902e
--- /dev/null
+++ b/media/real-buildings/North Harbor Tower-West.svg	
@@ -0,0 +1,80 @@
+
+
+
diff --git a/media/real-buildings/One Museum Park East-North (Top).svg b/media/real-buildings/One Museum Park East-North (Top).svg
new file mode 100644
index 00000000..023cafec
--- /dev/null
+++ b/media/real-buildings/One Museum Park East-North (Top).svg	
@@ -0,0 +1,33 @@
+
+
+
diff --git a/media/real-buildings/One Museum Park East-North.svg b/media/real-buildings/One Museum Park East-North.svg
new file mode 100644
index 00000000..cf6cc146
--- /dev/null
+++ b/media/real-buildings/One Museum Park East-North.svg	
@@ -0,0 +1,29 @@
+
+
+
diff --git a/media/real-buildings/One Museum Park East-Northwest.svg b/media/real-buildings/One Museum Park East-Northwest.svg
new file mode 100644
index 00000000..c39d3299
--- /dev/null
+++ b/media/real-buildings/One Museum Park East-Northwest.svg	
@@ -0,0 +1,25 @@
+
+
+
diff --git a/media/real-buildings/One Museum Park East-West (Top).svg b/media/real-buildings/One Museum Park East-West (Top).svg
new file mode 100644
index 00000000..6d12eeed
--- /dev/null
+++ b/media/real-buildings/One Museum Park East-West (Top).svg	
@@ -0,0 +1,33 @@
+
+
+
diff --git a/media/real-buildings/One Museum Park East-West.svg b/media/real-buildings/One Museum Park East-West.svg
new file mode 100644
index 00000000..acf8a71b
--- /dev/null
+++ b/media/real-buildings/One Museum Park East-West.svg	
@@ -0,0 +1,19 @@
+
+
+
diff --git a/media/real-buildings/Soldier Field-North (Top).svg b/media/real-buildings/Soldier Field-North (Top).svg
new file mode 100644
index 00000000..6645ecf2
--- /dev/null
+++ b/media/real-buildings/Soldier Field-North (Top).svg	
@@ -0,0 +1,314 @@
+
+
+
diff --git a/media/real-buildings/Soldier Field-North.svg b/media/real-buildings/Soldier Field-North.svg
new file mode 100644
index 00000000..c19a83c9
--- /dev/null
+++ b/media/real-buildings/Soldier Field-North.svg	
@@ -0,0 +1,109 @@
+
+
+
diff --git a/media/real-buildings/Soldier Field-Northwest.svg b/media/real-buildings/Soldier Field-Northwest.svg
new file mode 100644
index 00000000..f50aa9f4
--- /dev/null
+++ b/media/real-buildings/Soldier Field-Northwest.svg	
@@ -0,0 +1,98 @@
+
+
+
diff --git a/media/real-buildings/Soldier Field-West (Top).svg b/media/real-buildings/Soldier Field-West (Top).svg
new file mode 100644
index 00000000..649ed328
--- /dev/null
+++ b/media/real-buildings/Soldier Field-West (Top).svg	
@@ -0,0 +1,320 @@
+
+
+
diff --git a/media/real-buildings/Soldier Field-West.svg b/media/real-buildings/Soldier Field-West.svg
new file mode 100644
index 00000000..68f0fead
--- /dev/null
+++ b/media/real-buildings/Soldier Field-West.svg	
@@ -0,0 +1,74 @@
+
+
+
diff --git a/media/real-buildings/The Merchandise Mart-North (Top).svg b/media/real-buildings/The Merchandise Mart-North (Top).svg
new file mode 100644
index 00000000..2ee8ffa9
--- /dev/null
+++ b/media/real-buildings/The Merchandise Mart-North (Top).svg	
@@ -0,0 +1,44 @@
+
+
+
diff --git a/media/real-buildings/The Merchandise Mart-North.svg b/media/real-buildings/The Merchandise Mart-North.svg
new file mode 100644
index 00000000..9ed55740
--- /dev/null
+++ b/media/real-buildings/The Merchandise Mart-North.svg	
@@ -0,0 +1,21 @@
+
+
+
diff --git a/media/real-buildings/The Merchandise Mart-Northwest.svg b/media/real-buildings/The Merchandise Mart-Northwest.svg
new file mode 100644
index 00000000..e71c4545
--- /dev/null
+++ b/media/real-buildings/The Merchandise Mart-Northwest.svg	
@@ -0,0 +1,14 @@
+
+
+
diff --git a/media/real-buildings/The Merchandise Mart-West (Top).svg b/media/real-buildings/The Merchandise Mart-West (Top).svg
new file mode 100644
index 00000000..9a4184aa
--- /dev/null
+++ b/media/real-buildings/The Merchandise Mart-West (Top).svg	
@@ -0,0 +1,43 @@
+
+
+
diff --git a/media/real-buildings/The Merchandise Mart-West.svg b/media/real-buildings/The Merchandise Mart-West.svg
new file mode 100644
index 00000000..f8f583b1
--- /dev/null
+++ b/media/real-buildings/The Merchandise Mart-West.svg	
@@ -0,0 +1,23 @@
+
+
+
diff --git a/media/real-buildings/Trump International Hotel & Tower Chicago-North (Top).svg b/media/real-buildings/Trump International Hotel & Tower Chicago-North (Top).svg
new file mode 100644
index 00000000..c917e428
--- /dev/null
+++ b/media/real-buildings/Trump International Hotel & Tower Chicago-North (Top).svg	
@@ -0,0 +1,54 @@
+
+
+
diff --git a/media/real-buildings/Trump International Hotel & Tower Chicago-North.svg b/media/real-buildings/Trump International Hotel & Tower Chicago-North.svg
new file mode 100644
index 00000000..e5a82b44
--- /dev/null
+++ b/media/real-buildings/Trump International Hotel & Tower Chicago-North.svg	
@@ -0,0 +1,44 @@
+
+
+
diff --git a/media/real-buildings/Trump International Hotel & Tower Chicago-Northwest.svg b/media/real-buildings/Trump International Hotel & Tower Chicago-Northwest.svg
new file mode 100644
index 00000000..2a2b059f
--- /dev/null
+++ b/media/real-buildings/Trump International Hotel & Tower Chicago-Northwest.svg	
@@ -0,0 +1,65 @@
+
+
+
diff --git a/media/real-buildings/Trump International Hotel & Tower Chicago-West (Top).svg b/media/real-buildings/Trump International Hotel & Tower Chicago-West (Top).svg
new file mode 100644
index 00000000..0030ee8e
--- /dev/null
+++ b/media/real-buildings/Trump International Hotel & Tower Chicago-West (Top).svg	
@@ -0,0 +1,53 @@
+
+
+
diff --git a/media/real-buildings/Trump International Hotel & Tower Chicago-West.svg b/media/real-buildings/Trump International Hotel & Tower Chicago-West.svg
new file mode 100644
index 00000000..5b6847f1
--- /dev/null
+++ b/media/real-buildings/Trump International Hotel & Tower Chicago-West.svg	
@@ -0,0 +1,74 @@
+
+
+
diff --git a/media/real-buildings/Willis Tower-North (Top).svg b/media/real-buildings/Willis Tower-North (Top).svg
new file mode 100644
index 00000000..9526e31a
--- /dev/null
+++ b/media/real-buildings/Willis Tower-North (Top).svg	
@@ -0,0 +1,34 @@
+
+
+
diff --git a/media/real-buildings/Willis Tower-North.svg b/media/real-buildings/Willis Tower-North.svg
new file mode 100644
index 00000000..0499dffc
--- /dev/null
+++ b/media/real-buildings/Willis Tower-North.svg	
@@ -0,0 +1,42 @@
+
+
+
diff --git a/media/real-buildings/Willis Tower-Northwest.svg b/media/real-buildings/Willis Tower-Northwest.svg
new file mode 100644
index 00000000..73206951
--- /dev/null
+++ b/media/real-buildings/Willis Tower-Northwest.svg	
@@ -0,0 +1,59 @@
+
+
+
diff --git a/media/real-buildings/Willis Tower-West (Top).svg b/media/real-buildings/Willis Tower-West (Top).svg
new file mode 100644
index 00000000..fd0d26d3
--- /dev/null
+++ b/media/real-buildings/Willis Tower-West (Top).svg	
@@ -0,0 +1,33 @@
+
+
+
diff --git a/media/real-buildings/Willis Tower-West.svg b/media/real-buildings/Willis Tower-West.svg
new file mode 100644
index 00000000..8442da8c
--- /dev/null
+++ b/media/real-buildings/Willis Tower-West.svg	
@@ -0,0 +1,38 @@
+
+
+
diff --git a/presets/real-buildings.js b/presets/real-buildings.js
new file mode 100644
index 00000000..e35d59c3
--- /dev/null
+++ b/presets/real-buildings.js
@@ -0,0 +1,84 @@
+function makeRealBuilding(name, sides) {
+    let views = {};
+
+    sides.forEach(side => {
+        views[side[0]] = {
+            attributes: {
+                height: {
+                    name: "Height",
+                    power: 1,
+                    type: "length",
+                    base: math.unit(side[1], "meters")
+                }
+            },
+            image: { source: "./media/real-buildings/" + side[0] + ".svg" },
+            name: side[0],
+            rename: true
+        }
+    })
+
+    return {
+        name: name,
+        constructor: () => makeEntity({ name: name }, views)
+    }
+}
+
+function makeRealBuildings() {
+    const results = [];    results.push(makeRealBuilding(
+        "Chicago Buildings",
+        [
+            ["Chase Tower-North", 259.0],
+            ["Chase Tower-Northwest", 259.0],
+            ["Chase Tower-West", 259.0],
+            ["Chase Tower-North (Top)", 59.5516357421875],
+            ["Chase Tower-West (Top)", 95.609619140625],
+            ["Crain Communications Building-North", 177.39999389648438],
+            ["Crain Communications Building-Northwest", 177.39999389648438],
+            ["Crain Communications Building-West", 177.39999389648438],
+            ["Crain Communications Building-North (Top)", 46.27587890625],
+            ["Crain Communications Building-West (Top)", 38.86086654663086],
+            ["Harbor Point-North", 168.0],
+            ["Harbor Point-Northwest", 168.0],
+            ["Harbor Point-West", 168.0],
+            ["Harbor Point-North (Top)", 56.6817626953125],
+            ["Harbor Point-West (Top)", 59.33990478515625],
+            ["McCormick Place Convention Center-North", 50.0],
+            ["McCormick Place Convention Center-Northwest", 50.0],
+            ["McCormick Place Convention Center-West", 50.0],
+            ["McCormick Place Convention Center-North (Top)", 835.5029296875],
+            ["McCormick Place Convention Center-West (Top)", 959.2711181640625],
+            ["North Harbor Tower-North", 163.0],
+            ["North Harbor Tower-Northwest", 163.0],
+            ["North Harbor Tower-West", 163.0],
+            ["North Harbor Tower-North (Top)", 51.142578125],
+            ["North Harbor Tower-West (Top)", 26.57373046875],
+            ["One Museum Park East-North", 221.0],
+            ["One Museum Park East-Northwest", 221.0],
+            ["One Museum Park East-West", 221.0],
+            ["One Museum Park East-North (Top)", 49.270263671875],
+            ["One Museum Park East-West (Top)", 50.97662353515625],
+            ["Soldier Field-North", 60.0],
+            ["Soldier Field-Northwest", 60.0],
+            ["Soldier Field-West", 60.0],
+            ["Soldier Field-North (Top)", 356.93212890625],
+            ["Soldier Field-West (Top)", 218.7261962890625],
+            ["The Merchandise Mart-North", 104.0],
+            ["The Merchandise Mart-Northwest", 104.0],
+            ["The Merchandise Mart-West", 104.0],
+            ["The Merchandise Mart-North (Top)", 102.9521484375],
+            ["The Merchandise Mart-West (Top)", 221.81201171875],
+            ["Trump International Hotel & Tower Chicago-North", 423.0],
+            ["Trump International Hotel & Tower Chicago-Northwest", 423.0],
+            ["Trump International Hotel & Tower Chicago-West", 423.0],
+            ["Trump International Hotel & Tower Chicago-North (Top)", 98.48388671875],
+            ["Trump International Hotel & Tower Chicago-West (Top)", 76.71368408203125],
+            ["Willis Tower-North", 527.0],
+            ["Willis Tower-Northwest", 527.0],
+            ["Willis Tower-West", 527.0],
+            ["Willis Tower-North (Top)", 72.828125],
+            ["Willis Tower-West (Top)", 71.40435791015625]
+        ]
+    ))
+
+    return results;
+}
diff --git a/scripts/blender-building.py b/scripts/blender-building.py
new file mode 100644
index 00000000..2df26854
--- /dev/null
+++ b/scripts/blender-building.py
@@ -0,0 +1,41 @@
+import bpy
+from mathutils import Vector, Euler
+from math import pi
+import json
+
+buildings = bpy.data.objects["map"].children
+c = bpy.data.objects["cam"]
+#s = bpy.data.objects["sun"]
+
+selected = bpy.context.selected_objects[0]
+
+data = {}
+data["name"] = selected.name
+data["place"] = ["Chicago"]
+data["views"] = {}
+
+for b in buildings:
+        pick = b.name == data["name"]
+        if not pick:
+            b.hide_render = True
+        else:
+            b.hide_render = False
+
+b = selected
+
+for angles in [[0, 1, 2, "North"], [0.5, 1, 2, "Northwest"], [1, 1, 2, "West"], [0, 0, 1, "North (Top)"], [1, 0, 0, "West (Top)"]]:
+    local_bbox_center = 0.125 * sum((Vector(box) for box in b.bound_box), Vector())
+    global_bbox_center = b.matrix_world @ local_bbox_center
+    c.location = global_bbox_center
+    c.data.ortho_scale = max(b.dimensions) * 1.1
+    c.rotation_euler = Euler([angles[1] * pi / 2, 0, angles[0] * pi / 2])
+    rot = c.rotation_euler.to_matrix()
+    rot.invert()
+    c.location = c.location + Vector([0, 0, 10000]) @ rot
+    data["views"][angles[3]] = b.dimensions[angles[2]]
+    #s.rotation_euler = c.rotation_euler
+    bpy.context.scene.render.filepath = f"C:/Users/hausss/Desktop/osm/{data['name']}-{angles[3]}.png"
+    bpy.ops.render.render(write_still = True)
+
+with open(f"C:/Users/hausss/Desktop/osm/{data['name']}-data.json", "w") as file:
+    json.dump(data, file)
\ No newline at end of file
diff --git a/scripts/combine-svg.py b/scripts/combine-svg.py
new file mode 100644
index 00000000..1cb22649
--- /dev/null
+++ b/scripts/combine-svg.py
@@ -0,0 +1,61 @@
+import sys
+import re
+import json
+import glob
+
+# here's the import workflow:
+
+# 1. import buildings into blender
+# 2. use the blender-building.py script in blender while selecting a building to export images
+# 3. batch-trace and color the overlay images
+# 4. batch-trace the base images
+# 5. batch-expand all of the images
+# 6. use this script to combine the images and record the building data
+# 7. batch-crop the combined images
+
+# this script smashes two svgs together in a way that is,
+# to be frank, sacrilege
+
+def combine(base_path, highlight_path, output_path):
+    base = open(base_path, "r", encoding="utf-8").read()
+    highlight = open(highlight_path, "r", encoding="utf-8").read()
+    
+    base_data = re.search("", base)[0][:-6]
+
+    highlight_data = highlight.replace("", "" + base_data)
+
+    with open(output_path, "w", encoding="utf-8") as f:
+        f.write(highlight_data)
+
+if len(sys.argv) <= 1:
+    print(f"Usage: {sys.argv[0]} [location name]")
+    sys.exit(1)
+
+sides = [
+    "North",
+    "Northwest",
+    "West",
+    "North (Top)",
+    "West (Top)"
+]
+template = """    results.push(makeRealBuilding(
+        "{0}",
+        [
+{1}
+        ]
+    ))
+"""
+
+side_strings = []
+for path in glob.glob("*.json"):
+    with open(path, "r") as f:
+        data = json.load(f)
+        if data["place"] == [sys.argv[1]]:
+            name = "./svgs/" + data["name"]
+            for side in sides:
+                base = name + "-" + side + "-base-01.svg"
+                highlight = name + "-" + side + "-highlight-01.svg"
+                result = name + "-" + side + ".svg"
+                combine(base, highlight, result)
+                side_strings.append("            [\"{0}\", {1}]".format(data["name"] + "-" + side, data["views"][side]))
+print(template.format(sys.argv[1] + " Buildings", ",\n".join(side_strings)))