I had an idea of using an 8x8 RGB LED matrix to create a self-contained device that generates an ever changing, dreamy, fluid animation - kind of like an electronic lava lamp.
After trying some other approaches, I eventually implemented a particle system library that includes:
- a generic particle system class that manages everything
- a generic renderer to render the particles onto the LED matrix
- several classes of particles and emitters with various behaviors.
An effort was made to make the code efficient in terms of calculations and memory, in order to maximize the number of particles that can be used in parallel (I got to a little over a 100).
Using a diffuser screen and with the right motion speed, the pixels disappear and the resulting animations look pretty smooth.
The source code is available on github, where you can also find more info and some usage examples: https://github.com/giladaya/arduino-particle-sys