diff --git a/drawing_gen/.draw_path.py.swp b/drawing_gen/.draw_path.py.swp
deleted file mode 100644
index 26bbfd9be5319d2a72f37da9da24071c9bd03b1f..0000000000000000000000000000000000000000
Binary files a/drawing_gen/.draw_path.py.swp and /dev/null differ
diff --git a/drawing_gen/.example_draw.py.swp b/drawing_gen/.example_draw.py.swp
deleted file mode 100644
index 9b10bb278d92b8826460e0aae659d6cd2025bd69..0000000000000000000000000000000000000000
Binary files a/drawing_gen/.example_draw.py.swp and /dev/null differ
diff --git a/drawing_gen/draw_path.py b/drawing_gen/draw_path.py
index 5e9e22c4ce712c3006157f596e7d6a8fdf7966fe..c8e3aa5a9bced96115c0c44200790773983cad0b 100644
--- a/drawing_gen/draw_path.py
+++ b/drawing_gen/draw_path.py
@@ -23,7 +23,13 @@ class DrawPath:
 
 
 if __name__ == '__main__':
-
+    # normalize both x and y to 0-1 range
+    # we can multiply however we want later
+    # idk about the number of points, but it's large enough to draw
+    # a smooth curve on the screen, so it's enough for the robot to draw as well i assume
+    # NOTE: possible improvement: make it all bezier curves
+    # https://matplotlib.org/stable/users/explain/artists/paths.html
+    # look at the example for path handling if that's what you'll need
     subplot_kw = dict(xlim=(0, 1), ylim=(0, 1), autoscale_on=False)
     fig, ax = plt.subplots(subplot_kw=subplot_kw)
 
diff --git a/drawing_gen/lasso_selector_demo_sgskip.py b/drawing_gen/lasso_selector_demo_sgskip.py
new file mode 100644
index 0000000000000000000000000000000000000000..f5a206fdef23e14ed95719b996a2b1c5699c8c63
--- /dev/null
+++ b/drawing_gen/lasso_selector_demo_sgskip.py
@@ -0,0 +1,113 @@
+"""
+==============
+Lasso Selector
+==============
+
+Interactively selecting data points with the lasso tool.
+
+This examples plots a scatter plot. You can then select a few points by drawing
+a lasso loop around the points on the graph. To draw, just click
+on the graph, hold, and drag it around the points you need to select.
+"""
+
+
+import numpy as np
+
+from matplotlib.path import Path
+from matplotlib.widgets import LassoSelector
+
+
+class SelectFromCollection:
+    """
+    Select indices from a matplotlib collection using `LassoSelector`.
+
+    Selected indices are saved in the `ind` attribute. This tool fades out the
+    points that are not part of the selection (i.e., reduces their alpha
+    values). If your collection has alpha < 1, this tool will permanently
+    alter the alpha values.
+
+    Note that this tool selects collection objects based on their *origins*
+    (i.e., `offsets`).
+
+    Parameters
+    ----------
+    ax : `~matplotlib.axes.Axes`
+        Axes to interact with.
+    collection : `matplotlib.collections.Collection` subclass
+        Collection you want to select from.
+    alpha_other : 0 <= float <= 1
+        To highlight a selection, this tool sets all selected points to an
+        alpha value of 1 and non-selected points to *alpha_other*.
+    """
+
+    def __init__(self, ax, collection, alpha_other=0.3):
+        self.canvas = ax.figure.canvas
+        self.collection = collection
+        self.alpha_other = alpha_other
+
+        self.xys = collection.get_offsets()
+        self.Npts = len(self.xys)
+
+        # Ensure that we have separate colors for each object
+        self.fc = collection.get_facecolors()
+        if len(self.fc) == 0:
+            raise ValueError('Collection must have a facecolor')
+        elif len(self.fc) == 1:
+            self.fc = np.tile(self.fc, (self.Npts, 1))
+
+        self.lasso = LassoSelector(ax, onselect=self.onselect)
+        self.ind = []
+
+    def onselect(self, verts):
+        path = Path(verts)
+        print(verts)
+        print(path)
+        self.ind = np.nonzero(path.contains_points(self.xys))[0]
+        self.fc[:, -1] = self.alpha_other
+        self.fc[self.ind, -1] = 1
+        self.collection.set_facecolors(self.fc)
+        #self.canvas.draw_idle()
+
+    def disconnect(self):
+        self.lasso.disconnect_events()
+        self.fc[:, -1] = 1
+        self.collection.set_facecolors(self.fc)
+        self.canvas.draw_idle()
+
+
+if __name__ == '__main__':
+    import matplotlib.pyplot as plt
+
+    # Fixing random state for reproducibility
+    np.random.seed(19680801)
+
+    data = np.random.rand(100, 2)
+
+    subplot_kw = dict(xlim=(0, 1), ylim=(0, 1), autoscale_on=False)
+    fig, ax = plt.subplots(subplot_kw=subplot_kw)
+
+    pts = ax.scatter(data[:, 0], data[:, 1], s=80)
+    selector = SelectFromCollection(ax, pts)
+
+    def accept(event):
+        if event.key == "enter":
+            print("Selected points:")
+            print(selector.xys[selector.ind])
+            selector.disconnect()
+            ax.set_title("")
+            fig.canvas.draw()
+
+    fig.canvas.mpl_connect("key_press_event", accept)
+    ax.set_title("Press enter to accept selected points.")
+
+    plt.show()
+
+# %%
+#
+# .. admonition:: References
+#
+#    The use of the following functions, methods, classes and modules is shown
+#    in this example:
+#
+#    - `matplotlib.widgets.LassoSelector`
+#    - `matplotlib.path.Path`