In this project, I wanted to explore the limits of the HTML5 Canvas API by creating a high-performance particle system without the help of external libraries. The goal was to maintain 60FPS while rendering over 5,000 individual interactive elements.
The core logic utilizes a Quadtree spatial partitioning algorithm. This ensures that collision detection and mouse interaction only check particles in the immediate vicinity, rather than iterating through the entire array every frame.
The end result is a fluid, organic simulation that reacts to user input in real-time. This project helped me refine my understanding of vector math and memory management in JavaScript.