threejs-webgl
Skill0 starsChanged 28 days agoMITView on GitHub
Implémentation de scènes 3D web avec Three.js, React Three Fiber, Drei, WebGL et GLTF. Use when building interactive 3D websites, loading models, creating shaders, camera animations, particles, post-processing, or canvas-based product experiences.
Files
Three.js and WebGL
Construire des scènes 3D web maintenables avec Three.js ou React Three Fiber. Préférer les primitives et composants existants avant d'écrire un shader ou un renderer personnalisé.
Stack Selection
| Contexte | Choix |
| JavaScript vanilla | Three.js |
| React / Next.js | React Three Fiber + Drei |
| Interaction éditoriale rapide | Spline export/embed, avec fallback HTML |
| Modèles | GLTF/GLB |
| Compression | Draco pour géométrie, KTX2/Basis pour textures |
| Effets | Postprocessing ciblé, pas de chaîne excessive |
Scene Architecture
Scene
-> Camera
-> Lights / Environment
-> Content group
-> Model
-> Interactive hotspots
-> Effects (optionnel)
-> HTML overlay accessibleSéparer les responsabilités :
SceneCanvas: renderer, DPR, resize et contexteSceneContent: objets et matériauxCameraRig: position et transitions de caméraInteractionLayer: raycasting, hover, click et touchLoadingState: progression et erreurs- HTML : titres, actions, descriptions et navigation
React Three Fiber Pattern
function ProductScene() {
return (
<Canvas camera={{ position: [0, 0, 5], fov: 35 }} dpr={[1, 2]}>
<Suspense fallback={null}>
<Environment preset="studio" />
<ProductModel />
</Suspense>
</Canvas>
)
}Règles :
- Charger les modèles avec
useGLTFet précharger uniquement les assets nécessaires. - Utiliser
useFrameuniquement pour la boucle réellement animée. - Ne pas recréer géométries, matériaux ou textures à chaque rendu React.
- Utiliser
useLoader/Suspenseavec une UI de chargement externe au canvas. - Nettoyer les ressources créées dynamiquement lors du démontage.
- Maintenir la logique métier et les données hors de la scène quand c'est possible.
Model Pipeline
Blender / Spline
-> GLB
-> Draco / KTX2 compression
-> preload selectively
-> GLTFLoader / useGLTF
-> animation mixer / interactionAvant livraison : vérifier les unités, l'origine, les normales, les animations, les textures et le nombre de matériaux.
Interaction
- Utiliser le raycasting pour cibler un objet précis.
- Ajouter un état visuel stable pour hover, focus, sélection et désactivation.
- Supporter pointer, clavier et touch lorsque l'action est importante.
- Ne pas dépendre de
mousemovecontinu pour une action essentielle. - Limiter les interactions simultanées afin d'éviter les conflits orbit/scroll.
- Exposer les actions importantes dans l'interface HTML parallèle.
Animation
- Préférer des transitions courtes, cohérentes et interruptibles.
- Utiliser une timeline pour le storytelling et un état explicite pour les étapes.
- Éviter les animations infinies sur mobile ou en mode réduit.
- Ne pas bloquer l'interface pendant une transition de caméra.
- Synchroniser le texte HTML avec la scène sans faire dépendre le contenu de WebGL.
Shaders and Effects
Utiliser des shaders uniquement lorsqu'ils apportent une valeur visuelle réelle. Commencer par MeshStandardMaterial, MeshPhysicalMaterial, textures et lighting.
- Garder les uniforms documentés et typés.
- Prévoir un fallback lorsque WebGL ou une extension n'est pas disponible.
- Mesurer le coût du bloom, SSAO, DOF et des effets plein écran avant de les cumuler.
- Éviter les effets qui réduisent le contraste du texte ou masquent les contrôles.
Responsive Canvas
- Adapter caméra, framing et densité d'objets aux breakpoints.
- Régler le DPR avec une limite raisonnable, jamais uniquement sur la résolution écran.
- Réduire lumières, ombres, particules et post-processing sur appareils faibles.
- Prévoir une image ou une scène simplifiée pour l'absence de WebGL.
- Tester portrait, paysage, clavier, touch et fenêtres redimensionnées.
Implementation Checklist
- Canvas isolé dans un composant dédié
- Assets GLB compressés et chargés à la demande
- Loading, erreur et fallback HTML implémentés
- Interaction clavier/touch pour les actions importantes
- Animations interruptibles et mode réduit
- Matériaux et ressources réutilisés
- DPR et qualité adaptés à l'appareil
- Aucun texte essentiel rendu uniquement dans le canvas
References
- Three.js: https://threejs.org/docs/
- React Three Fiber: https://r3f.docs.pmnd.rs/
- Drei: https://github.com/pmndrs/drei
- Spline: https://docs.spline.design/
Other versions8 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 8
- freshtechbro/claudedesignskills★ 824same name
- xenodeve/xeno-skills★ 2same name
- SkotAlexsander/skills★ 1same name
- belentani7/manus-ai-skill-pack★ 0same name
- Eliart-tech/Claude-skills★ 0same name
- keysforthewin/thisoffice★ 0same name
- kschiavo-beep/claude-skills★ 0same name
- Samueladewole/claude-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository43 other files it gives its agents.
- 3d-performance-accessibilitySkill
- 3d-web-designSkill
- accessibilitySkill
- admin-shellSkill
- anti-hallucinationSkill
- api-designSkill
- architectureSkill
- backoffice-designSkill
- banner-designSkill
- bragSkill
- brag-slimSkill
- brandSkill
- ci-cd-automationSkill
- coding-standardsSkill
- context-engineeringSkill
- databaseSkill
- data-tablesSkill
- designSkill
- design-system-shadcnSkill
- design-systemSkill
- documentationSkill
- form-designSkill
- git-workflowSkill
- gsap-coreSkill
- gsap-frameworksSkill
- gsap-performanceSkill
- gsap-pluginsSkill
- gsap-reactSkill
- gsap-scrolltriggerSkill
- gsap-timelineSkill
- gsap-utilsSkill
- monitoring-observabilitySkill
- motion-design-webSkill
- performanceSkill
- saas-design-systemSkill
- saas-system-designSkill
- saas-ui-designSkill
- securitySkill
- slidesSkill
- state-managementSkill
- testingSkill
- ui-stylingSkill
- ui-ux-pro-maxSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

