This was too good not to add into the library for 2.1.

This was too good not to add into the library for 2.1. A simplex noise implementation (thanks to @Kasper_Kamperman for the pointer to a starting implementation), optimized for 8 & 16 bit math - over six times faster than Perlin’s fixed point implementation.

This has now been pushed to the 2.1 branch along with a simple example. More docs coming.

(Nb - I have not yet tuned the 1d and 2d versions, they may glitch a little).

Damnit g+ … I want a flag to tell it to not actually post a post until the video processing has finished.

So with a 16x16 array, i’m able to get about 50 frames a second on an arduino nano using 8 bit noise. I can go up to 4 octaves of noise (i’ll be adding octave code to the library soon, I think) and still pull 20fps :slight_smile:

BWAHAHAHAHA! I LOVE the clip! Awesome trailer!

(Also, the hardware in this video isn’t mine - it’s a box @Mark_Kriegsman built that he let me borrow for a bit to get more done on this)

So I have to ask … how much work have you done or tested on the UDOO?

I did enough to get the timing settled down on it, but I haven’t gone back to it since. I did bring a due with me on this trip, I should see how fast this code runs on that…

Good, glad to know it’s serving a purpose.

Without having done any optimizations for 32 bit platforms yet - on the due, the perlin impimentation is 125k/s, inoise16 is 100k/s, and inoise8 is 143k/s. I need to look into why the 16-bit function is the laggard this time around (and the difference between perlin and inoise8 isn’t quite as great on 32-bit arm). Of course, 143k/s is only 4.7x the 30k/s I was getting on the nano, but there’s 5.25x clocks - which means there’s most definitely room for me to make things better/faster :slight_smile:

Wow. Awesome work. How do you have time to sleep?

Excellent video @Daniel_Garcia ! Very creative. :slight_smile:

Looks great!

Excellent…great!