using-web3d
Router for the web3d family — vendored skills for 3D, 2D canvas, motion and scroll on the web (Three.js, React Three Fiber, Babylon.js, PlayCanvas, A-Frame, PixiJS, Motion, anime.js, React Spring, Lot
SKILL.mdskills/web3d/using-web3d/SKILL.md
GitHubUsing Web3D
A router, not a rulebook. Pick the row, load that skill, follow it. Skills live verbatim in skills/vendor/<name>/, each with an UPSTREAM.md.
1. Choose the stack first
Unsure which library, or combining several → web3d-integration-patterns (how Three.js, R3F, GSAP, Motion and React Spring fit together). For the page's overall look, go to using-anti-slop; modern-web-design is a trends-and-patterns reference.
2. Pick by task
| You need… | Load |
|---|---|
| A full 3D scene, vanilla JS | threejs-webgl; animation clips, skeletons, morphs → threejs-animation |
| A 3D scene in React | react-three-fiber; performance and loading rules → r3f-best-practices |
| A game-like or physics-heavy 3D app | babylonjs-engine · playcanvas-engine |
| VR / AR (WebXR) | aframe-webxr |
| Decorative pseudo-3D — tilt, animated backgrounds, Zdog | lightweight-3d-effects (reach for this before a full engine) |
| A 3D scene designed without code | spline-interactive |
| Shrinking a 3D model for the web — GLB size, draw calls | threejs-agents-model-optimizer |
| Fast 2D canvas — sprites, particles, games | pixijs-2d |
| UI animation in React | motion-framer; physics feel → react-spring-physics; ready components (Magic UI, React Bits) → animated-component-libraries |
| Timeline animation without a framework | animejs |
| Designer-made animation files | lottie-animations (After Effects) · rive-interactive (state machines) |
| Scroll-linked animation, pinning, scrub | gsap-scrolltrigger |
| Smooth scrolling | locomotive-scroll |
| Simple fade/slide on scroll | scroll-reveal-libraries (AOS) |
| Page transitions between routes | barba-js |
3. Rules
- Lightest tool that does the job. CSS or
lightweight-3d-effectsbefore a WebGL engine; AOS before GSAP when a fade is all you need. - One animation owner per element. GSAP and Motion both driving the same transform fight;
web3d-integration-patternssays how to split them. - Done means seen. Load the page in a real browser (
playwright-cli): no console errors, the canvas renders non-blank, frame rate holds. Thendesign-ship-gate. - Do not edit
skills/vendor/. Update by re-copying from upstream and updatingUPSTREAM.md.