Background and Problem
Visual effects like smoke, explosions, or magic spells are notorious performance bottlenecks in WebGL. Poorly optimised particle systems create excessive draw calls that quickly exhaust GPU resources, especially on mobile hardware. In addition, Three.js lacks built-in visual authoring tools comparable to those in modern game engines.
Architecture and Features
Written in TypeScript, three.quarks addresses these bottlenecks through its central BatchedRenderer. Rather than rendering each emitter separately, it batches draw operations across systems.
- Configuration: Particle attributes such as velocity, lifespan, and color gradients are controlled through utility classes like
IntervalValue and ConstantColor.
- Editor workflow: The web-based editor at
quarks.art/create gives artists and developers a real-time preview to design effects and export them as JSON.
- Runtime integration: Using
QuarksLoader, teams can load exported JSON files directly into their Three.js scene graphs without hardcoding particle properties.
- Unity compatibility: The ability to import setups from Unity's Shuriken engine significantly reduces friction when porting 3D assets to the web.
Maturity and Audience
With more than 1,100 GitHub stars, an MIT licence, and live production demos, three.quarks is a mature, capable library. It is ideal for WebGL developers, creative technologists, and digital agencies building interactive 3D web experiences and browser games.