GANGWAY: Building an Interactive LED Installation with Person Tracking
Inhaltsverzeichnis
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.