Skip to content
Darkcoder-droidPublic

About

thermal ∩ ml — where heat meets intelligence. A real-time AI engine that reduces data center power consumption by routing virtual workloads away from hot server nodes.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

therml

thermal ∩ ml — where heat meets intelligence.
A real-time data center cooling optimizer that thinks in workloads, not watts.


Google Solutions Challenge 2026 SDG 7 SDG 9 SDG 12 SDG 13


Live Demo

🌐 therml.netlify.app

Open the link. Follow the on-screen instructions. No setup required.


The Idea

Data centers waste enormous energy cooling entire server rooms uniformly, when in reality heat is concentrated in specific racks at specific times. therml flips the assumption: instead of adding more cooling to a hot rack, it moves the work to a cooler one — letting hot hardware rest naturally.

Heat follows compute. Control where the work runs, and you control where the heat goes.


What You'll See

The landing page opens with a particle warp animation — blue and red dots rising toward a light source, a nod to Team Icarus and the theme of flying too close to the heat. From there:

  1. Project overview — what therml is and why it exists
  2. Team introduction
  3. Instructions — how to run the live demo (open Simulator + Monitor in separate tabs)
  4. GitHub — link to this repository

Architecture

Netlify (landing page)
  └── links to Railway (backend)
        ├── /monitor   → Monitoring dashboard
        ├── /sim       → Simulation dashboard
        └── /          → WebSocket + AI engine (shared port)

Everything communicates over a single WebSocket connection. The AI engine, state management, and both dashboards run from one Railway service. No Docker. No message brokers. No databases.


Features

Monitoring Dashboard (/monitor)

  • Live heatmap grid of server racks — heat-colored, status-bordered, real time
  • Workload migration particles animating across physical nodes
  • AI thought stream — every decision explained in plain language
  • Flexible widget dock — swap between Heat Distribution, Trends, PUE Meter, Gauges, Logs Mini, Override Quick
  • Paginated metrics topbar — Thermal / Power / Operations pages
  • Layout modes — Visual+Sidebar, Visual+Logs, Visual+Override, Full Visual
  • Manual override tab — lock workloads, migrate manually, AI adapts around your decisions

Simulation Dashboard (/sim)

  • Add, configure, and remove server racks on a spatial grid
  • Inject workloads with priority, heat contribution, and lock settings
  • Heat event scenarios: Cold Start, Hotspot, Zone Fire, Gradual Ramp, Chaos Mode
  • Per-rack heat trend controls (passive drift per tick)
  • Datacenter presets: Small 2×3 / Medium 4×6 / Large 6×8

AI Engine

Runs a thermal scan every 2 seconds. Uses a meta-selection fallback system that builds candidate migration plans across three strategies, scores each, and executes the best plan.

Strategies:

Strategy Approach
greedy-headroom Selects migrations based on destination thermal headroom minus workload heat impact
peak-shaving Chooses moves that reduce the projected peak rack temperature the most
load-spread Variance-reduction strategy — balances thermal load evenly across all racks
fallback-selector Meta-strategy — runs all three above, scores each plan, picks the winner

Scoring factors:

  • Manhattan distance between racks (|row1-row2| + |col1-col2|) — prefers nearby migrations
  • Weighted objective function computePlanScore() — ranks candidate plans across heat reduction, balance, and distance cost
  • Locked workload detection — skips pinned workloads entirely
  • Override awareness — human-controlled racks excluded from candidate pool

Supervisor mode: Every ~3 minutes, an AI supervisor pass reviews current policy performance and thermal state, logging a higher-level assessment of whether the active strategy is appropriate for current conditions.


Stack

Layer Tech
Landing page Netlify (static)
Backend + dashboards Railway (Node.js)
Server Express
Real-time ws (WebSocket)
Frontend Vanilla HTML/CSS/JS — no framework, no bundler
Charts Native Canvas API
AI strategies Custom heuristics (greedy-headroom, peak-shaving, load-spread, fallback-selector)

Color Language

Color Meaning
Slate blue #4a7fa5 Cool / normal rack
Copper #c9773a Warm / elevated heat
Terracotta #d64c2a Hot / critical rack
Gold #c9a84c Metrics, PUE, warnings
Burnt orange #e8832a AI decisions, active state
Brass #8a6a3a Simulation dashboard identity
Olive #5a8a5a Good / normal / connected

Running Locally

Prerequisites

  • Node.js 18+
  • npm

Install & Run

git clone https://github.com/yourusername/therml.git
cd therml
npm install
npm start
Path URL
Landing / Monitor http://localhost:3000/monitor
Simulation http://localhost:3000/sim

Optional: GEMINI API (richer AI logs)

The AI engine works without a key. To enable natural language supervisor logs:

# Create .env in project root
GEMINI_API_KEY=sk-ant-your-key-here

Restart with npm start. The supervisor pass will generate narrative assessments using Claude when the key is present, falling back to rule-based logs silently if unavailable.


Demo Flow

  1. Open therml.netlify.app and follow the instructions page
  2. Open the Simulator and the Monitor in separate tabs
  3. In the Simulator, trigger Hotspot under Heat Events
  4. Watch the Monitor — one rack turns critical, the AI logs a decision within 2 seconds, a migration particle moves across the grid
  5. Try Chaos Mode — watch the fallback-selector switch strategies under pressure
  6. In the Monitor Override tab, manually lock a workload — watch the AI route around it
  7. Check the widget dock — swap to Trends to see thermal history, or Gauges for power and water

Project Structure

therml/
├── server/
│   ├── index.js          ← single Express server, all routes, WebSocket
│   ├── ai-engine.js      ← thermal scoring, strategy selection, supervisor mode
│   └── state.js          ← shared in-memory datacenter state + mutations
├── monitoring/
│   └── index.html        ← monitoring dashboard (single file)
├── simulation/
│   └── index.html        ← simulation dashboard (single file)
└── package.json

Google Solution Challenge Context

Problem: Smart Resource Allocation (Open Innovation)

Impact: Data centers account for 1–2% of global electricity consumption. Cooling alone represents 30–50% of that. Shifting compute spatially — rather than increasing cooling output — reduces energy consumption without hardware changes, downtime, or capital expenditure.

Scalability path: Replace simulated thermal input with real thermal camera feeds (FLIR, Axis). Swap heuristic strategies for a trained reinforcement learning agent. Deploy as a sidecar service alongside any existing orchestration platform.


Team

Team Icarus — because we flew straight at the heat.


Name

therml = thermal with the a dropped.

The missing letter is the resource being conserved. Also reads as therm + ml. The typo is intentional.


License

MIT

About

thermal ∩ ml — where heat meets intelligence. A real-time AI engine that reduces data center power consumption by routing virtual workloads away from hot server nodes.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages