web-3d
Add 3D and WebGL to websites — interactive hero objects, product viewers, particles, shader backgrounds, scroll-driven 3D scenes — with Three.js or React Three Fiber (drei), Spline, or model-viewer, while keeping load time, mobile performance and fallbacks under control. Use whenever the user mentions 3D, WebGL, Three.js, R3F, react-three-fiber, shaders, GLB/GLTF models, particles, Spline, or wants an immersive/"wow" hero.
Target: React / Next.js. Automatically collected · unverified.
Excerpt from the author’s documentation
Extracted from a fixed version of SKILL.md in its original language. This is the author’s documentation; installation, compatibility and runtime results have not been verified by this site.
Read the original English text
Topics in the source
- Web 3D
- 1. Pick the right tool
- 2. Assets
- 3. Loading strategy (protect LCP)
- 4. R3F essentials
- 5. Performance & mobile
- 6. Accessibility & fallbacks
- 7. Verify
3D is the heaviest thing on a page. Treat it as a progressive enhancement layered on a page that already works and looks good without it. | Need | Use | |---|---| | Show a product model, rotate/zoom, AR | web component — simplest, accessible | | Designer built the scene visually | Spline (export as React component / embed) — fast to ship, heavier runtime | | Custom interactive scene in React/Next.js | React Three Fiber: npm i three @react-three/fiber @react-three/drei | | Custom scene in vanilla / Vue / Astro | Three.js directly (npm i three) — or TresJS for Vue | | Gradient/noise background, distortion effects | A single fullscreen shader plane (Three.js) or a lighter lib like OGL | Models: GLB, compressed. npx gltf-transform optimize in.glb out.glb --texture-compress webp (Draco/Meshopt geometry + compressed textures). Target import("./Scene"), { ssr: false }). Load when near viewport (IntersectionObserver) if not above the fold. Show a poster image (a render of the scene) until the canvas is ready, then crossfade — no layout shift (fixed aspect-ratio container). drei , useGLTF.preload(url); . Animate in useFrame((state, delta) => { ref.current.rotation.y += delta 0.3 }) — mutate
This is an excerpt. Refer to the complete source and its current requirements.
- Source repository
- KILN-skills/kiln
- Source file
- skills/web-3d/SKILL.md
- Fixed revision
- 555d7ea59d05910b4ef6fb39780da5f906be832b
Requirements
- Only the author’s Skill metadata is included. Read the full instructions to check dependencies, licensing and conditions of use.
A small first task
先阅读原作者说明,再决定是否在自己的 AI 工具中使用。
Instructions for your AI tool
- Claude Desktop: resource-specific guide not available yet
- Claude Code: resource-specific guide not available yet
- Cursor: resource-specific guide not available yet
- Codex: resource-specific guide not available yet
Author documentation is not live verification by this site. Without evidence, we do not mark a resource as compatible, safe or free.
Sources and evidence
This record was collected automatically. Its documentation, suitability and runtime behavior have not been manually verified.
Author: KILN-skills/kiln · original repository metadata. Documentation review: Not reviewed. Last source check: 2026-11-10T04:00:15.489Z.
Categories are inferred from names, descriptions and paths. They do not establish compatibility.
License and attribution
MIT. Third-party content and copyright remain with their authors. Refer to the original license and terms.
Original license ↗Synchronization, copying and user-reported success do not mark a resource as runtime-tested.
Limitations and notes
- Collecting metadata does not mean this site has installed, adapted, runtime-tested or security-reviewed the resource.