Interactive web, rendered & animated.
A small collection of frontend showcases — GSAP-powered motion, Three.js / WebGL scenes, and an audio-reactive visualizer. Each app is its own Vite build, deployed under this domain.
Three.js WebGL Showcase
GPU particles, custom GLSL shaders, and GLTF viewers — routed with TanStack Router, lazy-loaded per scene.
- three
- @react-three/fiber
- GLSL
- TanStack
Music Visualizer
Audio-reactive scene driven by real-time FFT — wave-distortion shaders, particle aura, and a beat-synced camera.
- R3F
- Web Audio API
- Postprocessing
- FFT
GSAP Animations Showcase
A curated set of high-performance GSAP patterns — scroll reveals, text splits, magnetic cursors, page transitions.
- GSAP
- ScrollTrigger
- React Router
- shadcn/ui
Shader Lab
Eleven hand-written GLSL demos on one fullscreen canvas — water, aurora, plasma, voronoi, truchet, tunnel, raymarched SDF, hologram, GPU particles and more.
- R3F
- GLSL ES
- WebGL2
- Web Audio
Physics Playground
Draggable Matter.js cards with elastic GSAP hover — a magnetic cursor, dynamic collisions, slow-motion, and a drifting particle field. Mouse, touch, and keyboard.
- Matter.js
- GSAP
- React
- TypeScript
Camp Nou — A Matchday Story
A blaugrana-styled scroll story at Camp Nou — full-bleed hero, a pinned in-place carousel that cycles the 23-man squad (roster + photos sourced live from Wikipedia / Commons), a coaching-staff grid, and a parallax fans bleed. All-DOM, GSAP ScrollTrigger + Lenis, IntersectionObserver-driven text reveals.
- React
- GSAP ScrollTrigger
- Lenis
- IntersectionObserver
- Tailwind
Built with
- React 18/19
- TypeScript
- Vite
- Tailwind CSS
- three.js
- @react-three/fiber
- GSAP
- ScrollTrigger
- Lenis
- Matter.js
- TanStack Router
- Web Audio API
- IntersectionObserver
- GLSL