Just shipped a product site for Pauline's — a Ukrainian manufacturer of natural massage candles.
The goal: make the product feel tangible through the screen.
What's inside:
— Realistic fire and smoke built with a particle shader. Each flame is alive, flickering with its own physics
— An oil drop that's born at the candle tip and migrates all the way down the page as you scroll. Getting a smooth sphere-to-teardrop morph without visual seams meant digging into SDF math (signed distance functions). Worth every hour.
— 15 scents as interactive 3D lid cards
— Oil composition, properties, and care tips
Stack: Three.js + GSAP ScrollTrigger + Canvas 2D + Vite → Vercel
https://massage.paulinescandle.com/
#WebGL #ThreeJS #GSAP #CreativeCoding #Frontend