Commit Graph

19 Commits

Author SHA1 Message Date
Clément SAILLANT e49fdea8f0 refactor: clean slate — remove all WebGL, keep static + loading screen
REMOVED:
- AtomGlitch.tsx (countdown 3D atom)
- WebGLBackground.tsx (PCB 3D scene)
- WebGLCards.tsx (scroll animations)
- webgl-cards.css
- All GLB models (models3d/)
- Orbitron + Space Mono fonts

KEPT:
- static.astro (accessible version, no JS)
- Loading screen with BMU photo on preview
- Dark site CSS tokens in global.css
- bmu-assembly.jpg photo

SIMPLIFIED:
- index.astro: countdown without WebGL (placeholder div ready)
- preview.astro: loading screen + sections, WebGL placeholder ready
- Both pages have empty #webgl-* divs for new WebGL implementation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 18:04:19 +00:00
Clément SAILLANT b01b8dc5cb feat: KiCad board + STEP components combined (248 meshes, 2.7MB, with PCB traces) 2026-03-30 17:27:50 +00:00
Clément SAILLANT 4d7a2580af feat: colored PCB assembly — STEP materials preserved (11 colors)
- Scene GLB export preserves per-geometry materials from STEP files
- 158 sub-meshes with individual colors:
  - Green PCB substrate (20,51,36)
  - Orange copper traces (226,138,7)
  - Silver pads/solder (165,163,146)
  - Black IC bodies (5,5,5)
  - Yellow silkscreen (198,196,160)
- 397K vertices, 334K faces, 2.5MB (was 8.4MB gray)
- Board thickness visible (12.1mm Z-depth)
- BMU board + 4x switch MOSFET properly assembled

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 17:00:55 +00:00
Clément SAILLANT 5959141642 fix: camera/lights/fog in meters (STEP units), BMU board included in assembly 2026-03-30 16:49:20 +00:00
Clément SAILLANT 34968c32e7 fix: camera targeting board center + cleanup orphans + label positions
Camera audit fixes:
- Board bounds: X[-74,81] Y[-43,63] Z[-17,150] mm
- After -π/2 rotation, scene center ≈ (4, 66, -10)
- All camera stops now look at board center
- Overview: Y=250 (sees full 155mm assembly height)
- Close-ups: Y=80-140 (proper zoom on zones)
- Fog: 150-500mm range

Cleanup:
- Removed SwitchBoard() dead code
- Deleted orphan GLBs: bmu-v2-full.glb (1.6MB), pcb-bmu-v2.glb (269KB), bmu-switch-mosfet.glb (370KB)
- Saved 2.2MB from production bundle

Label positions:
- All SectionLabels repositioned to match board zones in scene coords
- MCU/ANALOG at Y=90 (top), POWER/FORMATION at Y=30 (bottom)
- MISSIONS at Y=110, CONTACT at center (4, 66, -10)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 16:32:02 +00:00
Clément SAILLANT 9d526e9d88 feat: complete BMU assembly — board + 4x switch MOSFET + components
- BMU v2 board (from STEP, 225K verts)
- 4x switch MOSFET boards (from STEP, offset positions)
- 76 SMD components (Part::Feature from FCStd)
- Properly simplified with fast_simplification (560K faces, 8.4MB)
- No mesh corruption (proper topology-preserving decimation)
- Loading screen forced to 10s minimum

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 12:55:48 +00:00
Clément SAILLANT a053bdbceb feat: loading screen with BMU photo while WebGL loads
- Full-screen loading overlay with BMU.jpeg from KXKM repo
- Title "L'electron rare" with cyan accent
- Animated progress bar (gradient cyan → amber)
- Rotating status messages (electronics-themed)
- Floating animation on BMU photo
- Auto-detects when WebGL canvas renders, then fades out (1s)
- Falls back gracefully if WebGL never loads

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 12:08:09 +00:00
Clément SAILLANT b5ed4ec309 fix: full assembly (380 objects, 4 MOSFET boards + BMU + I2C) + remove silkscreen labels
- Assembly now exports ALL 380 meshable objects (was 76)
- Includes: 4x switch MOSFET boards, BMU v2, I2C repeater, all SMD components
- Subsampled to 267K faces / 5.7MB GLB for web performance
- Removed BoardTitle silkscreen text overlay (was white labels on board)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 11:57:01 +00:00
Clément SAILLANT 05a9a220d8 feat: complete FreeCAD BMU assembly (76 real components, 4.6MB GLB)
- Exported from BMU.FCStd via amrit3701/freecad-cli Docker container
- 686 objects in FCStd, 76 Part::Feature exported (real geometry only)
- Full assembly: BMU v2 board + switch MOSFET + I2C repeater + all SMD components
- Components: D2PAK MOSFETs, SOT-23, R_0603, capacitors, connectors, inductors
- Replaces separate bmu-v2-full.glb + bmu-switch-mosfet.glb
- SwitchBoard component removed (included in assembly)
- Hero HTML removed — PCB 3D is the full-page hero

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 11:35:50 +00:00
Clément SAILLANT 1f960a1bb1 feat: real FreeCAD BMU v2 3D model + Orbitron font + ER nucleus logo
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>
2026-03-30 08:31:52 +00:00
Clément SAILLANT 0a0a6fdfa9 feat: real KiCad 3D component models (GLB) for WebGL PCB
7 GLB models converted from KiCad official STEP library via cascadio/trimesh:
- resistor_0603.glb (8KB) — SMD 0603 resistor
- capacitor_0805.glb (11KB) — SMD 0805 capacitor
- inductor_0805.glb (11KB) — SMD 0805 inductor
- led_0603.glb (11KB) — SMD 0603 LED
- soic8.glb (33KB) — SOIC-8 IC package
- qfp32.glb (118KB) — LQFP-32 IC package
- pcb-bmu-v2.glb (275KB) — KXKM BMU v2 PCB with copper traces

Source: KiCad 10.0 official 3D library (/usr/share/kicad/3dmodels/)
Conversion: cascadio (OpenCASCADE) + trimesh → GLB on KXKM-AI

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 07:44:27 +00:00
Clément SAILLANT acab730922 feat(seo): SOTA 2026 AI-ready SEO overhaul
- Schema.org: FAQPage, OfferCatalog, Occupation, EducationalOccupationalCredential, SearchAction, ContactPoint
- E-E-A-T signals: author, credentials (BTS SN), memberOf (KXKM), hasOccupation, priceRange
- AI crawling: llms.txt (llmstxt.org standard), robots.txt with GPTBot/Claude-Web/PerplexityBot/Google-Extended
- Meta: ai-content-declaration=human-created, generator-assisted, speakable, keywords, geo.region
- Auto date-switch: countdown (before May 1) / full site (after May 1) with Hero WebGL background
- Theme color updated to brand cyan #5bd1d8

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 21:49:04 +00:00
Clément SAILLANT d5f1ce84b4 feat: WebGL cinematic countdown — 3D atom with circular orbital text
- 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>
2026-03-29 17:32:38 +00:00
Clément SAILLANT a519c034c3 Remove public lab exposure and hero status copy 2026-03-14 22:38:30 +00:00
Clément SAILLANT 40620bb695 Sync OVH homepage and remove old studio variant 2026-03-14 16:30:32 +00:00
Clément SAILLANT 3c641ba79a feat: add OVH FTP preview deployment 2026-03-14 14:29:27 +00:00
Clément SAILLANT a0255bca06 chore: dynamic UI sprint update and repo hygiene 2026-03-02 20:23:05 +01:00
Clément SAILLANT 58a94001f8 feat: enable GH Pages stable plus deploy externe Vercel/Netlify 2026-03-02 09:06:47 +01:00
Clément SAILLANT a607feda60 feat: apply pro creative-lab art direction and validate astro pipeline 2026-03-02 09:06:46 +01:00