Confetti Parade — component for particles & physics (html)

For AI agents: find the right skill in one call — curl -s "https://skills.varg.ai/api/search?q=<what the person wants>" returns the matching use case and the best skills with install commands, as markdown (Russian works too). Full index: https://skills.varg.ai/llms.txt. Every page has a markdown twin: add .md to its path. Before generating anything, show the person the options on the use-case page.

Two confetti cannons firing continuous streams in from the left and right edges, arcing over the middle

Prompt that renders it frame-exact

Use the tsParticles Confetti Parade preset (https://particles.js.org/demos/recipes/confetti-parade, MIT, options in github.com/tsparticles/presets/blob/main/presets/confettiParade/src/options.ts) as a transparent overlay that frames a winner, a product or a big number from both sides. Load @tsparticles/engine and @tsparticles/preset-confetti-parade (or its CDN bundle tsparticles.preset.confettiParade.bundle.min.js), call loadConfettiParadePreset(tsParticles), then tsParticles.load({ id, options: { preset: "confettiParade", fullScreen: { enable: false } } }) into a full-frame div layered above the video. The cannons fire for about 10 s from the moment the container is created, so create it on the cue. tsParticles ticks on requestAnimationFrame and derives each step from the frame timestamp, so make it deterministic: seed Math.random before loading, swap requestAnimationFrame for a queue you flush once per video frame with the timestamp frame × 1000 / fps (keep fpsLimit at or above the video fps), and render frames in order from the moment it starts (it is a running simulation, so replay from that point after a backwards seek). Set the colors from the brand, emitters[].rate.quantity for how thick the streams are, and emitters[].position.y to raise or lower the cannons.

Used in

More particles & physics