I proudly present: #FunkyClouds (alpha version)
https://gist.github.com/anonymous/2eb826070e108b09b8fd
(use this link for code with correct spacing)
It’s meant to be a visual effect API allowing people to easiely express dynamic visual ideas.
I’m excited to see you guys playing with it, developing new or modifying existing effects and than sharing the results as code and video here. I count on the swarm intelligence and the swarm play instinct and I’m looking foreward to seeing a lot of new effects and helper functions.
Instead of tutorials (which might follow) I share for now some example functions which hopefully give you an idea, how easy and short basic effects can be described now.
It’s all about the visualisation of oszillators and/or MSGEQ7 spectrum analyzer data.
The concept of FunkyClouds is, that all effects are basically rendered into a 16*16 CRGB array, no matter what output device you really use. Because of my limited programming skills that’s for now the only possibility I see to create reproducable effects which appear on every device in the same way.
There is (at the end of the code) the function RenderCustomMatrix() where you are invited to define the mapping of your own matrix – where you describe, how the data from the 1616 CRGB leds will be mapped into the CRGB leds2. If you use an 1616 you can skip this. Maybe you want to change the layout in the XY() function – it’s based on a serpentine wiring at the moment. I’m happy to support your first steps – adjusting details until you see the AutoRun() example working. I strongly recommend to read the comments in the code first.
At the moment all the code comes in one file – so you can easiely have a look what the functions do. There is also no kind of performance optimization yet – I could tell you it’s in order to keep the code readable, but the truth is my leck of abilities and time… But hey, it’s an alpha version!
Hardware requirements: For now the code is only tested on an ATmega2560 with 4kB RAM. I don’t expect it working on an Uno with 2kB. I tested it with an 8*8 matrix too and yes - it’s working - but I seriously recommend to use something bigger…
Enjoy playing and please report your experiences! Any comment is appreciated.
Stefan
https://gist.github.com/anonymous/876f908333cd95315c35