Scroll-narrative 3D portfolios with R3F, GLSL transitions, and cinematic case study reveals
The 3D Portfolio & Creative Agency Site framework is the AI prompt system for creative developers and agencies who want their own site to be the portfolio piece. Built on React Three Fiber with a deep focus on the micro-interactions, transitions, and cinematic moments that define award-winning creative sites, every prompt is engineered around the specific craft of portfolio storytelling in 3D. From the GLSL distortion shader that transitions between project images to the magnetic cursor that reacts to every interactive element, this framework covers the complete visual language of the modern creative agency web experience.
Full Access Unlocked
All 45 prompts · All 5 modules
"The GLSL distortion transition prompt is the most complete image transition implementation I've seen..."
Creative Developer · Independent, 4 Awwwards SOTD
Need expert implementation?
Hire an OrchestratorConnect with a certified Prompt.Doctor Orchestrator to deploy this framework for you.
No coding required. You will use ChatGPT or Claude as your AI tool. Follow these steps in order — do not skip ahead.
Purchase & download the framework
Click the buy button on this page. After checkout, go to the and hit Download .zip. Unzip it — you'll get a .md file (the full framework) and a .pdf (easy to read reference). Keep both open.
Open your project — new or existing
This dashboard is designed to integrate into any existing project or be built as a standalone app. If you already have a site in Airo (or Cursor, Bolt, etc.), open that project. If you're starting fresh, create a new project. The Orchestrator Prompt handles both cases — it scans what's already there and adds only what's missing.
Paste the Orchestrator Prompt into your builder's chat
Open the on this page. Copy the Orchestrator Prompt and paste it into your AI builder's chat. It will scaffold the full admin system — secure login, email marketing module, booking engine, and CMS — on top of your existing codebase. This takes 2–5 minutes.
Add your API keys as secrets
Critical — Novice UsersIn your builder, go to Settings → Secrets and add the keys your app needs. For this framework: STRIPE_SECRET_KEY (for booking payments — get it from your Stripe dashboard), ANTHROPIC_API_KEY (for AI-assisted content — get it from console.anthropic.com), and DATABASE_URL (your MySQL connection string). No key is needed for the admin login, CMS, or email modules — those run on your existing infrastructure.
Don't have a MySQL server?
You can purchase a shared hosting plan with cPanel and MySQL at host.esgwon.dev. Once your account is set up, follow the step-by-step guide to create your database and connect it to your AI website builder.
How to set up cPanel MySQL & connect to your AI website →Need help with Stripe?
Get your STRIPE_SECRET_KEY and STRIPE_PUBLISHABLE_KEY from your Stripe dashboard. The guide covers test keys, webhook setup, and going live.
Need help with Anthropic?
Get your ANTHROPIC_API_KEY from console.anthropic.com. The guide covers model selection, cost management, and troubleshooting.
Prompting Airo after setup — always name the file
When asking Airo to add tables, columns, or features to the admin dashboard, always include src/server/lib/admin-db.ts in your prompt. Without it, Airo may target the wrong database. Example: "Add a bookings table in the admin database (src/server/lib/admin-db.ts) — do not touch any other database connection in this project."
Run the framework prompts inside your live app
Your app is now running in the builder's preview panel. Open the on this page, copy each prompt one at a time, and paste it into your builder's chat. Replace every [BRACKET] with your real data before sending. Work through the stages in order — each stage output feeds the next.
Test end-to-end, then publish or hand off to your client
Walk through the admin as a real user: log in, create a booking, send a test email campaign, update a CMS image, and run the Safe-to-Publish gate. Once everything passes, click Publish in your builder. Because this is a white-label dashboard, your client accesses it at /admin on their own domain — no Prompt.Doctor branding, no third-party login required.
5 modules · 45 prompts · 5 workflow stages
Scroll Narrative System
Section-based scroll progress, scene state machine, camera path animation, and smooth eased transitions between portfolio sections
9 promptsGLSL Transition Shaders
Image distortion transition (wave displacement), dissolve with noise mask, RGB chromatic split, ripple expand, and curtain wipe — all as ShaderMaterial with progress uniform
10 promptsProject Cards & Hover
3D tilt card with mouse tracking, depth parallax layers, magnetic cursor attraction, hover scale spring, and project thumbnail reveal
9 promptsCinematic Reveals
Full-screen case study expansion from card to hero, GLSL morph transition, scroll-locked reveal sequence, and exit animation back to grid
10 promptsTypography & Cursor
Text3D with FontLoader and bevel settings, animated character reveal with stagger, custom WebGL cursor sphere, trail effect, and hover state morphing
7 promptsWrite a React Three Fiber component that transitions between two project images using a custom GLSL distortion shader. Requirements: (1) PlaneGeometry sized to fill the viewport (use useThree to get viewport.width and viewport.height). (2) ShaderMaterial with uniforms: u_textureA (current image), u_textureB (next image), u_progress (0→1 Float), u_distortion (Float, default 0.8), u_time (Float). (3) WGSL — wait, GLSL fragment shader: sample both textures, compute a displacement offset using a 2D simplex noise function (provide inline) driven by u_time and scaled by u_distortion * sin(PI * u_progress). Apply the displacement to the UV coordinates of textureA, then mix(textureA_sample, textureB_sample, smoothstep(0.0, 1.0, u_progress + displacement.x)). This creates a wave-warp transition where the image distorts at the midpoint. (4) Transition trigger: expose a transitionTo(textureB: THREE.Texture, duration: number) method. Internally use GSAP to tween u_progress from 0 to 1 over duration ms with ease: "power2.inOut". On complete, swap textureA = textureB and reset u_progress to 0. (5) Export as ImageTransition React component with props: initialTexture, onTransitionComplete. Full TypeScript. Provide the complete vertex shader (pass-through UVs) and fragment shader.
Write a custom WebGL cursor system for a creative portfolio site using React Three Fiber. Requirements: (1) Replace the default CSS cursor (cursor: none on body). (2) R3F Canvas: fixed position, full viewport, pointer-events: none, z-index: 9999, frameloop="demand". (3) Cursor mesh: SphereGeometry(0.06, 32, 32) with MeshBasicMaterial({ color: "#00E5FF", transparent: true, opacity: 0.9 }). (4) Mouse tracking: listen to mousemove on window, convert to normalized device coordinates, then to world space using camera.unproject. In useFrame, lerp the sphere position toward the target with factor 0.12 for smooth lag. (5) Trail effect: maintain a ring buffer of the last 8 cursor positions. Render each as a smaller sphere (scale decreasing from 0.8 to 0.1) with opacity decreasing from 0.4 to 0. Update trail positions in useFrame. (6) Magnetic attraction: for each DOM element with data-magnetic attribute, compute the distance from cursor to element center. If within 80px, lerp the cursor toward the element center with strength proportional to (1 - distance/80). Apply the same offset to the DOM element via CSS transform. (7) Hover states: on mouseenter of [data-cursor="expand"] elements, spring-animate sphere scale to 3.0 and opacity to 0.15. On mouseleave, spring back. Use react-spring/three. Full TypeScript.
system
19 prompts
templates
10 prompts
workflow
9 prompts
prompts
7 prompts
"The GLSL distortion transition prompt is the most complete image transition implementation I've seen. The wave-warp midpoint distortion — noise-driven displacement at progress 0.5 — is exactly the effect that makes portfolio transitions feel cinematic rather than just animated."
Creative Developer
Independent, 4 Awwwards SOTD
"The magnetic cursor system with the 3D sphere trail is now our agency's signature interaction. The data-magnetic attribute pattern — applying it to any DOM element without touching the cursor code — is elegant architecture."
Agency Creative Director
Top-50 Awwwards agency
All 45 prompts across 5 modules are unlocked for your account.
Lifetime access