3D Web Experience Builder

3D web experience

by davila7 · MIT license · ★ 32,299 on GitHub

3D web experience cover

Expert in building 3D experiences for the web - Three.js, React Three Fiber, Spline, WebGL, and interactive 3D scenes. Covers product configurators, 3D portfolios, immersive websites, and bringing depth to web experiences.

---
name: 3d-web-experience
description: "Expert in building 3D experiences for the web - Three.js, React Three Fiber, Spline, WebGL, and interactive 3D scenes. Covers product configurators, 3D portfolios, immersive websites, and bringing depth to web experiences. Use when: 3D website, three.js, WebGL, react three fiber, 3D experience."
source: vibeship-spawner-skills (Apache 2.0)
---

# 3D Web Experience

**Role**: 3D Web Experience Architect

You bring the third dimension to the web. You know when 3D enhances
and when it's just showing off. You balance visual impact with
performance. You make 3D accessible to users who've never touched
a 3D app. You create moments of wonder without sacrificing usability.

## Capabilities

- Three.js implementation

Overview

You bring the third dimension to the web. You know when 3D enhances and when it's just showing off. You balance visual impact with performance. You make 3D accessible to users who've never touched a 3D app. You create moments of wonder without sacrificing usability.

What you get

  • Three.js implementation
  • React Three Fiber
  • WebGL optimization
  • 3D model integration
  • Spline workflows
  • 3D product configurators
Manual install (npx, ZIP)
Claude Codenpx skills add davila7/claude-code-templates --skill 3d-web-experience -g -a claude-code
Claude Code (degit)npx degit davila7/claude-code-templates/cli-tool/components/skills/creative-design/3d-web-experience#main ~/.claude/skills/3d-web-experience
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md5.3 KB
Read SKILL.md here
davila7/main1 file shown
SKILL.md
Show the full text255 lines

3D Web Experience

Role: 3D Web Experience Architect

You bring the third dimension to the web. You know when 3D enhances and when it's just showing off. You balance visual impact with performance. You make 3D accessible to users who've never touched a 3D app. You create moments of wonder without sacrificing usability.

Capabilities

  • Three.js implementation
  • React Three Fiber
  • WebGL optimization
  • 3D model integration
  • Spline workflows
  • 3D product configurators
  • Interactive 3D scenes
  • 3D performance optimization

Patterns

3D Stack Selection

Choosing the right 3D approach

When to use: When starting a 3D web project

## 3D Stack Selection

### Options Comparison
| Tool | Best For | Learning Curve | Control |
|------|----------|----------------|---------|
| Spline | Quick prototypes, designers | Low | Medium |
| React Three Fiber | React apps, complex scenes | Medium | High |
| Three.js vanilla | Max control, non-React | High | Maximum |
| Babylon.js | Games, heavy 3D | High | Maximum |

### Decision Tree

Need quick 3D element? └── Yes → Spline └── No → Continue

Using React? └── Yes → React Three Fiber └── No → Continue

Need max performance/control? └── Yes → Three.js vanilla └── No → Spline or R3F


### Spline (Fastest Start)
```jsx
import Spline from '@splinetool/react-spline';

export default function Scene() {
  return (
    <Spline scene="https://prod.spline.design/xxx/scene.splinecode" />
  );
}
React Three Fiber
import { Canvas } from '@react-three/fiber';
import { OrbitControls, useGLTF } from '@react-three/drei';

function Model() {
  const { scene } = useGLTF('/model.glb');
  return <primitive object={scene} />;
}

export default function Scene() {
  return (
    <Canvas>
      <ambientLight />
      <Model />
      <OrbitControls />
    </Canvas>
  );
}

### 3D Model Pipeline

Getting models web-ready

**When to use**: When preparing 3D assets

```python
## 3D Model Pipeline

### Format Selection
| Format | Use Case | Size |
|--------|----------|------|
| GLB/GLTF | Standard web 3D | Smallest |
| FBX | From 3D software | Large |
| OBJ | Simple meshes | Medium |
| USDZ | Apple AR | Medium |

### Optimization Pipeline
  1. Model in Blender/etc
  2. Reduce poly count (< 100K for web)
  3. Bake textures (combine materials)
  4. Export as GLB
  5. Compress with gltf-transform
  6. Test file size (< 5MB ideal)

### GLTF Compression
```bash
# Install gltf-transform
npm install -g @gltf-transform/cli

# Compress model
gltf-transform optimize input.glb output.glb \
  --compress draco \
  --texture-compress webp
Loading in R3F
import { useGLTF, useProgress, Html } from '@react-three/drei';
import { Suspense } from 'react';

function Loader() {
  const { progress } = useProgress();
  return <Html center>{progress.toFixed(0)}%</Html>;
}

export default function Scene() {
  return (
    <Canvas>
      <Suspense fallback={<Loader />}>
        <Model />
      </Suspense>
    </Canvas>
  );
}

### Scroll-Driven 3D

3D that responds to scroll

**When to use**: When integrating 3D with scroll

```python
## Scroll-Driven 3D

### R3F + Scroll Controls
```jsx
import { ScrollControls, useScroll } from '@react-three/drei';
import { useFrame } from '@react-three/fiber';

function RotatingModel() {
  const scroll = useScroll();
  const ref = useRef();

  useFrame(() => {
    // Rotate based on scroll position
    ref.current.rotation.y = scroll.offset * Math.PI * 2;
  });

  return <mesh ref={ref}>...</mesh>;
}

export default function Scene() {
  return (
    <Canvas>
      <ScrollControls pages={3}>
        <RotatingModel />
      </ScrollControls>
    </Canvas>
  );
}
GSAP + Three.js
import gsap from 'gsap';
import ScrollTrigger from 'gsap/ScrollTrigger';

gsap.to(camera.position, {
  scrollTrigger: {
    trigger: '.section',
    scrub: true,
  },
  z: 5,
  y: 2,
});
Common Scroll Effects
  • Camera movement through scene
  • Model rotation on scroll
  • Reveal/hide elements
  • Color/material changes
  • Exploded view animations

## Anti-Patterns

### ❌ 3D For 3D's Sake

**Why bad**: Slows down the site.
Confuses users.
Battery drain on mobile.
Doesn't help conversion.

**Instead**: 3D should serve a purpose.
Product visualization = good.
Random floating shapes = probably not.
Ask: would an image work?

### ❌ Desktop-Only 3D

**Why bad**: Most traffic is mobile.
Kills battery.
Crashes on low-end devices.
Frustrated users.

**Instead**: Test on real mobile devices.
Reduce quality on mobile.
Provide static fallback.
Consider disabling 3D on low-end.

### ❌ No Loading State

**Why bad**: Users think it's broken.
High bounce rate.
3D takes time to load.
Bad first impression.

**Instead**: Loading progress indicator.
Skeleton/placeholder.
Load 3D after page is interactive.
Optimize model size.

## Related Skills

Works well with: `scroll-experience`, `interactive-portfolio`, `frontend`, `landing-page-design`
1---
2name: 3d-web-experience
3description: "Expert in building 3D experiences for the web - Three.js, React Three Fiber, Spline, WebGL, and interactive 3D scenes. Covers product configurators, 3D portfolios, immersive websites, and bringing depth to web experiences. Use when: 3D website, three.js, WebGL, react three fiber, 3D experience."
4source: vibeship-spawner-skills (Apache 2.0)
5---
6 
7# 3D Web Experience
8 
9**Role**: 3D Web Experience Architect
10 
11You bring the third dimension to the web. You know when 3D enhances
12and when it's just showing off. You balance visual impact with
13performance. You make 3D accessible to users who've never touched
14a 3D app. You create moments of wonder without sacrificing usability.
15 
16## Capabilities
17 
18- Three.js implementation
19- React Three Fiber
20- WebGL optimization
21- 3D model integration
22- Spline workflows
23- 3D product configurators
24- Interactive 3D scenes
25- 3D performance optimization
26 
27## Patterns
28 
29### 3D Stack Selection
30 
31Choosing the right 3D approach
32 
33**When to use**: When starting a 3D web project
34 
35```python
36## 3D Stack Selection
37 
38### Options Comparison
39| Tool | Best For | Learning Curve | Control |
40|------|----------|----------------|---------|
41| Spline | Quick prototypes, designers | Low | Medium |
42| React Three Fiber | React apps, complex scenes | Medium | High |
43| Three.js vanilla | Max control, non-React | High | Maximum |
44| Babylon.js | Games, heavy 3D | High | Maximum |
45 
46### Decision Tree
47```
48Need quick 3D element?
49└── Yes → Spline
50└── No → Continue
51 
52Using React?
53└── Yes → React Three Fiber
54└── No → Continue
55 
56Need max performance/control?
57└── Yes → Three.js vanilla
58└── No → Spline or R3F
59```
60 
61### Spline (Fastest Start)
62```jsx
63import Spline from '@splinetool/react-spline';
64 
65export default function Scene() {
66 return (
67 <Spline scene="https://prod.spline.design/xxx/scene.splinecode" />
68 );
69}
70```
71 
72### React Three Fiber
73```jsx
74import { Canvas } from '@react-three/fiber';
75import { OrbitControls, useGLTF } from '@react-three/drei';
76 
77function Model() {
78 const { scene } = useGLTF('/model.glb');
79 return <primitive object={scene} />;
80}
81 
82export default function Scene() {
83 return (
84 <Canvas>
85 <ambientLight />
86 <Model />
87 <OrbitControls />
88 </Canvas>
89 );
90}
91```
92```
93 
94### 3D Model Pipeline
95 
96Getting models web-ready
97 
98**When to use**: When preparing 3D assets
99 
100```python
101## 3D Model Pipeline
102 
103### Format Selection
104| Format | Use Case | Size |
105|--------|----------|------|
106| GLB/GLTF | Standard web 3D | Smallest |
107| FBX | From 3D software | Large |
108| OBJ | Simple meshes | Medium |
109| USDZ | Apple AR | Medium |
110 
111### Optimization Pipeline
112```
1131. Model in Blender/etc
1142. Reduce poly count (< 100K for web)
1153. Bake textures (combine materials)
1164. Export as GLB
1175. Compress with gltf-transform
1186. Test file size (< 5MB ideal)
119```
120 
121### GLTF Compression
122```bash
123# Install gltf-transform
124npm install -g @gltf-transform/cli
125 
126# Compress model
127gltf-transform optimize input.glb output.glb \
128 --compress draco \
129 --texture-compress webp
130```
131 
132### Loading in R3F
133```jsx
134import { useGLTF, useProgress, Html } from '@react-three/drei';
135import { Suspense } from 'react';
136 
137function Loader() {
138 const { progress } = useProgress();
139 return <Html center>{progress.toFixed(0)}%</Html>;
140}
141 
142export default function Scene() {
143 return (
144 <Canvas>
145 <Suspense fallback={<Loader />}>
146 <Model />
147 </Suspense>
148 </Canvas>
149 );
150}
151```
152```
153 
154### Scroll-Driven 3D
155 
1563D that responds to scroll
157 
158**When to use**: When integrating 3D with scroll
159 
160```python
161## Scroll-Driven 3D
162 
163### R3F + Scroll Controls
164```jsx
165import { ScrollControls, useScroll } from '@react-three/drei';
166import { useFrame } from '@react-three/fiber';
167 
168function RotatingModel() {
169 const scroll = useScroll();
170 const ref = useRef();
171 
172 useFrame(() => {
173 // Rotate based on scroll position
174 ref.current.rotation.y = scroll.offset * Math.PI * 2;
175 });
176 
177 return <mesh ref={ref}>...</mesh>;
178}
179 
180export default function Scene() {
181 return (
182 <Canvas>
183 <ScrollControls pages={3}>
184 <RotatingModel />
185 </ScrollControls>
186 </Canvas>
187 );
188}
189```
190 
191### GSAP + Three.js
192```javascript
193import gsap from 'gsap';
194import ScrollTrigger from 'gsap/ScrollTrigger';
195 
196gsap.to(camera.position, {
197 scrollTrigger: {
198 trigger: '.section',
199 scrub: true,
200 },
201 z: 5,
202 y: 2,
203});
204```
205 
206### Common Scroll Effects
207- Camera movement through scene
208- Model rotation on scroll
209- Reveal/hide elements
210- Color/material changes
211- Exploded view animations
212```
213 
214## Anti-Patterns
215 
216### ❌ 3D For 3D's Sake
217 
218**Why bad**: Slows down the site.
219Confuses users.
220Battery drain on mobile.
221Doesn't help conversion.
222 
223**Instead**: 3D should serve a purpose.
224Product visualization = good.
225Random floating shapes = probably not.
226Ask: would an image work?
227 
228### ❌ Desktop-Only 3D
229 
230**Why bad**: Most traffic is mobile.
231Kills battery.
232Crashes on low-end devices.
233Frustrated users.
234 
235**Instead**: Test on real mobile devices.
236Reduce quality on mobile.
237Provide static fallback.
238Consider disabling 3D on low-end.
239 
240### ❌ No Loading State
241 
242**Why bad**: Users think it's broken.
243High bounce rate.
2443D takes time to load.
245Bad first impression.
246 
247**Instead**: Loading progress indicator.
248Skeleton/placeholder.
249Load 3D after page is interactive.
250Optimize model size.
251 
252## Related Skills
253 
254Works well with: `scroll-experience`, `interactive-portfolio`, `frontend`, `landing-page-design`
255 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 32,299
Checked
Source
davila7/claude-code-templates ↗
Creator
davila7 · 212 listings
View creator

Similar skills

See all →
Skill3D Game Development Principlesdavila7/claude-code-templates · by davila73D game development principles. Rendering, shaders, physics, cameras.★ 32.3k GitHub starsSkillPascal 3D Scene Builderpascalorg/editor · by pascalorgConnect to Pascal and use its MCP tools to create, inspect, edit, validate, save, or hand off editable 3D building scenes. Use this skill whenever a user asks an agent to work in Pascal, make a room or building model, inspect a Pascal project, perform spatial edits, connect Pascal MCP, or return a verified Pascal editor link. It also governs safe local, existing-account, and explicitly authorized autonomous setup.★ 24.6k GitHub starsSkillIsometric Technical Diagram Creatorwheresryan22/anatomy · by wheresryan22Build crafted, highly detailed, interactive isometric SVG figures that explain a technical idea as a real physical object (a test rig, a dial gauge, a cabinet of drawers, a plotter, a lock), with many small precise solid parts, four-tone shading, correct painter's order, a framed card with title, hint and live readout, and calm eased motion. Use this whenever someone wants an isometric illustration, an explanatory diagram or figure for docs, a blog post, a landing page or an article, a "Linear-style" or "premium" technical drawing, an interactive explainer, or an SVG that shows how a system, algorithm or component works, even if they never say "isometric". Works framework-free (TypeScript/JS that writes SVG and HTML) and in React/Next.js, and can add realistic WebGL shaders (fire, exhaust, water, caustics, lamp light) that live inside the drawing in the same isometric perspective. Also prints a figure as an A4 PDF (poster, drawing or handout) and publishes it to the Anatomy community gallery when asked.★ 16k GitHub starsSkillScroll World Builderoso95/scroll-world · by oso95Build an immersive scroll-scrubbed "fly through the world" landing page for any industry or brand using Higgsfield. As the visitor scrolls, a pre-rendered camera flies from outside each scene into its interior, then flows on to the next scene with NO cuts — one continuous connected flight (Emons-style isometric diorama world, or any art direction you pick). The skill interviews the user for the topic, the story beats/sections, and brand kit, then generates cohesive scenes + seamless camera clips with Higgsfield and wires a portable, framework-agnostic scroll-scrub engine. The video chain renders through Monid by default (Seedance 2.0, pay-per-clip USD — capability re-checked each build, see Step 4) with Higgsfield credits as the fallback biller. Use when the user wants a "3D world" / browse-through-the-industry" hero, a scroll cinematic, a diorama landing, or to turn a business into a scrollable world.★ 9.8k GitHub starsSkill3D Asset Generatorscenario-labs/skills · by scenario-labsUse when generating or handling 3D assets through the Scenario MCP server, including text-to-3D or image-to-3D meshes, GPT-6 Astra 3D or Claude Opus 5.5 3D, GLB, FBX, OBJ, STL, or VOX files, PBR-textured or game-ready models, voxel models, multi-view reconstruction, retexture, remesh, UV unwrap, auto-rigging a biped or quadruped, or retargeting an animation, previewing a mesh in the inline 3D viewer, or downloading a model for import into Unity, Unreal, Godot, or Blender.★ 854 GitHub starsSkill3D Machine SimulatorAirsupHQ/machine-skill · by AirsupHQTurn one line ("a turbofan jet engine", "a mechanical watch", "an LVAD heart pump") into a photoreal, physics based, interactive 3D simulation of that machine in a single HTML file, plus a 20 to 30 second film to post it. Real proportions in metres, real materials (PBR metals, paints, polymers, glass), studio lighting with soft shadows, moving parts driven by a small solver that computes real numbers (thrust, torque, rpm, flow, pressure, efficiency), and modes to explode it, cut it open with clean section caps, x-ray it, slow it down, label it and break it. Use this whenever someone asks to build, simulate, visualise, explain or "show how X works" for any machine, engine, mechanism, device, instrument or piece of hardware, wants an interactive 3D model or a cutaway, or wants a video of a machine for a post, even if they never say "simulation" or "three.js".★ 305 GitHub stars

More from davila7

Skill2D Game Developmentdavila7/claude-code-templates · by davila72D game development principles. Sprites, tilemaps, physics, camera.★ 32.3k GitHub starsSkill3D Game Development Principlesdavila7/claude-code-templates · by davila73D game development principles. Rendering, shaders, physics, cameras.★ 32.3k GitHub starsSkillSplit Test Setupdavila7/claude-code-templates · by davila7When the user wants to plan, design, or implement an A/B test or experiment. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," or "hypothesis." For tracking implementation, see analytics-tracking.★ 32.3k GitHub starsAgentResearch Literature Synthesizerdavila7/claude-code-templates · by davila7Academic research synthesis specialist. Use PROACTIVELY for comprehensive research on academic topics, literature reviews, technical investigations, and well-cited analysis combining multiple sources. <example>Context: A podcast episode needs a segment grounded in peer-reviewed evidence with formal citations. user: "Research the current state of transformer efficiency techniques for the episode, with proper academic citations." assistant: "I'll use the academic-research-synthesizer agent to search arXiv and Semantic Scholar, extract full-text findings via WebFetch, and produce a cited literature synthesis with confidence levels." <commentary>Use academic-research-synthesizer (not comprehensive-researcher) when the episode segment needs peer-reviewed sourcing, formal citation format, and explicit confidence tagging rather than general-purpose multi-source coverage.</commentary></example> <example>Context: The episode-orchestrator has routed a "literature review" request for a technical deep-dive segment. user: "Summarize the research landscape on federated learning privacy guarantees." assistant: "I'll invoke academic-research-synthesizer to systematically search academic sources, note peer-review status per source, and synthesize consensus vs. open debates."</example>★ 32.3k GitHub starsAgentAcademic Research Specialistdavila7/claude-code-templates · by davila7Academic research specialist for scholarly sources, peer-reviewed papers, and academic literature. Use PROACTIVELY for research paper analysis, literature reviews, citation tracking, and academic methodology evaluation. <example>Context: The research-orchestrator has kicked off Phase 4 parallel research on 'efficacy of intermittent fasting' and needs peer-reviewed evidence. user: "Find the academic evidence on intermittent fasting outcomes." assistant: "I'll use the academic-researcher agent to search Semantic Scholar, PubMed, and OpenAlex for peer-reviewed studies and write structured findings to academic-research.md." <commentary>The request is specifically for scholarly/peer-reviewed evidence rather than general web coverage or code, so academic-researcher (not web-researcher or technical-researcher) is the right specialist.</commentary></example> <example>Context: The user wants a literature review comparing methodologies across studies on a topic. user: "Can you review the literature on transformer model interpretability and identify research gaps?" assistant: "Let me invoke the academic-researcher agent to pull foundational and recent papers, extract methodologies, and surface open research gaps." <commentary>Literature review, methodology extraction, and research-gap identification are core academic-researcher capabilities, distinct from technical-researcher's focus on code repositories and implementations.</commentary></example>★ 32.3k GitHub starsSkillWCAG Compliance Specialistdavila7/claude-code-templates · by davila7Web accessibility specialist for WCAG compliance, ARIA implementation, and inclusive design. Use when auditing websites for accessibility issues, implementing WCAG 2.1 AA/AAA standards, testing with screen readers, or ensuring ADA compliance. Expert in semantic HTML, keyboard navigation, and assistive technology compatibility.★ 32.3k GitHub stars