PCB 3D Models:
- bmu-v2-full.glb (1.6MB) — complete BMU v2 from FreeCAD with all components
- bmu-switch-mosfet.glb (369KB) — switch MOSFET daughter board
- Source: KXKM_Batterie_Parallelator branch object-orriented
- Converted via cascadio/trimesh from STEP
Fonts:
- Orbitron Bold (17KB) — geometric futuristic font for 3D text
- Space Mono Bold (80KB) — tech monospace
- Applied to all WebGL text (section labels, silkscreen, countdown)
Countdown (AtomGlitch):
- 3x "ER" logo at nucleus center, each on different rotation axis
- Cyan, amber, green glow variants
- Orbitron font for all orbital text
WebGL Background:
- RealPCB now uses bmu-v2-full.glb (real FreeCAD model)
- SwitchBoard added as secondary board
- Orbitron font for section labels
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
WebGL Background v2:
- Real KXKM BMU v2 PCB (GLB) as central 3D object
- 6 component zones with real KiCad GLB models:
MCU (QFP32+SOIC8), ANALOG (SOIC8s), POWER (QFP32+caps+inductor),
COM (SOIC8s), MISSIONS (QFP32), CONTACT
- ~70 real components (resistors, caps, inductors, LEDs, ICs)
- 25 extra scattered passives for realism
- Camera orbits PCB, zooms into each zone on scroll (8 stops)
- Current flow: 80 cyan + 40 amber particles circling the board
- Section labels as silkscreen text
- Board title: "L'ELECTRON RARE REV 2026.1"
Countdown (AtomGlitch):
- Text orbits tightened (radius 3.8→2.0, 3.5→1.8, etc.)
- Countdown ring radius 4.2→2.5
- Decorative ring 5.8→3.5
- All text closer to nucleus for denser, more energetic feel
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- ICComponent: uses qfp32.glb (large) or soic8.glb (small) with fallback to procedural
- Capacitor: uses capacitor_0805.glb with scroll-reactive glow
- Resistor: uses resistor_0603.glb
- LED: uses led_0603.glb + dynamic PointLight for glow effect
- All models preloaded via useGLTF.preload()
- Fallback to procedural geometry if GLB fails to load
- Models from KiCad 10.0 official 3D library (STEP → GLB via cascadio)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Board expanded from 38 to 90 units depth
- All component positions, vias, branches, labels rescaled
- Zoom stops recalibrated for wider travel
- Substrate expanded (35x110)
- More breathing room between sections
- Camera Z range updated to match
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Silkscreen text on all components (ref designators, values, section labels)
- SectionLabel component: glows when camera approaches (scroll proximity)
- Camera zoom stops: 8 waypoints, smooth interpolation between components
- FOV transitions (50→40→42 etc.) for cinematic zoom effect
- smoothstep easing between stops
- Mouse parallax on camera position and lookAt
- Board markings: "L'ELECTRON RARE REV 2026.1", "Made in France"
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Cards: perspective 3D enter animation (rotateX/Y from blur)
- Scroll tilt: cards subtly rotate based on viewport position
- Atomic carousel: orbital scroll container with electron dot animation on hover
- Navigation arrows with glow + orbital track indicator
- Video hover autoplay in carousel items
- Lightbox: click any photo/video for full-view with energy rings
- Carousel items: 3D perspective rotateY(-3deg) on hover + glow border
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- WebGLBackground: fixed subtle atom + particles (dimmed, camera z=14)
- WebGLCards: scroll-triggered tile materialize with particle burst
- MediaLightbox: click photos/videos for full-view with orbital energy rings
- Dark design tokens in global.css (.dark-site variant)
- Glassmorphism cards, glow borders, staggered reveals
- Photo/video hover glow effects
- Each section wrapped in webgl-section for atomic reveal
- Each content block in webgl-card with per-section accent color
- Respects prefers-reduced-motion
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Three.js + React Three Fiber + postprocessing (bloom, chromatic aberration, glitch, scanlines)
- Nucleus with pulsing energy core, wireframe icosahedron shell
- 3 electron orbits with trail particles + energy arcs
- 600 particle cloud with organic movement
- Circular orbital text: title, countdown timer, subtitle curved on 3D rings
- Mouse interactions: camera parallax, atom speed boost, nucleus glow on proximity
- Camera smooth lerp follow with gentle auto-drift
- Font fix: woff2 → ttf for troika-three-text compatibility
- Logo: static mark instead of missing sprite frames
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Self-hosted runner on Tower
- Playwright E2E 23 tests
- ntfy notifications on pass/fail
- Runs on push to main + PRs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- SCP + restart on Tower instead of unreachable Photon
- Node SSR container with mascarade-frontend network
- Requires TOWER_HOST, TOWER_USER, TOWER_SSH_KEY secrets
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>