app
NTX Embedded
Public UnreviewedNTX Embedded — unified Octolux HMI management app, brand guide, skills, and 5 customer demo projects
NTX Embedded customer package — unified Octolux HMI management app, brand guide, skills, and customer projects.
What's included
Unified Octolux App (apps/octolux/)
Single Node.js server on port 8830 with 7 sections:
- Dashboard (
/dashboard/) — HMI fleet overview: device cards with live snapshots, reset, deploy/stream/VNC/camera quick-launch - Projects (
/projects/) — customer project picker with framed bezel preview (Mock) and one-click deploy - Deploy (
/deploy/) — HMI deploy previewer: pixel-accurate device-resolution preview, project selector, device scanner filtered by model, Push to device with orientation control - VNC (
/vnc/) — interactive remote desktop via CDP: click, scroll, type directly on the device's kiosk browser - Screencast (
/screencast/) — live display stream via SSE relay (one upstream MJPEG connection, zero polling) - Remote (
/remote/) — CDP remote view - Camera (
/camera/) — dual-stream workcell camera viewer with zoom controls, per-stream rotation, and Take Controls
Camera (/camera/)
Live workcell camera viewer with WebRTC WHEP streaming via Cloudflare:
- Dual-stream layout — semistatic (9:16 portrait) on the left, zoom (16:9 landscape) on the right
- Per-stream rotation — each stream viewport rotates independently in place; semistatic has a 270deg base rotation to correct for portrait-mounted 16:9 camera
- Global rotation control — 0/90/180/270deg from the header dropdown, synced across all viewers via SSE
- Take Controls — associate this container with the selected workcell via Curium (same as Hydrogen editornav dropdown)
- Zoom camera controls — pan (arrow buttons), zoom (slider), X/Y position, Home command — appears on hover when you have controls
- Camera command API — proxies RPC commands to Lithium room via WebSocket for move, zoom, home, get_position
Camera API endpoints:
| Method | Path | Purpose |
|---|---|---|
GET |
/camera/api/workcells |
List workcells with live cameras |
GET |
/camera/api/state |
Current rotation and viewer count |
POST |
/camera/api/rotate |
Set rotation — broadcasts via SSE |
GET |
/camera/api/controls |
Current container association status |
POST |
/camera/api/take-controls |
Associate container with workcell |
POST |
/camera/api/release-controls |
Disassociate container |
POST |
/camera/api/camera-command |
Send camera RPC command via Lithium WebSocket |
Skills
- ntx-brand — dark-mode color palette (charcoal + orange + cyan), Inter font stack, HMI screen sizes, touch-target rules
- ntx-app-header — NTX-branded 44px single-row header pattern
- octolux-deploy — preview and deploy HMI interfaces to devices
- octolux-vnc — remote desktop streaming
- octolux-bootstrap — first-time HMI device setup (Chromium, VNC, autostart, Carbon registration)
- octolux-launcher — HMI launcher architecture reference (Weston, Chromium kiosk, Apache)
- octolux-list — discover online HMI devices via Carbon IP API
- octolux-fork — fork reference HMI interfaces into customer repos
- octolux-device-profile — SSH device system profile collection
- active-project — cross-app active customer project state
Customer projects
5 demo customer HMIs under customers/:
- Ciridian — smart bed sleep console (7" landscape)
- Gas Station Sign — fuel price console (10.1" landscape)
- Subway Toaster — commercial toaster oven display (10.1" landscape)
- Teazzers — boba beverage dispenser (15.6" landscape)
- Teazzers Refreshers — self-order kiosk (10.1" portrait)
Installation
Automatically installed by gallia install.mjs when the container's user is a member of the ntx-embedded Carbon org. No GitHub access required — downloaded from this wiki page as ntx-embedded.tar.gz.
Manual install:
curl -fsSL https://wiki-ufypy5dpx93o.adom.cloud/static/apps/ntx-embedded/ntx-embedded.tar.gz -o /tmp/ntx-embedded.tar.gz
mkdir -p ~/ntx-embedded && tar xzf /tmp/ntx-embedded.tar.gz -C ~/ntx-embedded
cd ~/ntx-embedded && bash install.sh
NTX Embedded customer package — unified Octolux HMI management app, brand guide, skills, and customer projects.
## What's included
### Unified Octolux App (`apps/octolux/`)
Single Node.js server on port 8830 with 7 sections:
- **Dashboard** (`/dashboard/`) — HMI fleet overview: device cards with live snapshots, reset, deploy/stream/VNC/camera quick-launch
- **Projects** (`/projects/`) — customer project picker with framed bezel preview (Mock) and one-click deploy
- **Deploy** (`/deploy/`) — HMI deploy previewer: pixel-accurate device-resolution preview, project selector, device scanner filtered by model, Push to device with orientation control
- **VNC** (`/vnc/`) — interactive remote desktop via CDP: click, scroll, type directly on the device's kiosk browser
- **Screencast** (`/screencast/`) — live display stream via SSE relay (one upstream MJPEG connection, zero polling)
- **Remote** (`/remote/`) — CDP remote view
- **Camera** (`/camera/`) — dual-stream workcell camera viewer with zoom controls, per-stream rotation, and Take Controls
### Camera (`/camera/`)
Live workcell camera viewer with WebRTC WHEP streaming via Cloudflare:
- **Dual-stream layout** — semistatic (9:16 portrait) on the left, zoom (16:9 landscape) on the right
- **Per-stream rotation** — each stream viewport rotates independently in place; semistatic has a 270deg base rotation to correct for portrait-mounted 16:9 camera
- **Global rotation control** — 0/90/180/270deg from the header dropdown, synced across all viewers via SSE
- **Take Controls** — associate this container with the selected workcell via Curium (same as Hydrogen editornav dropdown)
- **Zoom camera controls** — pan (arrow buttons), zoom (slider), X/Y position, Home command — appears on hover when you have controls
- **Camera command API** — proxies RPC commands to Lithium room via WebSocket for move, zoom, home, get_position
Camera API endpoints:
| Method | Path | Purpose |
|--------|------|---------|
| `GET` | `/camera/api/workcells` | List workcells with live cameras |
| `GET` | `/camera/api/state` | Current rotation and viewer count |
| `POST` | `/camera/api/rotate` | Set rotation — broadcasts via SSE |
| `GET` | `/camera/api/controls` | Current container association status |
| `POST` | `/camera/api/take-controls` | Associate container with workcell |
| `POST` | `/camera/api/release-controls` | Disassociate container |
| `POST` | `/camera/api/camera-command` | Send camera RPC command via Lithium WebSocket |
### Skills
- **ntx-brand** — dark-mode color palette (charcoal + orange + cyan), Inter font stack, HMI screen sizes, touch-target rules
- **ntx-app-header** — NTX-branded 44px single-row header pattern
- **octolux-deploy** — preview and deploy HMI interfaces to devices
- **octolux-vnc** — remote desktop streaming
- **octolux-bootstrap** — first-time HMI device setup (Chromium, VNC, autostart, Carbon registration)
- **octolux-launcher** — HMI launcher architecture reference (Weston, Chromium kiosk, Apache)
- **octolux-list** — discover online HMI devices via Carbon IP API
- **octolux-fork** — fork reference HMI interfaces into customer repos
- **octolux-device-profile** — SSH device system profile collection
- **active-project** — cross-app active customer project state
### Customer projects
5 demo customer HMIs under `customers/`:
- **Ciridian** — smart bed sleep console (7" landscape)
- **Gas Station Sign** — fuel price console (10.1" landscape)
- **Subway Toaster** — commercial toaster oven display (10.1" landscape)
- **Teazzers** — boba beverage dispenser (15.6" landscape)
- **Teazzers Refreshers** — self-order kiosk (10.1" portrait)
## Installation
Automatically installed by gallia `install.mjs` when the container's user is a member of the `ntx-embedded` Carbon org. No GitHub access required — downloaded from this wiki page as `ntx-embedded.tar.gz`.
Manual install:
```bash
curl -fsSL https://wiki-ufypy5dpx93o.adom.cloud/static/apps/ntx-embedded/ntx-embedded.tar.gz -o /tmp/ntx-embedded.tar.gz
mkdir -p ~/ntx-embedded && tar xzf /tmp/ntx-embedded.tar.gz -C ~/ntx-embedded
cd ~/ntx-embedded && bash install.sh
```