diff --git a/freecad_workbench/freecad/robossembler/assembly_graph_generation.py b/freecad_workbench/freecad/robossembler/assembly_graph_generation.py
new file mode 100644
index 0000000..c1e8fc8
--- /dev/null
+++ b/freecad_workbench/freecad/robossembler/assembly_graph_generation.py
@@ -0,0 +1,44 @@
+import json
+import networkx as nx
+import matplotlib.pyplot as plt
+from PIL import Image
+import matplotlib.image as mpimg
+from networkx.drawing.nx_agraph import graphviz_layout
+
+def load_assembly_sequence(filepath):
+ with open(filepath, 'r') as file:
+ return json.load(file)
+
+def create_assembly_graph(sequence):
+ G = nx.DiGraph()
+
+ for i, part in enumerate(sequence):
+ G.add_node(part, image=f'{part}.svg')
+ if i > 0:
+ G.add_edge(sequence[i-1], part)
+
+ return G
+
+def draw_graph(G):
+ pos = graphviz_layout(G, prog='dot')
+ fig, ax = plt.subplots(figsize=(12, 8))
+
+ for node in G.nodes(data=True):
+ x, y = pos[node[0]]
+ img = mpimg.imread(node[1]['image'])
+ ax.imshow(img, aspect='auto', extent=(x-0.5, x+0.5, y-0.5, y+0.5), zorder=1)
+
+ ax.text(x, y-0.6, s=node[0], horizontalalignment='center', fontsize=12, zorder=2)
+
+ nx.draw_networkx_edges(G, pos, ax=ax, arrows=True)
+ plt.axis('off')
+ plt.show()
+
+def main():
+ sequence = load_assembly_sequence('assembly_sequence.json')
+ assembly_graph = create_assembly_graph(sequence)
+
+ draw_graph(assembly_graph)
+
+if __name__ == '__main__':
+ main()
diff --git a/test_models/img/body_down.svg b/test_models/img/body_down.svg
new file mode 100644
index 0000000..fab4fec
--- /dev/null
+++ b/test_models/img/body_down.svg
@@ -0,0 +1,34 @@
+
+
+
\ No newline at end of file
diff --git a/test_models/img/body_up.svg b/test_models/img/body_up.svg
new file mode 100644
index 0000000..2a2e3ae
--- /dev/null
+++ b/test_models/img/body_up.svg
@@ -0,0 +1,30 @@
+
+
+
\ No newline at end of file
diff --git a/test_models/img/bolt.svg b/test_models/img/bolt.svg
new file mode 100644
index 0000000..08881a4
--- /dev/null
+++ b/test_models/img/bolt.svg
@@ -0,0 +1,18 @@
+
+
+
\ No newline at end of file
diff --git a/test_models/img/bolt2.svg b/test_models/img/bolt2.svg
new file mode 100644
index 0000000..4d86fc4
--- /dev/null
+++ b/test_models/img/bolt2.svg
@@ -0,0 +1,18 @@
+
+
+
\ No newline at end of file
diff --git a/test_models/img/bolt3.svg b/test_models/img/bolt3.svg
new file mode 100644
index 0000000..d114b57
--- /dev/null
+++ b/test_models/img/bolt3.svg
@@ -0,0 +1,18 @@
+
+
+
\ No newline at end of file
diff --git a/test_models/img/bolt4.svg b/test_models/img/bolt4.svg
new file mode 100644
index 0000000..ca088bf
--- /dev/null
+++ b/test_models/img/bolt4.svg
@@ -0,0 +1,18 @@
+
+
+
\ No newline at end of file
diff --git a/test_models/img/output_shaft.svg b/test_models/img/output_shaft.svg
new file mode 100644
index 0000000..d30fd59
--- /dev/null
+++ b/test_models/img/output_shaft.svg
@@ -0,0 +1,53 @@
+
+
+
\ No newline at end of file
diff --git a/test_models/img/planet_gear.svg b/test_models/img/planet_gear.svg
new file mode 100644
index 0000000..c7d8898
--- /dev/null
+++ b/test_models/img/planet_gear.svg
@@ -0,0 +1,13 @@
+
+
+
\ No newline at end of file
diff --git a/test_models/img/planet_gear002.svg b/test_models/img/planet_gear002.svg
new file mode 100644
index 0000000..32101ac
--- /dev/null
+++ b/test_models/img/planet_gear002.svg
@@ -0,0 +1,13 @@
+
+
+
\ No newline at end of file
diff --git a/test_models/img/planet_gear003.svg b/test_models/img/planet_gear003.svg
new file mode 100644
index 0000000..a692e01
--- /dev/null
+++ b/test_models/img/planet_gear003.svg
@@ -0,0 +1,13 @@
+
+
+
\ No newline at end of file
diff --git a/test_models/img/planet_gear004.svg b/test_models/img/planet_gear004.svg
new file mode 100644
index 0000000..e5a7285
--- /dev/null
+++ b/test_models/img/planet_gear004.svg
@@ -0,0 +1,13 @@
+
+
+
\ No newline at end of file
diff --git a/test_models/img/planet_gear005.svg b/test_models/img/planet_gear005.svg
new file mode 100644
index 0000000..7b3470e
--- /dev/null
+++ b/test_models/img/planet_gear005.svg
@@ -0,0 +1,13 @@
+
+
+
\ No newline at end of file
diff --git a/test_models/img/sol_gear.svg b/test_models/img/sol_gear.svg
new file mode 100644
index 0000000..eebe881
--- /dev/null
+++ b/test_models/img/sol_gear.svg
@@ -0,0 +1,20 @@
+
+
+
\ No newline at end of file