WebGL Generative Particles 
This library is a Work In Progress. Feel free to request features, report bugs, or contribute. We aim to keep the APIs stable, though some changes may occur.

"webgl-generative-particles" is an efficient WebGL-based generative particle system simulator designed for both React and vanilla JS applications. This system follows the mouse pointer, providing interactive and dynamic visual effects. It offers seamless integration with React (including React 18 and beyond) and Next.js, making it an ideal choice for modern frontend development. The simulator is customizable, compatible with various frameworks, and delivers high performance and real-time rendering for progressive web development.
Check out the live demo at - https://webgl-generative-particles.vercel.app/
Features
âś… Fully Treeshakable (import from webgl-generative-particles/react)
âś… Fully TypeScript Supported
âś… Leverages the power of React 18 Server components
âś… Compatible with all React 18 build systems/tools/frameworks
âś… Documented with Typedoc (Docs)
âś… Examples for Next.js, Vite, and Remix
Please consider starring this repository and sharing it with your friends.
Getting Started
Installation
Using pnpm:
$ pnpm add webgl-generative-particles
Using npm:
$ npm install webgl-generative-particles
Using yarn:
$ yarn add webgl-generative-particles
Usage
import { Particles } from "webgl-generative-particles/react";
<Particles
fullScreenOverlay
options={{
rgba: [0, 1, 0, 0.5],
}}
/>
Simulator Options
export interface ParticlesOptions {
rgba?: [number, number, number, number];
maxParticles?: number;
generationRate?: number;
overlay?: boolean;
mouseOff?: boolean;
angleRange?: [number, number];
ageRange?: [number, number];
speedRange?: [number, number];
origin?: [number, number];
forceField?: Vector2D;
}
Credits
The concepts in this library were learned from the following blogs and tutorials:
License
This library is licensed under the MPL-2.0 open-source license.
Please consider enrolling in our courses or sponsoring our work.
with đź’– by Mayank Kumar Chaudhari