Browser-native 3D motion graphics, animated title cards, and WebCodecs video export with R3F and GSAP
The 3D Motion Graphics & Video Title Cards framework is the AI prompt system for developers and content creators building browser-native motion graphics tools — the kind of animated title cards, logo reveals, and kinetic typography that used to require After Effects. Built on React Three Fiber with GSAP for frame-accurate timeline control and WebCodecs for programmatic video export, this framework covers the complete motion graphics production pipeline: Text3D kinetic typography with character-level stagger animations, particle burst title reveals, GLTF logo assembly animations, and the WebCodecs API that exports the R3F canvas directly to MP4 without screen recording. Every prompt is designed for the creator economy — tools that let non-technical users generate professional motion graphics from templates.
Full Access Unlocked
All 44 prompts · All 5 modules
"The WebCodecs MP4 export prompt is the architecture our entire platform is built on. The canvas.capt..."
Founder · Browser-based motion graphics SaaS, 18K users
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 · 44 prompts · 5 workflow stages
Scene-as-Timeline
GSAP timeline as the single source of truth for all 3D animation, frame-accurate scrubbing, playback controls (play/pause/seek), and timeline label system for scene sections
8 promptsKinetic Typography
Text3D with FontLoader, character-level geometry splitting, stagger reveal animations, extrusion depth animation, bevel morph, and color-per-character gradient
10 promptsParticle Title Reveals
Text geometry → particle positions extraction, instanced particle burst from text outline, magnetic attraction back to text form, and explosion/implosion timing
9 promptsLogo & Brand Animation
GLTF logo model part separation, assembly animation from scattered positions, disassembly for outro, morph between logo variants, and brand color material injection
9 promptsVideo Export Pipeline
WebCodecs VideoEncoder setup, R3F canvas frame capture via captureStream(), MP4 muxing with mp4-muxer, progress tracking, and download trigger
8 promptsWrite a React Three Fiber component that reveals a 3D title text using a particle burst animation — particles fly in from random positions and magnetically assemble into the text form. Requirements: (1) Text3D: use @react-three/drei Text3D with a loaded font, text prop, size: 0.8, height: 0.1, bevelEnabled: true, bevelSize: 0.02. After the geometry is created, extract all vertex positions from the geometry: geometry.attributes.position.array — these become the particle target positions. (2) Particle system: InstancedMesh with SphereGeometry(0.015, 4, 4), count = number of text vertices (sample every Nth vertex if > 5000). Store two Float32Array refs: currentPositions (start: random positions in a 10-unit sphere around origin) and targetPositions (text vertex positions). (3) GSAP timeline: create a timeline with duration 1.8s. Phase 1 (0–0.3s): particles drift slowly from random positions. Phase 2 (0.3–1.8s): for each particle, GSAP tweens its position in currentPositions toward its targetPosition with stagger: { each: 0.001, from: "random" } and ease: "power3.out". (4) useFrame: each frame, update all InstancedMesh matrices from currentPositions. (5) After assembly complete (t=1.8s): fade in the actual Text3D mesh and fade out the particle InstancedMesh simultaneously. (6) Export as ParticleTitleReveal with props text: string, color: string, onComplete: () => void. Full TypeScript.
Write a TypeScript module that exports a React Three Fiber canvas animation to an MP4 file using the WebCodecs API and mp4-muxer, without screen recording. Requirements: (1) Setup: import VideoEncoder from the WebCodecs API (check window.VideoEncoder exists — throw if not). Import Muxer, ArrayBufferTarget from mp4-muxer. (2) startRecording(canvas: HTMLCanvasElement, fps: number, durationSeconds: number): (a) Create a Muxer with target: new ArrayBufferTarget(), video: { codec: "avc", width: canvas.width, height: canvas.height, frameRate: fps }. (b) Create a VideoEncoder with output callback that calls muxer.addVideoChunk(chunk, meta). Config: codec: "avc1.42001f", width: canvas.width, height: canvas.height, bitrate: 8_000_000, framerate: fps. (c) Use canvas.captureStream(fps) to get a MediaStream, then a MediaStreamTrackProcessor to get a ReadableStream of VideoFrames. (d) For each VideoFrame: call encoder.encode(frame, { keyFrame: frameIndex % (fps * 2) === 0 }), frame.close(), increment frameIndex. Stop after durationSeconds * fps frames. (3) stopRecording(): await encoder.flush(), muxer.finalize(), extract muxer.target.buffer as ArrayBuffer. (4) downloadMp4(buffer: ArrayBuffer, filename: string): create a Blob with type "video/mp4", URL.createObjectURL, trigger download via <a> click. (5) React hook: useVideoExport() returning { startExport, progress (0–1), isExporting, downloadUrl }. Full TypeScript with WebCodecs types.
system
17 prompts
templates
10 prompts
workflow
9 prompts
prompts
8 prompts
"The WebCodecs MP4 export prompt is the architecture our entire platform is built on. The canvas.captureStream() → MediaStreamTrackProcessor → VideoEncoder → mp4-muxer pipeline — no screen recording, no server-side rendering — is what makes our tool genuinely different from every competitor."
Founder
Browser-based motion graphics SaaS, 18K users
"The particle burst title reveal prompt is the most complete implementation of the "particles assemble into text" effect I've seen. The vertex extraction from Text3D geometry, the GSAP stagger with from: "random", the fade-crossover to the actual mesh — it's all there."
Creative Developer
Video production agency
All 44 prompts across 5 modules are unlocked for your account.
Lifetime access