Promethist Touch
Touch is the control surface for a Promethist kiosk: a small screen beside the big avatar screen providing pause, volume, restart, language and whatever else that installation needs.
The kiosk software is in charge. Touch decides nothing — it shows what the kiosk says is true, and asks it to change. This simple design ensures two tablets in the same room never disagree, and a button cannot lie about an unreceived command.
|
"Tablet" is just the common case. Everything here is a WebSocket carrying JSON. A phone, a laptop, a box of physical buttons, or a building-management system connects the same way and gets the same rights. Whenever this documentation says a tablet shows something, you can substitute a lamp. |
New to the kiosk as a whole? Deploying a Promethist kiosk introduces the complete installation — screens, streaming, lockdown, and hardware. The tablet is one optional part, and this documentation assumes you already know what a Promethist kiosk is.
First, the code
The repository is private, so the first step is to ask your Promethist contact for access: read access for your own GitLab account, or a read-only deploy token if you would rather not have one. Then clone it and push it wherever your team works — you do not fork it on our GitLab.
git clone git@gitlab.com:promethistai/promethist-touch.git
npm install
npm run dev # the reference tablet on http://localhost:5173
That is enough to see the tablet running against nothing. Quick start connects it to a kiosk, and How to get it covers the deploy token and installing the library from our registry.
Which of these are you?
Five jobs, and most people only ever do one. Start at your row.
| You want to | Start here |
|---|---|
Deploy our shipped tablet on a Promethist Unreal kiosk |
|
Customize buttons and appearance — fork the app, but keep receiving our fixes by npm |
|
Add a button triggering something new in Unreal |
|
Control the kiosk using physical buttons, lamps, relays or a PLC |
|
Run the kiosk on another engine — like Unity — and control it the same way |
If you do not yet know which, read The layers first. This single page explains every piece in order, without assuming you know the others.
The idea
State out, commands in. The kiosk publishes flat named values — paused, volume,
sessionActive — and accepts command strings. This is the entire protocol. There is no
registration, no acknowledgement, and no request/response.
Controls render from published values and never from local guesses. Press Pause and the button does not flip until the kiosk says it paused. A tablet flipping optimistically would lie whenever a command drops, and disagree with a second tablet in the room.
What is in this repository
| What it is | |
|---|---|
|
The library. Protocol types, a headless client, and themeable web components. Published as |
|
The reference app. A complete, deployable tablet built from the library. Deploy as-is, or fork it as a starting point. |
This split ensures a client bug fix reaches every partner without touching a single line of their interface. Neither is required: any client speaking the protocol is a first-class client, whatever it is written in, and hardware clients use neither.