# Confetti bundle — 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 side cannons firing confetti in from the bottom corners, arcing up and raining down over the middle

- **Install:** `pnpm add @tsparticles/confetti`
- **Registry:** tsparticles · **Framework:** html · **License:** MIT
- **Docs and preview:** https://confetti.js.org
- **Source:** https://github.com/tsparticles/tsparticles/blob/main/bundles/confetti/src/confetti.ts
- **Example:** https://skills.varg.ai/previews/lib-tsparticles-confetti-bundle.mp4?v=225493 (Rendered by varg from the library’s own code (tsParticles · rendered by varg))
- **Time:** Drive from the frame. Runs on its own clock (requestAnimationFrame, timers, springs or CSS). Drive it from frame / fps before rendering, or the render drifts.
- **Runs:** local render, free
- **Aspect:** any

## Prompt that renders it frame-exact

Use the tsParticles Confetti bundle (https://confetti.js.org, MIT, source github.com/tsparticles/tsparticles/tree/main/bundles/confetti) to fire confetti over the footage exactly on a beat. Put a full-frame transparent canvas above the video, bind it with const fire = await confetti.create(canvas, {}), and on the cue frame call fire({ count: 140, angle: 55, spread: 60, startVelocity: 60, position: { x: 0, y: 85 } }) plus a mirrored call with angle 125 from x: 100 for a two-cannon salute (position is in percent of the frame). tsParticles ticks on requestAnimationFrame and derives each step from the frame timestamp, so make it deterministic: seed Math.random before firing, 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). Pass colors with brand hex values, shapes for squares, circles or emoji, and ticks for how long the pieces stay on screen.

## Used in

- [Top-N listicle](https://skills.varg.ai/video/listicle.md)
- [Quiz, poll & would-you-rather](https://skills.varg.ai/video/quiz.md)
- [Bar chart race](https://skills.varg.ai/video/chart-race.md)
- [Science what-if explainer](https://skills.varg.ai/video/science-explainer.md)
- [Lyric video](https://skills.varg.ai/video/lyric-video.md)
- [Audio visualizer](https://skills.varg.ai/video/visualizer.md)
- [Logo sting](https://skills.varg.ai/video/logo-sting.md)
- [Countdown & launch timer](https://skills.varg.ai/video/countdown.md)

## More particles & physics

- [Confetti](https://skills.varg.ai/component/hf.confetti.md) — `npx hyperframes add confetti`
- [Liquid Metal](https://skills.varg.ai/component/hf.liquid-metal.md) — `npx hyperframes add liquid-metal`
- [Particle Image Reveal](https://skills.varg.ai/component/hf.particle-image-reveal.md) — `npx hyperframes add particle-image-reveal`
- [Pendulum Swing](https://skills.varg.ai/component/hf.pendulum-swing.md) — `npx hyperframes add pendulum-swing`
- [Snow](https://skills.varg.ai/component/hf.snow.md) — `npx hyperframes add snow`
- [Spiral Galaxy](https://skills.varg.ai/component/hf.spiral-galaxy.md) — `npx hyperframes add spiral-galaxy`
