
3d Web Experience
Ship immersive Three.js, React Three Fiber, or Spline scenes—configurators, 3D portfolios, or marketing sites—with stack choice and performance guardrails.
Overview
3d-web-experience is an agent skill for the Build phase that architects interactive Three.js, React Three Fiber, Spline, and WebGL experiences with stack selection and performance-aware patterns.
Install
npx skills add https://github.com/sickn33/antigravity-awesome-skills --skill 3d-web-experienceWhat is this skill?
- Compares Spline vs raw Three.js vs React Three Fiber with a stack-selection table for learning curve and control
- Covers product configurators, 3D portfolios, and immersive marketing sites with usability—not gimmick—framing
- Includes WebGL optimization, 3D model integration, and GLSL shader guidance for solo builders
- Balances visual impact with performance and accessibility for users new to 3D apps
- Stack comparison table covers Spline, Three.js, and React Three Fiber on best-for, learning curve, and control
Adoption & trust: 2.4k installs on skills.sh; 40.1k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want a memorable 3D web moment but do not know which stack to pick or how to ship it without tanking load time and usability.
Who is it for?
Solo builders adding configurators, 3D portfolios, or immersive marketing sites who can invest time in WebGL performance tuning.
Skip if: Teams that only need flat 2D UI, native-only 3D (Unity/Unreal), or a one-off asset with no web integration plan.
When should I use this skill?
Starting a 3D web project or implementing Three.js, React Three Fiber, Spline, WebGL scenes, configurators, or 3D performance work.
What do I get? / Deliverables
You get a concrete 3D stack choice, implementation patterns, and optimization steps so the scene ships as part of your frontend, not as a fragile demo.
- Recommended 3D stack and integration approach
- Scene architecture and optimization checklist for the chosen tooling
Recommended Skills
Journey fit
3D web work happens while building the product UI and experiential layers, not during idea research or post-launch ops. Interactive WebGL scenes, shaders, and model integration are frontend delivery concerns alongside layout and interaction design.
How it compares
Use for guided 3D frontend architecture instead of copying random Three.js snippets without a performance or stack framework.
Common Questions / FAQ
Who is 3d-web-experience for?
Indie and solo builders shipping browser-based 3D—product configurators, portfolios, or immersive sites—who want agent-guided stack and perf decisions.
When should I use 3d-web-experience?
During Build → frontend when starting a 3D web project, choosing Spline vs R3F vs Three.js, or optimizing WebGL before launch.
Is 3d-web-experience safe to install?
Review the Security Audits panel on this Prism page for this skill’s source and risk signals before enabling it in your agent workflow.
SKILL.md
READMESKILL.md - 3d Web Experience
# 3D Web Experience 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. ### Expertise - Three.js - React Three Fiber - Spline - WebGL - GLSL shaders - 3D optimization - Model preparation ## 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 ```jsx 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 ## 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 ```jsx 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 ## Scroll-Driven 3D ### R3F + Scroll Controls ```jsx import { ScrollControls, useScroll } from '@react-three/drei'; import { useFrame } from '@react-three/fiber'; function RotatingModel() { con