particle-system

Builds canvas 2D and Three.js GPU particle effects with forces, flow fields, and emission patterns.

52|3|Updated Aug 20, 2026
One-click install
npx skills add https://github.com/Wayn-Git/Amethyst --skill particle-system-wayn-git
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: particle-system
Source: https://github.com/Wayn-Git/Amethyst/tree/main/agents/skills/particle-system
Command: npx skills add https://github.com/Wayn-Git/Amethyst --skill particle-system-wayn-git

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires three, simplex-noise, and includes scripts (resource) and references (resource) components.

What problem does it solve? Creating believable particle effects like confetti, snow, smoke, sparks, or constellation backgrounds requires knowing the right integration loop, force composition, and rendering technique, and naive implementations break down at scale or produce non-reproducible results. ## Core Features & Use Cases - Per-particle integration and forces: Semi-implicit Euler loop with composable forces such as gravity, drag, attraction, and repulsion for organic motion. - Flow fields and curl noise: Simplex-noise-driven velocity fields and divergence-free curl noise for fluid-like swirls without particle pile-up. - Emission patterns and GPU scale: Burst versus continuous emission recipes, an O(n) spatial-grid connected-dot network, and Three.js Points with ShaderMaterial for tens of thousands of GPU particles. - Use Case: A user asks for a celebratory confetti burst on a webpage; the Skill delivers one self-contained HTML file with a seeded RNG, a ?t=N freeze harness, and screenshot verification at start, mid, and settle moments. ## Quick Start Ask the agent to build a particle effect such as a connected-dot constellation background or a confetti burst as a single standalone HTML file.

Frequently Asked Questions about particle-system

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a particle system in JavaScript?▼

Give each particle position, velocity, and life state, then every frame accumulate forces into acceleration, integrate velocity and position with semi-implicit Euler scaled by dt, age the particle, and respawn it when dead. Use canvas 2D for hundreds of particles and Three.js Points for thousands.

How to make a confetti effect with canvas?▼

Spawn a burst of particles at a point with randomized angle and speed, then apply gravity and air drag each frame. Confetti reads as paper because of rotating flat rectangles with a height squash from Math.abs(Math.cos(rot)), not round dots.

Canvas 2D vs Three.js Points for particle effects?▼

Canvas 2D handles hundreds of particles comfortably with CPU updates. For thousands or more, push positions into a Three.js BufferGeometry rendered as Points and animate in the vertex shader, which keeps 80k+ particles at 60fps with no CPU updates.

How do I avoid O(n²) in a connected-dot network?▼

Use a uniform spatial grid: bin particles into cells sized to the link radius and only compare each particle against its own and the 8 neighboring cells. This makes the constellation effect O(n) for evenly distributed particles and scales to hundreds of nodes.

Why do my particles vanish or bunch at the origin?▼

Vanishing particles usually indicate NaN positions from an unclamped dt or a stalled tab, while bunching at the origin means the RNG was not wired into spawn positions. Clamp dt to 1/30, seed the PRNG, and check the console for parse or init errors if the canvas is blank.

What is curl noise and when should I use it?▼

Curl noise is a divergence-free velocity field computed from the curl of a noise potential via finite differences. Unlike a plain angle-based flow field, it has no sources or sinks, so particles swirl like smoke or water instead of piling up.