Adaptation of the 'roboface' animation for the Adafruit IS31FL3741 LED Glasses.
I borrowed the concept and a good bit of code from the 'roboface' example in the Adafruit LED backpack library (https://github.com/adafruit/Adafruit_LED_Backpack/) and adapted it to the nifty LED Glasses by Adafruit (https://www.adafruit.com/product/5210). I used the Adafruit nRF52840 LED Glasses Driver (https://www.adafruit.com/product/5217), but this code should work on most microcontrollers with little or no adjustment (though on slower microcontrollers you may want to increase the animation interval until the animation is smooth).
For the pupil animation, I'm borrowing the logic from the classic 'roboface' Adafruit LED backpack sample. For the blinking, the basic idea is to split up the ring pixels into "rows" that more easily correspond to the matrix rows. When blinking, we move the "eyelids" down by drawing the top "row" of the eye down over time on both the ring and the matrix pixels (drawing the ring pixels last to handle the overlapping pixel), clearing the pixels above the eyelid, and drawing the same color as the ring color to represent the eyelid. This has the effect of drawing over the pupil, causing it to be obscured.