Build or review scroll-driven 3D/video/frame-sequence websites where a product, object, or visual transforms as the user scrolls. Use for 3D scroll websites, scroll-linked canvas, video-on-scroll, frame extraction with FFmpeg, GSAP ScrollTrigger, Framer Motion useScroll, Three.js accents, Apple-style scrollytelling, or Jack Roberts inspired scroll-stop site builds.
Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Is that skill safe to install?
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
Are you the author of Jack Scroll 3d Sites?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/anbeime-jack-scroll-3d-sites)
---
name: jack-scroll-3d-sites
description: >
Build or review scroll-driven 3D/video/frame-sequence websites where a product,
object, or visual transforms as the user scrolls. Use for 3D scroll websites,
scroll-linked canvas, video-on-scroll, frame extraction with FFmpeg, GSAP
ScrollTrigger, Framer Motion useScroll, Three.js accents, Apple-style
scrollytelling, or Jack Roberts inspired scroll-stop site builds.
---
# Jack Scroll 3D Sites
Use this skill to implement premium scroll-driven websites that scrub a video or image sequence as the user scrolls.
Source attribution: public-safe synthesis inspired by Jack Roberts' public teaching on 3D scroll-based websites. Credit Jack Roberts and link https://www.youtube.com/watch?v=TZUTe7s11-I when referencing the method publicly.
## Choose The Build Mode
- Existing project: match its framework, routing, styling, and deployment conventions.
- Portable demo: use single-page HTML/CSS/JS with a local server.
- Next.js/React: use Framer Motion or GSAP when the app already uses React or needs componentized pages.
- 3D accent: use Three.js only when there is a real 3D requirement; keep the primary 3D/canvas scene full-bleed or clearly integrated.
Use Context7 for current docs when using Next.js, GSAP, Framer Motion, Three.js, Vercel, or browser APIs.
## Asset Intake
Ask for or discover:
- video file or frame sequence
- brand name, logo, colors, fonts, CTA, and copy source
- intended pages and primary conversion
- whether this is a demo, production site, or client pitch
If the user has only prompts, route to `jack-scroll-asset-prompts` first.
## Frame Sequence Pattern
Use FFmpeg when a video must be scrubbed by scroll:
```bash
ffprobe -v quiet -print_format json -show_streams -show_format video.mp4
ffmpeg -i video.mp4 -vf "fps=12,scale=1920:-2" -q:v 2 public/sequence/frame_%04d.jpg
```
Tune frame count to the experience:
- 40 to 80 frames for lightweight demos.
- 80 to 150 frames for premium hero sections.
- Prefer compressed JPG/WebP over huge PNG sequences.
- Preload frames and show loading progress before revealing the section.
## Scroll Implementation Rules
- Map scroll progress to frame index and draw with `requestAnimationFrame`.
- Only redraw when the frame index changes.
- Use `devicePixelRatio` aware canvas sizing for crisp rendering.
- Use cover fit on desktop when the subject remains visible; use contain or slightly zoomed contain on mobile when cropping would hide the asset.
- Avoid `scroll-behavior: smooth` on frame-accurate scrub sections.
- Keep scroll duration adjustable, commonly 250vh to 500vh.
- Use sticky canvas sections for the scrubbed visual and normal document flow around it.
## Motion And UX
- Add text beats sparingly. The asset is the hero; overlays should not block important object details.
- Use `emil-animation-polish` for overlay fades, buttons, nav transitions, and hover/press states.
- Use `fluid-animations` for snap points, scroll stops, gesture-controlled panels, or momentum-sensitive interactions.
- Respect `prefers-reduced-motion`: provide a still image, shorter fade, or non-scrubbed fallback.
- Keep mobile cards compact so text never overlaps the object or viewport controls.
## Production Checks
- Test desktop and mobile viewport screenshots.
- Verify no blank canvas, missing frames, flicker, text overlap, or huge layout shift.
- Confirm assets load from a local server, not `file://`, when browser security requires it.
- Check Lighthouse/performance basics and image sizes.
- Add meaningful alt text or adjacent accessible copy for visual content.
- Do not deploy or publish without explicit user approval.
## Routing
- Pair with `design-taste-frontend` for visual direction.
- Pair with `modern-web-guidance` for platform correctness and accessibility.
- Pair with `playwright-cli` for real-browser proof.
- Pair with `jack-seo-launch-audit` when pages are ready for SEO and launch review.