diff --git a/assets/icons/model/box.svg b/assets/icons/model/box.svg
new file mode 100644
index 000000000..b5bdd3387
--- /dev/null
+++ b/assets/icons/model/box.svg
@@ -0,0 +1,8 @@
+
diff --git a/assets/icons/model/chamfer.svg b/assets/icons/model/chamfer.svg
new file mode 100644
index 000000000..709ae1d0c
--- /dev/null
+++ b/assets/icons/model/chamfer.svg
@@ -0,0 +1,9 @@
+
diff --git a/assets/icons/model/cone.svg b/assets/icons/model/cone.svg
new file mode 100644
index 000000000..1de0d9973
--- /dev/null
+++ b/assets/icons/model/cone.svg
@@ -0,0 +1,6 @@
+
diff --git a/assets/icons/model/cylinder.svg b/assets/icons/model/cylinder.svg
new file mode 100644
index 000000000..e67f2ddd3
--- /dev/null
+++ b/assets/icons/model/cylinder.svg
@@ -0,0 +1,8 @@
+
diff --git a/assets/icons/model/extrude.svg b/assets/icons/model/extrude.svg
new file mode 100644
index 000000000..2d4313745
--- /dev/null
+++ b/assets/icons/model/extrude.svg
@@ -0,0 +1,9 @@
+
diff --git a/assets/icons/model/fillet.svg b/assets/icons/model/fillet.svg
new file mode 100644
index 000000000..94745172c
--- /dev/null
+++ b/assets/icons/model/fillet.svg
@@ -0,0 +1,9 @@
+
diff --git a/assets/icons/model/intersect.svg b/assets/icons/model/intersect.svg
new file mode 100644
index 000000000..a0c28e880
--- /dev/null
+++ b/assets/icons/model/intersect.svg
@@ -0,0 +1,13 @@
+
diff --git a/assets/icons/model/loft.svg b/assets/icons/model/loft.svg
new file mode 100644
index 000000000..983a96523
--- /dev/null
+++ b/assets/icons/model/loft.svg
@@ -0,0 +1,7 @@
+
diff --git a/assets/icons/model/polysolid.svg b/assets/icons/model/polysolid.svg
new file mode 100644
index 000000000..2f56acdaf
--- /dev/null
+++ b/assets/icons/model/polysolid.svg
@@ -0,0 +1,10 @@
+
diff --git a/assets/icons/model/presspull.svg b/assets/icons/model/presspull.svg
new file mode 100644
index 000000000..ecc793f02
--- /dev/null
+++ b/assets/icons/model/presspull.svg
@@ -0,0 +1,11 @@
+
diff --git a/assets/icons/model/pyramid.svg b/assets/icons/model/pyramid.svg
new file mode 100644
index 000000000..d2a5a1324
--- /dev/null
+++ b/assets/icons/model/pyramid.svg
@@ -0,0 +1,8 @@
+
diff --git a/assets/icons/model/revolve.svg b/assets/icons/model/revolve.svg
new file mode 100644
index 000000000..047ebf48f
--- /dev/null
+++ b/assets/icons/model/revolve.svg
@@ -0,0 +1,8 @@
+
diff --git a/assets/icons/model/sphere.svg b/assets/icons/model/sphere.svg
new file mode 100644
index 000000000..3ff1a9687
--- /dev/null
+++ b/assets/icons/model/sphere.svg
@@ -0,0 +1,6 @@
+
diff --git a/assets/icons/model/subtract.svg b/assets/icons/model/subtract.svg
new file mode 100644
index 000000000..933b09690
--- /dev/null
+++ b/assets/icons/model/subtract.svg
@@ -0,0 +1,12 @@
+
diff --git a/assets/icons/model/sweep.svg b/assets/icons/model/sweep.svg
new file mode 100644
index 000000000..c7e69eee0
--- /dev/null
+++ b/assets/icons/model/sweep.svg
@@ -0,0 +1,8 @@
+
diff --git a/assets/icons/model/torus.svg b/assets/icons/model/torus.svg
new file mode 100644
index 000000000..75835fea7
--- /dev/null
+++ b/assets/icons/model/torus.svg
@@ -0,0 +1,6 @@
+
diff --git a/assets/icons/model/union.svg b/assets/icons/model/union.svg
new file mode 100644
index 000000000..34a79d089
--- /dev/null
+++ b/assets/icons/model/union.svg
@@ -0,0 +1,10 @@
+
diff --git a/assets/icons/model/wedge.svg b/assets/icons/model/wedge.svg
new file mode 100644
index 000000000..d54f4b295
--- /dev/null
+++ b/assets/icons/model/wedge.svg
@@ -0,0 +1,7 @@
+
diff --git a/src/modules/model/mod.rs b/src/modules/model/mod.rs
index c430ffc30..18ee79a87 100644
--- a/src/modules/model/mod.rs
+++ b/src/modules/model/mod.rs
@@ -10,24 +10,24 @@ use crate::modules::{CadModule, IconKind, ModuleEvent, RibbonGroup, RibbonItem,
pub struct ModelModule;
-const BOX_ICON: &[u8] = include_bytes!("../../../assets/icons/box3d.svg");
-const CYLINDER_ICON: &[u8] = include_bytes!("../../../assets/icons/cylinder3d.svg");
-const CONE_ICON: &[u8] = include_bytes!("../../../assets/icons/cone3d.svg");
-const SPHERE_ICON: &[u8] = include_bytes!("../../../assets/icons/sphere3d.svg");
-const PYRAMID_ICON: &[u8] = include_bytes!("../../../assets/icons/pyramid3d.svg");
-const WEDGE_ICON: &[u8] = include_bytes!("../../../assets/icons/wedge3d.svg");
-const TORUS_ICON: &[u8] = include_bytes!("../../../assets/icons/torus3d.svg");
-const POLYSOLID_ICON: &[u8] = include_bytes!("../../../assets/icons/polysolid.svg");
-const EXTRUDE_ICON: &[u8] = include_bytes!("../../../assets/icons/extrude.svg");
-const REVOLVE_ICON: &[u8] = include_bytes!("../../../assets/icons/revolve.svg");
-const LOFT_ICON: &[u8] = include_bytes!("../../../assets/icons/loft.svg");
-const SWEEP_ICON: &[u8] = include_bytes!("../../../assets/icons/sweep.svg");
-const PRESSPULL_ICON: &[u8] = include_bytes!("../../../assets/icons/presspull.svg");
-const UNION_ICON: &[u8] = include_bytes!("../../../assets/icons/union.svg");
-const SUBTRACT_ICON: &[u8] = include_bytes!("../../../assets/icons/subtract.svg");
-const INTERSECT_ICON: &[u8] = include_bytes!("../../../assets/icons/intersect.svg");
-const FILLET_ICON: &[u8] = include_bytes!("../../../assets/icons/fillet.svg");
-const CHAMFER_ICON: &[u8] = include_bytes!("../../../assets/icons/chamfer.svg");
+const BOX_ICON: &[u8] = include_bytes!("../../../assets/icons/model/box.svg");
+const CYLINDER_ICON: &[u8] = include_bytes!("../../../assets/icons/model/cylinder.svg");
+const CONE_ICON: &[u8] = include_bytes!("../../../assets/icons/model/cone.svg");
+const SPHERE_ICON: &[u8] = include_bytes!("../../../assets/icons/model/sphere.svg");
+const PYRAMID_ICON: &[u8] = include_bytes!("../../../assets/icons/model/pyramid.svg");
+const WEDGE_ICON: &[u8] = include_bytes!("../../../assets/icons/model/wedge.svg");
+const TORUS_ICON: &[u8] = include_bytes!("../../../assets/icons/model/torus.svg");
+const POLYSOLID_ICON: &[u8] = include_bytes!("../../../assets/icons/model/polysolid.svg");
+const EXTRUDE_ICON: &[u8] = include_bytes!("../../../assets/icons/model/extrude.svg");
+const REVOLVE_ICON: &[u8] = include_bytes!("../../../assets/icons/model/revolve.svg");
+const LOFT_ICON: &[u8] = include_bytes!("../../../assets/icons/model/loft.svg");
+const SWEEP_ICON: &[u8] = include_bytes!("../../../assets/icons/model/sweep.svg");
+const PRESSPULL_ICON: &[u8] = include_bytes!("../../../assets/icons/model/presspull.svg");
+const UNION_ICON: &[u8] = include_bytes!("../../../assets/icons/model/union.svg");
+const SUBTRACT_ICON: &[u8] = include_bytes!("../../../assets/icons/model/subtract.svg");
+const INTERSECT_ICON: &[u8] = include_bytes!("../../../assets/icons/model/intersect.svg");
+const FILLET_ICON: &[u8] = include_bytes!("../../../assets/icons/model/fillet.svg");
+const CHAMFER_ICON: &[u8] = include_bytes!("../../../assets/icons/model/chamfer.svg");
/// Helper to declare a ribbon tool that fires a named command.
fn tool(id: &'static str, label: &'static str, icon: &'static [u8]) -> ToolDef {