kitsonlow.
All work/griddygridPROJECT_14
Browse projects
REAL-TIME SYSTEMSDeployed

GriddyGrid.

Led a four-developer team from research through deployment of a commercial LED-floor gaming platform. I designed and implemented its C++ engine architecture and core tooling, and built the networking that connects tile presses, game rules and lighting feedback.

Contract software engineer · Team lead
C++ENGINE ARCHITECTUREUDP / ART-NETHARDWARE
PROJECT_14 / GRIDDYGRIDJul 2024

Commercial project

REAL-TIME SYSTEMS

GriddyGrid

Read the project
Blue LED floor tiles in the GriddyGrid installation
Role
Team
Stack
Scale
Approximately 640 or 1,280 LED tiles
01 /

A room becomes the game

GriddyGrid turns sensor-equipped LED floor tiles into an interactive play space. Players’ physical movement becomes input to C++ game logic, and the floor responds through lighting. The platform supported installations of approximately 640 or 1,280 tiles, connecting configurable game behaviour to physical devices.

02 /

My role from research to deployment

I led four developers during a contracted, part-time engagement with Daltech. My responsibilities included engine architecture, core tooling, game logic and hardware networking. I also coordinated with the LED-controller supplier and helped establish the initial hardware connection. Once the integration was working, I divided team work across content, mechanics and testing.

03 /

A custom C++ engine and authoring foundation

I designed and implemented the engine architecture, application window, GUI, ECS, reflection and serialization systems. These provided a shared foundation for developing the installation’s games and programmable experiences. Separating game behaviour from device coordination allowed the platform to support configurable experiences and modular expansion.

04 /

From MADRIX-assisted testing to direct control

The first hardware milestone was lighting a single tile and observing its sensor input. Supplier support and MADRIX helped establish that connection before expanding to the full floor. I subsequently replaced the MADRIX application dependency with direct, in-house hardware communication, bringing device coordination into the C++ platform.

05 /

Two directions of real-time communication

I built packet conversion and multithreaded UDP/ART-NET networking to send lighting frames and receive binary capacitive tile-press sensor frames. These are separate responsibilities: output communicates the visual state, while incoming sensor data feeds the game’s interaction model. I separated data access by design to avoid conflicting operations between those responsibilities.

06 /

Debugging the hardware boundary

The integration required matching packet fields, universe mapping and colour-channel layouts to the controllers’ expectations. Wireshark made it possible to inspect the actual traffic and diagnose communication problems. Testing also exposed the practical limits of wireless networking as traffic increased toward launch, making Ethernet an important part of reliable operation.

07 /

Delivery and commercial context

The Singapore venue launched in May 2024. The recorded launch results were US$200K in revenue and 2.5k unique customers over seven months; these describe the business outcome around the installation. GriddyGrid was also featured in MADRIX’s Best of 2024 showcase. My engineering role extended through deployment and supplier coordination, alongside the wider team’s development work.

08 /

What this work taught me

This was my first hardware-networking project, and it turned a simple idea—send colours to tiles—into an exercise in protocol integration, controller behaviour and real deployment conditions. It connected my interest in reusable C++ architecture to a physical installation where inputs, game state and visible output all had to work together.

KEEP EXPLORING

The next project.

15 / C++ SCRIPTING & 3D ENGINE TOOLING

Liberation Engine 3D

A custom 3D engine with a C++ scripting workflow I designed, connecting script compilation, DLL loading and ECS registration.