Jede vibe-gecodete Website sieht gleich aus: Inter Font, weisser Hintergrund, blaue Buttons. Das ist der AI-Look — und ein Three.js 3D-Hero durchbricht ihn sofort. Seit Import Maps in allen modernen Browsern funktionieren (Chrome 89+, Firefox 108+, Safari 16.4+), brauchst du weder npm noch einen Bundler. Seit Three.js r157 (September 2023) ist zudem kein es-module-shims Polyfill mehr nötig — ein wichtiger Qualitätshinweis für ältere Tutorials die es noch empfehlen. Seit Three.js r157 (September 2023) ist auch es-module-shims überflüssig — moderne Browser unterstützen Import Maps nativ.
Import Maps statt CDN-Script-Tag
Die alte Methode mit Script-Tag und globalem THREE-Objekt funktioniert, hat aber Nachteile: kein Tree-Shaking, keine Addons (OrbitControls, GLTFLoader), Versionskonflikte bei Deep-Imports ab v137 auf Skypack. Die moderne Methode: Import Maps mit esm.sh als CDN.
Diese Datei ist sofort deploybar. Kein npm install, kein vite.config.js. Und anders als das r128-CDN-Pattern unterstützt sie OrbitControls, GLTFLoader und jedes andere Three.js Addon direkt.
Kernerkenntnis
CDN-Wahl: esm.sh (stabil, wandelt CommonJS zu ESM, Deep Imports funktionieren) oder jsDelivr (sehr schnell, git-Tag-Support) als Alternative. unpkg funktioniert, hat aber gelegentlich Rate-Limiting. Skypack ist ab v137 kaputt für Deep-Imports und wird nicht mehr empfohlen. esm.sh ist stabiler, schneller und wird aktiv maintained. Die Import Map mit esm.sh ist der empfohlene Standard für Vibe Coders.
5 Szenen-Typen die per Prompt funktionieren
1. Partikel-Galaxie. PointsMaterial mit tausenden Punkten in einer Spiralformation. Ideal für Hero-Hintergründe. Per Vibe Coding in 5 Minuten generierbar — ein vollständiges Snippet mit GLSL-Vertex-Shader erzeugt 150.000 Partikel.
2. Wireframe-Geometrien. Rotierende BoxGeometry, IcosahedronGeometry oder TorusGeometry mit wireframe: true. Drei Zeilen Code, maximaler Effekt. Ideal für Tech-Themen.
3. Netzwerk-Knoten. Points mit Verbindungslinien bei Nähe. Der Klassiker für KI- und Netzwerk-Themen. Jeder Artikel auf while.chat nutzt eine Variante davon.
4. 3D Image Carousel. Claude Code kann komplexe Carousels mit Three.js Shading Language (TSL) und WebGPU aus Screenshots rekonstruieren. Mouse-Wheel und Drag-Interaktion via PointerEvents.
5. 3D Game Environment. Ein komplettes Game-Environment lässt sich per Vibe Coding in unter 10 Minuten aufsetzen — dokumentiert auf YouTube mit Cursor und Three.js.
Vibe-Coding-Workflow für Three.js
1. Szenentyp beschreiben: "floating particles", "rotating globe", "wireframe icosahedron".
2. Import Map vorgeben: Immer die eigene Import-Map-Version in den Prompt kopieren. Verhindert Versionskonflikte.
3. Isoliert iterieren: Kamera-Position, Material-Properties und Animation-Speed separat prompten. Nicht alles auf einmal ändern.
4. Performance checken: setPixelRatio(Math.min(window.devicePixelRatio, 2)) verhindert Überrendering auf Retina-Displays. Max 500 Vertices für Hero-Szenen. Lighthouse-Compliance prüfen.
5. Accessibility einbauen: Canvas-Container bekommt role="img" und aria-label. prefers-reduced-motion: Canvas ausblenden, Gradient-Fallback zeigen. Nicht optional.
Das fertige Snippet gehört in die Snippet-Bibliothek — einmal richtig gebaut, bei jedem Projekt wiederverwendet.
Häufige Fragen
Warum Import Maps statt dem alten Script-Tag?
Import Maps ermöglichen ES-Module-Syntax (import/export), Zugriff auf alle Three.js Addons (OrbitControls, GLTFLoader etc.) und präzise Versionskontrolle. Der alte Script-Tag mit globalem THREE-Objekt unterstützt keine Addons und hat Versionskonflikte ab v137.
Welchen Performance-Impact hat Three.js?
Minimal bei korrekter Einbindung: Canvas mit fester Höhe (kein CLS), setPixelRatio begrenzen, max 500 Vertices für Heros, reduced-motion-Fallback. Lighthouse bleibt bei 95-100.
Kann ich auch GLTF-Modelle laden ohne Build-Tool?
Ja — dank Import Maps. GLTFLoader importieren, .glb-Datei neben die HTML legen, fertig. Für Hero-Hintergründe sind generative Szenen (Partikel, Geometrien) fast immer leichter und schneller als 3D-Modelle.
Wie kombiniere ich Three.js mit dem restlichen Vibe-Coding-Workflow?
Three.js ist eine Komponente im Gesamt-Workflow. Erst die Seite bauen (B1), dann Performance sicherstellen (B4), dann den 3D-Hero als letztes Layer hinzufügen.
Quellen
sbcode.net — "Using Import Maps with Three.js" (Tutorial)
esm.sh — ES Module CDN (esm.sh)
Skypack Issue #261 — Deep Import Probleme ab Three.js v137
builder.io — "Vibe code immersive 3D effects in one prompt"
wawasensei.dev — "Vibe Code a 3D Carousel with Claude Code & Three.js"
YouTube — "I vibe coded a 3D game w/ three.js in 10 minutes"
jsDelivr — cdn.jsdelivr.net/npm/three (Alternative zu esm.sh)
jvns.ca — "Importing a frontend Javascript library without a build system"
Three.js Discourse — "Why does Three.js require an import map?"