SwissGL is a compact JavaScript library that provides a streamlined abstraction layer over the WebGL2 API, designed to minimize boilerplate when building GPU-accelerated graphics, simulations, and procedural visualizations. Acting as a "Swiss Army knife" for WebGL2, it simplifies shader, texture, and framebuffer management into a single, expressive interface that enables developers to write complex GPU workflows in just a few lines of code. The library centers around one main function that unifies rendering and compute operations, allowing the creation of particle systems, GPGPU effects, and real-time simulations entirely on the GPU. Despite its simplicity and small size (under 1000 lines of code), SwissGL demonstrates remarkable flexibility, from basic visual experiments to complex multi-pass rendering pipelines. It’s also designed as an exploration of minimalist graphics API design, serving as an early experimental step toward the upcoming WebGPU era.
Features
- Minimal wrapper for WebGL2 reducing shader and framebuffer boilerplate
- Unified function interface for both rendering and compute-style GPU tasks
- Enables creation of GPGPU simulations, procedural art, and particle systems
- Supports dynamic texture management, history buffers, and multi-pass rendering
- Compact and expressive design with less than 1000 lines of JavaScript
- Ideal for experimentation with real-time graphics and shader-based computation