diff --git a/src/lib/extrude-svg.ts b/src/lib/extrude-svg.ts
deleted file mode 100644
index 48b097c..0000000
--- a/src/lib/extrude-svg.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import type * as THREE from 'three';
-import { SVGLoader } from 'three/examples/jsm/loaders/SVGLoader';
-import type { SVGResult, SVGResultPaths } from 'three/examples/jsm/loaders/SVGLoader';
-
-import { Mesh } from 'three/src/objects/Mesh';
-import { Group } from 'three/src/objects/Group';
-import { MeshNormalMaterial } from 'three/src/materials/MeshNormalMaterial';
-import { ExtrudeGeometry } from 'three/src/geometries/ExtrudeGeometry';
-
-/**
- * Parses the provided SVG markup and extrudes it into a 3D model using THREE.js.
- * @param svgMarkup - SVG markup to extrude.
- * @return Group containing all of the extruded SVG paths.
- * @throws Error If the SVG markup is empty.
- */
-export function extrudeSvg(svgMarkup: string): Group {
- if (!svgMarkup) {
- throw new Error('SVG markup is empty');
- }
-
- const svgData: SVGResult = new SVGLoader().parse(svgMarkup);
- const material: MeshNormalMaterial = new MeshNormalMaterial();
-
- const svgGroup: Mesh[][] = svgData.paths.map(createShapeFromPath);
-
- const group = new Group();
- svgGroup.flat().forEach(mesh => group.add(mesh));
-
- return group;
-
- function createShapeFromPath(path: SVGResultPaths): Mesh[] {
- const shapes: THREE.Shape[] = path.toShapes(true);
-
- return shapes.map(shape => extrudeShape(shape, material));
- }
-
- function extrudeShape(shape: THREE.Shape, material: MeshNormalMaterial): Mesh {
- const geometry = new ExtrudeGeometry(shape, {
- depth: 20,
- bevelEnabled: false
- });
-
- return new Mesh(geometry, material);
- }
-}
diff --git a/src/routes/tools/+page.svelte b/src/routes/tools/+page.svelte
index 21076dd..953d9be 100644
--- a/src/routes/tools/+page.svelte
+++ b/src/routes/tools/+page.svelte
@@ -1,7 +1,11 @@
@@ -12,6 +16,40 @@
Tools
diff --git a/src/lib/components/gltf/Github3d.svelte b/src/routes/tools/Github.svelte
similarity index 85%
rename from src/lib/components/gltf/Github3d.svelte
rename to src/routes/tools/Github.svelte
index f0e1d97..1c1a718 100644
--- a/src/lib/components/gltf/Github3d.svelte
+++ b/src/routes/tools/Github.svelte
@@ -1,5 +1,3 @@
-
-
+
+
+
+
+ {#await gltf}
+
+ {:then gltf}
+
+
+ {:catch error}
+
+ {/await}
+
+
+
diff --git a/src/routes/tools/Scene.svelte b/src/routes/tools/Scene.svelte
deleted file mode 100644
index 1fd418d..0000000
--- a/src/routes/tools/Scene.svelte
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
- {
- ref.lookAt(0, 1, 0);
- }}
-/>
-
-
-
- scale.set(1.5)}
- on:pointerleave={() => scale.set(1)}
- on:click={() => scale.set(3)}
->
-
-
-
-
-
- scale.set(1.5)}
- on:pointerleave={() => scale.set(1)}
- on:click={() => scale.set(3)}
->
-
-
diff --git a/src/routes/tools/TerraformFlat.svelte b/src/routes/tools/TerraformFlat.svelte
new file mode 100644
index 0000000..a7a3ec9
--- /dev/null
+++ b/src/routes/tools/TerraformFlat.svelte
@@ -0,0 +1,31 @@
+
+
+
+
+
+ {#await gltf}
+
+ {:then gltf}
+
+
+
+
+ {:catch error}
+
+ {/await}
+
+
+
diff --git a/static/github.glb b/static/github.glb
new file mode 100644
index 0000000..e297dce
Binary files /dev/null and b/static/github.glb differ
diff --git a/static/github-transformed.glb b/static/models/github-transformed.glb
similarity index 100%
rename from static/github-transformed.glb
rename to static/models/github-transformed.glb
diff --git a/static/models/kubernetes-transformed.glb b/static/models/kubernetes-transformed.glb
new file mode 100644
index 0000000..16fe95e
Binary files /dev/null and b/static/models/kubernetes-transformed.glb differ
diff --git a/static/models/kubernetes.glb b/static/models/kubernetes.glb
new file mode 100644
index 0000000..3f9d5f7
Binary files /dev/null and b/static/models/kubernetes.glb differ
diff --git a/static/models/terraform-flat-transformed.glb b/static/models/terraform-flat-transformed.glb
new file mode 100644
index 0000000..80b1352
Binary files /dev/null and b/static/models/terraform-flat-transformed.glb differ
diff --git a/static/models/terraform-flat.glb b/static/models/terraform-flat.glb
new file mode 100644
index 0000000..4305e83
Binary files /dev/null and b/static/models/terraform-flat.glb differ