Size it like you’ll be the one running it.
Eight calculators with the working shown — Darcy–Weisbach, psychrometrics, ASHRAE 62.1 — live, checked against design bands, with a calculation record for QA.
Standards & method
The books on my shelf — what I sized this from
| Ventilation | ASHRAE 62.1 — Ventilation Rate Procedure, Table 6.1 / 6.2 |
| Moist air | ASHRAE Fundamentals psychrometrics · Buck saturation correlation · Stull wet-bulb |
| Duct & pipe friction | Darcy–Weisbach · Colebrook via Haaland · Huebscher equivalent diameter |
| Pipe dimensions | ASME B36.10 Schedule 40 — design on true internal diameter |
| Design bands | CIBSE AM12 / ASHRAE practice ranges, shown as checks on every result |
| Input control | Every calculator input is clamped to declared limits in the LIMITS table (applied at runtime before any calculation); non-finite entries fall back to the design default |
Straight talk: this is my design-stage aid, not a substitute for judgement. Don't issue anything for construction until a qualified engineer has checked it against the project spec, your local code and the manufacturer's real data. And yes — uncontrolled when printed, same as every calc I've ever filed.
Pick a tool, enter your actual conditions, and read three things: the headline number, the check pills, and the worked method. Design-stage numbers — final selection still needs manufacturer data and your project spec.
Calculation Record
Your paper trail for a design review.
Your paper trail — the bit that saves you in a design review
I added this because “trust me, I ran the numbers” doesn't survive a QA audit. It captures the headline result from every calculator, with the date, the standards basis and the check status. Run each tool first — the record only writes down what's actually on screen.
What the 3D view is for
Four jobs this view earns its keep on. Each one opens the viewer already set up for the job.
1 · Fit check: will it fit the void?
The classic plant-room failure: the main run is sized for airflow, then the ceiling void turns out to be 400 mm deep and the duct is not. Size the run in the Duct Sizer, then open the Section view. The clip plane cuts the run so you read the true section and its height against the 1 m grid, before a single line is drawn in CAD.
2 · Coordination: do the runs clash?
Duct over pipes looks fine on two separate drawings and clashes on site. Here both systems share one room: orbit it and check the branch take-offs against the pipe risers and the pump set with your own eyes. Ten seconds of orbiting beats a clash found by the installer.
3 · Sizes at a glance
Plan view, drawing style. The tags carry the live section and bore, the dimension reads the duct size off the model itself, and the strip at the top states both velocities. It is the quickest honest answer to "what size is that run, and how fast is it moving?"
4 · Show it to someone who does not read drawings
Clients and project managers do not read GA plans, and they should not have to. Realistic view, flow particles on: air moving through the duct, water through the pipes, at speeds set by your calculated velocities. The design explains itself in one look.
The rule behind all four
The room is not a picture of your design, it is generated from your design: change a duct section or a pipe bore in the calculators and the model rebuilds itself. So the check runs both ways: if the room looks wrong, a number upstream is wrong. It stays a design-stage aid, not for construction, and final verification stays with a qualified engineer.
Duct Sizer
Equal-friction or velocity sizing for round and rectangular duct.
Your numbers — punch them in
Method & standards
De = 1.30·(a·b)^0.625 / (a+b)^0.25 (Huebscher)
Δp/L = f·(ρV²/2)/De · Δpfit = Σζ·(ρV²/2)
1/√f = −1.8·log₁₀[(ε/3.7D)^1.11 + 6.9/Re] (Haaland)
Section — drawn to scale, not sketched
Compare spiral sizes
Off-the-shelf spiral sizes at this airflow — what you'd actually order
| Ø mm | Velocity m/s | Pa/m | My call |
|---|
What I tell juniors (ASHRAE / CIBSE AM12 behind it): mains 6–10 m/s, branches 4–6 m/s, final runouts 2.5–4 m/s if anyone has to sleep or concentrate near them; 0.8–1.2 Pa/m is the equal-friction band I design to. And flex duct — its drop can be 2–4× the straight prediction if it's sagging like a hammock. Keep flex short, pulled tight, or don't come crying to me about a starved grille.
Psychrometrics
Air state from dry-bulb plus humidity, wet-bulb, or dew point.
Pin your state point
Method & standards
pws = 0.61121·exp[(18.678 − T/234.5)·T/(257.14+T)] kPa (Buck)
W = 0.621945·pw/(p − pw) · h = 1.006·T + W·(2501 + 1.86·T)
Wet-bulb by Stull (2011) empirical solution
The chart — your point, live, against saturation & RH curves
Now do something with it — cool / heat this air to…
Sensible comes off the ΔT, total off the Δh — what's left is latent, and latent is the bit that catches people out. Negative means you're heating or humidifying, not cooling.
Ventilation — ASHRAE 62.1
ASHRAE 62.1 breathing-zone outdoor airflow.
The zone — be honest about occupancy
Method & standards
Vbz = Rp·Pz + Ra·Az
Voz = Vbz / Ez
System intake Vot then needs Ev (system ventilation efficiency) from Table 6.3 — and the worst zone governs, every time.
Where that air is actually going — people vs building
Reference spaces
The spaces I get asked about most — at default density
| Space | Rp | Ra | Default density | Total at density |
|---|
Traps I've watched people fall into: 62.1 is a minimum for air quality, not your cooling quantity — supply air is usually far larger, don't confuse the two. Multi-zone systems must apply Ev (often 0.7–0.9 on VAV), which pushes intake above the simple sum of Voz. And CO₂ demand control can trim the people component in operation, but never below Ra·Az — the building itself still breathes.
Pipe Hydraulics
Darcy–Weisbach pipe sizing with a Hazen–Williams cross-check.
Your numbers — punch them in
Method & standards
Δp = f·(L/D)·(ρV²/2) + Σζ·(ρV²/2) · head = Δp/(ρg)
Hazen–Williams: Δp/L = 10.67·ρg·Q^1.852/(C^1.852·D^4.87)
Compare sizes
One size up, one size down — because that's the real decision
| Size | ID mm | m/s | kPa / 100 m | My call |
|---|
How I size pipe (CIBSE AM12 / ASHRAE behind it): 0.9–2.4 m/s where people can hear it — faster gets noisy and starts eating the pipe — and 100–350 Pa/m as the economic gradient; past ~400 Pa/m you're just buying pump energy forever. Closed loops owe nothing for height, only open systems (tanks, towers) pay for lift. And don't forget control-valve authority — add ≥ 30–50 % of the branch drop on top of index-run friction, or your valves will hunt and you'll be back on site.
Water & Coil Loads
Flow from load, coil duty, and COP ↔ EER ↔ kW/ton.
Water-side flow — load in, flow out
Method & standards
Water shortcut: L/s ≈ kW / (4.19 × ΔT)
Chiller speak, translated — COP ↔ EER ↔ kW/ton
Method & standards
Air-side coil duty — straight off the psych states
Low-ΔT syndrome — I've chased this fault more than any other: measure 3–4 K across a coil designed for 6 K and your flow balloons for the same load, and pump energy climbs with the cube of that flow. Don't take my word for it — run 6 K, then run 3.5 K at the same kW above and watch the flow. That's the penalty, in numbers you can take to the client.
Fan Laws & Power
Affinity laws for speed, flow, pressure, and power.
Where the fan sits today — condition 1
Method & standards
Q₂ = Q₁·(N₂/N₁) · Δp₂ = Δp₁·(N₂/N₁)² · P₂ = P₁·(N₂/N₁)³
Shaft power = Q·Δp / η
Power vs speed — watch that cube climb
Why I push VSDs on every retrofit: knock 20 % off the speed and you've halved the fan power (0.8³ = 0.51). Throttle a damper instead and you keep the speed, burn the pressure as pure loss, and save almost nothing for the same flow. One honest caveat from experience: the cube law assumes a fixed, all-friction system curve — with a big fixed static head in the system, it will flatter the savings. Check before you promise.
Room Cooling Load Estimator
Room cooling load build-up, every gain editable.
The room, as it really is
Where the load is really coming from
So what does that mean for the plant?
My gut-check, before I trust any of this: offices land around 100–160 W/m² in hot climates, 60–110 W/m² in temperate ones. Land far outside your building type's band and I go straight back to the solar and fresh-air inputs — that's where the mistake is hiding, nine times out of ten. Fresh air is worked on enthalpy difference here, because in a humid climate it's routinely the biggest single load in the room.
Unit Converter
Exact factors between SI and IP units.
The exact factors I used — no rounded “close enough”: 1 in = 25.4 mm · 1 ft³/min = 0.471947 L/s · 1 BTU/h = 0.293071 W · 1 ton refrig. = 12,000 BTU/h = 3.51685 kW · 1 psi = 6.89476 kPa · 1 in w.g. = 248.84 Pa (at 4 °C) · 1 US gal = 3.78541 L.
Properties & Reference Data
The property tables the calculators stand on.
Water — saturated liquid properties
| °C | ρ kg/m³ | cp kJ/kgK | ν ×10⁻⁶ m²/s |
|---|
Dry air at 101.325 kPa
| °C | ρ kg/m³ | cp kJ/kgK | ν ×10⁻⁶ m²/s |
|---|
Steel pipe — Schedule 40 (ASME B36.10)
| DN | OD mm | ID mm | Area cm² |
|---|
Copper tube (EN 1057) and plastic systems differ — design on the internal diameter, never the nominal. That mistake has embarrassed better engineers than me.
Quick-checks I run before I believe a design
| CHW temperatures | 6 / 12 °C typical (ΔT 6 K) |
| LTHW temperatures | 82 / 71 °C legacy · 60 / 40 °C condensing |
| Condenser water | 29.5 / 35.5 °C typical |
| Office design condition | 23 ± 1 °C · 40–60 % RH |
| Duct friction design band | 0.8 – 1.2 Pa/m |
| Pipe gradient design band | 100 – 350 Pa/m |
| Coil face velocity | 2.0 – 2.5 m/s (carryover > 2.75) |
| Filter final Δp (G4/F7) | ≈ 250 / 450 Pa typical allowance |
| Human sensible/latent (office) | ≈ 70 W / 45 W per person |
| CO₂ proxy for 62.1 rates | ≈ 700 ppm above outdoors at steady state |
3D System Viewer
A parametric plant room, rebuilt live from your Duct and Pipe numbers.
Play with it
How it is wired
Duct section & velocity ← Duct Sizer
Pipe bore & velocity ← Pipe Hydraulics
Change a number over there and this room rebuilds itself.
Plant room: AC unit · duct run · pipes
If the room doesn't appear, your connection may have hiccupped - reloading usually fixes it, and every calculator still works perfectly in 2D either way.
The room is generated in your browser from primitives: no downloaded models. The duct network follows your Duct Sizer section, the pipe pair follows your Pipe Hydraulics bore, and both rebuild when the numbers change. Take pressure drops from the calculators, never from the picture. Particle speed is proportional to the real velocity in each system.
Earlier versions of this viewer loaded downloaded CC0 models (Poly Haven sets, see ASSETS.md). They were static props: retired 2026-10-21 in favour of the parametric system above, which is sized by the calculators and can be sectioned, restyled and interrogated like a BIM view.