The video shows a rough proof of concept at an early iteration.
After I looked again at my FunkyClouds SpiralStream function I realized that it´s… well, buggy, staticly creating always the same movement, based on a boring square, working only with odd sidelenghts, FUBAR.
So instead of fixing this all I had a better idea: the fractional shifting is a powerful thing when being combined with input data from a noise field.
In the video the yellow dot is moving along a circle, the red one along a “Lissajous 8”.
After that every row is shifted on a 32 integers * 256 fractions base. The values for every row are provided by a 16 bit noise. What falls over the edge while shifting in one direction is filled in on the other side. That creates a one dimensional movement with a perfect antialiasing.
Next is the same thing along the second dimension with every column - again based on (different) noise data.
At the end instead of deleting the screenbuffer everything gets scaled down a little for the tail effect.
tl;dr: SpiralStream is dead, noise smearing is the future!
P.S. I wish everyone here a blessed, healthy, happy and - last but not least - creative new year!
Looks great! I still like the SpiralStream as well. Questions:
- I assume it’d be possible to rework SpiralStream to use fractional shifting?
- Does this still look cool without the edge wrapping?
- Sometimes it looks like the dots are being shifted more than one pixel away and leaving a series of dots behind instead of a smooth trail. I assume this could be solved by reducing the noise speed?
Thanks, @Jason_Coon !
*1) Maybe. From my perspective of now the SpiralStream is pretty poor constructed. Today I would prefer to rework the smearing in a way that it is not based on noise but on static predefined/-calculated data which could create any constant smear shape you want - a spiral, a circle, an eight, zigzag, …
*2) I think so, but I would slow it down for that - otherwise it produces mainly just a linear tail in changing directions.
*3) I was just the very first test of the idea, so I did not think about how to tune it yet. But I will It could be eliminated by allowing shifting only in the fractional range. It the video I allowed a maximal amplitude of 4 pixels per frame in both directions - shifting by this amount produces these series of dots.
Once again Stefan you come up with another beauty. It boggles my mind how you even come up with these ideas and put them into practice.
Thanks, @Chris_Hughes ! I would say the ideas come to me and are often iterations of existing ones.
A large collection of code from other experiments helps to give them a quick try and sort out if it´s worth to spend more time on it.
Fantastic! I really like the new one as well, very smooth. The constant smear shape idea would be amazing. I hope you take my questions as burning curiosity and thoughtful discussion, and not as criticism.
Sure, Jason, any inspiration and questions are appreciated! And I have also no problem with criticism as it often leads to new insights and finding blind spots.
Very nice , I specially like the slower version of it !
What size, type matrix are you using ?
What about the controller ?
Any other HW components ?
Lusciousness. I like Noise Smear II a bit better since the tails don’t get so stretched out (broken up), but both are great!
I would love to see an oscillating background between the two videos. They are equally fantastic on their own, but imagine a world of both!?!
The fast one looks like a desert sand storm and the slower, a particle dissolving in liquid. Bravo.
Man I would love to get this running on my jacket. Mesmerising.
Code will follow after I cleaned it up and commented it, @Robert_Atkins .
I’m looking forward to trying it out on my display. I understand that you want to wait until it’s clean and commented, but I don’t mind if it’s ugly and not commented.
At the moment I have everything since the beginning of FunkyNoise in one sketch with 10 tabs. It´s arround 80k source code. Hundreds of functions somehow depending on each other, sometimes 5 very similar but slighly different functions for special purposes - with other words: a big heap of mess. When I find time I will extract everything that´s essential for the noise smearing and publish it, please have a bit patience with me. There is also still a major bug in it and I am not sure yet if it´s my mistake or if the FastLED scaling functions produce unexpected results in extreme situations. You probably know it yourself: the first 90 percent of an idea take 10 percent of the time you spend until it works completely as imagined. So hopefully I´m not overwelmed by new ideas and find time soon to finish what I started. @Jason_Coon @Pixelmatix