You are on page 1of 16

#include <avr/pgmspace.

h> // allows use of PROGMEM to store patterns in flash


#define
#define
#define
#define

CUBESIZE 4 //Definimos el tamao del cubo


PLANESIZE CUBESIZE*CUBESIZE
PLANETIME 1000 // Tiempo que refresca
TIMECONST 10 //El tiempo que se encender

const char PROGMEM PatternTable[] = {


B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
00,B0000,B0000,B0000, 100,
// circle full layer at bottom
B0000,B0000,B0100,B0000, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
B0000,B0000,B0110,B0000, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
B0000,B0010,B0110,B0000, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
B0000,B0110,B0110,B0000, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
B0000,B1110,B0110,B0000, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
B0000,B1110,B1110,B0000, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
B0000,B1110,B1110,B1000, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
B0000,B1110,B1110,B1100, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
B0000,B1110,B1110,B1110, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
B0000,B1110,B1110,B1111, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
B0000,B1110,B1111,B1111, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
B0000,B1111,B1111,B1111, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
B0001,B1111,B1111,B1111, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
B0011,B1111,B1111,B1111, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
B0111,B1111,B1111,B1111, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
B1111,B1111,B1111,B1111, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 20,
// circle full layer at bottom
B0000,B0000,B0100,B0000, B0000,B0000,B0100,B0000,
00,B0000,B0100,B0000, 10,
B0000,B0000,B0110,B0000, B0000,B0000,B0110,B0000,
00,B0000,B0110,B0000, 10,
B0000,B0010,B0110,B0000, B0000,B0010,B0110,B0000,
00,B0010,B0110,B0000, 10,
B0000,B0110,B0110,B0000, B0000,B0110,B0110,B0000,
00,B0110,B0110,B0000, 10,
B0000,B1110,B0110,B0000, B0000,B1110,B0110,B0000,
00,B1110,B0110,B0000, 10,
B0000,B1110,B1110,B0000, B0000,B1110,B1110,B0000,

B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0100,B0000, B00
B0000,B0000,B0110,B0000, B00
B0000,B0010,B0110,B0000, B00
B0000,B0110,B0110,B0000, B00
B0000,B1110,B0110,B0000, B00
B0000,B1110,B1110,B0000, B00

00,B1110,B1110,B0000, 10,
B0000,B1110,B1110,B1000,
00,B1110,B1110,B1000, 10,
B0000,B1110,B1110,B1100,
00,B1110,B1110,B1100, 10,
B0000,B1110,B1110,B1110,
00,B1110,B1110,B1110, 10,
B0000,B1110,B1110,B1111,
00,B1110,B1110,B1111, 10,
B0000,B1110,B1111,B1111,
00,B1110,B1111,B1111, 10,
B0000,B1111,B1111,B1111,
00,B1111,B1111,B1111, 10,
B0001,B1111,B1111,B1111,
01,B1111,B1111,B1111, 10,
B0011,B1111,B1111,B1111,
11,B1111,B1111,B1111, 10,
B0111,B1111,B1111,B1111,
11,B1111,B1111,B1111, 10,
B1111,B1111,B1111,B1111,
11,B1111,B1111,B1111, 10,

B0000,B1110,B1110,B1000, B0000,B1110,B1110,B1000, B00


B0000,B1110,B1110,B1100, B0000,B1110,B1110,B1100, B00
B0000,B1110,B1110,B1110, B0000,B1110,B1110,B1110, B00
B0000,B1110,B1110,B1111, B0000,B1110,B1110,B1111, B00
B0000,B1110,B1111,B1111, B0000,B1110,B1111,B1111, B00
B0000,B1111,B1111,B1111, B0000,B1111,B1111,B1111, B00
B0001,B1111,B1111,B1111, B0001,B1111,B1111,B1111, B00
B0011,B1111,B1111,B1111, B0011,B1111,B1111,B1111, B00
B0111,B1111,B1111,B1111, B0111,B1111,B1111,B1111, B01
B1111,B1111,B1111,B1111, B1111,B1111,B1111,B1111, B11

// loop all borders around


B1111,B0000,B0000,B0000, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 5,
B0000,B1111,B0000,B0000, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 5,
B0000,B0000,B1111,B0000, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 5,
B0000,B0000,B0000,B1111, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 5,
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B1111,
00,B0000,B0000,B0000, 5,
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 5,
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000,
00,B0000,B0000,B1111, 5,
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000,
00,B0000,B1111,B0000, 5,
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000,
00,B1111,B0000,B0000, 5,
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000,
11,B0000,B0000,B0000, 5,
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 5,
B0000,B0000,B0000,B0000, B1111,B0000,B0000,B0000,
00,B0000,B0000,B0000, 5,
// and again
B1111,B0000,B0000,B0000,
00,B0000,B0000,B0000, 2,
B0000,B1111,B0000,B0000,
00,B0000,B0000,B0000, 2,
B0000,B0000,B1111,B0000,
00,B0000,B0000,B0000, 2,
B0000,B0000,B0000,B1111,
00,B0000,B0000,B0000, 2,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 2,
B0000,B0000,B0000,B0000,

B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B1111, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B11
B1111,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00

B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00


B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B1111, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B1111, B00

00,B0000,B0000,B0000, 2,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B1111, 2,
B0000,B0000,B0000,B0000,
00,B0000,B1111,B0000, 2,
B0000,B0000,B0000,B0000,
00,B1111,B0000,B0000, 2,
B0000,B0000,B0000,B0000,
11,B0000,B0000,B0000, 2,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 2,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 2,
B1111,B0000,B0000,B0000,
00,B0000,B0000,B0000, 2,
// all borders
B1111,B1001,B1001,B1111,
11,B1001,B1001,B1111, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B1111,B1001,B1001,B1111,
11,B1001,B1001,B1111, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B1111,B1001,B1001,B1111,
11,B1001,B1001,B1111, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
// all borders fall down
B1111,B1001,B1001,B1111,
11,B1001,B1001,B1111, 100,
B1111,B1001,B1001,B1111,
00,B1111,B1001,B1111, 8,
B1111,B1001,B1001,B1111,
00,B0000,B1111,B1111, 8,
B1111,B1001,B1001,B1111,
00,B0000,B0000,B1111, 8,
B0000,B1111,B1001,B1111,
00,B0000,B0000,B0000, 8,
B0000,B0000,B1111,B1111,
00,B0000,B0000,B0000, 8,
B0000,B0000,B0000,B1111,
00,B0000,B0000,B0000, 8,

B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00


B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B11
B0000,B0000,B0000,B0000, B1111,B0000,B0000,B0000, B00
B1111,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00

B1001,B0000,B0000,B1001, B1001,B0000,B0000,B1001, B11


B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B1001,B0000,B0000,B1001, B1001,B0000,B0000,B1001, B11
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B1001,B0000,B0000,B1001, B1001,B0000,B0000,B1001, B11
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
from back top to front bottom
B1001,B0000,B0000,B1001, B1001,B0000,B0000,B1001, B11
B1001,B0000,B0000,B1001, B1111,B0000,B0000,B1001, B00
B1111,B0000,B0000,B1001, B0000,B1111,B0000,B1001, B00
B0000,B1111,B0000,B1001, B0000,B0000,B1111,B1001, B00
B0000,B0000,B1111,B1001, B0000,B0000,B0000,B1111, B00
B0000,B0000,B0000,B1111, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00

// 4 at the time to make a block


B0000,B0000,B0011,B0011, B0000,B0000,B0011,B0011,
00,B0000,B0000,B0000, 10, // left bottom front
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000,
00,B1100,B0000,B0000, 10, // right top, back
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000,
00,B0000,B1100,B1100, 10, // right top, front
B0011,B0011,B0000,B0000, B0011,B0011,B0000,B0000,
00,B0000,B0000,B0000, 10, // left bottom, back
B0000,B0000,B1100,B1100, B0000,B0000,B1100,B1100,
00,B0000,B0000,B0000, 10, // right bottom front
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000,
11,B0011,B0000,B0000, 10, // left top, back
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000,
00,B0000,B0011,B0011, 10, // left top, front

B0000,B0000,B0000,B0000, B00
B1100,B1100,B0000,B0000, B11
B0000,B0000,B1100,B1100, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0011,B0011,B0000,B0000, B00
B0000,B0000,B0011,B0011, B00

B1100,B1100,B0000,B0000, B1100,B1100,B0000,B0000, B0000,B0000,B0000,B0000, B00


00,B0000,B0000,B0000, 10, // right bottom, back
// rotate corner 4 leds
B0000,B0000,B0011,B0011, B0000,B0000,B0011,B0011, B1100,B1100,B0000,B0000,
00,B1100,B0000,B0000, 20, // left bottom front and right top, back
B0000,B0000,B1100,B1100, B0000,B0000,B1100,B1100, B0011,B0011,B0000,B0000,
11,B0011,B0000,B0000, 20, // right bottom front and left top, back
B1100,B1100,B0000,B0000, B1100,B1100,B0000,B0000, B0000,B0000,B0011,B0011,
00,B0000,B0011,B0011, 20, // left top, front and right bottom, back
B0011,B0011,B0000,B0000, B0011,B0011,B0000,B0000, B0000,B0000,B1100,B1100,
00,B0000,B1100,B1100, 20, // left bottom, back and right top, front

B11
B00
B00
B00

B0000,B0000,B0011,B0011, B0000,B0000,B0011,B0011, B1100,B1100,B0000,B0000,


00,B1100,B0000,B0000, 15, // left bottom front and right top, back
B0000,B0000,B1100,B1100, B0000,B0000,B1100,B1100, B0011,B0011,B0000,B0000,
11,B0011,B0000,B0000, 15, // right bottom front and left top, back
B1100,B1100,B0000,B0000, B1100,B1100,B0000,B0000, B0000,B0000,B0011,B0011,
00,B0000,B0011,B0011, 15, // left top, front and right bottom, back
B0011,B0011,B0000,B0000, B0011,B0011,B0000,B0000, B0000,B0000,B1100,B1100,
00,B0000,B1100,B1100, 15, // left bottom, back and right top, front

B11

B0000,B0000,B0011,B0011, B0000,B0000,B0011,B0011, B1100,B1100,B0000,B0000,


00,B1100,B0000,B0000, 10, // left bottom front and right top, back
B0000,B0000,B1100,B1100, B0000,B0000,B1100,B1100, B0011,B0011,B0000,B0000,
11,B0011,B0000,B0000, 10, // right bottom front and left top, back
B1100,B1100,B0000,B0000, B1100,B1100,B0000,B0000, B0000,B0000,B0011,B0011,
00,B0000,B0011,B0011, 10, // left top, front and right bottom, back
B0011,B0011,B0000,B0000, B0011,B0011,B0000,B0000, B0000,B0000,B1100,B1100,
00,B0000,B1100,B1100, 10, // left bottom, back and right top, front

B11

B0000,B0000,B0011,B0011, B0000,B0000,B0011,B0011, B1100,B1100,B0000,B0000,


00,B1100,B0000,B0000, 7, // left bottom front and right top, back
B0000,B0000,B1100,B1100, B0000,B0000,B1100,B1100, B0011,B0011,B0000,B0000,
11,B0011,B0000,B0000, 7, // right bottom front and left top, back
B1100,B1100,B0000,B0000, B1100,B1100,B0000,B0000, B0000,B0000,B0011,B0011,
00,B0000,B0011,B0011, 7, // left top, front and right bottom, back
B0011,B0011,B0000,B0000, B0011,B0011,B0000,B0000, B0000,B0000,B1100,B1100,
00,B0000,B1100,B1100, 7, // left bottom, back and right top, front

B11

B0000,B0000,B0011,B0011, B0000,B0000,B0011,B0011, B1100,B1100,B0000,B0000,


00,B1100,B0000,B0000, 5, // left bottom front and right top, back
B0000,B0000,B1100,B1100, B0000,B0000,B1100,B1100, B0011,B0011,B0000,B0000,
11,B0011,B0000,B0000, 5, // right bottom front and left top, back
B1100,B1100,B0000,B0000, B1100,B1100,B0000,B0000, B0000,B0000,B0011,B0011,
00,B0000,B0011,B0011, 5, // left top, front and right bottom, back
B0011,B0011,B0000,B0000, B0011,B0011,B0000,B0000, B0000,B0000,B1100,B1100,
00,B0000,B1100,B1100, 5, // left bottom, back and right top, front

B11

B0000,B0000,B0011,B0011, B0000,B0000,B0011,B0011, B1100,B1100,B0000,B0000,


00,B1100,B0000,B0000, 2, // left bottom front and right top, back
B0000,B0000,B1100,B1100, B0000,B0000,B1100,B1100, B0011,B0011,B0000,B0000,
11,B0011,B0000,B0000, 2, // right bottom front and left top, back
B1100,B1100,B0000,B0000, B1100,B1100,B0000,B0000, B0000,B0000,B0011,B0011,
00,B0000,B0011,B0011, 2, // left top, front and right bottom, back
B0011,B0011,B0000,B0000, B0011,B0011,B0000,B0000, B0000,B0000,B1100,B1100,
00,B0000,B1100,B1100, 2, // left bottom, back and right top, front

B11

// bottom layer, to top though middle

B00
B00
B00

B00
B00
B00

B00
B00
B00

B00
B00
B00

B00
B00
B00

B1111,B1111,B1111,B1111,
00,B0000,B0000,B0000, 30,
B0000,B0110,B0110,B0000,
00,B0110,B0110,B0000, 2,
B0000,B0000,B0000,B0000,
00,B0110,B0110,B0000, 2,
B0000,B0000,B0000,B0000,
00,B0110,B0110,B0000, 2,
B0000,B0000,B0000,B0000,
00,B0110,B0110,B0000, 2,
B0000,B0000,B0000,B0000,
11,B1111,B1111,B1111, 20,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,

B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00


B0000,B0110,B0110,B0000, B0000,B0110,B0110,B0000, B00
B0000,B0110,B0110,B0000, B0000,B0110,B0110,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0110,B0110,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B11
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00

// loop top and bottom corners


B0100,B0000,B0000,B0010, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0010, 5,
B0010,B0000,B0000,B0100, B0000,B0000,B0000,B0000,
10,B0000,B0000,B0100, 5,
B0001,B0000,B0000,B1000, B0000,B0000,B0000,B0000,
01,B0000,B0000,B1000, 5,
B0000,B0001,B1000,B0000, B0000,B0000,B0000,B0000,
00,B0001,B1000,B0000, 5,
B0000,B1000,B0001,B0000, B0000,B0000,B0000,B0000,
00,B1000,B0001,B0000, 5,
B1000,B0000,B0000,B0001, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0001, 5,
// again
B0100,B0000,B0000,B0010,
00,B0000,B0000,B0010, 5,
B0010,B0000,B0000,B0100,
10,B0000,B0000,B0100, 5,
B0001,B0000,B0000,B1000,
01,B0000,B0000,B1000, 5,
B0000,B0001,B1000,B0000,
00,B0001,B1000,B0000, 5,
B0000,B1000,B0001,B0000,
00,B1000,B0001,B0000, 5,
B1000,B0000,B0000,B0001,
00,B0000,B0000,B0001, 5,
// loop up and down full
B1111,B1111,B1111,B1111,
00,B0000,B0000,B0000, 10,
B0001,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0001,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0001,B0000,B0000,B0000,
11,B1111,B1111,B1111, 10,
B0001,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0001,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B1111,B1111,B1111,B1111,
00,B0000,B0000,B0000, 10,

B0000,B0000,B0000,B0000, B01
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B10

B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B01


B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B10
layer
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B1111,B1111,B1111,B1111, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B1111,B1111,B1111,B1111, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B11
B0000,B0000,B0000,B0000, B1111,B1111,B1111,B1111, B00
B1111,B1111,B1111,B1111, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00

B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00

00,B0000,B0000,B0000, 10,
// loop left and right full layer
B0001,B0001,B0001,B0001, B0001,B0001,B0001,B0001,
01,B0001,B0001,B0001, 10,
B0010,B0010,B0010,B0010, B0010,B0010,B0010,B0010,
10,B0010,B0010,B0010, 10,
B0100,B0100,B0100,B0100, B0100,B0100,B0100,B0100,
00,B0100,B0100,B0100, 10,
B1000,B1000,B1000,B1000, B1000,B1000,B1000,B1000,
00,B1000,B1000,B1000, 10,
B0100,B0100,B0100,B0100, B0100,B0100,B0100,B0100,
00,B0100,B0100,B0100, 10,
B0010,B0010,B0010,B0010, B0010,B0010,B0010,B0010,
10,B0010,B0010,B0010, 10,
B0001,B0001,B0001,B0001, B0001,B0001,B0001,B0001,
01,B0001,B0001,B0001, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0001,B0001,B0001,B0001,
01,B0001,B0001,B0001, 10,
B1001,B1001,B1001,B1001,
01,B1001,B1001,B1001, 10,
B1111,B1111,B1111,B1111,
01,B1001,B1001,B1001, 10,
B1111,B1111,B1111,B1111,
11,B1111,B1111,B1111, 10,
B1111,B1111,B1111,B1111,
11,B1111,B1111,B1111, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,

B0010,B0010,B0010,B0010, B00
B0100,B0100,B0100,B0100, B01
B1000,B1000,B1000,B1000, B10
B0100,B0100,B0100,B0100, B01
B0010,B0010,B0010,B0010, B00
B0001,B0001,B0001,B0001, B00

B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00


B0001,B0001,B0001,B0001, B0001,B0001,B0001,B0001, B00
B1001,B1001,B1001,B1001, B1001,B1001,B1001,B1001, B10
B1001,B1001,B1001,B1001, B1001,B1001,B1001,B1001, B10
B1001,B1001,B1001,B1001, B1001,B1001,B1001,B1001, B11
B1111,B1001,B1001,B1111, B1111,B1001,B1001,B1111, B11
B0000,B0110,B0110,B0000, B0000,B0110,B0110,B0000, B00

// outer cube, inner cube


B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B1111,B1111,B1111,B1111, B1111,B1111,B1111,B1111,
11,B1111,B1111,B1111, 10,
B0000,B0000,B0000,B0000, B0000,B0110,B0110,B0000,
00,B0000,B0000,B0000, 10,
B1111,B1111,B1111,B1111, B1111,B1111,B1111,B1111,
11,B1111,B1111,B1111, 10,
B0000,B0000,B0000,B0000, B0000,B0110,B0110,B0000,
00,B0000,B0000,B0000, 10,
B1111,B1111,B1111,B1111, B1111,B1111,B1111,B1111,
11,B1111,B1111,B1111, 10,
B0000,B0000,B0000,B0000, B0000,B0110,B0110,B0000,
00,B0000,B0000,B0000, 10,
B1111,B1111,B1111,B1111, B1111,B1111,B1111,B1111,
11,B1111,B1111,B1111, 10,
B0000,B0000,B0000,B0000, B0000,B0110,B0110,B0000,
00,B0000,B0000,B0000, 10,
// circle layer by layer
B0000,B0000,B0100,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0110,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0010,B0110,B0000,
00,B0000,B0000,B0000, 6,

B0001,B0001,B0001,B0001, B00

B0000,B0000,B0000,B0000, B00
B1111,B1111,B1111,B1111, B11
B0000,B0110,B0110,B0000, B00
B1111,B1111,B1111,B1111, B11
B0000,B0110,B0110,B0000, B00
B1111,B1111,B1111,B1111, B11
B0000,B0110,B0110,B0000, B00
B1111,B1111,B1111,B1111, B11
B0000,B0110,B0110,B0000, B00

bottom to top
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00

B0000,B0110,B0110,B0000,
00,B0000,B0000,B0000, 6,
B0000,B1110,B0110,B0000,
00,B0000,B0000,B0000, 6,
B0000,B1110,B1110,B0000,
00,B0000,B0000,B0000, 6,
B0000,B1110,B1110,B1000,
00,B0000,B0000,B0000, 6,
B0000,B1110,B1110,B1100,
00,B0000,B0000,B0000, 6,
B0000,B1110,B1110,B1110,
00,B0000,B0000,B0000, 6,
B0000,B1110,B1110,B1111,
00,B0000,B0000,B0000, 6,
B0000,B1110,B1111,B1111,
00,B0000,B0000,B0000, 6,
B0000,B1111,B1111,B1111,
00,B0000,B0000,B0000, 6,
B0001,B1111,B1111,B1111,
00,B0000,B0000,B0000, 6,
B0011,B1111,B1111,B1111,
00,B0000,B0000,B0000, 6,
B0111,B1111,B1111,B1111,
00,B0000,B0000,B0000, 6,
B1111,B1111,B1111,B1111,
00,B0000,B0000,B0000, 6,

B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00

B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,

B0000,B0000,B0100,B0000, B0000,B0000,B0000,B0000, B00

B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00


B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00

B0000,B0000,B0110,B0000, B0000,B0000,B0000,B0000, B00


B0000,B0010,B0110,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0110,B0110,B0000, B0000,B0000,B0000,B0000, B00
B0000,B1110,B0110,B0000, B0000,B0000,B0000,B0000, B00
B0000,B1110,B1110,B0000, B0000,B0000,B0000,B0000, B00
B0000,B1110,B1110,B1000, B0000,B0000,B0000,B0000, B00
B0000,B1110,B1110,B1100, B0000,B0000,B0000,B0000, B00
B0000,B1110,B1110,B1110, B0000,B0000,B0000,B0000, B00
B0000,B1110,B1110,B1111, B0000,B0000,B0000,B0000, B00
B0000,B1110,B1111,B1111, B0000,B0000,B0000,B0000, B00
B0000,B1111,B1111,B1111, B0000,B0000,B0000,B0000, B00
B0001,B1111,B1111,B1111, B0000,B0000,B0000,B0000, B00
B0011,B1111,B1111,B1111, B0000,B0000,B0000,B0000, B00
B0111,B1111,B1111,B1111, B0000,B0000,B0000,B0000, B00
B1111,B1111,B1111,B1111, B0000,B0000,B0000,B0000, B00

B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 6,

B0000,B0000,B0000,B0000, B0000,B0000,B0100,B0000, B00

B0000,B0000,B0000,B0000,
00,B0000,B0100,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0000,B0110,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0010,B0110,B0000, 6,
B0000,B0000,B0000,B0000,
00,B0110,B0110,B0000, 6,
B0000,B0000,B0000,B0000,
00,B1110,B0110,B0000, 6,
B0000,B0000,B0000,B0000,
00,B1110,B1110,B0000, 6,
B0000,B0000,B0000,B0000,
00,B1110,B1110,B1000, 6,
B0000,B0000,B0000,B0000,
00,B1110,B1110,B1100, 6,
B0000,B0000,B0000,B0000,
00,B1110,B1110,B1110, 6,
B0000,B0000,B0000,B0000,
00,B1110,B1110,B1111, 6,
B0000,B0000,B0000,B0000,
00,B1110,B1111,B1111, 6,
B0000,B0000,B0000,B0000,
00,B1111,B1111,B1111, 6,
B0000,B0000,B0000,B0000,
01,B1111,B1111,B1111, 6,
B0000,B0000,B0000,B0000,

B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00

B0000,B0000,B0000,B0000, B0000,B0000,B0110,B0000, B00


B0000,B0000,B0000,B0000, B0000,B0010,B0110,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0110,B0110,B0000, B00
B0000,B0000,B0000,B0000, B0000,B1110,B0110,B0000, B00
B0000,B0000,B0000,B0000, B0000,B1110,B1110,B0000, B00
B0000,B0000,B0000,B0000, B0000,B1110,B1110,B1000, B00
B0000,B0000,B0000,B0000, B0000,B1110,B1110,B1100, B00
B0000,B0000,B0000,B0000, B0000,B1110,B1110,B1110, B00
B0000,B0000,B0000,B0000, B0000,B1110,B1110,B1111, B00
B0000,B0000,B0000,B0000, B0000,B1110,B1111,B1111, B00
B0000,B0000,B0000,B0000, B0000,B1111,B1111,B1111, B00
B0000,B0000,B0000,B0000, B0001,B1111,B1111,B1111, B00
B0000,B0000,B0000,B0000, B0011,B1111,B1111,B1111, B00
B0000,B0000,B0000,B0000, B0111,B1111,B1111,B1111, B00
B0000,B0000,B0000,B0000, B1111,B1111,B1111,B1111, B00

B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00


B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00

11,B1111,B1111,B1111, 6,
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B01
11,B1111,B1111,B1111, 6,
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B11
11,B1111,B1111,B1111, 6,
B0001,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0011,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0011,B0010,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0011,B0011,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0110,B0110,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0001,B0011, 10,
B0000,B0000,B0000,B0000,
00,B0001,B0011,B0111, 10,
B0000,B0000,B0000,B0000,
00,B0011,B0111,B0111, 10,
B0000,B0000,B0000,B0000,
00,B0111,B0111,B0111, 10,
B0000,B0000,B0000,B0000,
00,B1110,B1110,B1110, 10,
B0000,B1110,B1110,B1110,
00,B0000,B0000,B0000, 10,
B0000,B1110,B1110,B1110,
00,B0000,B0000,B0000, 10,
B0000,B1110,B1110,B1110,
00,B0000,B0000,B0000, 10,
B0000,B1100,B1110,B1110,
00,B0000,B0000,B0000, 10,
B0000,B1000,B1100,B1110,
00,B0000,B0000,B0000, 10,
B0000,B0000,B1000,B1100,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B1000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B1000,B1000,
00,B0000,B0000,B0000, 10,
B0000,B1000,B1000,B1000,
00,B0000,B0000,B0000, 10,
B1000,B1000,B1000,B1000,
00,B0000,B0000,B0000, 10,
B1100,B1000,B1000,B0000,
00,B0000,B0000,B0000, 10,
B1110,B1000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B1110,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,

B0001,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00


B0011,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0011,B0010,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0011,B0011,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0110,B0110,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0110,B0110,B0000,B0000, B0110,B0110,B0000,B0000, B00
B0000,B0110,B0110,B0000, B0000,B0110,B0110,B0000, B00
B0000,B0000,B0110,B0110, B0000,B0000,B0110,B0110, B00
B0000,B0000,B0011,B0011, B0000,B0000,B0011,B0011, B00
B0000,B0001,B0011,B0111, B0000,B0001,B0011,B0111, B00
B0000,B0011,B0111,B0111, B0000,B0011,B0111,B0111, B00
B0000,B0111,B0111,B0111, B0000,B0111,B0111,B0111, B00
B0000,B0111,B0111,B0111, B0000,B0111,B0111,B0111, B00
B0000,B1110,B1110,B1110, B0000,B1110,B1110,B1110, B00
B0000,B1110,B1110,B1110, B0000,B1110,B1110,B1110, B00
B0000,B1110,B1110,B1110, B0000,B1100,B1110,B1110, B00
B0000,B1100,B1110,B1110, B0000,B1000,B1100,B1110, B00
B0000,B1000,B1100,B1110, B0000,B0000,B1000,B1100, B00
B0000,B0000,B1000,B1100, B0000,B0000,B0000,B1000, B00
B0000,B0000,B0000,B1000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0010,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00

B0110,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0010,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
01,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
11,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
11,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
11,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
10,B1000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B1100,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B1110,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B1111,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0111,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0011,B0000,B0000, 10,
B0000,B0001,B0000,B0000,
00,B0001,B0000,B0000, 10,
B0001,B0001,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0011,B0001,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0111,B0001,B0000,B0000,
00,B0000,B0000,B0000, 10,
B1111,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B1111,B1000,B0000,B0000,
00,B0000,B0000,B0000, 10,

B0011,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00


B0011,B0001,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0011,B0001,B0001,B0000, B0000,B0000,B0000,B0000, B00
B0001,B0001,B0001,B0001, B0000,B0000,B0000,B0000, B00
B0000,B0001,B0001,B0011, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0001,B0111, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B1111, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B1110, B0000,B0000,B0000,B1000, B00
B0000,B0000,B0000,B1100, B0000,B0000,B1000,B1000, B00
B0000,B0000,B0000,B1000, B0000,B0000,B1100,B1000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B1110,B1000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B1111,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0001,B0111,B0000, B00
B0000,B0000,B0000,B0000, B0001,B0001,B0011,B0000, B00
B0000,B0000,B0000,B0000, B0001,B0001,B0001,B0000, B00
B0000,B0000,B0000,B0000, B0001,B0001,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0001,B0000,B0000,B0000, B01
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B11
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B11
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B11
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B10
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0001,B0000,B0000, B00
B0000,B0001,B0000,B0000, B0000,B0001,B0000,B0000, B00
B0000,B0001,B0000,B0000, B0000,B0001,B0000,B0000, B00
B0000,B0001,B0000,B0000, B0000,B0001,B0000,B0000, B00
B0000,B0001,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00

B1111,B1100,B0000,B0000,
00,B0000,B0000,B0000, 10,
B1111,B1110,B0000,B0000,
00,B0000,B0000,B0000, 10,
B1111,B1111,B0000,B0000,
00,B0000,B0000,B0000, 10,
B1111,B1111,B0001,B0000,
00,B0000,B0000,B0000, 10,
B1111,B1111,B0011,B0000,
00,B0000,B0000,B0000, 10,
B1111,B1111,B0111,B0000,
00,B0000,B0000,B0000, 10,
B1111,B1111,B1111,B0000,
00,B0000,B0000,B0000, 10,
B1111,B1111,B1111,B1000,
00,B0000,B0000,B0000, 10,
B1111,B1111,B1111,B1100,
00,B0000,B0000,B0000, 10,
B1111,B1111,B1111,B1110,
00,B0000,B0000,B0000, 10,
B1111,B1111,B1111,B1111,
00,B0000,B0000,B0000, 10,
B1111,B1111,B1111,B1111,
00,B0000,B0000,B0000, 10,
B0111,B0111,B0111,B0111,
00,B0000,B0000,B0000, 10,
B0011,B0011,B0011,B0011,
00,B0000,B0000,B0000, 10,
B0001,B0001,B0001,B0001,
00,B1000,B1000,B1000, 10,
B0001,B0001,B0001,B0001,
00,B0100,B0100,B0100, 10,
B0001,B0001,B0001,B0001,
10,B0010,B0010,B0010, 10,
B0001,B0001,B0001,B0001,
01,B0001,B0001,B0001, 10,
B0010,B0001,B0001,B0001,
10,B0001,B0001,B0001, 10,
B0100,B0010,B0001,B0001,
00,B0010,B0001,B0001, 10,
B1000,B0100,B0010,B0001,
00,B0100,B0010,B0001, 10,
B0000,B1100,B0011,B0000,
00,B1100,B0011,B0000, 10,
B0000,B0011,B1100,B0000,
00,B0011,B1100,B0000, 10,
B0001,B0010,B0100,B1000,
01,B0010,B0100,B1000, 10,
B0010,B0010,B0100,B0100,
10,B0010,B0100,B0100, 10,
B0100,B0100,B0010,B0010,
00,B0100,B0010,B0010, 10,
B1000,B0100,B0010,B0001,
00,B0100,B0010,B0001, 10,
B0000,B1100,B0011,B0000,
00,B1100,B0011,B0000, 10,
B0000,B0011,B1100,B0000,
00,B0011,B1100,B0000, 10,
B0001,B0010,B0100,B1000,
01,B0010,B0100,B1000, 10,

B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00


B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B1000,B1000,B1000,B1000, B0000,B0000,B0000,B0000, B00
B0100,B0100,B0100,B0100, B1000,B1000,B1000,B1000, B00
B0010,B0010,B0010,B0010, B0100,B0100,B0100,B0100, B10
B0001,B0001,B0001,B0001, B0010,B0010,B0010,B0010, B01
B0001,B0001,B0001,B0001, B0001,B0001,B0001,B0001, B00
B0001,B0001,B0001,B0001, B0001,B0001,B0001,B0001, B00
B0010,B0001,B0001,B0001, B0010,B0001,B0001,B0001, B00
B0100,B0010,B0001,B0001, B0100,B0010,B0001,B0001, B01
B1000,B0100,B0010,B0001, B1000,B0100,B0010,B0001, B10
B0000,B1100,B0011,B0000, B0000,B1100,B0011,B0000, B00
B0000,B0011,B1100,B0000, B0000,B0011,B1100,B0000, B00
B0001,B0010,B0100,B1000, B0001,B0010,B0100,B1000, B00
B0010,B0010,B0100,B0100, B0010,B0010,B0100,B0100, B00
B0100,B0100,B0010,B0010, B0100,B0100,B0010,B0010, B01
B1000,B0100,B0010,B0001, B1000,B0100,B0010,B0001, B10
B0000,B1100,B0011,B0000, B0000,B1100,B0011,B0000, B00
B0000,B0011,B1100,B0000, B0000,B0011,B1100,B0000, B00
B0001,B0010,B0100,B1000, B0001,B0010,B0100,B1000, B00

B1000,B0100,B0010,B0001,
00,B0100,B0010,B0001, 10,
B0000,B1100,B0011,B0000,
00,B1100,B0011,B0000, 10,
B0000,B0011,B1100,B0000,
00,B0011,B1100,B0000, 10,
B0001,B0010,B0100,B1000,
01,B0010,B0100,B1000, 10,
B0010,B0010,B0100,B0100,
10,B0010,B0100,B0100, 10,
B0100,B0100,B0010,B0010,
00,B0100,B0010,B0010, 10,
B1000,B0100,B0010,B0001,
00,B0100,B0010,B0001, 10,
B0000,B1100,B0011,B0000,
00,B1100,B0011,B0000, 8,
B0000,B0011,B1100,B0000,
00,B0011,B1100,B0000, 8,
B0001,B0010,B0100,B1000,
01,B0010,B0100,B1000, 8,
B1000,B0100,B0010,B0001,
00,B0100,B0010,B0001, 8,
B0000,B1100,B0011,B0000,
00,B1100,B0011,B0000, 8,
B0000,B0011,B1100,B0000,
00,B0011,B1100,B0000, 8,
B0001,B0010,B0100,B1000,
01,B0010,B0100,B1000, 8,
B0010,B0010,B0100,B0100,
10,B0010,B0100,B0100, 8,
B0100,B0100,B0010,B0010,
00,B0100,B0010,B0010, 8,
B1000,B0100,B0010,B0001,
00,B0100,B0010,B0001, 8,
B0000,B1100,B0011,B0000,
00,B1100,B0011,B0000, 8,
B0000,B0011,B1100,B0000,
00,B0011,B1100,B0000, 8,
B0001,B0010,B0100,B1000,
01,B0010,B0100,B1000, 8,
B1000,B0100,B0010,B0001,
00,B0100,B0010,B0001, 8,
B0000,B1100,B0011,B0000,
00,B1100,B0011,B0000, 7,
B0000,B0011,B1100,B0000,
00,B0011,B1100,B0000, 7,
B0001,B0010,B0100,B1000,
01,B0010,B0100,B1000, 7,
B0010,B0010,B0100,B0100,
10,B0010,B0100,B0100, 7,
B0100,B0100,B0010,B0010,
00,B0100,B0010,B0010, 7,
B1000,B0100,B0010,B0001,
00,B0100,B0010,B0001, 7,
B0000,B1100,B0011,B0000,
00,B1100,B0011,B0000, 7,
B0000,B0011,B1100,B0000,
00,B0011,B1100,B0000, 7,
B0001,B0010,B0100,B1000,
01,B0010,B0100,B1000, 7,

B1000,B0100,B0010,B0001, B1000,B0100,B0010,B0001, B10


B0000,B1100,B0011,B0000, B0000,B1100,B0011,B0000, B00
B0000,B0011,B1100,B0000, B0000,B0011,B1100,B0000, B00
B0001,B0010,B0100,B1000, B0001,B0010,B0100,B1000, B00
B0010,B0010,B0100,B0100, B0010,B0010,B0100,B0100, B00
B0100,B0100,B0010,B0010, B0100,B0100,B0010,B0010, B01
B1000,B0100,B0010,B0001, B1000,B0100,B0010,B0001, B10
B0000,B1100,B0011,B0000, B0000,B1100,B0011,B0000, B00
B0000,B0011,B1100,B0000, B0000,B0011,B1100,B0000, B00
B0001,B0010,B0100,B1000, B0001,B0010,B0100,B1000, B00
B1000,B0100,B0010,B0001, B1000,B0100,B0010,B0001, B10
B0000,B1100,B0011,B0000, B0000,B1100,B0011,B0000, B00
B0000,B0011,B1100,B0000, B0000,B0011,B1100,B0000, B00
B0001,B0010,B0100,B1000, B0001,B0010,B0100,B1000, B00
B0010,B0010,B0100,B0100, B0010,B0010,B0100,B0100, B00
B0100,B0100,B0010,B0010, B0100,B0100,B0010,B0010, B01
B1000,B0100,B0010,B0001, B1000,B0100,B0010,B0001, B10
B0000,B1100,B0011,B0000, B0000,B1100,B0011,B0000, B00
B0000,B0011,B1100,B0000, B0000,B0011,B1100,B0000, B00
B0001,B0010,B0100,B1000, B0001,B0010,B0100,B1000, B00
B1000,B0100,B0010,B0001, B1000,B0100,B0010,B0001, B10
B0000,B1100,B0011,B0000, B0000,B1100,B0011,B0000, B00
B0000,B0011,B1100,B0000, B0000,B0011,B1100,B0000, B00
B0001,B0010,B0100,B1000, B0001,B0010,B0100,B1000, B00
B0010,B0010,B0100,B0100, B0010,B0010,B0100,B0100, B00
B0100,B0100,B0010,B0010, B0100,B0100,B0010,B0010, B01
B1000,B0100,B0010,B0001, B1000,B0100,B0010,B0001, B10
B0000,B1100,B0011,B0000, B0000,B1100,B0011,B0000, B00
B0000,B0011,B1100,B0000, B0000,B0011,B1100,B0000, B00
B0001,B0010,B0100,B1000, B0001,B0010,B0100,B1000, B00

B1000,B0100,B0010,B0001,
00,B0100,B0010,B0001, 7,
B0000,B1100,B0011,B0000,
00,B1100,B0011,B0000, 6,
B0000,B0011,B1100,B0000,
00,B0011,B1100,B0000, 6,
B0001,B0010,B0100,B1000,
01,B0010,B0100,B1000, 6,
B0010,B0010,B0100,B0100,
10,B0010,B0100,B0100, 6,
B0100,B0100,B0010,B0010,
00,B0100,B0010,B0010, 6,
B1000,B0100,B0010,B0001,
00,B0100,B0010,B0001, 6,
B0000,B1100,B0011,B0000,
00,B1100,B0011,B0000, 6,
B0000,B0011,B1100,B0000,
00,B0011,B1100,B0000, 6,
B0100,B0100,B0010,B0010,
00,B0100,B0010,B0010, 6,
B1000,B0100,B0010,B0001,
00,B0100,B0010,B0001, 6,
B0000,B1100,B0011,B0000,
00,B1100,B0011,B0000, 6,
B0000,B0011,B1100,B0000,
00,B0011,B1100,B0000, 6,
B0001,B0010,B0100,B1000,
01,B0010,B0100,B1000, 6,
B1000,B0100,B0010,B0001,
00,B0100,B0010,B0001, 6,
B0000,B1100,B0011,B0000,
00,B1100,B0011,B0000, 5,
B0000,B0011,B1100,B0000,
00,B0011,B1100,B0000, 5,
B0001,B0010,B0100,B1000,
01,B0010,B0100,B1000, 5,
B0010,B0010,B0100,B0100,
10,B0010,B0100,B0100, 5,
B0100,B0100,B0010,B0010,
00,B0100,B0010,B0010, 5,
B1000,B0100,B0010,B0001,
00,B0100,B0010,B0001, 5,
B0000,B1100,B0011,B0000,
00,B1100,B0011,B0000, 5,

B1000,B0100,B0010,B0001, B1000,B0100,B0010,B0001, B10

B0000,B0011,B1100,B0000,
00,B0011,B1100,B0000, 10,
B0001,B0010,B0100,B1000,
01,B0010,B0100,B1000, 10,
B0000,B0010,B0100,B0000,
01,B0010,B0100,B1000, 10,
B0000,B0000,B0000,B0000,
01,B0010,B0100,B1000, 10,
B0000,B0000,B0000,B0000,
01,B0010,B0100,B1000, 10,
B0000,B0000,B0000,B0000,
00,B0010,B0100,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,

B0000,B0011,B1100,B0000, B0000,B0011,B1100,B0000, B00

B0000,B1100,B0011,B0000, B0000,B1100,B0011,B0000, B00


B0000,B0011,B1100,B0000, B0000,B0011,B1100,B0000, B00
B0001,B0010,B0100,B1000, B0001,B0010,B0100,B1000, B00
B0010,B0010,B0100,B0100, B0010,B0010,B0100,B0100, B00
B0100,B0100,B0010,B0010, B0100,B0100,B0010,B0010, B01
B1000,B0100,B0010,B0001, B1000,B0100,B0010,B0001, B10
B0000,B1100,B0011,B0000, B0000,B1100,B0011,B0000, B00
B0000,B0011,B1100,B0000, B0000,B0011,B1100,B0000, B00
B0100,B0100,B0010,B0010, B0100,B0100,B0010,B0010, B01
B1000,B0100,B0010,B0001, B1000,B0100,B0010,B0001, B10
B0000,B1100,B0011,B0000, B0000,B1100,B0011,B0000, B00
B0000,B0011,B1100,B0000, B0000,B0011,B1100,B0000, B00
B0001,B0010,B0100,B1000, B0001,B0010,B0100,B1000, B00
B1000,B0100,B0010,B0001, B1000,B0100,B0010,B0001, B10
B0000,B1100,B0011,B0000, B0000,B1100,B0011,B0000, B00
B0000,B0011,B1100,B0000, B0000,B0011,B1100,B0000, B00
B0001,B0010,B0100,B1000, B0001,B0010,B0100,B1000, B00
B0010,B0010,B0100,B0100, B0010,B0010,B0100,B0100, B00
B0100,B0100,B0010,B0010, B0100,B0100,B0010,B0010, B01
B1000,B0100,B0010,B0001, B1000,B0100,B0010,B0001, B10
B0000,B1100,B0011,B0000, B0000,B1100,B0011,B0000, B00

B0001,B0010,B0100,B1000, B0001,B0010,B0100,B1000, B00


B0001,B0010,B0100,B1000, B0001,B0010,B0100,B1000, B00
B0000,B0010,B0100,B0000, B0001,B0010,B0100,B1000, B00
B0000,B0000,B0000,B0000, B0000,B0010,B0100,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00

00,B0000,B0000,B1000, 10,
B0000,B0000,B0000,B0000,
00,B0010,B0000,B1000, 10,
B0000,B0000,B0000,B0000,
00,B0010,B1000,B0000, 10,
B0000,B0000,B0000,B1000,
00,B0000,B1000,B0000, 10,
B0000,B0010,B0000,B1000,
00,B0000,B0000,B0000, 10,
B0000,B0010,B1000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B1000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0100,B0010,B0000,
00,B0000,B0000,B0000, 10,
B0000,B0110,B0110,B0000,
00,B0000,B0000,B0000, 10,
B1001,B0110,B0110,B1001,
00,B0000,B0000,B0000, 10,
B1101,B0111,B1110,B1011,
00,B0100,B0010,B0000, 10,
B1111,B1111,B1111,B1111,
00,B0110,B0110,B0000, 10,
B1111,B1111,B1111,B1111,
01,B0110,B0110,B1001, 10,
B1111,B1111,B1111,B1111,
01,B0111,B1110,B1011, 10,
B1111,B1111,B1111,B1111,
11,B1111,B1111,B1111, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,
B1111,B1111,B1111,B1111,
11,B1111,B1111,B1111, 10,
B1111,B1111,B1111,B1111,
00,B0000,B0000,B0000, 10,
B1111,B1111,B1111,B1111,
00,B0000,B0000,B0000, 10,
B1111,B1111,B1111,B1111,
00,B0000,B0000,B0000, 10,
B0000,B0000,B0000,B0000,
00,B0000,B0000,B0000, 10,

B0000,B0000,B0000,B0000, B0000,B0000,B0000,B1000, B00


B0000,B0000,B0000,B1000, B0000,B0010,B0000,B1000, B00
B0000,B0010,B0000,B1000, B0000,B0010,B1000,B0000, B00
B0000,B0010,B1000,B0000, B0000,B0000,B1000,B0000, B00
B0000,B0000,B1000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0100,B0010,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0110,B0110,B0000, B0000,B0100,B0010,B0000, B00
B1001,B0110,B0110,B1001, B0000,B0110,B0110,B0000, B00
B1101,B0111,B1110,B1011, B1001,B0110,B0110,B1001, B00
B1111,B1111,B1111,B1111, B1101,B0111,B1110,B1011, B10
B1111,B1111,B1111,B1111, B1111,B1111,B1111,B1111, B11
B1111,B1111,B1111,B1111, B1111,B1111,B1111,B1111, B11
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B1111,B1111,B1111,B1111, B1111,B1111,B1111,B1111, B11
B1111,B1111,B1111,B1111, B1111,B1111,B1111,B1111, B00
B1111,B1111,B1111,B1111, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00
B0000,B0000,B0000,B0000, B0000,B0000,B0000,B0000, B00

};
/*
** Definicin de los pines en conjunto hace que sea ms fcil para reorganizar cmo est c
ableado cubo
** Tenga en cuenta que las entradas analgicas A0-A5 tambin son salidas digitales 1
4-19!
** Pin DigitalOut0 (RX de serie) y AnalogIn5 se dejan abiertas para aplicaciones
futura
*/
int LEDPin[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
int PlanePin[] = {16, 17, 18, 19};
// Inicializacin
void setup()

{
int pin; // Contador del ciclo
// configurar pines LED como salida (HIGH activo)
for (pin=0; pin<PLANESIZE; pin++) {
pinMode( LEDPin[pin], OUTPUT );
}
// establecer los pins del plano como salidas (LOW activo)
for (pin=0; pin<CUBESIZE; pin++) {
pinMode( PlanePin[pin], OUTPUT );
}
}
// patrn de visualizacin en la tabla hasta DisplayTime es cero (luego repetir)
void loop()
{
//Declaramos las variables
byte PatternBuf[PLANESIZE]; // guardamos el patrn actual de PatternTable
int PatternIdx;
byte DisplayTime;
unsigned long EndTime;
int plane; // contador del ciclo del cubo en la actualizacin
int patbufidx;
int ledrow;
int ledcol;
int ledpin;
// Inicialice PatternIdx al principio de la tabla patrn
PatternIdx = 0;
// lazo sobre entradas en la tabla de patrn - mientras DisplayTime> 0
do {
// leer el patrn de PROGMEM y ahorrar en el arreglo
memcpy_P( PatternBuf, PatternTable+PatternIdx, PLANESIZE );
PatternIdx += PLANESIZE;
// leer DisplayTime de PROGMEM e incrementar el ndice
DisplayTime = pgm_read_byte_near( PatternTable + PatternIdx++ );
// calcular EndTime de hora actual (ms) y DisplayTime
EndTime = millis() + ((unsigned long) DisplayTime) * TIMECONST;
// ciclo while DisplayTime> 0 y la hora actual <EndTime
while ( millis() < EndTime ) {
patbufidx = 0; // resetear el contador de ndice a principios de bfer
for (plane=0; plane<CUBESIZE; plane++) {
if (plane==0) {
digitalWrite( PlanePin[CUBESIZE-1], HIGH );
} else {
digitalWrite( PlanePin[plane-1], HIGH );
}
// cargar los datos actuales del patrn plano en puertos
ledpin = 0;
for (ledrow=0; ledrow<CUBESIZE; ledrow++) {
for (ledcol=0; ledcol<CUBESIZE; ledcol++) {
digitalWrite( LEDPin[ledpin++], PatternBuf[patbufidx] & (1 << ledcol) );
}
patbufidx++;
}
// Encender el plano actual
digitalWrite( PlanePin[plane], HIGH );
// espera PLANETIME definida anteriormente

delayMicroseconds( PLANETIME );
}
}
} while (DisplayTime > 0); // leer los patrones hasta el tiempo = 0, lo que indi
ca final
}

You might also like