00-andruia-consultant
Usar al iniciar o mejorar un proyecto de IA: diagnostica código y restricciones, propone skills existentes y redacta tareas y un…
Use when building or debugging web 3D scenes, product configurators or portfolios with Three.js, React Three Fiber or Spline; review assets, loading, controls, fallbacks and performance.
Claude Code
$ npx -y skills add sickn33/agentic-awesome-skills --skill 3d-web-experience --agent claude-code
Codex
$ npx skills add sickn33/agentic-awesome-skills --skill 3d-web-experience -a codex -y
Cursor
$ npx skills add sickn33/agentic-awesome-skills --skill 3d-web-experience -a cursor -y
Gemini CLI
$ npx skills add sickn33/agentic-awesome-skills --skill 3d-web-experience -a gemini-cli -y
GitHub Copilot
$ npx skills add sickn33/agentic-awesome-skills --skill 3d-web-experience -a github-copilot -y
OpenCode
$ npx skills add sickn33/agentic-awesome-skills --skill 3d-web-experience -a opencode -y
Windsurf
$ npx skills add sickn33/agentic-awesome-skills --skill 3d-web-experience -a windsurf -y
name: 3d-web-experience description: "Use when building or debugging web 3D scenes, product configurators or portfolios with Three.js, React Three Fiber or Spline; review assets, loading, controls, fallbacks and performance." risk: critical source: vibeship-spawner-skills (Apache 2.0) date_added: 2026-02-27
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.
**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.
Choosing the right 3D approach
**When to use**: When starting a 3D web project
| 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 |
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
import Spline from '@splinetool/react-spline';
export default function Scene() {
return (
<Spline scene="https://prod.spline.design/xxx/scene.splinecode" />
);
}import { Canvas } from '@react-three/fiber';
import { OrbitControls, useGLTF } from '@react-three/drei';
import { Suspense } from 'react';
function Model() {
const { scene } = useGLTF('/model.glb');
return <primitive object={scene} />;
}
export default function Scene() {
return (
<Canvas>
<ambientLight />
<Suspense fallback={null}>
<Model />
</Suspense>
<OrbitControls enableZoom={false} />
</Canvas>
);
}Getting models web-ready
**When to use**: When preparing 3D assets
| Format | Use Case | Size | |--------|----------|------| | GLB/GLTF | Standard web 3D | Depends on geometry/textures/compression | | FBX | From 3D software | Large | | OBJ | Simple meshes | Medium | | USDZ | Apple AR | Medium |
1. Model in Blender/etc 2. Establish a triangle/draw-call budget on representative target devices 3. Bake textures (combine materials) 4. Export as GLB 5. Compress with gltf-transform 6. Measure transfer size, decode time, memory and frame time against the project budget
# Use the reviewed version already pinned in the project lockfile. # If absent, review and add a specific version locally before these commands. # Compress model ./node_modules/.bin/gltf-transform optimize input.glb output.glb \ --compress draco \ --texture-compress webp
This component needs the React/R3F/drei versions installed by the project and an actual `/model.glb` asset. Add an application error boundary for failed asset loads.
import { useGLTF, useProgress, Html } from '@react-three/drei';
import { Suspense } from 'react';
import { Canvas } from '@react-three/fiber';
function Model() {
const { scene } = useGLTF('/model.glb');
return <primitive object={scene} />;
}
function Loader() {
const { progress } = useProgress();
return <Html center>{progress.toFixed(0)}%</Html>;
}
export default function Scene() {
return (
<Canvas>
<ambientLight />
<Suspense fallback={<Loader />}>
<Model />
</Suspense>
</Canvas>
);
}3D that responds to scroll
**When to use**: When integrating 3D with scroll
import { ScrollControls, useScroll } from '@react-three/drei';
import { Canvas, useFrame } from '@react-three/fiber';
import { useRef } from 'react';
function RotatingModel() {
const scroll = useScroll();
const ref = useRef();
useFrame(() => {
// Rotate based on scroll position
if (ref.current) ref.current.rotation.y = scroll.offset * Math.PI * 2;
});
return (
<mesh ref={ref}>
<boxGeometry args={[1, 1, 1]} />
<meshNormalMaterial />
</mesh>
);
}
export default function Scene() {
return (
<Canvas>
<ScrollControls pages={3}>
<RotatingModel />
</ScrollControls>
</Canvas>
);
}import gsap from 'gsap';
import ScrollTrigger from 'gsap/ScrollTrigger';
gsap.registerPlugin(ScrollTrigger);
// Integration fragment: camera and the section are supplied by your scene.
// Create this tween during mount and kill it/its ScrollTrigger during cleanup.
gsap.to(camera.position, {
scrollTrigger: {
trigger: '.section',
scrub: true,
},
z: 5,
y: 2,
});Keeping 3D fast
**When to use**: Always - 3D is expensive
The following are illustrative starting budgets, not hardware limits or guarantees. Measure GPU time, draw calls, memory and load tim
Find reusable instructions for your project, inspect their complete files, and keep an exact skill set you can review and reuse.
Usar al iniciar o mejorar un proyecto de IA: diagnostica código y restricciones, propone skills existentes y redacta tareas y un…
Security audit, hardening, threat modeling (STRIDE/PASTA), Red/Blue Team, OWASP checks, code review, incident response, and…
Usar para crear o mejorar una skill de Andru.ia: define entradas y resultados, redacta SKILL.md con ejemplos y límites, valida la…
Usar tras definir el sector de un proyecto: prepara un dossier en español con contexto, normas aplicables, patrones UX y riesgos,…
AI-powered presentation generation via the 2slides API — create slides from text, match a reference image style, summarize…
360 feedback register: reviewer, subject, review cycle, visibility, due date and score, as CSV, SQL, JSON Schema or Notion on…
Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…
Create a new Architecture Decision Record with sequential numbering and AgentDB registration