Open to full-time roles
Hire me
The Lab

Motion and interaction, built by hand.

This is where I try ideas before they go on client sites. GSAP, Canvas and CSS 3D, each piece with a short breakdown of how it works and where it helps.

Physics
Particle text
3D text ring
Liquid glass
All pieces

Pick a piece and open it.

Each card plays a small preview of the motion. Open it to read what it does, how I built it and where it helps. Filter by the skill you are hiring for.

UI

Liquid Glass UI

Glass panels that bend the page behind them.

Open the breakdown
What it does

A navigation bar, cards and controls that look like real glass. The background warps at the edges as you drag or scroll past.

How I built it
  • SVG displacement filters for the refraction, no images
  • GSAP Draggable for the cards, with inertia when you let go
  • Falls back to a plain frosted panel where filters are not supported
Where it helps

Product launches and app landing pages that need a modern first look.

Skills: SVG filters / GSAP / Draggable

Interaction

Physics Skill Pills

Skill tags that fall, collide and can be thrown.

Open the breakdown
What it does

Pills drop into a box, stack on each other and react to your mouse. Grab one and throw it and the others move out of the way.

How I built it
  • A small 2D physics loop with gravity, friction and collisions
  • Pointer events for grab and throw on mouse and touch
  • The pills are real text, so screen readers and search engines still read them
Where it helps

About pages, hiring pages and skill sections that should feel playful without being silly.

Skills: Physics / Pointer events / Canvas

Canvas & 3D

Magnetic Dot Grid

A field of dots that moves out of the cursor's way.

Open the breakdown
What it does

Hundreds of dots sit in a grid and push away from the cursor, then spring back into place.

How I built it
  • One canvas, redrawn only while the section is on screen
  • Spring maths, so the dots settle naturally instead of snapping
  • Density drops on phones to keep it at 60 fps
Where it helps

Hero backgrounds for tech, AI and data products.

Skills: Canvas / Spring physics / Performance

Text

Particle Text

Headlines made of particles that scatter and reform.

Open the breakdown
What it does

A headline is drawn as thousands of particles. Hover and they scatter, move away and they rebuild the word, or morph into the next one.

How I built it
  • The text is sampled into points from an off-screen canvas
  • Each particle eases back to its own home point
  • Real text stays in the page for SEO and accessibility
Where it helps

Launch pages and event sites where the headline is the show.

Skills: Canvas / Typography / Easing

Canvas & 3D

Infinite Canvas Gallery

A gallery you can drag in any direction, forever.

Open the breakdown
What it does

Images tile endlessly in every direction. Drag it and it keeps gliding with momentum, and columns move at slightly different speeds.

How I built it
  • Tiles are reused as you drag, so it never builds up memory
  • GSAP Inertia for the throw and slow stop
  • Keyboard arrows move it too
Where it helps

Portfolios, studios and photographers who have a lot of work to show.

Skills: GSAP Inertia / Virtualisation / Drag

Interaction

Flip Layout Morph

Grids that smoothly rearrange instead of jumping.

Open the breakdown
What it does

Switch from grid to list, filter the items, or open a card into a detail view. Everything slides to its new place instead of snapping.

How I built it
  • GSAP Flip records the old layout and animates to the new one
  • Works with Webflow CMS lists without extra markup
  • Focus moves correctly when a card opens
Where it helps

Shops, resource libraries and blogs with filters.

Skills: GSAP Flip / CMS / Accessibility

Text

Variable Font Wave

Letters that change weight as the cursor passes.

Open the breakdown
What it does

Each letter gets heavier or wider depending on how close the cursor is and how fast you scroll.

How I built it
  • Variable font axes controlled per letter
  • Values are smoothed so the wave feels soft, not jumpy
  • Only runs while the heading is in view
Where it helps

Agency sites and brands with strong typography.

Skills: Variable fonts / SplitText / Scroll speed

Text

3D Text Ring

Words wrapped around a spinning 3D cylinder.

Open the breakdown
What it does

A line of text wraps around a ring in 3D and turns as you scroll. Speed up the scroll and it spins faster.

How I built it
  • Pure CSS 3D transforms, no WebGL needed
  • Scroll velocity feeds the rotation through GSAP
  • Works as a section divider or a hero
Where it helps

Event pages and brand sites that want a bold moment between sections.

Skills: CSS 3D / ScrollTrigger / Velocity

Scroll

Scroll Path Journey

A line that draws itself down the page as you scroll.

Open the breakdown
What it does

A path draws through the page as you scroll, with a small object riding along it and stopping at each step.

How I built it
  • GSAP DrawSVG for the line and MotionPath for the rider
  • Steps are normal Webflow sections, easy to edit
  • Path redraws correctly on every screen size
Where it helps

Process pages, timelines and onboarding stories.

Skills: DrawSVG / MotionPath / ScrollTrigger

UI

Morphing Menu

A full-screen menu whose edge flows like liquid.

Open the breakdown
What it does

The menu opens with a soft wave instead of a hard slide, and the links rise in one after another.

How I built it
  • SVG path morphing timed with GSAP
  • Focus is trapped inside the menu and Esc closes it
  • Respects reduced motion settings
Where it helps

Creative agencies and personal sites that want navigation with character.

Skills: SVG morph / GSAP / Accessibility

Scroll

Pixel Reveal Images

Images that sharpen from chunky pixels on scroll.

Open the breakdown
What it does

Images start as big blocks of colour and resolve into the sharp photo as they scroll into view.

How I built it
  • The image is drawn at shrinking pixel sizes on a canvas
  • The real image tag stays underneath for SEO
  • Loads lazily, so there is no speed cost
Where it helps

Games, tech brands and retro-style product pages.

Skills: Canvas / Lazy loading / ScrollTrigger

Scroll

Zoom-Through Hero

Scroll into a word and come out the other side.

Open the breakdown
What it does

The hero word grows as you scroll until you pass through a letter and land in the next section.

How I built it
  • A pinned section driven by ScrollTrigger scrub
  • Scale and mask are timed so the text never blurs
  • The next section is already loaded underneath
Where it helps

Big launches and campaign pages that open with a statement.

Skills: ScrollTrigger / Pinning / Masks

Scroll

Apple-Style Frame Scroll

A product that turns and builds itself as you scroll.

Open the breakdown
What it does

A sequence of frames plays as you scroll, so the product rotates or assembles in front of you.

How I built it
  • Frames are preloaded in small batches and drawn on a canvas
  • Scroll position picks the frame, so it never drifts
  • Uses lighter frames on phones
Where it helps

Hardware, consumer products and SaaS feature tours.

Skills: Canvas / Image sequences / ScrollTrigger

Interaction

Velocity Bend Carousel

Cards that bend with the speed of your drag.

Open the breakdown
What it does

A carousel where the cards skew and bend a little when you drag or scroll fast, then settle when you stop.

How I built it
  • Drag speed is measured and turned into a skew value
  • GSAP Draggable with snapping to each card
  • Works with CMS items
Where it helps

Case study sliders, team sections and product rows.

Skills: Draggable / Velocity / CMS

Interaction

Shuffle Deck

A deck of cards you can throw to the back.

Open the breakdown
What it does

Throw the top card and it arcs to the back of the stack. It can also fan out so you see every card.

How I built it
  • Each throw follows a curved path with GSAP
  • Swipe on mobile, click or arrow keys on desktop
  • The order is real DOM order, so it stays accessible
Where it helps

Testimonials, pricing tiers and feature highlights.

Skills: GSAP / Gestures / Accessibility

Interaction

Image Trail Distortion

The cursor leaves a trail of images behind it.

Open the breakdown
What it does

Move the mouse and images appear along your path, stretch in the direction you move and fade away.

How I built it
  • A small pool of images is reused, so it stays light
  • Stretch comes from the cursor's speed and direction
  • Turned off on touch screens
Where it helps

Creative studios, fashion and photography sites.

Skills: Pointer tracking / GSAP / Object pools

Scroll

Split Curtain Transitions

Curtains and wipes between views.

Open the breakdown
What it does

Panels slide in like curtains, with a counter or shape wipe, when you move between sections or views.

How I built it
  • GSAP timelines with clip-path wipes
  • Works between sections or as page transitions
  • Content underneath is never hidden from readers
Where it helps

Portfolios and storytelling pages with clear chapters.

Skills: Clip-path / Timelines / Transitions

Interaction

Lens Magnifier

A round lens that magnifies what is under it.

Open the breakdown
What it does

A circular lens follows the cursor and zooms into images or interface details.

How I built it
  • A second scaled layer is masked into a circle
  • Position is smoothed so the lens glides
  • Pinch-friendly fallback on phones
Where it helps

Product detail pages and app screenshots with small details.

Skills: Masks / Pointer / Smoothing

Text

Scramble Terminal Hero

Code-style headlines that decode and type.

Open the breakdown
What it does

Headlines scramble through random characters before settling, and a terminal line types out below.

How I built it
  • GSAP ScrambleText with a custom character set
  • Typing speed varies a little so it feels human
  • The final text is real and readable from the start
Where it helps

Developer tools, security and tech products.

Skills: ScrambleText / Timelines / Typography

Interaction

Gooey Cursor Blob

A soft blob cursor that melts into buttons.

Open the breakdown
What it does

The cursor is a soft blob that stretches toward links and seems to melt into buttons on hover.

How I built it
  • An SVG goo filter merges the blob with the button
  • The blob follows with a small delay for weight
  • Only on devices with a mouse
Where it helps

Playful brands, creative agencies and product sites for designers.

Skills: SVG filters / Cursor / GSAP

Interaction

3D Tilt Cards

Cards that tilt toward the cursor in 3D.

Open the breakdown
What it does

Cards lean toward the mouse with a soft light moving across them, and flatten out when you leave.

How I built it
  • CSS 3D transforms driven by GSAP quickTo for smooth updates
  • Light follows the tilt angle
  • No tilt on touch devices
Where it helps

Pricing cards, team cards and feature grids.

Skills: CSS 3D / GSAP / quickTo

Scroll

Infinite Marquee

Rows of text and logos that never end.

Open the breakdown
What it does

Logo walls and text bands that loop without a gap, and speed up or reverse with your scroll.

How I built it
  • Content is cloned just enough to fill the screen
  • Speed reacts to scroll velocity
  • Pauses on hover so people can read
Where it helps

Client logos, reviews and announcement bars.

Skills: GSAP / ScrollTrigger / Loops

Scroll

Sticky Stacking Cards

Cards that pile on top of each other as you scroll.

Open the breakdown
What it does

Each card sticks and the next one slides over it, while the one below shrinks back a little.

How I built it
  • Native Webflow sticky positioning with GSAP scaling
  • No scroll-jacking, the page scrolls normally
  • Card count can change without code edits
Where it helps

Service lists, process steps and feature stories.

Skills: Sticky / ScrollTrigger / Webflow IX

UI

Magnetic Navbar

Nav items that pull toward the cursor.

Open the breakdown
What it does

Links lean toward the mouse like magnets, and the bar hides on scroll down and returns on scroll up.

How I built it
  • GSAP quickTo for the magnetic pull
  • Scroll direction logic with a small threshold
  • Fully keyboard accessible
Where it helps

Any site that wants its navigation to feel alive.

Skills: GSAP / quickTo / Navigation

Text

Text Scramble

Words that decode into place.

Open the breakdown
What it does

Headlines and links scramble through letters before landing on the real word.

How I built it
  • ScrambleText with custom characters and speed
  • Hover version for links, scroll version for headings
  • Real text is always in the page
Where it helps

Tech brands and portfolios that want a sharp, technical feel.

Skills: ScrambleText / GSAP / Hover

UI

Shimmer Buttons

Buttons with a moving line of light.

Open the breakdown
What it does

Call-to-action buttons with a light that travels around the border or sweeps across the surface.

How I built it
  • Conic gradients animated with CSS custom properties
  • No JavaScript needed for the base effect
  • Contrast stays readable in every state
Where it helps

Main calls to action on landing pages.

Skills: CSS / Gradients / Custom properties

UI

Auto-Progress Accordion

An accordion that moves itself forward.

Open the breakdown
What it does

Items open one after another with a progress bar, and each one can swap an image beside it.

How I built it
  • A GSAP timeline controls open, progress and swap
  • Pauses when you hover or focus
  • Built on a native Webflow structure
Where it helps

Feature explainers and FAQ sections.

Skills: Timelines / Accessibility / Webflow

Scroll

Horizontal Scroll

Sections that scroll sideways.

Open the breakdown
What it does

The page scrolls down but the content moves sideways, like a film strip, with parallax inside each panel.

How I built it
  • ScrollTrigger pin and scrub
  • Panel count comes from the layout, not the code
  • Stacks vertically on phones
Where it helps

Timelines, case study strips and product tours.

Skills: ScrollTrigger / Pinning / Parallax

Interaction

Expanding Bento

A bento grid where tiles open into full views.

Open the breakdown
What it does

Click a tile and it grows into a full detail view, while the rest of the grid moves aside.

How I built it
  • GSAP Flip for the expand and close
  • Deep-linkable, so a tile can open from a URL
  • Esc and back button close it
Where it helps

Feature overviews and service pages.

Skills: GSAP Flip / Layout / UX

Interaction

Spotlight Bento

A soft light that follows the cursor across cards.

Open the breakdown
What it does

A glow follows the mouse across the grid and lights up card borders as it passes.

How I built it
  • One CSS variable updated on pointer move
  • Borders use a masked gradient
  • Very light, no canvas
Where it helps

SaaS feature grids and dark-theme product sites.

Skills: CSS variables / Gradients / Pointer

Interaction

Custom Cursor

A cursor that changes with what it hovers.

Open the breakdown
What it does

A dot and ring cursor that grows, inverts colours or shows a label depending on what is under it.

How I built it
  • GSAP quickTo for smooth follow
  • Data attributes on elements choose the cursor state
  • Hidden on touch devices
Where it helps

Portfolios and agency sites.

Skills: GSAP / Data attributes / Cursor

Text

Odometer Counter

Numbers that roll like a car odometer.

Open the breakdown
What it does

Digits roll into place one column at a time, for stats, prices or countdowns.

How I built it
  • Each digit is its own rolling column
  • Counts start when the numbers come into view
  • Real number is available to screen readers
Where it helps

Stats rows, pricing and launch countdowns.

Skills: GSAP / Typography / IntersectionObserver

UI

Frosted Glass Dropdown

Dropdowns made of frosted glass.

Open the breakdown
What it does

Menus and selects that open with a blur panel and a soft spring.

How I built it
  • Backdrop blur with a solid fallback
  • Keyboard navigation with arrows and Esc
  • Spring timing tuned by hand
Where it helps

Navigation menus and language pickers.

Skills: Backdrop filter / Keyboard / GSAP

Canvas & 3D

Laser Grid Background

A grid background with scanning laser lines.

Open the breakdown
What it does

A perspective grid with beams that scan, pulse and cross each other.

How I built it
  • Drawn on canvas with a simple perspective projection
  • Pauses when off screen
  • Colours come from site variables
Where it helps

Tech, gaming and security hero sections.

Skills: Canvas / Perspective / Performance

UI

Radial Action Button

One button that opens into a ring of actions.

Open the breakdown
What it does

Tap the button and actions fan out around it in a circle, for sharing or quick tasks.

How I built it
  • Positions are calculated on a circle, so any number fits
  • Staggered GSAP entrance
  • Arrow keys move between actions
Where it helps

Share menus, floating action buttons and quick tools.

Skills: GSAP / Geometry / Keyboard

Scroll

Scroll-Scrub Video

Video that plays forward and back with your scroll.

Open the breakdown
What it does

A video or 3D globe that plays as you scroll and reverses when you scroll up.

How I built it
  • Scroll position is mapped to video time
  • Encoded for fast seeking
  • A poster image loads first
Where it helps

Product stories and brand films.

Skills: Video / ScrollTrigger / Encoding

Canvas & 3D

Liquid Image Hover

Images that ripple like water on hover.

Open the breakdown
What it does

Hover an image and it ripples, waves or melts into the next image.

How I built it
  • Displacement map animated on hover
  • Only the hovered image runs the effect
  • Plain image swap as fallback
Where it helps

Galleries, product cards and team photos.

Skills: Displacement / Canvas / Hover

Text

Video Text Mask

Moving video inside big letters.

Open the breakdown
What it does

Footage plays inside huge type, and grows to full screen as you scroll.

How I built it
  • CSS text clipping with a video layer
  • Scale is scrubbed with ScrollTrigger
  • Text stays selectable
Where it helps

Brand intros and campaign heroes.

Skills: Masks / Video / ScrollTrigger

Canvas & 3D

Interactive 3D

3D objects you can turn and explore.

Open the breakdown
What it does

A 3D model rotates with scroll or drag, and can be used as a product viewer.

How I built it
  • three.js with a small, optimised model
  • Only renders while visible
  • Static image fallback
Where it helps

Product pages and tech brands.

Skills: three.js / WebGL / Performance

Interaction

Swipe Cards

Cards you swipe away like a dating app.

Open the breakdown
What it does

Swipe or drag cards left and right, with a stack behind that moves up.

How I built it
  • GSAP Draggable with Inertia for the throw
  • Buttons and arrow keys as alternatives
  • Works with CMS content
Where it helps

Testimonials, quizzes and product pickers.

Skills: Draggable / Inertia / CMS