Out of curiosity ,

Out of curiosity , what is the best way to go about doing frame by frame animation that isnt mathematical? Say if I had a grid of neopixels and wanted to draw a stick figure walking, or a smiley face blinking.

Create an array and map an image to it

You’ll want to convert each frame of the animation to a 2-D array of RGB values. Then store all the frames either in PROGMEM (flash) or perhaps on an external SD card.

To play it back, make a loop that copies the “next” frame into the leds[] buffer and calls FastLED.show(). Insert delays or other timing to get the playback speed the way you like.

Some folks here have done this, and might be willing to share some sample code. (The library itself doesn’t currently come with any of this sort of sample.)

Or you could try out my Sprite class :slight_smile:
It will allow you to animate the image automatically as well as motion if you want. Note though that it uses my flexible Matrix class as well ! Examples are included :slight_smile:

HI Aaron, thanks for your Sprite class. I’m trying to make a lcd marquee for my arcade cabinet, the Ikeakade, using strips of ws2812b. I can get my sprites to move with help from your examples, but one thing I can’t figure out is the background color. I noticed that for the Pacman example the background is green. I’m a newbie to arduino and I can’t for the life of me find where the background color is located in the sketch. Thanks if you got time to respond to this noob question!

When RenderSprites() is called the sprites are overlaid on the current LED data so if you are animating sprites on an empty background you should FastLED.clear() at the start of your loop function.
Anywhere there is a ‘0’ in the sprite data the respective LED will be left untouched.
The Mask data is only used for edge detection and collision detection.
Hope this helps you understand it a bit better, if not post again :slight_smile: