A fast 2kB low-level WebGL library for GPU-accelerated particle systems and high-performance visual effects.
Phenomenon is a lightweight, low-level WebGL library that enables developers to create high-performance particle systems and visual effects using GPU acceleration. It provides essential abstractions for managing millions of particles, custom shaders, and dynamic instances with minimal overhead. The library solves the problem of building complex WebGL applications without the bloat of larger frameworks.
Frontend developers and creative coders building real-time visualizations, particle effects, or interactive WebGL experiences where performance and bundle size are critical.
Developers choose Phenomenon for its extreme minimalism (2kB), zero dependencies, and fine-grained control over WebGL rendering, making it faster and more flexible than heavier alternatives for specific particle-based use cases.
⚡️ A fast 2kB low-level WebGL API.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
At only 2kB gzipped with zero dependencies, it minimizes bundle size and ensures fast load times, as highlighted in the README badges and description.
Efficiently handles millions of particles by offloading computations to the GPU, enabling smooth real-time visualizations for high-performance use cases.
Provides low-level access to WebGL contexts, shaders, and rendering settings, allowing developers to customize attributes, uniforms, and geometries precisely.
Instances can be added, removed, or destroyed at runtime without performance penalties, using methods like .add() and .remove() for interactive scenes.
Requires users to write and manage vertex/fragment shaders manually, with no high-level abstractions for common graphics tasks.
No out-of-the-box physics, animations, or pre-styled components, forcing extensive custom code for complex effects beyond particles.
The .prepareAttribute() function performs calculations on the CPU, which can cause dropped frames with many particles, as warned in the README.