---
title: A JavaFX Editor for the Cooling Simulator
description: Companion editor for the cooling-system sim. Drag-and-drop plant layout, JSON export, upload-to-backend. The smallest tool, and the one the event leaned on.
date: 2026-04-25
period: 'October-November 2018'
thumbnail:
  src: ./_assets/process-simulator-input.jpg
  alt: JavaFX graph editor for the cooling system simulator.
article:
  tags: ['simulation', 'tools']
  role: Editor author
  stack: ['JavaFX', 'JSON', 'REST API']
  outcome: A drag-and-drop graph editor that let non-developers feed the simulator
  audience: technical
project:
  title: Graph Editor
  description: A drag-and-drop JavaFX editor that let event organisers reconfigure the cooling sim without me sitting next to them.
  thumbnail:
    alt: JavaFX editor interface for the cooling system simulator input graph.
---

The brief was one sentence: non-technical event organisers needed to rewire a simulated cooling plant, live, without me hovering behind them. That sentence quietly ruled out every interface I would have enjoyed building: config files, a DSL, anything with a curly brace in it. The [cooling-system sim](/articles/nuclear-cooling-simulation/) was only going to be as useful as the tool that fed it, so in late 2018 I built a JavaFX desktop editor: lay the plant out as a graph, drag pipes between pumps and coolers, tune each element's parameters in a side panel, then export JSON or upload it straight to the backend.

It was the smallest piece of the whole project and the piece the event quietly depended on. A simulator only its author can reconfigure is a demo; the editor is what made it a tool other people could own for a weekend.

If I built it again I'd skip JavaFX and put the editor in the browser, next to the monitoring clients. Cross-platform desktop packaging was a fight, and every install I asked of the organisers was one more reason for them to call me over, which was the exact thing the brief said to prevent.
