From d3bedca3fd00328d939b6ae851ca6a776ff0c4c4 Mon Sep 17 00:00:00 2001
From: Florian <45694132+flo-bit@users.noreply.github.com>
Date: Wed, 8 Oct 2025 00:57:45 +0200
Subject: [PATCH] add models
---
base-bin.svelte | 0
src/lib/models/base-bin-2x1.svelte | 56 +
src/lib/models/base-bin-3u.svelte | 56 +
src/lib/models/base-bin.svelte | 58 +
src/lib/models/baseplate.svelte | 56 +
src/lib/models/bin-esp32.svelte | 56 +
src/lib/models/buttplug.svelte | 53 +
src/lib/models/cap-mx-switch-15x15.svelte | 56 +
src/lib/models/cap-mx-switch-15x33.svelte | 56 +
src/lib/models/cap-rotary-encoder.svelte | 56 +
src/lib/models/cap-slider.svelte | 56 +
src/lib/models/cherry-mx.svelte | 56 +
src/lib/models/lid-2-mx-switches.svelte | 56 +
src/lib/models/lid-4-mx-switches.svelte | 56 +
src/lib/models/lid-rotary-encoder.svelte | 56 +
src/lib/models/lid-slider.svelte | 56 +
src/routes/+page.svelte | 41 +
src/routes/RotatableObject.svelte | 157 +
src/routes/Scene.svelte | 207 +-
src/routes/Utils.ts | 218 +
static/base-bin-2x1-transformed.glb | Bin 0 -> 22868 bytes
static/base-bin-3u-transformed.glb | Bin 0 -> 12088 bytes
static/base-bin-transformed.glb | Bin 0 -> 16652 bytes
static/baseplate-transformed.glb | Bin 0 -> 13636 bytes
static/bin-esp32-transformed.glb | Bin 0 -> 16704 bytes
static/buttplug-transformed.glb | Bin 0 -> 1416 bytes
static/cap-mx-switch-15x15-transformed.glb | Bin 0 -> 2252 bytes
static/cap-mx-switch-15x33-transformed.glb | Bin 0 -> 2260 bytes
static/cap-rotary-encoder-transformed.glb | Bin 0 -> 3856 bytes
static/cap-slider-transformed.glb | Bin 0 -> 3072 bytes
static/cherry-mx-transformed.glb | Bin 0 -> 3404 bytes
static/draco/draco_decoder.js | 33 +
static/draco/draco_decoder.wasm | Bin 0 -> 192420 bytes
static/draco/draco_encoder.js | 33 +
static/draco/draco_wasm_wrapper.js | 116 +
static/lid-2-mx-switches-transformed.glb | Bin 0 -> 5924 bytes
static/lid-4-mx-switches-transformed.glb | Bin 0 -> 7860 bytes
static/lid-rotary-encoder-transformed.glb | Bin 0 -> 2488 bytes
static/lid-slider-transformed.glb | Bin 0 -> 2740 bytes
static/showcase-cap.stl | 67006 --
static/showcase-mx-switch.stl | 22570 -
static/showcase-two-switches.stl | 51088 --
static/showcase.stl | 668670 ------------------
static/stls/base-bin-2x1.stl | 50374 ++
static/stls/base-bin-3u.stl | 24334 +
static/stls/baseplate-3x2.stl | 38166 +
static/stls/bin-esp32.stl | 34638 +
static/stls/buttplug.stl | 926 +
static/stls/cap-mx-switch-15x15.stl | 2662 +
static/stls/cherry-mx.stl | 5308 +
static/stls/lid-4-mx-switches.stl | 17922 +
static/stls/lid-rotary-encoder.stl | 3306 +
static/stls/lid-slider-2x1.stl | 4202 +
static/stls/rotary-encoder-cap.stl | 6246 +
static/stls/slider-cap.stl | 4678 +
static/stls/switch-cap-15x33.stl | 2718 +
static/stls/two-switches-lid.stl | 11496 +
57 files changed, 208517 insertions(+), 809437 deletions(-)
create mode 100644 base-bin.svelte
create mode 100644 src/lib/models/base-bin-2x1.svelte
create mode 100644 src/lib/models/base-bin-3u.svelte
create mode 100644 src/lib/models/base-bin.svelte
create mode 100644 src/lib/models/baseplate.svelte
create mode 100644 src/lib/models/bin-esp32.svelte
create mode 100644 src/lib/models/buttplug.svelte
create mode 100644 src/lib/models/cap-mx-switch-15x15.svelte
create mode 100644 src/lib/models/cap-mx-switch-15x33.svelte
create mode 100644 src/lib/models/cap-rotary-encoder.svelte
create mode 100644 src/lib/models/cap-slider.svelte
create mode 100644 src/lib/models/cherry-mx.svelte
create mode 100644 src/lib/models/lid-2-mx-switches.svelte
create mode 100644 src/lib/models/lid-4-mx-switches.svelte
create mode 100644 src/lib/models/lid-rotary-encoder.svelte
create mode 100644 src/lib/models/lid-slider.svelte
create mode 100644 src/routes/RotatableObject.svelte
create mode 100644 src/routes/Utils.ts
create mode 100644 static/base-bin-2x1-transformed.glb
create mode 100644 static/base-bin-3u-transformed.glb
create mode 100644 static/base-bin-transformed.glb
create mode 100644 static/baseplate-transformed.glb
create mode 100644 static/bin-esp32-transformed.glb
create mode 100644 static/buttplug-transformed.glb
create mode 100644 static/cap-mx-switch-15x15-transformed.glb
create mode 100644 static/cap-mx-switch-15x33-transformed.glb
create mode 100644 static/cap-rotary-encoder-transformed.glb
create mode 100644 static/cap-slider-transformed.glb
create mode 100644 static/cherry-mx-transformed.glb
create mode 100644 static/draco/draco_decoder.js
create mode 100644 static/draco/draco_decoder.wasm
create mode 100644 static/draco/draco_encoder.js
create mode 100644 static/draco/draco_wasm_wrapper.js
create mode 100644 static/lid-2-mx-switches-transformed.glb
create mode 100644 static/lid-4-mx-switches-transformed.glb
create mode 100644 static/lid-rotary-encoder-transformed.glb
create mode 100644 static/lid-slider-transformed.glb
delete mode 100644 static/showcase-cap.stl
delete mode 100644 static/showcase-mx-switch.stl
delete mode 100644 static/showcase-two-switches.stl
delete mode 100644 static/showcase.stl
create mode 100644 static/stls/base-bin-2x1.stl
create mode 100644 static/stls/base-bin-3u.stl
create mode 100644 static/stls/baseplate-3x2.stl
create mode 100644 static/stls/bin-esp32.stl
create mode 100644 static/stls/buttplug.stl
create mode 100644 static/stls/cap-mx-switch-15x15.stl
create mode 100644 static/stls/cherry-mx.stl
create mode 100644 static/stls/lid-4-mx-switches.stl
create mode 100644 static/stls/lid-rotary-encoder.stl
create mode 100644 static/stls/lid-slider-2x1.stl
create mode 100644 static/stls/rotary-encoder-cap.stl
create mode 100644 static/stls/slider-cap.stl
create mode 100644 static/stls/switch-cap-15x33.stl
create mode 100644 static/stls/two-switches-lid.stl
diff --git a/base-bin.svelte b/base-bin.svelte
new file mode 100644
index 0000000..e69de29
diff --git a/src/lib/models/base-bin-2x1.svelte b/src/lib/models/base-bin-2x1.svelte
new file mode 100644
index 0000000..d6afe15
--- /dev/null
+++ b/src/lib/models/base-bin-2x1.svelte
@@ -0,0 +1,56 @@
+
+
+
+
+
+ {#await gltf}
+ {@render fallback?.()}
+ {:then gltf}
+
+ {:catch err}
+ {@render error?.({ error: err })}
+ {/await}
+
+ {@render children?.({ ref })}
+
diff --git a/src/lib/models/base-bin-3u.svelte b/src/lib/models/base-bin-3u.svelte
new file mode 100644
index 0000000..cda97c3
--- /dev/null
+++ b/src/lib/models/base-bin-3u.svelte
@@ -0,0 +1,56 @@
+
+
+
+
+
+ {#await gltf}
+ {@render fallback?.()}
+ {:then gltf}
+
+ {:catch err}
+ {@render error?.({ error: err })}
+ {/await}
+
+ {@render children?.({ ref })}
+
diff --git a/src/lib/models/base-bin.svelte b/src/lib/models/base-bin.svelte
new file mode 100644
index 0000000..7a235eb
--- /dev/null
+++ b/src/lib/models/base-bin.svelte
@@ -0,0 +1,58 @@
+
+
+
+
+
+ {#await gltf}
+ {@render fallback?.()}
+ {:then gltf}
+
+
+
+
+
+
+ {:catch err}
+ {@render error?.({ error: err })}
+ {/await}
+
+ {@render children?.({ ref })}
+
diff --git a/src/lib/models/baseplate.svelte b/src/lib/models/baseplate.svelte
new file mode 100644
index 0000000..b985d46
--- /dev/null
+++ b/src/lib/models/baseplate.svelte
@@ -0,0 +1,56 @@
+
+
+
+
+
+ {#await gltf}
+ {@render fallback?.()}
+ {:then gltf}
+
+ {:catch err}
+ {@render error?.({ error: err })}
+ {/await}
+
+ {@render children?.({ ref })}
+
diff --git a/src/lib/models/bin-esp32.svelte b/src/lib/models/bin-esp32.svelte
new file mode 100644
index 0000000..d3174a8
--- /dev/null
+++ b/src/lib/models/bin-esp32.svelte
@@ -0,0 +1,56 @@
+
+
+
+
+
+ {#await gltf}
+ {@render fallback?.()}
+ {:then gltf}
+
+ {:catch err}
+ {@render error?.({ error: err })}
+ {/await}
+
+ {@render children?.({ ref })}
+
diff --git a/src/lib/models/buttplug.svelte b/src/lib/models/buttplug.svelte
new file mode 100644
index 0000000..1083a09
--- /dev/null
+++ b/src/lib/models/buttplug.svelte
@@ -0,0 +1,53 @@
+
+
+
+
+
+ {#await gltf}
+ {@render fallback?.()}
+ {:then gltf}
+
+ {:catch err}
+ {@render error?.({ error: err })}
+ {/await}
+
+ {@render children?.({ ref })}
+
diff --git a/src/lib/models/cap-mx-switch-15x15.svelte b/src/lib/models/cap-mx-switch-15x15.svelte
new file mode 100644
index 0000000..fcaccfe
--- /dev/null
+++ b/src/lib/models/cap-mx-switch-15x15.svelte
@@ -0,0 +1,56 @@
+
+
+
+
+
+ {#await gltf}
+ {@render fallback?.()}
+ {:then gltf}
+
+ {:catch err}
+ {@render error?.({ error: err })}
+ {/await}
+
+ {@render children?.({ ref })}
+
diff --git a/src/lib/models/cap-mx-switch-15x33.svelte b/src/lib/models/cap-mx-switch-15x33.svelte
new file mode 100644
index 0000000..cec4dea
--- /dev/null
+++ b/src/lib/models/cap-mx-switch-15x33.svelte
@@ -0,0 +1,56 @@
+
+
+
+
+
+ {#await gltf}
+ {@render fallback?.()}
+ {:then gltf}
+
+ {:catch err}
+ {@render error?.({ error: err })}
+ {/await}
+
+ {@render children?.({ ref })}
+
diff --git a/src/lib/models/cap-rotary-encoder.svelte b/src/lib/models/cap-rotary-encoder.svelte
new file mode 100644
index 0000000..a736513
--- /dev/null
+++ b/src/lib/models/cap-rotary-encoder.svelte
@@ -0,0 +1,56 @@
+
+
+
+
+
+ {#await gltf}
+ {@render fallback?.()}
+ {:then gltf}
+
+ {:catch err}
+ {@render error?.({ error: err })}
+ {/await}
+
+ {@render children?.({ ref })}
+
diff --git a/src/lib/models/cap-slider.svelte b/src/lib/models/cap-slider.svelte
new file mode 100644
index 0000000..a242dbb
--- /dev/null
+++ b/src/lib/models/cap-slider.svelte
@@ -0,0 +1,56 @@
+
+
+
+
+
+ {#await gltf}
+ {@render fallback?.()}
+ {:then gltf}
+
+ {:catch err}
+ {@render error?.({ error: err })}
+ {/await}
+
+ {@render children?.({ ref })}
+
diff --git a/src/lib/models/cherry-mx.svelte b/src/lib/models/cherry-mx.svelte
new file mode 100644
index 0000000..77169ec
--- /dev/null
+++ b/src/lib/models/cherry-mx.svelte
@@ -0,0 +1,56 @@
+
+
+
+
+
+ {#await gltf}
+ {@render fallback?.()}
+ {:then gltf}
+
+ {:catch err}
+ {@render error?.({ error: err })}
+ {/await}
+
+ {@render children?.({ ref })}
+
diff --git a/src/lib/models/lid-2-mx-switches.svelte b/src/lib/models/lid-2-mx-switches.svelte
new file mode 100644
index 0000000..06ee75c
--- /dev/null
+++ b/src/lib/models/lid-2-mx-switches.svelte
@@ -0,0 +1,56 @@
+
+
+
+
+
+ {#await gltf}
+ {@render fallback?.()}
+ {:then gltf}
+
+ {:catch err}
+ {@render error?.({ error: err })}
+ {/await}
+
+ {@render children?.({ ref })}
+
diff --git a/src/lib/models/lid-4-mx-switches.svelte b/src/lib/models/lid-4-mx-switches.svelte
new file mode 100644
index 0000000..e67fc36
--- /dev/null
+++ b/src/lib/models/lid-4-mx-switches.svelte
@@ -0,0 +1,56 @@
+
+
+
+
+
+ {#await gltf}
+ {@render fallback?.()}
+ {:then gltf}
+
+ {:catch err}
+ {@render error?.({ error: err })}
+ {/await}
+
+ {@render children?.({ ref })}
+
diff --git a/src/lib/models/lid-rotary-encoder.svelte b/src/lib/models/lid-rotary-encoder.svelte
new file mode 100644
index 0000000..3ed154f
--- /dev/null
+++ b/src/lib/models/lid-rotary-encoder.svelte
@@ -0,0 +1,56 @@
+
+
+
+
+
+ {#await gltf}
+ {@render fallback?.()}
+ {:then gltf}
+
+ {:catch err}
+ {@render error?.({ error: err })}
+ {/await}
+
+ {@render children?.({ ref })}
+
diff --git a/src/lib/models/lid-slider.svelte b/src/lib/models/lid-slider.svelte
new file mode 100644
index 0000000..7464478
--- /dev/null
+++ b/src/lib/models/lid-slider.svelte
@@ -0,0 +1,56 @@
+
+
+
+
+
+ {#await gltf}
+ {@render fallback?.()}
+ {:then gltf}
+
+ {:catch err}
+ {@render error?.({ error: err })}
+ {/await}
+
+ {@render children?.({ ref })}
+
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index 8498225..84e5b35 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -7,6 +7,47 @@
import { dev } from '$app/environment';
+
+
+ Buttfinity
+
+
+
+ Buttons + Gridfinity
+
+
+
+
+
-
+
+
+ Macropad
+
+
- Control your computer.
+
+
+
+
-
+
+
+ Smart home
+
+
- Automate your home.
+
+
+
+
-
+
+
+ Music
+
+
- Use as a MIDI controller.
+
+
+
+