Ambient HUD for NVIDIA DGX Spark clusters.
Your AI cluster deserves a better status light than nvidia-smi.
CORTEX is a full-screen, arc-reactor-style dashboard that sits on your rack monitor and shows what your cluster is actually doing — live GPU temps/util/power from every node, vLLM tokens/sec, running/waiting queues, CUDA kernel activity, agent tool calls. It shifts visual states between dormant → listen → thinking → hot → gold → fault so the room can tell at a glance whether the model is idle, generating, thermal-throttling, or broken.
Built for the 52Pi rack screen + DGX Spark combo. Works on any Linux box with a browser.
- Live per-node GPU telemetry via
nvidia-smi(local) + SSH (remote nodes) - vLLM inference metrics polled from
/metrics(tok/s, prompt/s, running, waiting, gen totals) - State machine with visual modes:
dormant— standing by (blue ambient)listen— incoming message (green pulse)thinking— vLLM generating (cyan cascade + CRT terminal overlay)hot— any GPU ≥ 80°C (amber)gold— owner-keyword detected in inbound (gold shimmer)fault— vLLM unreachable 3+ seconds (red alarm, flashing)
- Agent gateway log tail (optional) — emits
tool,voice,msgIn,msgOut,reloadevents into the event stream - Fully keyboard-demoable — press
T/G/H/L/Rfor each mode, space for shockwave - Zero config needed to boot — sensible DGX Spark defaults; env-overridable
- Pure static frontend — Node + ws backend, Three.js + Canvas2D + SVG frontend, no build step
git clone <this-repo> cortex && cd cortex
npm install # just `ws`
node server.js # http+ws on :8090Open http://localhost:8090 on your rack display (or use Firefox kiosk).
Copy .env.example → .env (or export vars in your shell). All keys are optional; defaults show DGX Spark-friendly labels (NVIDIA DGX CLUSTER, 2× GB10 · 256GB UNIFIED, etc.).
Minimal single-node setup: just run node server.js. It polls local nvidia-smi + local vLLM on 127.0.0.1:8000.
Two-node cluster:
export NODE_2_SSH=user@10.0.0.2
export NODE_2_NAME=NODE-02
node server.jsWith identity:
export AGENT_NAME=JARVIS
export OWNER_NAME=TONY
export OWNER_KEYWORDS=tony,stark,boss- Node 18+ (native
fetch,WebSocketServerfromws@8) nvidia-smion PATH (local node)- SSH key auth to remote nodes if using
NODE_2_SSH - vLLM serving
/metricson a known endpoint (default127.0.0.1:8000)
Spark 2 autologin + Firefox kiosk mode pointing at Spark 1's CORTEX server is the intended setup. Example systemd user unit and kiosk wrapper are left as an exercise — see your distro's kiosk docs.
While focused on the page:
| Key | Mode |
|---|---|
T |
thinking (12s, 35 tps) |
G |
gold (12s) |
H |
hot (12s) |
L |
listen (6s) |
R |
reset to dormant |
| space | fire shockwave ring |
Or use URL hashes: http://localhost:8090/#thinking, #gold, #hot, #listen, #dormant.
┌─── nvidia-smi (local)
│
server.js ┼─── ssh nvidia-smi (NODE_2_SSH) ─┐
(Node+ws) │ ├─> state.gpus
├─── http GET vLLM /metrics (1Hz) ──┼─> state.vllm (+ fault tracker)
│ │
└─── tail gateway-*.log (optional) ──┴─> state.events
ws:/ws ─────────────────────────────> browser
├─ index.html (boot + corners)
├─ cortex.js (mode machine + orb)
├─ terminal.js (CRT overlay)
└─ rain/constellation/css
MIT. Do whatever.
Not affiliated with NVIDIA. DGX, Spark, GB10, and related marks belong to NVIDIA Corp.