
3d Visualizer
Scaffold Three.js and React Three Fiber scenes for product viewers, 3D charts, and interactive web 3D during frontend build.
Overview
3d-visualizer is an agent skill for the Build phase that helps you create Three.js and React Three Fiber 3D scenes and interactive visualizations.
Install
npx skills add https://github.com/daffy0208/ai-dev-standards --skill 3d-visualizerWhat is this skill?
- React Three Fiber patterns with @react-three/drei helpers
- Covers materials, lighting, animations, and OrbitControls-style interaction
- 3D data viz: networks, geospatial, and scientific plotting angles
- Product viewer and configurator use cases called out explicitly
- npm install path: three, @react-three/fiber, @react-three/drei
Adoption & trust: 554 installs on skills.sh; 28 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need a credible 3D web experience but lack a repeatable pattern for scenes, lights, controls, and React integration.
Who is it for?
Indie builders adding a 360° product viewer, interactive demo, or 3D chart to a React/Next frontend.
Skip if: Console/desktop game pipelines, heavy CAD, or teams that only need static 2D charts.
When should I use this skill?
Creating 3D visualizations, interactive 3D graphics, or immersive web experiences using Three.js and React Three Fiber.
What do I get? / Deliverables
You get working R3F component scaffolding and patterns for viewers, configurators, or 3D data displays you can extend in your app.
- R3F scene components
- lighting and camera setup
- interactive 3D demo code
Recommended Skills
Journey fit
How it compares
Frontend 3D scaffolding skill—not a hosted 3D asset marketplace or Blender automation MCP.
Common Questions / FAQ
Who is 3d-visualizer for?
Solo frontend developers shipping WebGL experiences with Three.js and React who want agent-guided scene structure and interaction patterns.
When should I use 3d-visualizer?
During build frontend work when implementing Canvas-based 3D viewers, configurators, network graphs in 3D, or immersive landing demos.
Is 3d-visualizer safe to install?
It is documentation and code-generation guidance; review the Security Audits panel on this Prism page and audit any fetched 3D assets or scripts the agent adds.
SKILL.md
READMESKILL.md - 3d Visualizer
# 3D Visualizer Skill I help you create 3D visualizations, interactive 3D graphics, and immersive web experiences using Three.js. ## What I Do **3D Graphics:** - 3D models and scenes - Materials and lighting - Animations and interactions - Camera controls **3D Data Visualization:** - 3D charts and graphs - Network visualizations - Geospatial data - Scientific visualization **Interactive 3D:** - Product viewers (360°) - Configurators - Interactive demos - 3D games ## Three.js with React Three Fiber ```bash npm install three @react-three/fiber @react-three/drei ``` ### Basic 3D Scene ```typescript // components/Scene3D.tsx 'use client' import { Canvas } from '@react-three/fiber' import { OrbitControls, Box, Sphere } from '@react-three/drei' export function Scene3D() { return ( <Canvas camera={{ position: [5, 5, 5], fov: 50 }}> {/* Lighting */} <ambientLight intensity={0.5} /> <pointLight position={[10, 10, 10]} /> {/* 3D Objects */} <Box position={[-2, 0, 0]} args={[1, 1, 1]}> <meshStandardMaterial color="hotpink" /> </Box> <Sphere position={[2, 0, 0]} args={[0.7, 32, 32]}> <meshStandardMaterial color="cyan" metalness={0.8} roughness={0.2} /> </Sphere> {/* Camera Controls */} <OrbitControls /> </Canvas> ) } ``` --- ## 3D Model Loader ```typescript 'use client' import { useGLTF } from '@react-three/drei' import { Canvas } from '@react-three/fiber' function Model() { const { scene } = useGLTF('/models/product.glb') return <primitive object={scene} /> } export function ProductViewer() { return ( <Canvas> <ambientLight intensity={0.5} /> <spotLight position={[10, 10, 10]} angle={0.15} /> <Model /> <OrbitControls enableZoom={true} enablePan={false} minPolarAngle={Math.PI / 4} maxPolarAngle={Math.PI / 2} /> </Canvas> ) } ``` --- ## Animated 3D ```typescript 'use client' import { useRef } from 'react' import { useFrame } from '@react-three/fiber' import { Mesh } from 'three' function RotatingCube() { const meshRef = useRef<Mesh>(null) useFrame((state, delta) => { if (meshRef.current) { meshRef.current.rotation.x += delta meshRef.current.rotation.y += delta * 0.5 } }) return ( <mesh ref={meshRef}> <boxGeometry args={[2, 2, 2]} /> <meshStandardMaterial color="orange" /> </mesh> ) } export function AnimatedScene() { return ( <Canvas> <ambientLight /> <pointLight position={[10, 10, 10]} /> <RotatingCube /> </Canvas> ) } ``` --- ## 3D Chart (Bar Chart) ```typescript 'use client' import { Canvas } from '@react-three/fiber' import { OrbitControls, Text } from '@react-three/drei' interface DataPoint { label: string value: number color: string } function Bar3D({ position, height, color, label }: { position: [number, number, number] height: number color: string label: string }) { return ( <group position={position}> <mesh position={[0, height / 2, 0]}> <boxGeometry args={[0.8, height, 0.8]} /> <meshStandardMaterial color={color} /> </mesh> <Text position={[0, -0.5, 0]} fontSize={0.3} color="black" > {label} </Text> </group> ) } export function BarChart3D({ data }: { data: DataPoint[] }) { return ( <Canvas camera={{ position: [5, 5, 8] }}> <ambientLight intensity={0.5} /> <pointLight position={[10, 10, 10]} /> {data.map((item, i) => ( <Bar3D key={i} position={[i * 1.5 - (data.length * 1.5) / 2, 0, 0]} height={item.value} color={item.color} label={item.label} /> ))} <OrbitControls />