00-andruia-consultant
Arquitecto de Soluciones Principal y Consultor Tecnológico de Andru.ia. Diagnostica y traza la hoja de ruta óptima para proyectos de IA en español.
Expert in building 3D experiences for the web - Three.js, React
$ npx -y skills add sickn33/antigravity-awesome-skills --skill 3d-web-experience --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/3d-web-experienceContext preview
The summary Claude sees to decide when to auto-load this skill.
Expert in building 3D experiences for the web - Three.js, React
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. 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';
function Model() {
const { scene } = useGLTF('/model.glb');
return <primitive object={scene} />;
}
export default function Scene() {
return (
<Canvas>
<ambientLight />
<Model />
<OrbitControls />
</Canvas>
);
}Getting models web-ready
**When to use**: When preparing 3D assets
| Format | Use Case | Size | |--------|----------|------| | GLB/GLTF | Standard web 3D | Smallest | | FBX | From 3D software | Large | | OBJ | Simple meshes | Medium | | USDZ | Apple AR | Medium |
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)
# Install gltf-transform npm install -g @gltf-transform/cli # Compress model gltf-transform optimize input.glb output.glb \ --compress draco \ --texture-compress webp
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>
);
}3D that responds to scroll
**When to use**: When integrating 3D with scroll
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>
);
}import gsap from 'gsap';
import ScrollTrigger from 'gsap/ScrollTrigger';
gsap.to(camera.position, {
scrollTrigger: {
trigger: '.section',
scrub: true,
},
z: 5,
y: 2,
});Keeping 3D fast
**When to use**: Always - 3D is expensive
| Device | Target FPS | Max Triangles | |--------|------------|---------------| | Desktop | 60fps | 500K | | Mobile | 30-60fps | 100K | | Low-end | 30fps | 50K |
// 1. Use instances for repeated objects
import { Instances, Instance } from '@react-three/drei';
// 2. Limit lights
<ambientLight intensity={0.5} />
<directionalLight /> // Just one
// 3. Use LOD (Level of Detail)
import { LOD } from 'three';
// 4. Lazy load models
const Model = lazy(() => import('./Model'));const isMobile = /iPhone|iPad|Android/i.test(navigator.userAgent);
<Canvas
dpr={isMobile ? 1 : 2} // Lower resolution on mobile
performance={{ min: 0.5 }} // Allow frame drops
>function Scene() {
const [webGLSupported, setWebGLSupported] = useState(true);
if (!webGLSupported) {
return <img src="/fallback.png" alt="3D preview" />;
}
return <Canvas onCreated={...} />;
}Severity: HIGH
Message: No loading indicator for 3D content.
Fix action: Add Suspen
Find reusable instructions for your project, inspect their complete files, and keep an exact skill set you can review and reuse. Codex or Claude inspects your project and chooses exact skills from the complete local AAS catalog.
Repo: sickn33/antigravity-awesome-skills
Arquitecto de Soluciones Principal y Consultor Tecnológico de Andru.ia. Diagnostica y traza la hoja de ruta óptima para proyectos de IA en español.
Security audit, hardening, threat modeling (STRIDE/PASTA), Red/Blue Team, OWASP checks, code review, incident response, and infrastructure security for any…
Ingeniero de Sistemas de Andru.ia. Diseña, redacta y despliega nuevas habilidades (skills) dentro del repositorio siguiendo el Estándar de Diamante.
Estratega de Inteligencia de Dominio de Andru.ia. Analiza el nicho específico de un proyecto para inyectar conocimientos, regulaciones y estándares únicos del…
AI-powered presentation generation via the 2slides API — create slides from text, match a reference image style, summarize documents into decks, add AI voice…
Use when designing an A/B or split test: define the hypothesis, control and variants, estimate sample size, verify tracking, and predeclare metrics and…