diff --git a/app/src/experimental/icons/library/index.js b/app/src/experimental/icons/library/index.js
index 1bca010e820798578237dbb2b0b8c7b5363b4531..99ac758974b9283e02fd8d7afbd1e84001f2a0ce 100644
--- a/app/src/experimental/icons/library/index.js
+++ b/app/src/experimental/icons/library/index.js
@@ -8,6 +8,7 @@ import move from './move'
 import person from './person'
 import plus from './plus'
 import select from './select'
+import upload from './upload'
 
 export {
   addNode,
@@ -19,5 +20,6 @@ export {
   move,
   person,
   plus,
-  select
+  select,
+  upload,
 }
diff --git a/app/src/experimental/icons/library/upload.vue b/app/src/experimental/icons/library/upload.vue
new file mode 100644
index 0000000000000000000000000000000000000000..7a71ea61edddc244e204e75aa694182771772145
--- /dev/null
+++ b/app/src/experimental/icons/library/upload.vue
@@ -0,0 +1,58 @@
+<template>
+  <g>
+    <circle cx="6.5" cy="30.5" r="5.5" fill="black" />
+    <circle cx="40.5" cy="30.5" r="5.5" fill="black" />
+    <circle cx="17.5" cy="27.5" r="8.5" fill="black" />
+    <circle cx="28.5" cy="25.5" r="10.5" fill="black" />
+    <rect
+      fill-rule="evenodd"
+      clip-rule="evenodd"
+      x="6"
+      y="31"
+      width="35"
+      height="5"
+      fill="black"
+    />
+    <circle
+      cx="9.5"
+      cy="25.5"
+      r="4.5"
+      fill="white"
+      stroke="black"
+      stroke-width="2"
+    />
+    <circle
+      cx="43.5"
+      cy="25.5"
+      r="4.5"
+      fill="white"
+      stroke="black"
+      stroke-width="2"
+    />
+    <circle
+      cx="20.5"
+      cy="22.5"
+      r="7.5"
+      fill="white"
+      stroke="black"
+      stroke-width="2"
+    />
+    <circle
+      cx="31.5"
+      cy="20.5"
+      r="9.5"
+      fill="white"
+      stroke="black"
+      stroke-width="2"
+    />
+    <rect x="9" y="23" width="35" height="6" fill="white" />
+    <rect x="9" y="23" width="12" height="5" fill="white" />
+    <rect x="18" y="21" width="9" height="6" fill="white" />
+    <rect x="17" y="17" width="21" height="5" fill="white" />
+    <rect x="21" y="18" width="10" height="4" fill="white" />
+    <path
+      d="M30.5303 15.4697C30.2374 15.1768 29.7626 15.1768 29.4697 15.4697L24.6967 20.2426C24.4038 20.5355 24.4038 21.0104 24.6967 21.3033C24.9896 21.5962 25.4645 21.5962 25.7574 21.3033L30 17.0607L34.2426 21.3033C34.5355 21.5962 35.0104 21.5962 35.3033 21.3033C35.5962 21.0104 35.5962 20.5355 35.3033 20.2426L30.5303 15.4697ZM30.75 28L30.75 16L29.25 16L29.25 28L30.75 28Z"
+      fill="black"
+    />
+  </g>
+</template>
diff --git a/app/src/experimental/modes/index.js b/app/src/experimental/modes/index.js
index 88ccc2ce86427430b5041c2f0adb43f2b258b16f..2fadf620f249333fe459e8cbd065cba2806cb367 100644
--- a/app/src/experimental/modes/index.js
+++ b/app/src/experimental/modes/index.js
@@ -2,53 +2,64 @@ export const select = {
   name: 'select',
   view: {
     pan: false,
-    zoom: false
+    zoom: false,
   },
   icon: 'select',
   cursor: 'initial',
-  shortcut: false
+  shortcut: false,
 }
 
 export const addNode = {
   name: 'addNode',
   view: {
     pan: false,
-    zoom: false
+    zoom: false,
   },
   icon: 'addNode',
   cursor: 'copy',
-  shortcut: false
+  shortcut: false,
 }
 
 export const move = {
   name: 'move',
   view: {
     pan: true,
-    zoom: true
+    zoom: true,
   },
   icon: 'move',
   cursor: 'all-scroll',
-  shortcut: false
+  shortcut: false,
 }
 
 export const connect = {
   name: 'connect',
   view: {
     pan: false,
-    zoom: false
+    zoom: false,
   },
   icon: 'connection',
   cursor: 'crosshair',
-  shortcut: false
+  shortcut: false,
 }
 
 export const draw = {
   name: 'draw',
   view: {
     pan: false,
-    zoom: false
+    zoom: false,
   },
   icon: 'draw',
   cursor: 'crosshair',
-  shortcut: false
+  shortcut: false,
+}
+
+export const upload = {
+  name: 'upload',
+  view: {
+    pan: false,
+    zoom: false,
+  },
+  icon: 'upload',
+  cursor: 'copy',
+  shortcut: false,
 }