Underfloor Heating Designer UFH Designer
Free & open source

Plan underfloor heating loops that can actually be laid

Draw your rooms over a floor plan, set the pipe spacing, and get a counter-flow spiral for every zone — with real pipe lengths, circuit-length warnings and heat output per room. No sign-up, no upload, nothing to install.

Runs entirely in your browser — your floor plan never leaves your computer.

Four rooms of a floor plan filled with underfloor heating pipe loops A living room, kitchen, bathroom and hallway, each filled with a counter-flow spiral of heating pipe running back to a manifold.

Everything you need to lay out a floor

It does the fiddly part — filling an awkward room shape with pipe at an even spacing — and then tells you what that costs you in metres and watts.

Import your floor plan

Drop in a PNG, JPG, WEBP or GIF scan — or a DXF. Calibrate it against a known distance and every zone you draw is true to size.

Draw rooms, not rectangles

Click out any L, T or U-shaped room, or snap a quick rectangle. Drag the vertices afterwards and the pipework redraws itself.

Counter-flow spirals

Supply and return wind in together so a hot pass always sits beside a cool one — the layout that gives you an even floor rather than a warm end and a cold end.

Bends the pipe can take

Every corner and the turn in the middle are held to the pipe's minimum bend radius, so what you see on screen is a shape a fitter can actually form by hand.

Manifold & leader runs

Place the manifold, route each zone's supply and return back to it, and the leader length is counted into the circuit like any other metre of pipe.

Lengths and circuit limits

Spiral, leader and total metres per zone, checked against your maximum circuit length — so you find out a room needs splitting before you buy the pipe.

Heat output per room

Set supply and return temperatures and the flow rate, and read off watts and W/m² for each zone plus the total flow the manifold has to carry.

Your work, your machine

Nothing is uploaded and there is no account. Save a project to a file when you want to keep it or hand it to someone else.

Open source

The whole thing is on GitHub — read how the pipe routing works, file an issue, or run your own copy.

From floor plan to pipe schedule in four steps

Import and calibrate

Load your plan and click two points a known distance apart. Everything after that is in real millimetres.

Place the manifold

Drop it where the cabinet will go. Every zone's leaders route back to it.

Draw your zones

Outline each room and pick its pipe spacing — tighter in bathrooms and along cold walls, wider where output matters less.

Read off the numbers

Pipe length per circuit, warnings where a loop runs too long, and the heat output each room will give you.

Why the loops look the way they do

Each zone is filled with a counter-flow spiral: the supply winds inward and the return winds back out through the gaps it left, so the two lanes alternate across the floor. A pass that has just left the manifold sits next to one that is on its way back, which evens out the surface temperature instead of leaving the far end of the room noticeably cooler than the near end.

The other half of the problem is that pipe does not bend to a point. Every corner is formed at the pipe's minimum bend radius — 100 mm suits the usual 16 mm PEX-AL-PEX — and so is the 180° turn in the middle of the spiral. That turn is the awkward one: no half-turn at that radius fits between two passes closer together than twice it, so at ordinary spacings the last two passes are opened out until the turn can be the plain half circle it should be.

The layout follows the actual room outline rather than its bounding box, so an L-shaped or U-shaped room is filled along its real walls, and each ring stops where the shape stops.

Questions

Is it really free?
Yes. It is free to use and the source is published on GitHub under the Apache 2.0 licence. There is no account, no paid tier and no trial.
Do I need to install anything?
No. It runs in the browser — open the app and start drawing. It works on any modern desktop browser; a large screen helps, as you are drawing over a floor plan.
Does my floor plan get uploaded anywhere?
No. The plan you import and the zones you draw stay in your browser. Saving a project writes a file to your own computer, and loading one reads it back.
What pipe spacing should I use?
100–200 mm covers most work: around 100 mm in bathrooms and along cold external walls where you want more output, 150–200 mm through the middle of ordinary rooms. You can set it per zone and watch the length and heat output change.
How long can one circuit be?
That is yours to set — put your maximum in the settings and any zone that exceeds it is flagged. For 16 mm pipe, a limit somewhere between 80 and 120 m per loop is typical; check what your manifold and pump can carry.
Can I import a DXF?
Yes — LINE, LWPOLYLINE, POLYLINE, CIRCLE and ARC entities are read. If a DXF comes in empty, its exporter has probably used entity types outside that set; importing a screenshot of the plan as an image works just as well.
Does it replace a proper heat-loss calculation?
No. It tells you what a given layout will give you at a given flow temperature; it does not work out what each room needs. Size your system from a heat-loss calculation and use this to lay the pipe that meets it.
Can I contribute or run my own copy?
Please do — the repository is on GitHub. It is a React, TypeScript and Vite app; npm install then npm run dev gets you running locally.

Lay out your first floor in a few minutes

Nothing to install, nothing to sign up for. Import a plan, draw a room, and see the pipework appear.

Open the app