{
  "schema_version": 1,
  "type": "app",
  "slug": "ntx-embedded",
  "title": "NTX Embedded",
  "brief": "NTX Embedded — unified Octolux HMI management app, brand guide, skills, and 5 customer demo projects",
  "version": "1.0.0",
  "tags": [],
  "license": "MIT",
  "sample_prompts": [
    {
      "prompt": "Design an HMI for an Octolux 15.6 inch display"
    },
    {
      "prompt": "Deploy my interface to the Octolux device"
    },
    {
      "prompt": "Show me the NTX Embedded dashboard"
    }
  ],
  "install": {
    "binary_name": "ntx-embedded",
    "install_dir": "",
    "install_hint": "",
    "version_cmd": ""
  },
  "readme": "NTX Embedded customer package — unified Octolux HMI management app, brand guide, skills, and customer projects.\n\n## What's included\n\n### Unified Octolux App (`apps/octolux/`)\n\nSingle Node.js server on port 8830 with 7 sections:\n\n- **Dashboard** (`/dashboard/`) — HMI fleet overview: device cards with live snapshots, reset, deploy/stream/VNC/camera quick-launch\n- **Projects** (`/projects/`) — customer project picker with framed bezel preview (Mock) and one-click deploy\n- **Deploy** (`/deploy/`) — HMI deploy previewer: pixel-accurate device-resolution preview, project selector, device scanner filtered by model, Push to device with orientation control\n- **VNC** (`/vnc/`) — interactive remote desktop via CDP: click, scroll, type directly on the device's kiosk browser\n- **Screencast** (`/screencast/`) — live display stream via SSE relay (one upstream MJPEG connection, zero polling)\n- **Remote** (`/remote/`) — CDP remote view\n- **Camera** (`/camera/`) — dual-stream workcell camera viewer with zoom controls, per-stream rotation, and Take Controls\n\n### Camera (`/camera/`)\n\nLive workcell camera viewer with WebRTC WHEP streaming via Cloudflare:\n\n- **Dual-stream layout** — semistatic (9:16 portrait) on the left, zoom (16:9 landscape) on the right\n- **Per-stream rotation** — each stream viewport rotates independently in place; semistatic has a 270deg base rotation to correct for portrait-mounted 16:9 camera\n- **Global rotation control** — 0/90/180/270deg from the header dropdown, synced across all viewers via SSE\n- **Take Controls** — associate this container with the selected workcell via Curium (same as Hydrogen editornav dropdown)\n- **Zoom camera controls** — pan (arrow buttons), zoom (slider), X/Y position, Home command — appears on hover when you have controls\n- **Camera command API** — proxies RPC commands to Lithium room via WebSocket for move, zoom, home, get_position\n\nCamera API endpoints:\n\n| Method | Path | Purpose |\n|--------|------|---------|\n| `GET` | `/camera/api/workcells` | List workcells with live cameras |\n| `GET` | `/camera/api/state` | Current rotation and viewer count |\n| `POST` | `/camera/api/rotate` | Set rotation — broadcasts via SSE |\n| `GET` | `/camera/api/controls` | Current container association status |\n| `POST` | `/camera/api/take-controls` | Associate container with workcell |\n| `POST` | `/camera/api/release-controls` | Disassociate container |\n| `POST` | `/camera/api/camera-command` | Send camera RPC command via Lithium WebSocket |\n\n### Skills\n\n- **ntx-brand** — dark-mode color palette (charcoal + orange + cyan), Inter font stack, HMI screen sizes, touch-target rules\n- **ntx-app-header** — NTX-branded 44px single-row header pattern\n- **octolux-deploy** — preview and deploy HMI interfaces to devices\n- **octolux-vnc** — remote desktop streaming\n- **octolux-bootstrap** — first-time HMI device setup (Chromium, VNC, autostart, Carbon registration)\n- **octolux-launcher** — HMI launcher architecture reference (Weston, Chromium kiosk, Apache)\n- **octolux-list** — discover online HMI devices via Carbon IP API\n- **octolux-fork** — fork reference HMI interfaces into customer repos\n- **octolux-device-profile** — SSH device system profile collection\n- **active-project** — cross-app active customer project state\n\n### Customer projects\n\n5 demo customer HMIs under `customers/`:\n\n- **Ciridian** — smart bed sleep console (7\" landscape)\n- **Gas Station Sign** — fuel price console (10.1\" landscape)\n- **Subway Toaster** — commercial toaster oven display (10.1\" landscape)\n- **Teazzers** — boba beverage dispenser (15.6\" landscape)\n- **Teazzers Refreshers** — self-order kiosk (10.1\" portrait)\n\n## Installation\n\nAutomatically 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`.\n\nManual install:\n```bash\ncurl -fsSL https://wiki-ufypy5dpx93o.adom.cloud/static/apps/ntx-embedded/ntx-embedded.tar.gz -o /tmp/ntx-embedded.tar.gz\nmkdir -p ~/ntx-embedded && tar xzf /tmp/ntx-embedded.tar.gz -C ~/ntx-embedded\ncd ~/ntx-embedded && bash install.sh\n```\n",
  "author": {
    "name": "Kyle Bergstedt",
    "email": "kyle@adom.inc"
  },
  "visibility": {
    "public": true
  },
  "hero": null,
  "discovery_triggers": [],
  "discovery_pitch": null,
  "metadata": {},
  "created_at": "2026-05-28T05:28:55.324Z",
  "updated_at": "2026-05-28T05:28:55.324Z",
  "skills": []
}