NerdlyBuilds

Batcave Deck

active75%
ElectronJavaScriptIoTDashboard3D PrintingMining
The Batcave Deck running below the primary OLED monitor — showing the app launcher, system stats, weather, mining telemetry, and live print farm camera feed

A custom Electron-based ambient HUD running on a 3840×1100 ultrawide bar display, mounted below the primary monitor. The Deck pulls real-time data from across the local network and renders it in a glanceable JARVIS-style interface.

What it does

  • System telemetry — Live CPU, GPU, RAM, VRAM, and thermals polled every few seconds
  • 3D print farm monitoring — Camera feeds from multiple printers proxied through go2rtc, with printer status indicators
  • Mining dashboard — Aggregate hashrate, per-unit temps, best difficulty, and share counts from a fleet of Bitaxe miners
  • Weather — Local conditions via OpenWeatherMap
  • AI chat — Built-in streaming chat with Gemini and Claude, rendered in the same HUD aesthetic
  • App launcher — Quick-launch grid for frequently used tools and services

The stack

Electron + vanilla JavaScript with a modular architecture. Each data source is its own module (system.js, miners.js, cameras.js, etc.) exporting init() and update() functions. No React, no build tools — just clean modules and a config file.

Design

Dark void background with bright accent data. Orbitron for headers, JetBrains Mono for data values, Outfit for body text. The goal is zero cognitive load — glance, absorb, move on. Anomalies (offline miners, printer errors, high thermals) pop visually without reading.

Key engineering challenges

  • RTSP cameras in Electron: Chromium doesn’t support RTSP natively. MJPEG via Fetch ReadableStream only captures one frame. Solution: go2rtc Docker proxy serving HTTP snapshots, polled at 500ms intervals.
  • Modular data polling: Each module runs on its own interval (5-30s) depending on how fast the data changes, keeping the UI responsive without hammering APIs.

Print farm camera overlay showing live feeds from three printers via go2rtc proxy, with mining stats visible underneath