Playing with fireworks 🎆 in WebGL and GLSL Shaders with Three.js Check it out here: https://pepe...Playing with fireworks 🎆 in WebGL and GLSL Shaders with Three.js Check it out here: https://pepe...
The network for creativity
Join 1.25M professional creatives like you
Connect with clients, get discovered, and run your business 100% commission-free
Creatives on Contra have earned over $150M and we are just getting started
The particle burst feels satisfying because the interaction has an immediate payoff. A subtle intensity or color shift after repeated clicks could make the playground even more addictive.
An interactive fireworks shader you can keep clicking to build up is such a satisfying rabbit hole to fall into. How much of this came from prior GLSL experience versus learning the shader math specifically for this piece?
This looks great. Are you updating particle position/velocity per frame on the CPU and pushing to a buffer attribute, or is it all happening in the vertex shader with a time uniform driving the motion?
Curious how it holds up performance wise once you spam click and stack multiple bursts at once
A hand-built studio site in a Swiss "lacquer & stone" style: warm stone paper, lacquer-red accents, thin uppercase type and fine film grain. Every section reacts as you scroll: Halftone portrait that reveals under your cursor
Signature that draws itself, and a manifesto that lights up word by word
The boutique: five project videos with a working till. Reach the end and the receipt prints PAID
3D paper crumple: the receipt folds into a real 3D ball and drops into the page with physics
"A Day in Code": an original stick-figure film drawn in code. The ball lands inside it and gets a bicycle kick
Generative synth music and cartoon sound effects, all made live in the browser
AI-style assistant in a glowing WebGL orb, available in six languages
Built with: Vanilla JavaScript · Vite · GSAP + ScrollTrigger · Lenis smooth scroll · Three.js (3D crumple and cart) · Matter.js (physics) · WebGL shaders · Web Audio API · Web Workers · Vercel
The 3D crumple runs in a Web Worker and only the video on screen plays, so it stays smooth at 60fps.