<< Projects


Oddity is a project that got gloriously out of hand. What started as a spare-time hack ended up being repeatedly upgraded, expanded & polished over the course of 4 years and eventually ended up being displayed publically at the Kinetica art fair in 2013.



In 2009 my then colleague John Popadic showed me a little electronics project he had knocked together. It was a small 8x8 LED panel - the sort of thing that would be brought in bulk to assemble a video display wall - mated with a controller chip that could display pre-authored patterns with about 3 levels of red & green. It was bright and shiny and retro-adorable.


I volunteered to write some tools to help generate interesting patterns for it. About a week later we had the basics of some procedural effects being blitted onto the panel and it looked gorgeous, especially in the dark. People passing by in the office would stop and get lost in the swirling pixels.

(It's a bastard to video properly, due to the extreme refresh rates and very-bright-LEDS-on-black that tends to befuddle all camera sensors.)

I began adding more and more to the generation tool. John worked to pack the design onto a tiny custom board so that it was portable.


... What about building the patterns on the fly? That could be neat.

The controller chip was traded out for an ARM proto board from Maple. I began working on realtime effects that could run on a tiny, constrained device; digging out old graphics algorithms that I hadn't used since the DOS days. Turns out you can just about pull off 3D at 16x16.

... It would be cool if we could put it in a box. It could have clicky dials on top to play with.

And so it did. And a new bespoke PCB to house a custom implementation of the Maple board. More effects. Better panels. 128k Flash and 20KB SRAM. Wringing out a 4-bit colour palette.

When we showed it to friends, the reaction was always positive; ... maybe we should show it to the public?

I built a GUI that could be operated by a pair of push-button dials. Something easy to use and that made sense at our tiny resolution. We packaged the units into shiny, custom-cut black perspex boxes. They looked frickin' nice.


A series of random events led to us signing up for Kinetica and spending several wonderful, exhausting days showing off this mad little box of light to a never-ending stream of strangers.

This was my first ever experience as an exhibition 'Artist' and I won't ever forget it. We were genuinely unprepared for the level of attention and positivity at the show and it was such a thrill to have people really engage with our creation. They feature in this longer video about Kinetica and it's a decent (if short) capture of the demo units on the day.

This is probably the final iteration of the project and it felt like a good point to close it off. Although who knows, maybe in 2017 it will be up to 32x32 LEDs and be driven by a Raspberry Pi...


The source for the demo engine is available on GitHub and includes a Windows 'emulator' so that patterns can be designed without having to flash the hardware each time. If for some reason you need an implementation of Wu's antialiased line algorithm in 16-bit fixed-point for 4 colour LED displays .. maybe you'll find it useful :)