Zum Hauptinhalt springen
  1. Posts/

GANGWAY: Building an Interactive LED Installation with Person Tracking

I recently finished my latest project, GANGWAY (it’s a stupid recursive acronym), and I wanted to share a behind-the-scenes look at how it works. It’s an interactive lighting installation that reacts to people walking through it at the hallway to the FSI Reutlingen.

The Hardware #

The core of the system is a Raspberry Pi 4B controlling nine 2m long LED strips suspended from the ceiling. I’m using WS2805 strips, which required writing a custom Python driver (a modified version of rpi-ws281x) to handle the specific protocol quirks properly.

Making it Interactive #

The real magic happens with the sensor integration. I installed a XOVIS PC2-L person counter to track movement in the area.

Instead of just triggering a simple motion sensor event, the system actually tracks the specific coordinates of people. I implemented a homographic projection (projection mapping) pipeline that translates the camera’s view directly onto the floor plan of the LED installation. This means if you stand in a specific spot, the lights tracking you are physically accurate to your location.

Recursive Animations in Python #

On the software side, I built a procedural animation engine in Python. The coolest feature is the ability to recursively nest animations.

Instead of writing one massive function for a complex effect, I can compose them like this:

# Create a complex behavior by nesting simple functions
animation = schedule(
    primary=proximity_speed(
        animation=blend(rainbow(), sparkle()),
        mode="speed up"
    ),
    secondary=idle_wave(),
    start="18:00",
    end="06:00"
)

This functional approach makes the system incredibly flexible.

Check it out #

It’s been a fun challenge combining hardware, low-level driver code, and high-level visual logic. You can check out the full technical documentation and code on GitHub.