Hydronic Loop Builder
HydronicDrop equipment on the elevations, click port-to-port to lay pipe, and hit run — the loop solves a real steady-state hydraulic and thermal balance every tick, so flow finds its operating point and water temperature propagates around the circuit. Two synced views (north and east) let you route the loop in 3D, and pipe friction now tracks the developed run. New to the ideas? Start with Hydronic Loops, Load Piping, and Hydronic Balancing.
Desktop tool
Dragging equipment around an elevation and clicking port-to-port to run pipe wants a pointer and a wide canvas — open this on a laptop or desktop to build and run a loop. A finger can't both drag a component and pan the sheet, so it's pointer-only by design. The mental model it teaches:
- A loop finds one operating point. The pump curve and the system's resistance meet at a single flow — open a valve and the whole loop's flow shifts, not just one branch.
- Two-way valves throttle; three-way valves divert. A two-way valve changes total loop flow; a three-way holds pump flow roughly constant and sends the rest down a bypass.
- Parallel branches need balancing. The low-resistance branch hogs the flow; a balance valve adds resistance to even the split.
- Heat rides the water. q = 500 · GPM · ΔT — drop the flow and ΔT climbs. Watch a cold loop warm up over a few seconds as the plant's heat transports around.
- Length is head. Two elevations (width × height and depth × height) route the loop in 3D; the longer the developed pipe run, the more pump head it costs. Static lift, though, cancels around a closed loop — the expansion tank holds it.
New to hydronics? Hydronic Loops covers the same ideas and reads fine on a phone.
Solver didn't settle — the flow shown may be unphysical. Ease the pump curve (lower the head or Curve a) or open a valve.
How it works
Every tick the builder flattens your layout into a network — pipes and equipment become flow branches between pressure nodes — and solves a linearized nodal balance: mass is conserved at every junction, head drops across each resistance as k·Q², and the pump adds head on its curve H = H₀·(speed/100)² − a·Q². Flow settles to the operating point in a few iterations.
The two elevations share the vertical (height) axis: the north view plots width across, the east view plots depth across, so dragging a component in either pane positions it in 3D. Each pipe's resistance scales with its developed 3D run, so a longer or taller route is more pump head — while the static lift of a riser cancels on the way back down (a closed loop's column is balanced by the expansion tank). Then a thermal sweep transports temperature on those flows — q = 500 · GPM · ΔT at each coil, flow-weighted mixing at each tee. A loop reads its upstream temperature from the previous tick, so a cold loop warms up over a couple of seconds the way a real one does.
A teaching model, not a design tool: it solves a steady-state balance each tick in canonical US units (GPM, ft of head, °F) and rounds at the display. Pipe friction uses a fixed nominal diameter scaled by developed length (no pipe-sizing yet); a coil can run a fixed design load or a UA model whose duty tracks the approach; closed valves are a large finite resistance, never infinite — so the math always stays finite. It also assumes a closed loop with the expansion tank as the pressure reference, so static lift cancels and the head readouts are friction + pump, not absolute system pressure — open-system fill-pressure behavior isn't modeled yet.