Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WallUI Lab

Self-hosted design editor & live display for custom wall clocks and dashboards

Build your own clock for the wall — as unique as you want it.
Fully local · No account · No cloud · Live WebSocket sync

License: AGPL v3 UI Stack


What is it?

WallUI Lab is a self-hosted designer for wall / screen clocks and info displays.

You build a design in the browser out of layers ("gadgets") — dial, hands, numbers, text, images, weather, mechanical gears, backgrounds — and then run that design full-screen on any device in the same network (an old tablet, a monitor on the wall, etc.).

Everything runs locally on your own computer. Only optional weather data comes from the internet; the app itself works offline. When you save a design in the editor, an open full-screen clock updates live via WebSocket.

→ See INSTALLATION.md for setup.


Demo & Templates

UI Demo
Watch the demo video

Example Designs

White Elegance Quarz Pendel Minimal Analog
white_elegance quarz pendel minimal_analog
Black & White Fancy Lume Grit
black_white fancy lume grit
Demo 2 Demo Coba Clear
demo2 demo coba clear

Gadgets (Building Blocks)

A design is a stack of layers. Add the ones you need and arrange them freely.

Gadget Description
Clock face Hour / minute / second hands, tick marks, numbers, progress rings. Hands can be drawn or use an image, support shapes & holes, custom center caps, and extra "custom hands" with any period (weekdays, 24h, milliseconds…). Presets + SVG export included.
Sky Time-of-day sky with shifting gradient, sun, moon (correct phases), stars, clouds and rain. Two cloud engines: simple sprites or volumetric (WebGL). Sun/moon from API or computed locally.
Text Static text, time, date or API value. Full font, color, gradient & effect control. Optional prefix/suffix with own styling. Value-driven color scale.
Image Uploaded images with fit modes and optional day/night grading based on time and weather.
Gauge Object-based system: donuts, tick rings, bars, needles, texts and images — each with its own data source and full styling.
Gear Mechanical gears that can be linked into gear trains. Looks savable as presets.
Escapement Escapement with pendulum for a mechanical-watch feel.
Flip display Split-flap / roller display (like old station boards) for time, date, text or API values.
Weather icon Icons driven by weather codes. Editable code-to-icon tables. Ships with Open-Meteo (WMO) preset + day/night variants.
Shape Vector shapes with gradients, patterns and boolean operations (union, subtract, intersect).
Background Full-layer fill: solid color, gradient, pattern or image.

Groups of layers can be saved as reusable gadgets and organized into folders.


Editor Overview

Area Function
Layers panel (left) All layers of the current design. Drag-and-drop order, folders, show/hide, lock, duplicate, group. Access to the saved-gadget library.
Canvas (center) Live preview at real pixel size with zoom/pan. Simulation area to scrub through time, weather and date.
Properties (right) All settings of the selected layer (type tab + Design & Layout popups).
Toolbar (top) Switch designs, rename, set screen size, undo/redo, API settings, weather-icon tables, playlist, performance check, SVG vectorizer, language, connection LED.
Mobile remote On a phone the app shows a simple remote to switch the active design on the wall clock.

The UI is available in German and English.


Highlights

  • Any resolution — Coordinate-based designs that scale to any screen. Presets for portrait / landscape / square + free custom size.
  • API binding — Register any JSON API. Server-side fetching (keys stay private, CORS solved). Click the JSON path you want — live value preview included.
  • Weather engine — Sun position, moon phase, clouds and rain driven by API or computed locally. Volumetric clouds run on the GPU with quality controls.
  • Gear engine — Build mechanical gear trains that mesh and turn at the correct ratios.
  • SVG converter — Upload an image and convert it into editable vector shapes.
  • Weather-icon tables — Map any API’s weather codes to icons (with day/night variants).
  • Performance index — Built-in check that scores how heavy a design is to render.
  • Playlist — Automatically rotate designs by interval, sunrise/sunset or schedule (with cross-fade).
  • Reusable presets — Save and reuse hands, gears, weather-icon tables and whole gadgets.
  • Fully local — No cloud, no account, no telemetry. Only the weather APIs you bind reach the internet.

Quick Start

git clone https://github.com/macrulz54/walluilab.git
cd walluilab
npm install
cd client
npm install
npm run build
cd ..
npm start

Status

This is a personal hobby project, shared as-is. Use it in a trusted local network. Bugs and rough edges are to be expected, and I may not be able to fix or extend things quickly. If it is useful to you - enjoy it.


Copyright (C) 2026 macrulz54 Licensed under the GNU Affero General Public License v3.0 (AGPLv3)

Releases

Packages

Contributors

Languages