Вот, решил посмотреть генератор узоров на ней. В этой версии вместо математики просто массив-переходник, если вдруг придумается геометрия не поддающаяся формулам
Забивать данные конечно тяжко, можно ошибиться. Пришлось рисовать цветную шпаргалку:

Спойлер
/////////////////////////////////////
// примеры для ws2812b
//Arduino UNO
#include "Adafruit_NeoPixel.h"
#define line_ 256 //число пикселей в ленте
uint8_t dataPin = 6;// вывод для подключения
Adafruit_NeoPixel strip = Adafruit_NeoPixel(line_,dataPin , NEO_GRB + NEO_KHZ800);// Создаем переменную strip для управления нашей лентой.
byte M=2;//мощность свечения
//1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
byte massiv_per[16][16]={{207,199,71, 79, 251,243,115,123,184,176,48,56,140,132, 4,12},//1
{223,215,87, 95, 250,242,114,122,168,160,32,40,141,133, 5,13},//2
{206,198,70, 78, 235,227,99, 107,185,177,49,57,156,148,20,28},//3
{205,197,69, 77, 219,211,83, 91, 186,178,50,58,172,164,36,44},//4
{222,214,86, 94, 234,226,98, 106,169,161,33,41,157,149,21,29},//5
{239,231,103,111,249,241,113,121,152,144,16,24,142,134, 6,14},//6
{255,248,119,127,247,240,112,120,136,128, 0, 8,143,135, 7,15},//7
{238,230,102,110,233,225,97, 105,153,145,17,25,158,150,22,30},//8
{221,213,85, 93, 218,210,82, 90, 170,162,34,42,173,165,37,45},//9
{204,196,68, 76, 203,195,67, 75, 187,179,51,59,188,180,52,60},//10
{220,212,84, 92, 202,194,66, 74, 171,163,35,43,189,181,53,61},//11
{237,229,101,109,217,209,81, 89, 154,146,18,26,174,166,38,46},//12
{254,246,118,126,232,224,96, 104,137,129, 1, 9,159,151,23,31},//13
{253,245,117,125,216,208,80, 88, 138,130, 2,10,175,167,39,47},//14
{236,228,100,108,201,193,65, 73, 155,147,19,27,190,182,54,62},//15
{252,244,116,124,200,192,64, 72, 139,131, 3,11,191,183,55,63},//16
};
byte massiv_kolzo[16]={2,2,2,2,0,0,0,0,6,6,5,6,0,0,0,0};// начальный набор цветов
///RGB
void setup() {
strip.begin();
}
void loop() {
for(int i=0;i<16;i++){
gruppa(i,massiv_kolzo[i]);
}
strip.show();
delay(200);//быстрота смены узора
kolzo();
if(millis()%5==0){massiv_kolzo[0]=random(0,8);}
if(millis()%5==1){massiv_kolzo[0]=0;}
}
/////////////////////////////////////
void gruppa(byte n,byte cv){
for(int in=0;in<16;in++){
strip.setPixelColor(massiv_per[n][in],(cv%2)*M,((cv/2)%2)*M ,((cv/4)%2)*M );
}
//strip.show();
}
/////////////////////////////////////
void kolzo(){
byte V=0;
for(int in=0;in<16;in++){
if(in!=0&&in!=15){massiv_kolzo[in]=massiv_kolzo[in+1];}
if(in==0){V=massiv_kolzo[in];massiv_kolzo[0]=massiv_kolzo[1];}
if(in==15){massiv_kolzo[in]=V;}
}
}
/////////////////////////////////////
Думаю приделать прямо на корпус ПК, для релакса и чтоб под рукой было для макетирования.
…Нашёл маленькую нано с тремя умными пикселями на плате. Как раз приклеить сзади матрицы.