Back to experiments

About MADvids

A collection of video web experiments exploring cinematic scroll, interactive animation, and real-time visual effects — all built for 60fps.


Experiments

Superflat

Murakami dreamscape scroll with AI videos, pop-art typography, and Web Audio ambient.

murakamiscrollAI-video

Cinematic Scroll

Sticky full-screen video with scroll-driven section reveals and animated stat counters.

scroll-drivenvideo

Split Narrative

Alternating content sections over dedicated video backgrounds with metric pills.

parallaxmarketing

Bento Mosaic

Asymmetric video grid with staggered cell reveals, marquee ticker, and label overlays.

gridbento

Depth & Grain

Parallax video zoom with film grain, numbered feature strips, and frosted metric cards.

parallaxcinematic

Delightful Video

Scroll-driven typography animation with video background and staggered letter reveals.

typographyscroll

Chromatic Shift

Scroll-driven color grading with live blend-mode overlays through five cinematic moods.

colorblend-mode

Mesh Flow

Floating gradient blobs with screen blending, scroll-driven parallax, and ambient drift.

gradientsblend-mode

Lumina

Interactive light story — collect luminous particles to unlock a poetic narrative.

interactivecanvasgame

Shape Reveal

Scroll-driven clip-path morphing — seven geometric shapes progressively unmask the video.

clip-pathscroll

Rift

Scroll-driven dimensional portal — a radial rift expands to reveal the multiverse.

portalradial-gradientparticles

Autonomy Dashboard

React-based interactive dashboard with real-time data visualizations.

reactvite

Key Techniques

Video-through-text

White mask with mix-blend-mode: screen reveals video only through black text pixels. Black shows video, white hides it.

Scroll-driven color grading

HSL interpolation with lerpAngle() for hue wrapping. mix-blend-mode: color overlay transforms video mood.

Glass morphism

backdrop-filter: blur(40px) saturate(180%) with decorative orbs behind for blur visibility on light backgrounds.

Clip-path morphing

Scroll-driven clip-path generators produce polygon, circle, inset, and organic blob shapes per frame.

Portal reveals

radial-gradient masking with smoothstep keyframe interpolation creates expanding/collapsing dimensional portals.

Web Audio synthesis

Oscillator drones and pentatonic collection pings generated in real-time. No audio files needed.


Performance Patterns

Compositor-only animations

All animations use transform and opacity via translate3d — no layout or paint operations in the render path.

rAF loop fades

Video loop crossfades use requestAnimationFrame ticks that self-terminate on pause. Zero overhead for invisible videos.

Lazy video loading

IntersectionObserver controls play/pause. Far-observer removes src at 600px outside viewport to release decoders.

Cached layout reads

innerHeight and offsetHeight cached in resize handler — never read per-scroll. Passive listeners everywhere.


Tech Stack
Vite React (dashboard) Vanilla JS CSS custom properties IntersectionObserver Web Audio API WebGL (grain shader) View Transitions API Service Worker GitHub Pages

Development
npm run dev Start local dev server with hot reload
npx vite build Build for production
npx vite preview Preview production build locally