diff --git a/darwinv2_poly2mask.py b/darwinv2_poly2mask.py
new file mode 100644
index 0000000000000000000000000000000000000000..aa9800939b377adcba3029ee40505e351e2a9e8d
--- /dev/null
+++ b/darwinv2_poly2mask.py
@@ -0,0 +1,830 @@
+import upolygon as up
+import numpy as np
+from darwin.utils import convert_polygons_to_sequences
+from darwin.version import __version__
+
+
+
+
+def gen_mask(polygon, height, width):
+    """
+    Takes a list of polygon points and returns a binary mask
+    """
+    mask = np.zeros((height, width))
+    path = polygon
+    sequences = convert_polygons_to_sequences(path)
+    up.draw_polygon(mask, sequences, 1)
+    # print(mask)
+    return mask
+
+
+def rle_encode(arr):
+    """
+    RLE encodes a numpy binary array into a mask
+    """
+    return up.rle_encode(arr)
+
+
+
+def Array_AND(arr1,arr2):
+    """
+    A function that takes two multidimensional arrays (with the same dimensions) and returns an array where each component has undergone AND logic
+    """
+    arr1 = np.array(arr1)
+    arr2 = np.array(arr2)
+
+    flat_1 = Flatten(arr1)
+    flat_2 = Flatten(arr2)
+
+    and_array = np.logical_and(flat_1,flat_2)
+    count_and_array = np.count_nonzero(and_array)
+
+    return and_array, count_and_array
+
+
+def Flatten(arr):
+    """
+    Returns a flattened array
+    """
+    return arr.flatten()
+
+
+def Max_Array_Count(arr1,arr2):
+    """
+    Returns the max count for two binary arrays
+    """
+    narr1 = np.array(arr1)
+    narr2 = np.array(arr2)
+
+    counts1 = np.count_nonzero(narr1)
+    counts2 = np.count_nonzero(narr2)
+    
+    return max(counts1,counts2)
+
+def Array_Count(arr1):
+    """
+    Returns the non-zero count for an array
+    """
+    narr1 = np.array(arr1)
+    counts1 = np.count_nonzero(narr1)
+    return counts1
+
+#Driver code to create masks from different files. Need to enter your own value instead of v2_paths in main
+def main(poly_paths, height, width):
+
+    #Initializing mask list and count
+    mask_list = []
+    masks_count = []
+
+
+    for path in poly_paths:
+        mask_list.append(gen_mask(path,height,width))
+        masks_count.append(Array_Count(gen_mask(path,height,width)))
+
+    #Finding index of largest mask (main mask from which others are subtracted)
+    max_value = max(masks_count)
+    max_val = [index for index, item in enumerate(masks_count) if item == max_value][0]
+
+
+    #Defining main mask from which smaller masks (holes) are subtracted
+    main_mask = mask_list.pop(max_val)
+
+    #Subtract smaller masks from largest mask
+    final_mask = main_mask
+
+    for mask in mask_list:
+        # final_mask = final_mask - mask
+
+        # Check if the mask region is already part of final_mask
+        # overlap = final_mask & mask  # Logical AND: non-zero where mask overlaps final_mask
+        if np.any(np.logical_and(final_mask, mask)):  # If there's any overlap, subtract the mask
+            final_mask = final_mask - mask  # Avoid negative values
+        else:
+            final_mask = final_mask + mask
+
+    return final_mask
+    #(Optional) RLE encode the final mask
+    encoded_mask = rle_encode(final_mask)
+
+    #(Optional) Checking final image
+    from matplotlib import pyplot as plt
+    plt.imshow(final_mask, interpolation='nearest')
+    plt.show()
+
+
+if __name__ == "__main__":
+  #List of list of paths. Please enter your own here. It will be in 'paths'
+    v2_paths = [
+          [
+            {
+              "x": 67.83,
+              "y": 83.22
+            },
+            {
+              "x": 66.13,
+              "y": 77.63
+            },
+            {
+              "x": 62.85,
+              "y": 74.76
+            },
+            {
+              "x": 58.49,
+              "y": 73.27
+            },
+            {
+              "x": 55.99,
+              "y": 73.94
+            },
+            {
+              "x": 54.12,
+              "y": 75.91
+            },
+            {
+              "x": 51.45,
+              "y": 76.62
+            },
+            {
+              "x": 49.41,
+              "y": 78.86
+            },
+            {
+              "x": 48.54,
+              "y": 82.6
+            },
+            {
+              "x": 49.21,
+              "y": 86.14
+            },
+            {
+              "x": 52.69,
+              "y": 90.24
+            },
+            {
+              "x": 54.96,
+              "y": 91.68
+            },
+            {
+              "x": 58.29,
+              "y": 92.35
+            },
+            {
+              "x": 62.44,
+              "y": 91.06
+            },
+            {
+              "x": 66.13,
+              "y": 87.99
+            },
+            {
+              "x": 67.16,
+              "y": 85.72
+            }
+          ],
+          [
+            {
+              "x": 86.41,
+              "y": 46.05
+            },
+            {
+              "x": 86.21,
+              "y": 42.33
+            },
+            {
+              "x": 84.92,
+              "y": 38.8
+            },
+            {
+              "x": 82.26,
+              "y": 36.56
+            },
+            {
+              "x": 78.52,
+              "y": 35.89
+            },
+            {
+              "x": 73.34,
+              "y": 36.97
+            },
+            {
+              "x": 71.18,
+              "y": 40.04
+            },
+            {
+              "x": 65.73,
+              "y": 44.17
+            },
+            {
+              "x": 64.44,
+              "y": 47.91
+            },
+            {
+              "x": 65.11,
+              "y": 51.44
+            },
+            {
+              "x": 67.76,
+              "y": 54.72
+            },
+            {
+              "x": 71.69,
+              "y": 56.78
+            },
+            {
+              "x": 76.87,
+              "y": 57.66
+            },
+            {
+              "x": 80.82,
+              "y": 56.37
+            },
+            {
+              "x": 83.89,
+              "y": 53.51
+            },
+            {
+              "x": 86.21,
+              "y": 47.08
+            }
+          ],
+          [
+            {
+              "x": 89.51,
+              "y": 127.0
+            },
+            {
+              "x": 88.64,
+              "y": 120.79
+            },
+            {
+              "x": 85.77,
+              "y": 117.72
+            },
+            {
+              "x": 82.86,
+              "y": 116.84
+            },
+            {
+              "x": 78.52,
+              "y": 117.25
+            },
+            {
+              "x": 73.96,
+              "y": 118.96
+            },
+            {
+              "x": 69.86,
+              "y": 122.85
+            },
+            {
+              "x": 68.57,
+              "y": 126.38
+            },
+            {
+              "x": 69.44,
+              "y": 131.16
+            },
+            {
+              "x": 72.1,
+              "y": 134.02
+            },
+            {
+              "x": 74.58,
+              "y": 135.67
+            },
+            {
+              "x": 80.38,
+              "y": 137.37
+            },
+            {
+              "x": 83.91,
+              "y": 136.5
+            },
+            {
+              "x": 85.74,
+              "y": 134.67
+            },
+            {
+              "x": 88.22,
+              "y": 131.77
+            },
+            {
+              "x": 89.31,
+              "y": 128.24
+            }
+          ],
+          [
+            {
+              "x": 122.97,
+              "y": 86.32
+            },
+            {
+              "x": 122.76,
+              "y": 82.81
+            },
+            {
+              "x": 120.64,
+              "y": 76.18
+            },
+            {
+              "x": 113.03,
+              "y": 68.36
+            },
+            {
+              "x": 107.43,
+              "y": 66.45
+            },
+            {
+              "x": 99.79,
+              "y": 66.87
+            },
+            {
+              "x": 92.96,
+              "y": 69.19
+            },
+            {
+              "x": 90.71,
+              "y": 71.43
+            },
+            {
+              "x": 89.89,
+              "y": 73.5
+            },
+            {
+              "x": 89.22,
+              "y": 76.62
+            },
+            {
+              "x": 90.0,
+              "y": 79.34
+            },
+            {
+              "x": 86.79,
+              "y": 82.58
+            },
+            {
+              "x": 85.14,
+              "y": 86.3
+            },
+            {
+              "x": 84.47,
+              "y": 92.72
+            },
+            {
+              "x": 86.48,
+              "y": 98.74
+            },
+            {
+              "x": 87.0,
+              "y": 103.07
+            },
+            {
+              "x": 90.89,
+              "y": 107.38
+            },
+            {
+              "x": 96.08,
+              "y": 109.49
+            },
+            {
+              "x": 103.33,
+              "y": 108.62
+            },
+            {
+              "x": 110.97,
+              "y": 105.11
+            },
+            {
+              "x": 115.89,
+              "y": 99.56
+            },
+            {
+              "x": 116.77,
+              "y": 93.26
+            },
+            {
+              "x": 119.64,
+              "y": 92.3
+            },
+            {
+              "x": 121.88,
+              "y": 90.06
+            },
+            {
+              "x": 122.76,
+              "y": 87.09
+            }
+          ],
+          [
+            {
+              "x": 143.82,
+              "y": 43.99
+            },
+            {
+              "x": 143.15,
+              "y": 41.49
+            },
+            {
+              "x": 141.32,
+              "y": 39.66
+            },
+            {
+              "x": 138.82,
+              "y": 38.99
+            },
+            {
+              "x": 124.57,
+              "y": 40.43
+            },
+            {
+              "x": 119.39,
+              "y": 41.93
+            },
+            {
+              "x": 117.15,
+              "y": 43.96
+            },
+            {
+              "x": 116.27,
+              "y": 47.29
+            },
+            {
+              "x": 116.68,
+              "y": 49.36
+            },
+            {
+              "x": 119.42,
+              "y": 54.95
+            },
+            {
+              "x": 123.93,
+              "y": 58.64
+            },
+            {
+              "x": 131.39,
+              "y": 60.34
+            },
+            {
+              "x": 137.61,
+              "y": 59.67
+            },
+            {
+              "x": 140.88,
+              "y": 57.02
+            },
+            {
+              "x": 141.76,
+              "y": 52.25
+            },
+            {
+              "x": 140.69,
+              "y": 48.49
+            },
+            {
+              "x": 143.15,
+              "y": 46.49
+            }
+          ],
+          [
+            {
+              "x": 168.26,
+              "y": 89.0
+            },
+            {
+              "x": 168.26,
+              "y": 79.0
+            },
+            {
+              "x": 167.26,
+              "y": 78.0
+            },
+            {
+              "x": 167.26,
+              "y": 72.0
+            },
+            {
+              "x": 166.26,
+              "y": 71.0
+            },
+            {
+              "x": 166.26,
+              "y": 68.0
+            },
+            {
+              "x": 165.26,
+              "y": 67.0
+            },
+            {
+              "x": 164.26,
+              "y": 62.0
+            },
+            {
+              "x": 156.26,
+              "y": 48.0
+            },
+            {
+              "x": 142.26,
+              "y": 35.0
+            },
+            {
+              "x": 122.26,
+              "y": 25.0
+            },
+            {
+              "x": 116.26,
+              "y": 24.0
+            },
+            {
+              "x": 115.26,
+              "y": 23.0
+            },
+            {
+              "x": 109.26,
+              "y": 23.0
+            },
+            {
+              "x": 108.26,
+              "y": 22.0
+            },
+            {
+              "x": 90.26,
+              "y": 23.0
+            },
+            {
+              "x": 86.26,
+              "y": 25.0
+            },
+            {
+              "x": 83.26,
+              "y": 25.0
+            },
+            {
+              "x": 82.26,
+              "y": 26.0
+            },
+            {
+              "x": 77.26,
+              "y": 27.0
+            },
+            {
+              "x": 69.26,
+              "y": 31.0
+            },
+            {
+              "x": 62.26,
+              "y": 37.0
+            },
+            {
+              "x": 61.26,
+              "y": 37.0
+            },
+            {
+              "x": 51.26,
+              "y": 48.0
+            },
+            {
+              "x": 51.26,
+              "y": 49.0
+            },
+            {
+              "x": 45.26,
+              "y": 56.0
+            },
+            {
+              "x": 39.26,
+              "y": 68.0
+            },
+            {
+              "x": 39.26,
+              "y": 70.0
+            },
+            {
+              "x": 37.26,
+              "y": 74.0
+            },
+            {
+              "x": 35.26,
+              "y": 86.0
+            },
+            {
+              "x": 34.26,
+              "y": 87.0
+            },
+            {
+              "x": 34.26,
+              "y": 96.0
+            },
+            {
+              "x": 35.26,
+              "y": 97.0
+            },
+            {
+              "x": 35.26,
+              "y": 103.0
+            },
+            {
+              "x": 36.26,
+              "y": 104.0
+            },
+            {
+              "x": 36.26,
+              "y": 108.0
+            },
+            {
+              "x": 37.26,
+              "y": 109.0
+            },
+            {
+              "x": 37.26,
+              "y": 111.0
+            },
+            {
+              "x": 39.26,
+              "y": 114.0
+            },
+            {
+              "x": 39.26,
+              "y": 116.0
+            },
+            {
+              "x": 41.26,
+              "y": 119.0
+            },
+            {
+              "x": 41.26,
+              "y": 121.0
+            },
+            {
+              "x": 43.26,
+              "y": 125.0
+            },
+            {
+              "x": 45.26,
+              "y": 127.0
+            },
+            {
+              "x": 49.26,
+              "y": 134.0
+            },
+            {
+              "x": 60.26,
+              "y": 144.0
+            },
+            {
+              "x": 61.26,
+              "y": 144.0
+            },
+            {
+              "x": 66.26,
+              "y": 148.0
+            },
+            {
+              "x": 68.26,
+              "y": 148.0
+            },
+            {
+              "x": 75.26,
+              "y": 152.0
+            },
+            {
+              "x": 78.26,
+              "y": 152.0
+            },
+            {
+              "x": 84.26,
+              "y": 155.0
+            },
+            {
+              "x": 94.26,
+              "y": 156.0
+            },
+            {
+              "x": 95.26,
+              "y": 157.0
+            },
+            {
+              "x": 102.26,
+              "y": 157.0
+            },
+            {
+              "x": 105.26,
+              "y": 155.0
+            },
+            {
+              "x": 112.26,
+              "y": 155.0
+            },
+            {
+              "x": 113.26,
+              "y": 154.0
+            },
+            {
+              "x": 121.26,
+              "y": 153.0
+            },
+            {
+              "x": 125.26,
+              "y": 150.0
+            },
+            {
+              "x": 127.26,
+              "y": 150.0
+            },
+            {
+              "x": 133.26,
+              "y": 147.0
+            },
+            {
+              "x": 136.26,
+              "y": 144.0
+            },
+            {
+              "x": 137.26,
+              "y": 144.0
+            },
+            {
+              "x": 147.26,
+              "y": 133.0
+            },
+            {
+              "x": 147.26,
+              "y": 132.0
+            },
+            {
+              "x": 151.26,
+              "y": 127.0
+            },
+            {
+              "x": 152.26,
+              "y": 124.0
+            },
+            {
+              "x": 155.26,
+              "y": 121.0
+            },
+            {
+              "x": 156.26,
+              "y": 118.0
+            },
+            {
+              "x": 160.26,
+              "y": 113.0
+            },
+            {
+              "x": 160.26,
+              "y": 111.0
+            },
+            {
+              "x": 162.26,
+              "y": 109.0
+            },
+            {
+              "x": 162.26,
+              "y": 107.0
+            },
+            {
+              "x": 163.26,
+              "y": 106.0
+            },
+            {
+              "x": 163.26,
+              "y": 104.0
+            },
+            {
+              "x": 164.26,
+              "y": 103.0
+            },
+            {
+              "x": 164.26,
+              "y": 101.0
+            },
+            {
+              "x": 165.26,
+              "y": 100.0
+            },
+            {
+              "x": 165.26,
+              "y": 98.0
+            },
+            {
+              "x": 167.26,
+              "y": 94.0
+            },
+            {
+              "x": 167.26,
+              "y": 90.0
+            }
+          ]
+        ]
+
+
+
+
+    #Example heights and widths. Should enter values extracted from the export file
+    height = 277
+    width = 640
+
+
+    main(v2_paths, height, width)
+
+