All projects
2023LiveFrontend & Integration — Vue UI, LED animations, WLED API integration, multi-user concurrency

Smart Way-Finding System

Interactive in-building navigation via touchscreen and floor-embedded LED strips at TU Berlin's ZEKI / DAI-Labor

A real wayfinding installation at TU Berlin's ZEKI AI center built during the Ambient Assisted Living course at the DAI-Labor. A central Samsung touchscreen at the reception runs a Vue web app showing room buttons, a search bar and the floor plan; selecting a room sends a JSON payload to ESP32 microcontrollers that drive addressable LED strips embedded in the floor, lighting up the shortest path to the destination. The system supports several users at the same time by assigning each route a distinct color, and auto-resets after a fixed timeout.

10+
Rooms & destinations
Multi
Concurrent users
30s
Guidance timeout
2023
Deployed at ZEKI
01

Overview

Built during the Ambient Assisted Living seminar at TU Berlin's DAI-Labor as a permanent installation for the ZEKI AI center, replacing static signage with an interactive guidance system.

Visitors interact with a Samsung touchscreen at reception. The top section of the screen cycles through photos of the lab; the main area surfaces a button per room, with a bottom navbar for room search and an overview floor plan.

Selecting a room dispatches a configuration payload to a set of ESP32 microcontrollers running WLED, which light up the matching segment of the floor LED strip and animate the path to the chosen room.

The work was organized as a Scrum project split into a frontend and a backend subteam, with weekly planning meetings, a designated scrum master as the interface to the project owner, and Git for source control.

02

Architecture

Touchscreen (Vue web app) → REST/JSON → ESP32 controllers (WLED) → addressable floor LED segments per room

Client
Reception touchscreen
L1
Vue web appRoom buttonsRoom searchFloor plan viewPhoto carousel
Control layer
Routing & color allocation
L2
Shortest-path mappingColor assignment per routeConcurrent user slotsTimeout / auto-reset
Edge devices
ESP32 microcontrollers running WLED
L3
Per-zone controllersLED segment definitionsJSON state endpoints
Actuators
Floor-embedded addressable LEDs
L4
Color-coded path animationsPer-room color identity
03

Tech stack

Frontend
Vue.jsJavaScriptHTMLCSS
Embedded & IoT
ESP32WLED firmwareAddressable LED strips
Integration
REST / JSON over HTTPPer-controller state endpoints
Hardware
Samsung touchscreenSingle-board controllers per zone
Process
ScrumGitWeekly sprint planning
05

MVP features

Touch-first room selection

Large room buttons sized for kiosk use, with a search bar for direct lookup and a floor-plan overview.

Floor-embedded guidance

Addressable LED strips embedded in the floor animate the path from the reception to the selected room.

Multi-user concurrency

Several visitors can request routes at the same time; each route gets a distinct color so paths stay readable.

Color identity per room

Each destination has a dedicated color, chosen so neighboring rooms are easy to tell apart at a glance.

Auto-reset

After roughly 30 seconds the LEDs are switched off automatically so the installation returns to an idle state.

Ambient idle screen

The top third of the screen cycles photos of the ZEKI lab, doubling as ambient signage when no one is interacting.

06

Workflows

Guidance request

  1. 1

    Visitor walks up to the reception touchscreen and either taps a room button, uses the search bar, or opens the floor plan.

  2. 2

    The web app maps the destination to a route, picks a free color slot, and builds a JSON payload describing which LED segments to light up.

  3. 3

    The payload is POSTed to the relevant ESP32 controllers, which drive the floor LED segments along the chosen path.

  4. 4

    After the guidance window elapses, a follow-up payload resets the affected segments and frees the color slot for the next request.

Project workflow

  1. 1

    The team was split into frontend and backend subgroups under a single scrum master who owned the interface to the project owner.

  2. 2

    Each Monday the subgroups defined their own work packages and goals for the week.

  3. 3

    Every Friday the full team met to review the week's progress and plan the next sprint.

  4. 4

    Code was versioned in Git; coordination ran on Signal for quick check-ins and Discord for the meetings.