FunkyNoise animation playground

StefanPetrick

Well-known member
Hi everybody,

just a short video showing FastLEDs 16 bit Perlin Noise in 3 layers on a 32x32 SmartMatrix.

The first 2 layers get overlaid for the color information, layer 3 is a brightness mask.

Driven by a Teensy 3.1@96 MHz. 54 fps with the Teensy also multiplexing the leds.
With 2 layers I get 74 fps, with just one 108 fps.

The flickering is caused by a interference between the multiplexing speed and the camera fps.
In reality it looks really smooth.

More animations and code will follow.

Cheers!
 
Last edited:
A video demonstrating animations based on only one noise layer:

A constrained noise reused as a dynamic mask. So the same noise with two differnt colormappings and differnt orientations + the mask showing you the first or the second set. Again, it is all based on the very same data.

And in the second part of the video a noise with coordinates, scaling and palette parameters filled with random values every second.

By the way: is that stuff interesting / inspiring for one of you or is it basically too trivial for the forum here?
Just asking, because it is not my intention to bore you guys.
 
Last edited:
This is really great work, thanks for posting it. I don't have a SmartMatrix but I'm going to try to adapt your code to work on the 18x16 WS2812 matrix I have.

Thanks again!
 
It should be easy to adapt the code to any matrix size. But I´m abroad right now and have no other led setup by hand to test it.

Adjust kMatrixWidth and kMatrixHeight and modify the XY function in case you use a serpentine layout. Get rid of the SM specific color correction in the setup part. These are the main points I´m aware of.

It is probably also a good idea to go down with the scale_x and scale_y values to make the animations look nice on less leds.

Please report how it works out for you and if you encountered any challenges!

Thanks and greetings!

edit: One more note - check the serial monitor for the fps you get. In case you get with the single layer animations more than 400 fps the WS2812 will not digest it well an all you get will be a wild flickering / nothing. I´m not sure if FastLED takes care about that yet. In case it happens just add a little delay before FastLED.show in order to limit the fps to values arround 400. Some WS2812 models quit at 390 fps some at 410 fps... But this should be only an issue when driving the leds on multiple data lines.

edit2: We discussed yesterday in the FastLED community how to adapt the code for a 16x16 matrix and it turned out that it is also useful to decrease the noisesmoothing. I would say values between 50 and 100 should work fine.
 
Last edited:
I am having some weird behavior on the Teensy3.1 and this sketch. I have tried different programs and examples from FastLED, and they function normally/as expected.

The problem I am encountering is that the code Stefan posted on the LED forum, will only function and operate when it is plugged into a computer USB. I have cut the trace on the Teensy3.1 separating power supplies via a switch. The problem will persist in different MHz settings as i have tried them all. I have even tried removing all Serial dependence in the sketch, to no avail. I am not using a Smartmatrix, rather Neopixels using the parallel port on FastLED. The problem persists with or without the parallel port for writing LED data.

After pressing the button to activate/download the new sketch, the program will run as long as I leave the USB plug in the Teensy. I can remove the USB during operation and the program will continue to run. After a power down and the USB removed, the Teensy3.1 runs about a half second before it hangs right after power up. What's goin on???
 
Last edited:
What are you using to power the display and Teensy? You said other FastLED examples work, but the hanging could be caused by a brownout if driving the LEDs causes the power supply to sag. I put a diode on the SmartMatrix shield between the 5V supply that goes to the LEDs and Vin going to the Teensy to give a bit of separation and the input caps on the Teensy will keep the Vin from drooping too much.
 
Last edited:
Just that the latest code version in now available as a GitHub repository.

About the power issue I can´t say anything supportive. On the SM I have no problem to have the Teensy powered externally.
 
Last edited:
Yes, I added the caleidoscope functions and examples on GitHub.

It contains the code for all the videos I showed above.

Let me know if you have questions and of course I´m always curious to see what the people out there do with the functions!
 
Last edited:
Stefan,

Thanks for posting your code. I really look forward to running the mandela on my Smart Matrix. Unfortunately I cannot compile the code in the IDE. Did you miss checking in a file? I seem to be missing the EVERY_N_SECONDS and EVERY_N_MILLIS functions.

Thanks for your work
 

An example of video crossfading between two different animations which get new random parameter sets in the moment when they are shortly unvisible.

I also applied Mark Kriegsmanns color palette crossfading.

108 fps @ 36 bit color depth.

Is it worth a try or just plain stupid to overclock the Teensy >96 MHz?

I want to see MOAR fps! :)
 
Last edited:
A happy and creative new year to everyone here!

I played with the idea to use a simplex noise field to simulate turbulent wind - and that´s how it looks like:

 
Where has the Stefan Petrick "Electric Mandala"/Teensy/Arduino code moved to?

Yes, I added the caleidoscope functions and examples on GitHub.

It contains the code for all the videos I showed above.

Let me know if you have questions and of course I´m always curious to see what the people out there do with the functions!

I've been reaquinted my SmartMatrix display which is hooked up to a Teensy 3.1 board and I'm wanting to see "Electric Mandala" by Stefan Petrick running on my setup. Does anyone know where the code resides on the internet?
 
Not noise related, but in case any of you guys has a Teensy 3.6 or higher + a LED matrix around, you might enjoy playing with this and this. Code & parameter sets are in the comments under the post.
 
Last edited:
Back
Top