When Sonic met Knuckles…
In the last few weeks, I have two experiences with matrices that really stuck out in my mind. One involved the Sphero LED 8 x 8 matrix and the other a slight recreation of Tetris. Matrices are collections of arrays. In Sphero the LED matrix is composed of 8 matrixes each with a length of 8, while in Tetris, the matrices are of varying shapes and sizes to accommodate the shapes of the pieces. This article is about the former, however it did help me understand the later quite well when my partner presented the game design code for the latter to me.
I was inspired to tell a story in three parts using Sphero’s matrix about Sonic, keeping in theme with my recent projects. I first began by exploring Sphero’s matrix function. This function itself is an object with four keys: frames; palette, fps, and finally transitions. The frames are each a matrix consisting of eight arrays. The palette consist of 16 colors, each of which corresponds can be used a a fill within the array. The fps of frames per second is where the real magic happens. Here is where we actually get to see the animation play out. A high fps shows a very fluid picture while a lower fps tends to look a bit more choppy. This allows for the ability to create some interesting scenes.
The intro of our story is one that’s very familiar to retro game fans, especially those with fond memories of the Sega Genesis. it consist of 26 frames in total moving at six frames per second.

A moment that always stuck out to me in the first Sonic video game was when Sonic would go over the big loop on the first game level. This moment has recently been immortalized with a Lego set. At this moment this is the largest animation that I have made with Sphero. It consists of 56 frames and two jump cuts. It was surely my most time consuming piece but it also taught me the most about animation and bringing a scene from your mind to actual realization.

The final scene was also one of those iconic Sonic images, at least that the way our envisioned it. Getting this scene right was also a challenge, and while not perfect. I am proud of the results.

So putting it all together with each animation taking place based on some event, such as starting the program or when the gyromax is reached, we are able to get Sphero to perform just as we hope. I’m looking forward to see what it’ll come up with next.