6 Curated Scroll Prompts

Scroll Prompts

Production recipes and workflows categorized under #scroll.

Meng To
@MengTo

Scroll experience

✦ClaudeScroll experience

KOISEI sakura river scroll experience (master prompt)

A 19k-character master prompt for an award-level cinematic scroll site. Live at koisei.aura.build.

KOISEI sakura river scroll experience (master prompt) by Meng To
# MASTER PROMPT — "KOISEI" Sakura River Scroll Experience Build a single-page, award-level (Awwwards/FWA style) scroll experience called **Koisei** — a cinematic journey down a Japanese river from a sakura morning to a lantern-lit night. Ukiyo-e / woodblock-illustration art direction, WebGL-enhanced imagery, scroll-scrubbed film sequences, and a day-to-night color metamorphosis. Everything below is a hard requirement — follow it exactly. --- ## 1. TECH STACK - **Vanilla HTML/CSS/JS** (single `index.html` allowed) or Vite project. - **three.js** (r160+) for: hero petal particle system, WebGL image planes with ripple/displacement shaders, and the transition dissolve shader. - **GSAP 3 + ScrollTrigger** for all scroll choreography (pinning, scrubbing, timelines). - **Lenis** smooth scroll (`lerp: 0.08`, `wheelMultiplier: 1.0`), synced to ScrollTrigger via `lenis.on('scroll', ScrollTrigger.update)` and `gsap.ticker`. - Scroll-scrubbed `<video>` elements driven by `currentTime` (details §8). - No UI frameworks. No Bootstrap aesthetics. Custom everything. --- ## 2. ASSETS (use these exact URLs) | Key | Asset | |---|---| | `HERO_RIVER` | https://hoirqrkdgbmvpwutwuwj.supabase.co/storage/v1/object/public/assets/assets/sakura-river-2026-07-05/sakura-river-hero-plate-875acd7a5205_original.png | | `KOI_RIVER` | https://hoirqrkdgbmvpwutwuwj.supabase.co/storage/v1/object/public/assets/assets/sakura-river-2026-07-05/sakura-koi-river-plate-742cc19de6b5_original.png | | `TEMPLE_CANAL` | https://hoirqrkdgbmvpwutwuwj.supabase.co/storage/v1/object/public/assets/assets/sakura-river-2026-07-05/kyoto-temple-canal-plate-60699d609a45_original.png | | `KIMONO_LANE` | https://hoirqrkdgbmvpwutwuwj.supabase.co/storage/v1/object/public/assets/assets/sakura-river-2026-07-05/rural-kimono-lane-plate-edb1d9bf1d3d_original.png | | `LANTERN_WATER` | https://hoirqrkdgbmvpwutwuwj.supabase.co/storage/v1/object/public/assets/assets/sakura-river-2026-07-05/asakusa-lantern-water-plate-73b3e135a98d_original.png | | `NIGHT_LANTERN` | https://hoirqrkdgbmvpwutwuwj.supabase.co/storage/v1/object/public/assets/assets/sakura-river-2026-07-05/night-river-lantern-plate-510dc7d4315d_original.png | | `HERO_VIDEO` (optional ambient) | https://hoirqrkdgbmvpwutwuwj.supabase.co/storage/v1/object/public/assets/assets/sakura-river-2026-07-05/sakura-river-bloom-video-5da61fc96d01_video.mp4 | | `SCROLL_FILM_1` (12s) | https://hoirqrkdgbmvpwutwuwj.supabase.co/storage/v1/object/public/assets/assets/sakura-river-2026-07-05/koi-bridge-temple-scroll-film-12s-ce0df14b7596_video.mp4 | | `SCROLL_FILM_2` (12s) | https://hoirqrkdgbmvpwutwuwj.supabase.co/storage/v1/object/public/assets/assets/sakura-river-2026-07-05/kimono-asakusa-night-scroll-film-12s-bd5434347f42_video.mp4 | Preload `HERO_RIVER`, both films' metadata, and fonts behind a loader (§4). --- ## 3. DESIGN SYSTEM ### 3.1 Colors (CSS custom properties — exact values) ```css :root { --washi: #F1E9DE; /* primary paper cream (light sections, footer) */ --washi-warm: #ECE4D9; /* hero sky wash */ --washi-deep: #E4DED5; /* gradient partner for washi-warm */ --sand: #E9D4BD; /* card fill / warm accent surface */ --river-stone: #C1BBB2; /* muted water grey-taupe, borders at 40% */ --ink: #251C16; /* primary dark — text on light, night bg */ --night: #241B15; /* night section background */ --night-deep: #1A130E; /* night vignette edge */ --cream-text: #EDE9DF; /* text over imagery / dark bg */ --sakura: #E8B4C0; /* petal pink */ --sakura-deep: #D98E9F; /* petal shadow pink */ --vermilion: #C4472F; /* torii red — accents, hover, small marks only */ --lantern: #E8A54B; /* lantern glow amber — night accents */ } ``` Rules: light sections use `--washi` bg + `--ink` text. Night uses `--night` bg + `--cream-text`. `--vermilion` appears only in tiny doses: the torii logo mark, link hover underlines, section-number tick marks, one CTA. Borders are always 1px `--ink` at 12–15% opacity on light, `--cream-text` at 15% on dark. ### 3.2 Typography - **Display serif:** `"Cormorant Garamond"` (Google Fonts), weights 400/500 + *italic*. This is the voice of the site. - **UI sans:** `"Space Grotesk"` 400/500 for nav, kickers, captions, buttons. - **Japanese accents:** `"Noto Serif JP"` 400 for vertical kanji strips. Scale (clamp-based, desktop reference): ```css --display-xl: clamp(4rem, 11vw, 11.5rem); /* hero + footer wordmark */ --display-lg: clamp(3rem, 7vw, 7rem); /* section headings */ --display-md: clamp(2rem, 4vw, 3.5rem); /* overlay lines on films */ --body: clamp(1rem, 1.15vw, 1.185rem); --caption: 0.8125rem; --kicker: 0.6875rem; /* letter-spacing: 0.32em; uppercase */ ``` Display type: `line-height: 0.95–1.05`, `letter-spacing: -0.015em`, mixed roman/italic within one headline — italicize the emotional word(s) (e.g., "Where Petals ***Drift*** Downstream"). Body: `line-height 1.7`, max-width `34em`, color `--ink` at 78% opacity on light. Kickers always render as: small vermilion or ink 6px square/tick + 0.32em-tracked uppercase Space Grotesk, e.g. `— THE JOURNEY`. ### 3.3 Texture & grain - A full-viewport fixed film-grain overlay: WebGL fragment shader or animated SVG `feTurbulence`, opacity 0.05, `mix-blend-mode: overlay`, regenerated per frame (subtle animated noise, not static). - Every image sits in a frame with a 1px inset border (`--ink` 15%) offset 10px outside the image edge — like a woodblock print mat. - Soft paper vignette on light sections: radial gradient darkening corners by 3%. --- ## 4. PRELOADER Washi bg. Center: torii mark (simple 2-stroke SVG in `--vermilion`) above the word **KOISEI** in display serif, tracking-in from `letter-spacing: 0.5em` → `0.02em` (1.2s, `power3.out`). Below, a 1px progress line growing 0→100% width tied to real asset loading, with a percentage counter in Space Grotesk. On complete: line flashes to vermilion, whole loader wipes upward with a `clip-path: inset(0 0 100% 0)` over 0.9s `power4.inOut`, revealing the hero already mid-settle. Total minimum display 1.6s. --- ## 5. NAVIGATION (fixed, persistent) - Height 88px, full-width, no background initially; padding-inline 48px. - **Left:** torii SVG mark (22px, vermilion) + wordmark `KOISEI` (Space Grotesk 500, 0.2em tracking, 14px). - **Right:** links `Journey · Stories · Gallery · Visit` (13px, 0.12em tracking) + a Japanese character `旅` in Noto Serif JP + a pill-outline button `Begin` (1px border, 12px, padding 10px 22px; hover: fills `--ink`, text `--washi`). - Link hover: 1px vermilion underline draws left→right (transform: scaleX, 0.35s `power2.out`). - On scroll down > 120px: nav background fades in as `--washi` at 82% + `backdrop-filter: blur(12px)`, height compresses to 68px. When over the night section, swap to `--night` at 82% and cream text (toggle a `.nav--night` class via ScrollTrigger `onToggle`). - Left screen edge, vertically centered, fixed: a vertical progress rail — 1px line, 160px tall, with a fill tracking total scroll progress and tiny dots at each section; below it the current section index `01 / 07` in 10px Space Grotesk, rotated 90°. --- ## 6. SECTION 1 — HERO ("Where Petals Drift Downstream") **Layout.** 100svh, full-bleed `HERO_RIVER` rendered as a **three.js textured plane** (not `<img>`) inside a fixed WebGL canvas, covering the viewport with `cover` UV math. Optionally crossfade to `HERO_VIDEO` (muted, loop, playsinline) after load for ambient motion — video as `VideoTexture` at 0 opacity fading to 1 over 2s. **Type.** Centered, slightly below vertical center: - Kicker: `— A JOURNEY DOWN THE SPRING RIVER` (cream, 0.32em tracking). - H1 in `--display-xl`, `--cream-text`, two lines: `Where Petals` / `*Drift* Downstream` (word "Drift" italic). Text has `text-shadow: 0 2px 40px rgba(37,28,22,0.35)`. - Under it: a thin 1px cream rule 64px wide, then `Koisei — 恋静` caption. - Bottom center: `SCROLL` label + 40px vertical line with a dot that loops downward (1.8s, `power1.inOut`, infinite). - Right screen edge: vertical Japanese strip `桜の川を下る` (Noto Serif JP, writing-mode: vertical-rl, cream 60%). **Entrance (after preloader).** Each headline line wrapped in an overflow-hidden mask; lines rise from `y: 110%` with `rotate: 2deg → 0`, stagger 0.12s, 1.1s `power4.out`. Kicker and rule fade/track-in 0.3s later. WebGL plane starts at `scale 1.12` easing to `1.0` over 2.4s. **WebGL petal system (signature element).** - `THREE.InstancedMesh`, 380 instances desktop / 120 mobile, each a small plane (8–18px) with a hand-drawn 5-petal sakura texture (draw it on an offscreen canvas: rounded-heart petal shape, `--sakura` fill, `--sakura-deep` inner shadow). - Per-instance attributes: size, phase, rotation speed, depth (z: -2 to 2 for parallax). - Motion in vertex shader or per-frame update: downward drift `vy = 0.15–0.4`, horizontal sway `x += sin(time*0.8 + phase) * 0.3`, plus a **curl-noise flow field** (simplex-based) bending trajectories like wind gusts; tumbling rotation on 2 axes. - Mouse interaction: pointer position pushes a radial impulse (radius 180px, force falls off quadratically) — petals scatter away from the cursor and recover. - Petals render OVER the hero image but UNDER the text (canvas z-index between). - Petal opacity ties to scroll: fade to 0 by the time section 3 begins, re-emerge tinted `--lantern` amber (fireflies/embers, slower, upward drift) in the night section. **Ripple shader on hero plane.** Fragment shader: subtle vertical sine displacement on the lower 35% of the image (the water) — `uv.x += sin(uv.y*40.0 + uTime*1.2) * 0.0015 * waterMask`, plus mouse-hover ripple: a decaying radial wave from pointer position (`uMouse`, `uWaveTime`). **Scroll exit (pinned, scrub).** ScrollTrigger pins the hero for `+=120%`. As you scroll: plane scales 1.0 → 1.18 and darkens (shader `uDarken` 0 → 0.25), headline moves up at 1.4× scroll speed and fades, and Section 2 slides over it from below like a paper sheet (Section 2 has higher z-index, `border-radius: 32px 32px 0 0` on its top edge during the overlap, flattening to 0 once fully covering). --- ## 7. SECTION 2 — MANIFESTO ("A River Remembers") Washi bg. Generous padding (16vh top/bottom). - Kicker left: `— 01 · THE PHILOSOPHY`. - A `--display-lg` serif statement spanning ~11 columns of a 12-col grid, `--ink`, mixed italics: `Every spring, the river carries a *million petals* from the mountains to the sea — and every petal remembers the tree it fell from.` - **Inline image tokens:** inside this headline, embed two small rounded-rect images (140×90px, border-radius 60px, the `KOI_RIVER` and `TEMPLE_CANAL` crops) sitting on the text baseline between words — they scale in from 0 width as the line reveals (a la modern editorial sites). - Reveal: split into lines (SplitType or manual), masked line-rise stagger 0.09s triggered at 70% viewport, scrub-free (`toggleActions: "play none none reverse"`). - Right-aligned below, max-width 34em body paragraph + a text link `Read the story of Koisei →` with draw-on underline. - Two large numbers row (`1,200 km` / `4 seasons`) in display serif with small caps labels, counter-animating up when in view. --- ## 8. SECTION 3 — SCROLL FILM I (pinned, video scrubbed by scroll) Full-bleed cinematic chapter using `SCROLL_FILM_1` (12s: koi → bridge → temple). **Mechanics (exact):** - `<video preload="auto" muted playsinline>` covering 100svh, `object-fit: cover`. - Pin the section for `+=400%` scroll. In `onUpdate`: `video.currentTime = self.progress * video.duration`, smoothed through a lerp (`current += (target - current) * 0.1` in a rAF loop) so scrubbing feels buttery, never steppy. Ensure the file is keyframe-dense; if seeking stutters, fall back to a canvas-drawn frame pipeline. - **Three text chapters** fade in/out sequentially over the film at progress 0.05–0.3, 0.38–0.63, 0.7–0.95. Each: centered kicker (`FIRST BEND`, `UNDER THE BRIDGE`, `THE TEMPLE GATE`) + one `--display-md` cream serif line (e.g., `*Koi* swim against the falling sky`). Text enters with masked rise + slight letter-spacing decay, exits fading up 40px. - Right edge: a vertical chapter indicator `Ⅰ · Ⅱ · Ⅲ` with the active numeral in vermilion. - Bottom left: a thin film-style progress bar (1px track, cream fill) showing scrub progress with `00:00 / 00:12` timecode in Space Grotesk tabular numerals. - Edge treatment: 6% `--night-deep` vignette + the global grain makes it feel filmic. --- ## 9. SECTION 4 — HORIZONTAL GALLERY ("Stations of the River") Pinned horizontal scroll on `--washi`. - Header row (static during pin): kicker `— 02 · STATIONS`, heading `Three *stations*, one current` (`--display-lg`), and right-aligned instruction `( scroll )`. - A track of **3 oversized cards** translating X from `0` to `-(trackWidth - viewport)` with `scrub: 1`, pinned `+=250%`. - Card spec: width `min(66vw, 900px)`, height 68vh, gap 6vw. Inside: the image fills the card with `overflow: hidden`; image itself is scaled 1.15 and translates X opposite to track motion (inner parallax, ±7%). 1px offset mat border. Corner radius 4px. - Card 01 — `TEMPLE_CANAL` — `Higashiyama Canal` — caption: `Stone bridges, incense, morning bells.` - Card 02 — `KIMONO_LANE` — `The Kimono Lane` — caption: `Where the road remembers slower centuries.` - Card 03 — `LANTERN_WATER` — `Asakusa Waterside` — caption: `Lanterns lean over the current at dusk.` - Each card's chrome: giant outlined number `01` (display serif, 9rem, `-webkit-text-stroke: 1px var(--ink)`, transparent fill) overlapping the image's top-left corner; title beneath the image in `--display-md`; caption + `Visit station →` link. - Numbers fill with solid ink when their card crosses viewport center. - Bottom: 1px progress line for the horizontal track + `01 — 03` counter that swaps with a small roll animation. - Cursor becomes a custom circular `DRAG`/`→` badge over this section (40px circle, mix-blend-difference). --- ## 10. SECTION 5 — DAY TO NIGHT (the metamorphosis) The emotional pivot. A pinned 100svh section, `+=200%`. - Background color animates `--washi` → `--night` via GSAP scrubbing a CSS variable (`backgroundColor` interpolation). The fixed nav flips to `.nav--night`. The global petal system swaps pink→`--lantern` embers drifting **upward**. - Centered: `LANTERN_WATER` image inside a tall portrait frame (42vw × 78vh) that **scales up to full-bleed** (transform scale + width/height interpolation via GSAP `flip` or clip-path expansion: `clip-path: inset(11vh 29vw)` → `inset(0)`), while a WebGL **dissolve shader** crossfades `LANTERN_WATER` → `NIGHT_LANTERN` using a perlin-noise threshold mask (`smoothstep(uProgress-0.08, uProgress+0.08, noise(uv*4.0))`) so day literally dissolves into night like ink in water. - Overlay copy at progress 0.1: kicker `— 03 · NIGHTFALL`, line `The river doesn't sleep — it *dreams*` in `--display-lg`, ink color transitioning to cream in sync with the bg. - Lantern glow: 6–8 positioned radial-gradient sprites (additive blending in the WebGL scene) pulsing gently (`opacity 0.6→0.9`, 3s sine loops, staggered) at the lantern positions of `NIGHT_LANTERN`. --- ## 11. SECTION 6 — SCROLL FILM II (night) Same mechanics as §8 with `SCROLL_FILM_2` (kimono → Asakusa night), pinned `+=350%`, on `--night`. - Two chapters: `THE LAST LANE` (`She walks where the lanterns *lean*`) and `ASAKUSA AT NIGHT` (`Every light is a wish going downstream`). - Ends with a full-stop moment: film settles on its final frame, darkens 30%, and a centered quote fades in — `"恋静 — quiet love, moving water."` with attribution `— Koisei` — held for the last 15% of the pin. --- ## 12. SECTION 7 — FOOTER On `--washi` (snap back to light with a quick 0.8s bg transition — dawn). - Top row: kicker `— BEGIN YOUR JOURNEY`, then a giant CTA line `Come see the river *bloom*` (`--display-lg`) with a circular vermilion button (120px, `Begin →`, magnetic hover: translates toward cursor within 24px, springs back `elastic.out(1, 0.4)`). - Middle: 3 link columns (Journey / Stories / Visit · Instagram / Vimeo / http://Are.na · Contact / Press) in Space Grotesk 13px, hover underline draw; plus a vertical `ありがとう` strip. - Bottom: the wordmark **KOISEI** at `--display-xl` stretched nearly full-width (`font-size` fitted via JS to viewport width), ink color, sitting on the baseline of the page — it rises from below with a masked reveal as the footer enters, with petals settling on top of the letters (petal system y-velocity → 0 near footer, landing on an invisible floor at the wordmark's cap line). - Very bottom: 1px rule, `© 2026 Koisei — down the spring river` left, `Kyoto → Tokyo` right, 10px. --- ## 13. GLOBAL MOTION LANGUAGE - Easing vocabulary: reveals `power4.out`, pinned scrubs linear (`scrub: 1`–`1.5`), color shifts `none` (scrub), micro-interactions `power2.out`, magnetic/elastic `elastic.out(1,0.4)`. - Every heading reveal = masked line rise (110% → 0, 1–2° rotation settle). Every image reveal = `clip-path: inset(100% 0 0 0)` → `inset(0)` at 1.2s `power4.inOut` with inner image counter-scaling 1.25 → 1. - Parallax: decorative elements move at 0.85×–1.2× via `data-speed` attributes processed by a single ScrollTrigger. - Custom cursor: 8px ink dot + 32px trailing ring (lerp 0.15); ring expands to 56px over links, morphs to `→` over cards, `▶` over films. - `prefers-reduced-motion`: kill pins/scrubs, videos become posters, petals static, reveals become simple fades. ## 14. PERFORMANCE & RESPONSIVE - One shared `WebGLRenderer` (alpha, antialiasing off, `devicePixelRatio` capped at 1.75); planes/particles added-removed per section visibility. Pause rAF work for offscreen scenes via IntersectionObserver. - Videos: `preload="metadata"` until their section is within 150% viewport, then `preload="auto"`. - Mobile (<768px): petals 120, horizontal gallery becomes native swipe track (no pin), film pins shorten to `+=250%`, display-xl clamps down, inline headline images hidden, custom cursor disabled. - Lazy-decode all plates (`decoding="async"`), and serve the WebGL textures through `THREE.TextureLoader` with `SRGBColorSpace`. ## 15. ACCEPTANCE CHECKLIST 1. Loader → hero entrance feels like one continuous shot. 2. Petals react to the mouse and change character (pink/down → amber/up) across day/night. 3. Both films scrub perfectly smoothly with lerped `currentTime`. 4. Day→night dissolve uses a noise-threshold shader, not a plain crossfade. 5. Horizontal gallery has inner-parallax images and outlined numbers that fill on center. 6. Nav adapts light/dark automatically; progress rail tracks 7 sections. 7. Footer wordmark nearly spans the viewport and petals settle on it. 8. Grain, mat borders, and vignettes present on every section. 60fps on an M1 laptop.
·78.6k uses·View original
Viktor Oddy
@viktoroddy

Hero section

✦ClaudeHero section

Scroll-scrubbed video hero (Framer Motion)

A fixed background video scrubbed by scroll position with lerp smoothing in Framer Motion.

Scroll-scrubbed video hero (Framer Motion) by Viktor Oddy
Build a full-screen hero section with a fixed background video (position: fixed, object-cover, muted, playsInline, preload="auto"). Tie video playback to scroll using Framer Motion's useScroll hook - map scroll progress (0-1) to video.currentTime via targetTimeRef, then smoothly interpolate with requestAnimationFrame loop using lerp (currentTimeRef += diff * lerpFactor). Add a dark overlay (bg-background/50) on the video. Create multiple text sections that fade in/out based on scroll position using useTransform for opacity, Y translation, and blur. Make the hero container h-[300vh] with a sticky top-0 h-screen inner wrapper so content scrolls over the fixed video. Include a scroll indicator at the bottom that fades out on scroll (useTransform(scrollYProgress, [0, 0.05], [1, 0])).
·58.3k uses·View original
Leon Lin
@LexnLin

Awwwards site

✦ClaudeAwwwards site

Lumenform Awwwards-level studio site

One-paragraph prompt for a cinematic, premium creative-studio site with generated assets.

Lumenform Awwwards-level studio site by Leon Lin
Build an Awwwards-level responsive website for “Lumenform”, a fictional creative AI studio. Use generated assets, multiple if needed. Make it cinematic, premium, original, with parallax, scroll-based motion, strong typography, layered depth, polished mobile, and clean interactions.
·34.7k uses·View original
Bee
@thtbee_

3D landing

▲Gemini 3.8 Flash3D landing

Particle-morph 3D storytelling landing page

A fixed 3D canvas of glowing particles morphs through 4 story acts as the user scrolls.

Particle-morph 3D storytelling landing page by Bee
I have an idea for a high-end, award-winning interactive landing page. As the user scrolls down the page, I want a single fixed 3D canvas where thousands of glowing micro-particles morph to visually tell a story across 4 sections: 1. The Storyboard (What happens as you scroll): Act 1 (Intelligence): We open with a high-definition 3D human brain made of particles sitting on the right side of the screen, subtly breathing. As you scroll slightly, it rotates to show its side profile while text appears on the left. Act 2 (Chaos): As you scroll deeper, the brain suddenly bursts outward into an expansive, cosmic cloud of drifting fragments and floating wireframe geometric shapes (like pyramids/tetrahedrons) to represent overwhelming chaos. Act 3 (The Idea): Keep scrolling, and the chaotic cloud gathers and locks into a tilted vintage Edison lightbulb with an illuminated glowing filament loop inside. Act 4 (Global Reach): Finally, the particles reorganize into a rotating 3D globe with continental landmasses and coordinate rings. 2. The Aesthetic & Color (The Vibe): Don't make it look like a generic AI site with bright purple/cyan neon. I want a peaceful, luxury architectural feel: warm deep espresso-stone background, with the particles shaded in natural botanical and mineral tones (soft sage green, warm sand/linen, muted amber, and pale champagne highlights). Clean editorial typography with generous spacing and frosted glass cards. 3. Physical Feel & Interactions: Scroll: Ultra-smooth kinetic momentum scrolling (like butter). Mouse reaction: When you hover your cursor over the brain or shapes, don't swing or tilt the whole 3D object like a toy. Make it feel alive—like getting goosebumps, where only the local particles directly under the mouse gently lift upward off the surface. Readability rule: Moving particles must NEVER make text hard to read. Clear a pocket or halo around headlines so copy is always crisp. Quality mandate: Zero blobby or potato-like shapes. The brain must have real cerebral folds, the bulb must have the screw base and filament, and the globe must have recognizable continents. Build this in Three.js and GSAP so it runs at a silky smooth 60+ FPS in the browser." ~ And here's the post build structured prompt.. you may give it screenshots of my post or the video itself as an reference to compare to if you want the exact results # MISSION: High-End WebGL 3D Particle Scrollytelling Experience Build an Awwwards-grade, production-ready 3D particle scrollytelling web application from scratch using Vite, Vanilla Three.js, Custom GLSL Shaders, GSAP ScrollTrigger, and Lenis kinetic smooth scrolling. --- ## 1. CORE ARCHITECTURE & TECH STACK - **Bundler:** Vite (minimal config, ES modules, <250ms build time). - **3D Engine:** Three.js (r160+) with a single continuous full-screen `<canvas id="webgl-canvas">` fixed in the background (`z-index: 0`). - **Scrollytelling:** GSAP (v3) + ScrollTrigger plugin tied to a continuous timeline (`uProgress: 0.0 → 4.0`). - **Kinetic Smooth Scroll:** Lenis.js configured for weighted, butter-smooth momentum scrolling. - **Shader Pipeline:** Custom GLSL Vertex and Fragment shaders operating on a single `THREE.BufferGeometry` holding 36,000 GPU particles. - **Target Performance:** 60–144 FPS hardware-accelerated rendering; zero WebGL compile warnings; zero memory leaks on resize. --- ## 2. 3D STRUCTURAL GEOMETRIES (STRICT: ZERO BLOBBY SHAPES) Create 4 mathematically precise point clouds with an identical point count (36,000 vertices) passed as GPU BufferAttributes (`position`, `aPosChaos`, `aPosBulb`, `aPosGlobe`, `aNormBrain`, `aNormBulb`, `aNormGlobe`, `aSeed`): 1. **Stage 1 — Anatomical Human Brain (`position`):** - Must NOT be an ellipse or noisy sphere. Construct dual symmetrical cerebral hemispheres separated by a distinct longitudinal fissure. - Modulate surface with harmonic gyri crests and deep sulci folds. - Include a tapered brainstem and realistic cerebellar lobes tucked beneath the occipital pole. 2. **Stage 2 — Workplace Entropy / Chaos Field (`aPosChaos`):** - Disperse particles into an expansive 3D volumetric field using 3D Fractional Brownian Motion (fBm) and turbulent curl noise offsets. - Surround with 15–20 ambient wireframe polyhedra (tetrahedrons and octahedrons) drifting through z-space with depth-of-field scale variations. 3. **Stage 3 — Edison Lightbulb (`aPosBulb`):** - Smooth upper glass teardrop envelope transitioning into a tapered waist. - Modeled helical ridges representing the metal threaded screw cap and contact terminal at the base. - An internal glowing dual-arch tungsten filament loop. - Mesh must be positioned on the left and tilted diagonally at roughly -28° ($z$-rotation). 4. **Stage 4 — Planetary Globe (`aPosGlobe`):** - Fibonacci spiral spherical distribution. - Dense point clustering forming recognizable continental landmasses (Americas, Eurasia, Africa) with thinner coordinate rings for latitude/longitude lines and polar caps. --- ## 3. CUSTOM GLSL SHADERS & GPU MATHEMATICS ### Vertex Shader: - **Morph Interpolation:** Calculate continuous transition across 4 stages using smoothstep blends: `pos = mix(posA, posB, smoothstep(0.0, 1.0, fract(uProgress)))` - **Curl Noise Turbulence:** Inject 3D simplex/curl noise into vertex positions proportional to `sin(fract(uProgress) * 3.141592)` so particles swirl organically in 3D arcs during transitions instead of moving mechanically in straight lines. - **View-Space Particle Repulsion:** Moving particles must NEVER obscure headlines. Project particle positions into view space; if a particle falls within the screen-space bounding box of active typography, apply a radial repulsion force in view space (`mvPosition.xy += repelDir * strength; mvPosition.z -= depthOffset;`) so particles part cleanly around the text in an organic halo. - **Localized "Goosebumps" Surface Lift (Hover Physics):** - Do NOT tilt, rotate, or distort the macro 3D object on mouse move. - Track 3D cursor raycast position on the model. For vertices within a tight radius ($R < 0.65$), displace them outward strictly along their surface normal: `position += normal * (hoverIntensity * smoothstep(radius, 0.0, dist)) * 0.22` - Particles under the cursor gently elevate like ruffled feathers or goosebumps and brighten subtly, settling smoothly when the cursor moves away. ### Fragment Shader: - **Micro-Primitives:** Render sharp geometric micro-triangles and micro-dots using 2D Signed Distance Fields (SDF). Distribute primitives as 60% hollow wireframe triangles with crisp borders, 25% semi-transparent micro-triangles, and 15% specular star glints. - **Surface Normal Fresnel & Lighting:** Compute analytical surface normals across stages and apply view-space Fresnel rim lighting: `fresnel = pow(1.0 - clamp(dot(normal, viewDir), 0.0, 1.0), 2.0);` - **Non-Blowing Additive Math:** Eliminate overblown white silhouettes in `THREE.AdditiveBlending`. Instead of adding constant white scalars, scale the particle’s own base color proportionally (`col += col * (0.35 * rim)`), preserving rich internal sulci and filament details without clipping to solid white `#FFFFFF`. --- ## 4. DUAL AESTHETIC EDITIONS (CHOOSE ONE OR IMPLEMENT SWITCHER) ### Edition A: Natural Earth & Espresso (Warm Luxury Architectural) - **Background:** Warm deep espresso-stone `#131211` (strictly NO harsh `#000000` pitch black). - **Particle Tonal Spectrum:** Botanical and mineral chromas: - Base body: Warm sand (`#a88f6c`) and deep moss/sage (`#3d633a` / `#6b9666`). - Highlights: Radiant warm amber (`#db8f38`) and soft champagne (`#ebdcb8`). - Zero generic neon purple or electric cyan. - **UI & Controls:** Frosted dark navbar, warm linen/sand pill CTA button (`#ede9e1` with dark espresso text), and seamless radial gradient scrims behind text with zero boxy edges. ### Edition B: Inverted Architectural Monochrome (Editorial Light Mode) - **Background:** Crisp pure alabaster white `#ffffff` or `#fafaf9`. - **Particle Material & Blending:** Use `THREE.NormalBlending` (with `transparent: true`, `depthWrite: false`). Output deep inky black, dark charcoal (`#14161a`), graphite, and gunmetal slate particles that stamp onto the white canvas like architectural ink stippling. - **UI & Cards:** Translucent frosted glass cards (`background: rgba(255, 255, 255, 0.32); backdrop-filter: blur(14px); border: 1px solid rgba(0, 0, 0, 0.08);`) so dark particles and wireframes remain visibly gliding behind the glass. Crisp pitch-black pill CTA (`#000000` with `#ffffff` text). --- ## 5. SCROLLYTELLING LAYOUT & TYPOGRAPHY HIERARCHY - **Scroll Sequence (5 Storytelling Moments):** - Section 0 (`p = 0.0`): Hero Brain on right, headline on left (*"Unlock collective wisdom"*). - Section 1 (`p = 1.0`): Brain rotates to reveal lateral cortex on left, headline on right (*"Make decisions with confidence"*). - Section 2 (`p = 2.0`): Workplace Entropy — centered headline (*"The impossible battle to make sense of this chaos"*) framed by dispersing particles and tumbling polyhedra. - Section 3 (`p = 3.0`): Lightbulb on left tilted at -28°, glowing tungsten filament, feature cards on right (*"Spark lightbulb moments"*). - Section 4 (`p = 4.0`): Planetary Globe rotating on right, global cluster terminal card on left (*"Build a better world of work"*). - **Tracker Rail Collision Safeguard:** The fixed right-side vertical scrollytracker rail must have a dedicated clearance gutter. All right-aligned text blocks must specify `margin-right: clamp(7rem, 11vw, 13rem);` so tracker labels never collide with body copy. - **Responsive Mobile Breakpoints:** Provide `@media (max-width: 640px)` rules to hide secondary telemetry, adapt camera distance ($z = 5.6$), and stack cards cleanly without horizontal overflow. --- ## 6. VERIFICATION & QUALITY GATES 1. `npm run build` must compile cleanly with 0 errors in under 300ms. 2. Console must report 0 WebGL errors and 0 deprecation warnings (use `http://performance.now()` instead of deprecated `THREE.Clock`). 3. Verify at 1920x1080 viewport: confirm crisp text legibility, zero tracker collisions, and fluid 60+ FPS rendering throughout the entire scroll journey.
·13.3k uses·View original
JUMPERZ
@jumperz

Launch website

▲Kimi K3Launch website

Kimi K3 launch website (GSAP + Lenis)

A production-quality launch site for Kimi K3 with cinematic scroll choreography, referencing Lando Norris's site.

Original X post
Build a complete, production-quality launch website for Kimi K3 using Next.js, React, TypeScript, GSAP ScrollTrigger, and restrained Lenis smooth scrolling. REFERENCE: andonorris official website Study its cinematic scroll control and level of craft, but do not copy its layout, assets, branding, colors, copy, or exact animations. CREATIVE DIRECTION Create one continuous, scroll-controlled typographic film—not a conventional landing page with separate sections fading in. Central concept: “ENTER THE K.” The letter K is a portal. The user approaches it, enters it, travels through it, and exits it. Reuse the K as solid type, outline, mask, negative space, cropped geometry, grid, and navigation marker. Every scene must transform from the geometry already on screen: - Letters become masks and architecture - Typography expands into backgrounds - Lines become grids - Numbers transform into new scenes - Existing elements move, scale, crop, or align into the next composition - Never reset the screen with a basic crossfade The motion should feel heavy, controlled, cinematic, and directly connected to scrolling. VISUAL SYSTEM Colors: - Ink: #090A0A - Warm paper: #F1EFE8 - Gray: #B8B8B0 - Dark gray: #222422 - Signal: #D6FF3F Keep at least 80% monochrome. Use the signal color rarely for active details and one major climax. Use hard, meaningful theme changes: Dark → warm paper → dark → signal color → quiet dark. Typography is the main visual material. Use a heavy wide grotesk such as Mona Sans Variable or Archivo Black, with Instrument Sans or Mona Sans for interface text. Use extreme scale and intentional cropping: - Hero type: 25–40vw - Tight leading and tracking - Asymmetrical editorial layouts - Small uppercase technical labels - Tabular numerals - No generic centered headline/subtitle/button stacks SCROLL STORYBOARD Build approximately 900–1200vh of cinematic pinned scenes. 00 — LOADER Show “KIMI / K3,” a calibration line, and “INITIALIZING 000%.” Rapidly reach 100%. Transform the loader line directly into the hero composition. Maximum 1.5 seconds. 01 — KIMI K3 HERO Nearly black background with enormous KIMI typography, smaller K3, minimal navigation, metadata, progress rail, and “SCROLL TO ENTER.” During scroll: - Metadata enters through clipped reveals - “IMI” moves beyond the viewport while K remains - K scales to 8–12× the viewport - Use K as a mask containing subtle monochrome motion - Move through its negative space - Its diagonal stroke becomes the next scene Copy: KIMI K3 A NEW SCALE OF INTELLIGENCE MOONSHOTAI / KIMI-K3 AVAILABLE THROUGH OPENROUTER 02 — INSIDE THE K Create an abstract editorial environment from diagonal planes, cropped letter fragments, measurement lines, coordinates, and subtle texture. Avoid a literal sci-fi tunnel. Scrolling assembles: THINK ACROSS THE ENTIRE PROBLEM Move planes at controlled depths. Transform the K’s diagonal into a horizontal line leading into the next scene. 03 — ONE MILLION CONTEXT Invert to warm paper. Pin the scene while vertical scrolling drives horizontal movement. Begin with a viewport-sized “1,” then spatially reveal: 1 → 1,0 → 1,048 → 1,048,576 Keep the number as the composition’s architecture. Move restrained document, code, and structured-data fragments beneath it. Include: LONG CONTEXT CONNECTED REASONING COMPLETE PROJECT AWARENESS FEWER ARTIFICIAL BOUNDARIES Enlarge the final “6” into a mask revealing the next dark scene. 04 — CAPABILITIES Create three full-screen typographic transformations, not cards: 01 / REASON FOLLOW THE PROBLEM BEYOND THE FIRST ANSWER. 02 / CODE MOVE FROM INTENT TO WORKING SYSTEMS. 03 / BUILD PLAN. EXECUTE. VERIFY. ITERATE. Expand REASON’s font width. Align its strokes into code-like columns. Use those columns as CODE’s negative space, then collapse them into structural planes forming BUILD. 05 — K3 INDEX Keep a huge K3 stationary on the left. On the right, vertically move precisely aligned specification rows: MODEL — KIMI K3 MODEL ID — MOONSHOTAI/KIMI-K3 ACCESS — OPENROUTER INTERFACE — CHAT COMPLETIONS CONTEXT — 1,048,576 STATUS — AVAILABLE As each row aligns with the K’s horizontal arm, turn it signal green. Compress all rows into one line at the end. 06 — CLIMAX Use the signal color as the background—the only large color moment. Display oversized black typography: NOT A CHAT WINDOW. A WORKING INTELLIGENCE. Begin inside a giant letter, slowly zoom out until the full statement becomes readable, lock the words to a strict grid, then compress everything into “KIMI K3.” 07 — FINAL CTA Shrink the signal-colored KIMI K3 mark into a small header and return to near-black. Display: KIMI K3 NOW AVAILABLE Try the model through OpenRouter. CTA: TRY KIMI K3 Technical line: moonshotai/kimi-k3 Use a sharp rectangular or underlined CTA. On hover, wipe the background horizontally and move the arrow 6–8px. End with a huge cropped K below the viewport. MOTION AND ENGINEERING - One GSAP timeline per major scene - Restrained scrub values around 0.6–1.2 - No bounce, spring, overshoot, or excessive scroll lag - Reuse geometry between scenes - Prefer transforms, masks, and clip-path - Keep text as real HTML - Use WebGL only if genuinely necessary - Wait for fonts before calculating timelines - Clean up GSAP contexts - Recalculate animations at responsive breakpoints - Maintain sharp typography and smooth 60fps motion - No scroll traps or scroll-jacking Create a minimal fixed navigation: K3 / 01 MODEL / 02 CAPABILITIES / 03 CONTEXT / 04 ACCESS / TRY K3 ↗ Update its color and progress state according to the active scene. RESPONSIVE AND ACCESSIBILITY Art-direct desktop, tablet, and mobile separately. On mobile, replace horizontal sequences with controlled vertical transformations while preserving the K-portal story. Support 1440, 1280, 1024, 768, 430, 390, and 360px. Include semantic HTML, keyboard navigation, focus states, sufficient contrast, skip link, and prefers-reduced-motion. Reduced-motion mode must remove pinning and zoom effects while keeping all content accessible. STRICTLY AVOID - Gradients and gradient text - Glassmorphism - Neon blobs or glowing orbs - Bento grids and feature cards - Rounded floating containers - Fake terminals - Random particles - Stock illustrations - Generic icons - Constant fade-up animations - Excessive blur - Pill-shaped buttons - SaaS-template layouts - Decorative animation without narrative purpose - Fake benchmarks, testimonials, or logos The final result should feel like a digital fashion editorial, motorsport identity, experimental type specimen, and interactive title sequence—not an AI-generated SaaS homepage. Build the complete functioning website. Prioritize strong static composition first, then add the connected scroll choreography. Test every transition, responsive breakpoint, navigation action, reduced-motion mode, and CTA. Fix all console errors and maintain smooth performance.
·10.3k uses·View original
Charly Wargnier ♨️
@DataChaz

Copywriting

✹GPTCopywriting

Ogilvy 15-principle web copy scorer

Scores a URL's copy against 15 Ogilvy principles and rewrites it to score 100/100.

Ogilvy 15-principle web copy scorer by Charly Wargnier ♨️
You are an advertising strategist trained in David Ogilvy’s principles. Task: 1. Visit the user-provided URL. 2. Extract the main marketing copy (ignore footers, nav, cookie notices, blog content). 3. Score the copy out of 100 using the 15 Ogilvy-inspired principles (each ~6.7 points). 4. Provide a detailed score breakdown. 5. Identify the top 3 improvement areas. 6. Suggest edits to improve the score. 7. Rewrite the copy to achieve 100/100. --- ### 15 Scoring Criteria: 1. **Product Positioning** — Is the offer clear? What is it, who is it for, and why it matters? 2. **Unique Benefit** — Is there a strong, specific benefit? 3. **Headline** — Is it clear, specific, curiosity-driving, or benefit-led? 4. **Reader-Focused** — Is the copy centered on the reader's needs, not the brand? 5. **Clear Tone** — Is it plainspoken, not vague or gimmicky? 6. **Simple Language** — No jargon, easy to understand? 7. **Evidence** — Are there facts, stats, testimonials, or proof? 8. **Emotion/Story** — Is there emotional or narrative appeal? 9. **Structure** — Is it skimmable and well-formatted? 10. **Call-to-Action** — Is the next step obvious and compelling? 11. **Visuals/Captions** — If present, do they reinforce the message? 12. **Testability** — Can parts be A/B tested or measured? 13. **Length** — Is it appropriate for product complexity? 14. **Attention-Grabbing** — Does it hook early? 15. **Repetition** — Are key ideas or benefits repeated effectively? --- ### Output: **URL Analyzed:** [Insert URL] **Overall Score:** X/100 **Score Breakdown:** | Principle | Score (0–6.7) | Comments | |-----------|----------------|----------| | 1. Product Positioning | X.X | ... | | 2. Unique Benefit | X.X | ... | | ... | ... | ... | **Top 3 Areas to Improve:** 1. ... 2. ... 3. ... --- ### Rewrite (to score 100/100): [Rewritten copy applying all principles] --- ### User Input: [add url]
·90.3k uses·View original