diff --git a/public/assets/fonts/orbitron-bold.ttf b/public/assets/fonts/orbitron-bold.ttf
new file mode 100644
index 0000000..374f46f
Binary files /dev/null and b/public/assets/fonts/orbitron-bold.ttf differ
diff --git a/public/assets/fonts/rajdhani-bold.ttf b/public/assets/fonts/rajdhani-bold.ttf
new file mode 100644
index 0000000..33205f3
--- /dev/null
+++ b/public/assets/fonts/rajdhani-bold.ttf
@@ -0,0 +1,11 @@
+
+
+
+
+
Error 404 (Not Found)!!1
+
+
+ 404. That’s an error.
+
The requested URL /s/ajdhani/v17/LDI2apCSOBg7S-QT7pa8FsOs.ttf was not found on this server. That’s all we know.
diff --git a/public/assets/fonts/space-mono-bold.ttf b/public/assets/fonts/space-mono-bold.ttf
new file mode 100644
index 0000000..51cd703
Binary files /dev/null and b/public/assets/fonts/space-mono-bold.ttf differ
diff --git a/public/assets/models3d/bmu-switch-mosfet.glb b/public/assets/models3d/bmu-switch-mosfet.glb
new file mode 100644
index 0000000..40876e4
Binary files /dev/null and b/public/assets/models3d/bmu-switch-mosfet.glb differ
diff --git a/public/assets/models3d/bmu-v2-full.glb b/public/assets/models3d/bmu-v2-full.glb
new file mode 100644
index 0000000..893a38a
Binary files /dev/null and b/public/assets/models3d/bmu-v2-full.glb differ
diff --git a/src/components/AtomGlitch.tsx b/src/components/AtomGlitch.tsx
index c8c25d9..ea96851 100644
--- a/src/components/AtomGlitch.tsx
+++ b/src/components/AtomGlitch.tsx
@@ -171,6 +171,26 @@ function Nucleus() {
}
});
+ // Logo refs — 3 copies at different rotations
+ const logo1Ref = useRef(null);
+ const logo2Ref = useRef(null);
+ const logo3Ref = useRef(null);
+
+ useFrame(({ clock, camera }) => {
+ const t = clock.getElapsedTime();
+ // Each logo copy rotates on a different axis
+ if (logo1Ref.current) {
+ logo1Ref.current.rotation.y = t * 0.8;
+ logo1Ref.current.quaternion.copy(camera.quaternion);
+ }
+ if (logo2Ref.current) {
+ logo2Ref.current.rotation.set(t * 0.5, t * 0.3, 0);
+ }
+ if (logo3Ref.current) {
+ logo3Ref.current.rotation.set(0, t * -0.4, t * 0.6);
+ }
+ });
+
return (
{/* outer energy shell */}
@@ -188,6 +208,26 @@ function Nucleus() {
+
+ {/* ER logo — 3 copies at center, different rotations */}
+
+
+ ER
+
+
+
+
+
+ ER
+
+
+
+
+
+ ER
+
+
+
);
}
@@ -233,7 +273,7 @@ function EnergyArc({ color }: { color: THREE.Color }) {
/* ---------- 3D Circular / Orbital text ---------- */
const LAUNCH = new Date('2026-05-01T00:00:00+02:00').getTime();
-const FONT_URL = '/assets/fonts/manrope-regular.ttf';
+const FONT_URL = '/assets/fonts/orbitron-bold.ttf';
function pad(n: number) { return String(n).padStart(2, '0'); }
diff --git a/src/components/WebGLBackground.tsx b/src/components/WebGLBackground.tsx
index 7e66e94..0260e1f 100644
--- a/src/components/WebGLBackground.tsx
+++ b/src/components/WebGLBackground.tsx
@@ -22,24 +22,39 @@ const COLORS = {
silkscreen: new THREE.Color('#e8e8d0'),
};
-const FONT_URL = '/assets/fonts/manrope-regular.ttf';
+const FONT_URL = '/assets/fonts/orbitron-bold.ttf';
/* ---------- Scroll state ---------- */
let scrollProgress = 0;
-/* ---------- Real PCB Board ---------- */
+/* ---------- Real PCB Board (full 3D with components from FreeCAD) ---------- */
function RealPCB() {
let glb: any = null;
- try { glb = useGLTF('/assets/models3d/pcb-bmu-v2.glb'); } catch {}
+ try { glb = useGLTF('/assets/models3d/bmu-v2-full.glb'); } catch {}
if (!glb?.scene) return null;
return (
+ );
+}
+
+/* ---------- Switch MOSFET board ---------- */
+function SwitchBoard() {
+ let glb: any = null;
+ try { glb = useGLTF('/assets/models3d/bmu-switch-mosfet.glb'); } catch {}
+ if (!glb?.scene) return null;
+ return (
+
);
}
@@ -377,6 +392,7 @@ function PCBScene() {
+
@@ -440,7 +456,8 @@ export default function WebGLBackground() {
}
/* Preload all models */
-useGLTF.preload('/assets/models3d/pcb-bmu-v2.glb');
+useGLTF.preload('/assets/models3d/bmu-v2-full.glb');
+useGLTF.preload('/assets/models3d/bmu-switch-mosfet.glb');
useGLTF.preload('/assets/models3d/resistor_0603.glb');
useGLTF.preload('/assets/models3d/capacitor_0805.glb');
useGLTF.preload('/assets/models3d/inductor_0805.glb');