How the Designer designs a system
Every rule, constant and formula the Sprinklers Designer works to, read out of its source code. Written for irrigation suppliers and designers who want to check the numbers before they put their name near it.
- Metric
- Australian residential
- Deterministic per yard
- 27 live checks
On this page
What the Designer is
The Designer is a rule-based solver, not a learned model. Give it a drawn yard and the tap's numbers and it works through the job in the order a designer would: survey, hydrozones, heads, drip, zones, pipe and valve boxes, manifold, wiring and program, then a commissioning run against every check.
The same yard and the same inputs always give the same design. Each stage explains its choices in up to three plain bullets, and every rule below is also a live check, so a design drawn by hand is held to the same numbers as the Designer's.
The yard is a top-down grid of square cells, 0.5 m on a house block (0.25 m on a bowling green, 1.5 m on an oval). Each cell has a surface (lawn, bed, veggies, pot, paving, building, pool, keep-dry or off the lot), a soil (sand, loam or clay), a sun rating (full, part or shade) and a ground level. Everything is metric: kPa, L/min, mm/h, metres.
Source: src/sim/designer/index.ts, src/sim/hydro/surface.ts
Survey: what the tap can run
Two numbers drive everything: the static pressure (a gauge on the tap, nothing else running) and the flow (the time to fill a 9 litre bucket, averaged over two rounds). The meter size and the service pipe set a ceiling on the flow, whatever the bucket says.
Flow = 9 L ÷ t (s) × 60 L/min
Design capacity = min( tested flow, meter capacity, service capacity )
Working pressure = static − ( meter loss + service loss + backflow loss ), all at the design capacity
Meter capacity = 35 × (dmeter ÷ 20)² L/min: 35 L/min for a 20 mm meter.
Service capacity = the flow at which the service pipe alone loses 50 kPa.
| Loss | Rule |
|---|---|
| 20 mm meter | 20 / 30 / 45 / 60 kPa at 20 / 25 / 30 / 35 L/min; ∝ Q² below 20 L/min, straight-line above 35. Other meter sizes × (20 ÷ d)⁴. |
| Service pipe | 15 m of 20 mm at 30 L/min: copper 25 kPa, PVC or poly 15 kPa. Scaled × (L ÷ 15) × (Q ÷ 30)1.852 × (20 ÷ d)4.87. |
| Backflow device | Hose vacuum breaker 35 kPa · dual check 35 · testable dual check 50 · reduced pressure zone device 70. |
| Zone valve (25 mm) | 15 × (Q ÷ 20)² kPa: 15 kPa at 20 L/min. |
| Elevation | 9.8 kPa per metre of rise. |
Worked example: 450 kPa static, bucket in 19.3 s, 20 mm meter, 15 m copper service, garden tap
- Tested flow 9 ÷ 19.3 × 6028 L/min
- Meter cap 35, copper service cap 43.6capacity 28 L/min
- Meter loss at 28 L/min39 kPa
- Service loss (copper, 15 m)22 kPa
- Dual check at the garden tap35 kPa
- Working pressure 450 − 96354 kPa
When nothing's been measured
A tap put on the plan without a test carries typical numbers: 450 kPa, 20 L/min, a 20 mm meter and 15 m of copper service. The Designer designs to them, and every screen that shows them labels them “estimate” until the owner types a measured value or plays the bucket test. The design is only as good as those two numbers, and the app says so.
Source: src/sim/hydro/supply.ts, src/game/yardEdit.ts
Hydrozones: what drinks alike
Cells are grouped by what grows there and how much sun they get. Each hydrozone is watered by one emitter family and programmed for its own need.
| Hydrozone | From | Watered by |
|---|---|---|
| Lawn, sun | Lawn in full or part sun | Sprinklers |
| Lawn, shade | Lawn in shade | Sprinklers |
| Strips | Lawn on the nature strip (the council verge) | Sprinklers (strip nozzles) |
| Beds | Garden beds | Drip |
| Natives | Beds inside an area the yard marks as natives | Drip |
| Veggies | Veggie patches | Drip tape |
| Pots | Pots | Button drippers |
- Never watered: the building, the pool, keep-dry areas and anything off the lot. No head may stand on them and the pipe router can't cross them. Paving isn't watered either: throw that lands on it counts as overspray.
- Only lawn gets sprinklers. Beds, natives, veggies and pots always go on drip; sprinklers there would soak the paths and the foliage.
- One kind per hydrozone. A lawn-sun hydrozone with more than a quarter of its cells (and more than two) in shade is flagged: “The shade will drown.” Paving inside a hydrozone fails the check; planted cells left out of any hydrozone are flagged.
- One emitter family per zone. Zones are only ever made inside one family and one hydrozone kind, and the
one-familycheck fails any zone that mixes families on a valve.
Source: src/sim/hydro/hydrozone.ts, src/sim/designer/drip.ts, src/sim/stations/hydrozones.ts
Head placement
Each connected patch of lawn is planned on its own. A narrow arm that a 3.2 m disc can't sit in (a side strip off the front lawn) becomes its own patch when it's more than a few cells and runs more than 3 m from the wide part.
Which family, which size
| Patch | Family | Size chosen by |
|---|---|---|
| A strips hydrozone, or inscribed width ≤ 3.2 m | Strip nozzles | Corner strips 4.5 × 1.5 m, side strips 9 × 1.5 m |
| Width ≥ 22 m or area ≥ 1,100 m² | Gear-drive rotors | Fewest heads, with 0.75 R ≤ width and a full circle no more than half a zone's flow (two heads to a zone at least) |
| Everything else that fits | Rotary (multi-stream) nozzles | Fewest heads on the lattice across three sizes (4.5, 6.4 and 9.1 m radius), with 0.75 R ≤ width; ties to the smaller throw |
| Too narrow for any rotary nozzle | Fixed sprays | The biggest spray whose radius fits the width |
For each patch the Designer lays out several candidates (the top three sizes, each at two spacings; rotors at three) and keeps the best by a single ranking: no dry cells first, then double coverage, then evenness, then fewest heads, then least water on paving.
Spacing and throw: the 85% reach rule
Wind is treated as a reduction. A head only counts as reaching a point within 0.85 × its radius; the water itself is spread over the full radius, because that's where it lands. So for a point to count as covered twice, the neighbouring head has to sit inside 0.85 r: head-to-head, with a margin.
Lattice spacing s = 0.9 × Rnozzle max (also tried at 1.0 R; rotors at 1.08 R; Best at 0.8 R)
Throw r = s ÷ 0.85, within the nozzle's dial range
Shortest dial-back = max( dial minimum, 0.85 r, s ÷ 1.1 + 0.02 m )
The 0.85 r floor keeps heads in a zone within 1.25× of each other's precipitation. The s ÷ 1.1 floor keeps the next head inside the spacing check.
Where heads go, and which way they face
- Corners first. Every convex and concave corner of the patch outline gets a head.
- Then the lattice. The patch splits into rectangles and each gets a head-to-head lattice, edges and infill. A curved patch (an oval) takes a lattice over its bounding box with the points outside pulled onto the edge.
- Arc by the four cells around the head: all four lawn → 360°; two side by side → 180° facing in; one → 90° into it (a convex corner); three → 270° (a concave corner).
- Keep water off hardscape. That textbook arc is kept only if it throws no water on paving it can't be dialled back from. Otherwise every arc the nozzle offers is tried at every 5° of direction, scoring +1 for each lawn cell, −0.25 for another planted cell and −3 for hardscape; the arc with the least unavoidable hardscape wins, then the most lawn, then the smaller arc.
- Dial back off the paving. Inside the chosen arc the radius comes back until the counted reach stops short of the nearest hardscape (r ≤ distance ÷ 0.85 − 0.02 m), never past the shortest dial-back above.
- Patch up. Any cell still dry or single-covered gets the one extra head that fixes the most, repeated. A one-cell nub nothing clean can reach gets the smallest arc aimed straight at it: a little wet paving beats dead lawn.
- Prune. Heads that add nothing come out, but never so a cell goes dry, never below the double-coverage target, and never taking the lawn's DU below 82.
| Family | Radius the Designer may set |
|---|---|
| Rotary nozzles | 75–100% of the nozzle's maximum (a 25% turn-down) |
| Fixed sprays | The nozzle's own radius; the Designer changes size, not the screw |
| Rotors | The nozzle's listed minimum to its maximum |
| Strip nozzles | Fixed pattern |
Matched precipitation
Head precipitation (mm/h) = 60 × Q ÷ ( arc ÷ 360 × r² )
Strip nozzle (mm/h) = 60 × Q ÷ ( L × W )
Q in L/min at the reference pressure, r in m. The square head-to-head convention: each head waters r × r per full circle. Flow scales with arc, and in proportion to radius when a head is dialled back.
A matched-precipitation line gives the same rate at every arc. In the catalogue's mid-size rotary line, a 360° at 6.6 L/min and 6.4 m puts down 9.7 mm/h; the 90° at 1.6 L/min, 9.4 mm/h. A corner strip, 1.1 L/min over 4.5 × 1.5 m, gives 9.8 mm/h, so strips sit on rotary zones' rate. Within a zone, if the highest head rate is more than 1.25× the lowest the matched-precip check warns.
Strip nozzles
- They run along the long edges of each rectangle of a narrow patch. A strip narrower than one nozzle's throw needs only one edge.
- Both edges are tried; the one that puts less water on hardscape wins. A sliver of lawn between a bed and a patio is watered from the patio side, so the spill lands on the bed.
- Never from an edge hard against a wall, the pool or the boundary: the pipe can't reach it and the spill hits the wall.
- Strip areas need only single coverage; only a dry cell counts against them.
What the checks hold heads to
| Check | Pass | Warn / fail |
|---|---|---|
head-to-head | ≥ 85% of lawn cells reached by two heads or more, no dry cell | Warn under 85%; fail under 65% or any dry cell |
spacing | Each head's nearest same-zone neighbour ≤ 0.55 × its throw diameter (1.1 r) | Fail beyond it |
overspray | No hardscape inside any counted reach | Warn on any; over 5% of the lawn area also costs the DU star |
The Designer aims higher than the check: 90% of the lawn double-covered before it stops adding heads.
Source: src/sim/designer/heads.ts, src/sim/hydro/coverage.ts, src/sim/hydro/nozzles.ts, src/sim/hydro/checks.ts
Distribution uniformity
DU is worked out on the grid, cell by cell, from a modelled spray profile. Each head's water is flat out to 30% of its radius, then tapers in a straight line to nothing at the full radius, scaled so the volume matches its flow. Overlapping heads add.
DUlq = mean of the lowest quarter ÷ overall mean × 100
Over every lawn cell of the sprinkler zones (strip areas only when a job is strips alone). Bands: ≥ 80 excellent, 70–79 good, 60–69 fair, under 60 poor.
With this profile, square spacing at 1.0 r gives about DU 90; at 1.33 r there are dry cells and DU falls to about 68. The DU star needs 70 by default (a job can ask more: the bowling green asks 80). On site, the commissioning run adds a nine-cup catch test (see Commission).
Source: src/sim/hydro/coverage.ts, src/sim/hydro/du.ts, src/sim/hydro/score.ts
Zone sizing
Heads are grouped by emitter family × hydrozone kind × tap, and each group is split into the fewest zones that fit three limits: the tap, the pipe and the pressure. Zone flow is the sum of each head's flow at its reference pressure.
Zone cap = min( 0.85 × design capacity, 45 L/min, pressure cap ) × 0.8 on Best
Starting count n = ⌈ total group flow ÷ zone cap ⌉
45 L/min because 32 mm pipe carries 50 at 1.5 m/s, less a margin for friction. The 15% held back at the tap leaves the house some water. Best keeps each zone to 80% of what the tap and pipe allow, so every head keeps pressure in hand.
The pressure cap
The most a zone can carry and still give its heads their minimum pressure, for a zone centred at a given distance from the tap:
Budget = P0 − Pmin − 9.8 × rise − 8 kPa
Loss(Q) = valve(Q) + friction(Q, 32 mm, L) + friction(Q, 25 or 32 mm, 6 m)
Pressure cap = the largest Q in 2–45 L/min with Loss(Q) ≤ Budget, by 30 rounds of bisection
P0 is the working pressure, or, when static tops the nozzles' maximum, the lower of the working pressure and that maximum − 10 kPa (the regulator's setpoint). Pmin is the highest minimum pressure among the zone's nozzles. L is the tap-to-zone distance, measured square (along x then y). The 6 m allows for a typical lateral; the 8 kPa is a margin.
Splitting a group
Zones are cut by recursive bisection, not grown head by head. The group is cut across its longer side at the flow that leaves ⌊n/2⌋ zones' worth on one side, and each side is cut again until every piece fits. Cuts prefer natural gaps (a path, a gap between lawns, up to 12 m counts) and the line between two patches. A piece still too big splits once more, into as many as its own cap needs. Starting counts from n to n + 10 are all tried and the one that ends in the fewest zones is kept.
Span, stations and the night
- Span: a zone's heads fit inside 38 m, measured square (width + height of their bounding box), so one valve box in its middle reaches every head within the 25 m a lateral may run. Wider zones (50 m, 60 m, then any) are only allowed when the zones otherwise outnumber the controller's stations, or one tap can't finish inside the watering window. Good starts at 50 m.
- Stations: at most 16 (or the job's controller). Too many zones → rotors drop to low-flow nozzles, then a leaner head layout, then the owner's family filter is relaxed and the why card says so.
- Pressure shortfall: if, once piped, a zone's last head is short of pressure, zones within 18 m of it are capped at 80% of that zone's flow and the lot is re-zoned and re-piped (up to six passes).
- Second tap: if zones × the mean run time (summer, cycles included) is longer than the window (8 h overnight by default), the Designer first tries wider zones, then adds a second point of connection. Heads are shared between the two taps in proportion to their capacity, along the line between them; each drip zone goes to its nearer tap.
- Balance (hand-drawn zones): when the heaviest zone of a family is more than 1.5× the lightest, the Zones station suggests the fewest small heads to move.
Source: src/sim/designer/zones.ts, src/sim/designer/index.ts, src/sim/hydro/zones.ts
Pipe
The mainline runs from each point of connection to every valve box and is pressurised whenever the isolation valve is open: 25 or 32 mm PVC, sized for the largest single zone it carries (zones run one at a time). Laterals run from each zone valve to its heads and only see pressure while the zone runs: 13, 19, 25 or 32 mm LDPE poly, sized run by run for the flow in that run.
Sizing: velocity first
| Nominal | Max flow | Internal Ø | Used for |
|---|---|---|---|
| 13 mm | 8 L/min | 10.6 mm | Short laterals, drip feeds |
| 16 mm | 12 L/min | 13.0 mm | Dripline and tape |
| 19 mm | 17 L/min | 15.5 mm | Laterals |
| 25 mm | 30 L/min | 20.6 mm | Laterals, mainline |
| 32 mm | 50 L/min | 26.6 mm | Laterals, mainline |
The internal diameters are back-solved so each size at its listed maximum runs at exactly 1.5 m/s. Every run takes the smallest size that keeps it at or under 1.5 m/s; the velocity check fails anything faster.
Friction: Hazen-Williams, calibrated
v = Q ÷ ( π d² ÷ 4 )
hf (m per m) = 10.67 × Q1.852 ÷ ( C1.852 × d4.87 )
Friction (kPa per m) = hf × 9.81 × 2.9
Q in m³/s, d the internal diameter in m, C = 140 for all plastic pipe. The ×2.9 is a single calibration factor: plain Hazen-Williams on these bores came out about 2.9× under the design table the model was built to, so it stands in for barbed fittings, minor losses and poly's real, ovalled bore.
| Pipe | Flow | Velocity | Friction |
|---|---|---|---|
| 13 mm | 8 L/min | 1.50 m/s | 87 kPa |
| 19 mm | 10 L/min | 0.88 m/s | 21 kPa |
| 19 mm | 15 L/min | 1.32 m/s | 45 kPa |
| 25 mm | 20 L/min | 1.00 m/s | 19 kPa |
| 25 mm | 30 L/min | 1.50 m/s | 40 kPa |
| 32 mm | 40 L/min | 1.20 m/s | 20 kPa |
Pressure at every head
Phead = PPOC − mainline friction − valve loss − lateral friction − 9.8 × rise
PPOC is the working pressure, capped at the regulator's setpoint when one is fitted; a pressure-regulated body or a drip kit caps it again. Flow through the pipe network is summed from the far heads back to the valve. A head reads low under its nozzle's minimum and high over its maximum.
If a zone's last head reads low, the Designer upsizes the pipe feeding it: the mainline to 32 mm, laterals 13 → 19 → 25 mm, and after two passes 25 → 32 mm. Up to four passes; anything still short goes back to zone sizing to be split.
Routing
Pipe is routed on the lattice of cell corners as a branching tree from the valve (or the tap) to every head, searched with A*. Each metre costs by what it passes through:
| Ground | Cost per metre |
|---|---|
| Lawn or bed | 1 |
| Along an edge between two surfaces | × 0.85 |
| Under paving through a sleeve the yard already has | 1.15 |
| Under paving through a bore another pipe already needs | 1.6 |
| Other hard ground | 1.8 |
| Under paving, no sleeve (a new bore) | 7 |
| Building, pool, off the lot | never |
| Each turn | + 0.3 |
- Share trenches, never fittings. The mainline runs on the lattice line and laterals in lanes 0.12 m and 0.24 m either side of it, so different zones can share a trench but never meet at a fitting. Parallel pipes within 0.3 m count as one trench.
- Hang branches near the valve. A new branch also pays 0.35 × its pipe distance back to the valve, so far heads tee off the trunk near the valve instead of off the far end (shorter reach, less friction).
- Bores. Crossings of the same path within 0.6 m share one bore. Each bore is a labour line on the parts list.
- Heads connect within 0.5 m of the lateral on an articulated riser (swing joint), so a mower strike doesn't snap the pipe.
Source: src/sim/hydro/pipes.ts, src/sim/hydro/network.ts, src/sim/designer/pipe.ts, src/sim/designer/route.ts
Valve boxes and manifolds
A box can sit on any lattice corner the mainline can reach where at least one of the four cells around it is planted, none is the building, the pool or off the lot, and no head or drip start is within 1.5 m. The edge of a path is fine. If the owner has marked a valve-box spot, the Designer uses the nearest clear ground within 8 m of it (1 m clear of emitters).
Score = Σzones [ nearest emitter + 0.25 × farthest emitter + ( 200 + 20 per m past the reach ) ] + 0.35 × pipe distance to the tap (main box) + edge term
Distances measured square, or along the real pipe route where a lateral had to go around a building. The edge term is −1.5 beside a bed or path edge (out of the mower line), +1 when part of the box would sit on paving. The lowest score wins; zones are assigned farthest-reaching first to their cheapest box with room, and boxes are re-seated until nothing moves (up to six rounds).
- Reach: every emitter of a zone within 18 m of its valve (Good 23 m, Best 12 m). A zone out of reach opens a sub-box fed by a mainline extension. The
sub-boxcheck warns when any lateral runs more than 25 m from its valve. - Box sizes: 1 valve → round 150 mm; 2–4 → standard 300 mm; 5–6 → jumbo 500 mm. More than six valves opens another box.
- Manifolds: pre-built 2, 3 and 4-valve manifolds with unions; five valves are a 3 + 2, six a 4 + 2.
- Drain: if the mainline falls more than 0.05 m, a drain tap goes at its low point.
box-order check fails any other order, and a box with more valves than it holds.Source: src/sim/designer/pipe.ts, src/sim/designer/manifold.ts, src/sim/stations/manifold.ts
Point of connection
From the tap out: isolation → backflow → filter → regulator → mainline.
poc-order check fails any other order: “Filter before the regulator — grit hates a valve.”- Isolation: a 25 mm ball valve (32 mm when the mainline is 32 mm), so the system can be shut off without the house.
- Backflow: at a garden tap, a dual check valve (the low-hazard device). On a branch off the water meter, a testable dual check, fitted and tested by a licensed plumber; the Designer adds the plumber as a labour line and never tells an owner to fit it themselves. Where a job is high hazard it fits a reduced pressure zone device, also plumber-only. Every point of connection must have one: the
backflowcheck fails without it. - Filter: a 150-mesh screen filter on every point of connection, sprinklers or drip.
- Regulator: fitted only when the static pressure is higher than the lowest maximum rating among the unregulated emitters on that point of connection (drip behind its kit and heads on pressure-regulated bodies don't count). The
poc-ordercheck fails an unregulated system above that.
Setpoint = ⌊ ( lowest emitter maximum − 10 ) ÷ 10 ⌋ × 10 kPa, held within 150–550 kPa
Rotary nozzles rated to 380 kPa → 370 kPa. The Pipe check suggests turning a regulator up to that figure when a zone's last head is short.
A single-zone job run by a battery tap timer skips the box: the timer screws onto the tap (the tap is the isolation), then the backflow, a regulator if needed, and 19 mm poly to the heads.
Source: src/sim/designer/manifold.ts, src/sim/stations/manifold.ts, src/sim/hydro/checks.ts
Drip
Every drip zone runs off a Drip Control Kit: a 25 mm valve, a 150-mesh filter and a 140 kPa regulator in one, because a filter and regulator at the tap are set for the sprinklers, not the drip. The drip-kit check fails a drip zone on a plain valve.
| Planting | Laid as |
|---|---|
| Beds | Pressure-compensating dripline in loops 0.35 m apart: 13 mm, 1.6 L/h emitters every 300 mm |
| Natives, or a bed longer than 18 m | 16 mm dripline, 1.6 L/h every 400 mm, loops 0.4 m apart |
| A bed with a tree for every 16 m² or less | A 1 m radius ring of dripline round each tree |
| Veggies | 16 mm drip tape, 1.0 L/h every 200 mm, rows 0.3 m apart |
| Pots | A 4 mm feeder and a 4 L/h button dripper per pot |
- Run lengths: each dripline product carries its own maximum lateral run (40 m for 13 mm 1.6 L/h at 300 mm, 75 m for 16 mm 1.6 L/h at 400 mm). Longer runs are split; the
drip-run-lengthcheck fails any over. - Flush points: a flush valve at the far end of every run, and an air/vacuum relief at the high point. The
drip-flushcheck fails a dead-ended dripline. - Zones: one drip zone per kind of planting per tap, under the same 85% cap, grouped by pipe distance so a zone's runs start within 34 m of each other.
Dripline rate (mm/h) = emitter L/h ÷ ( emitter spacing × row spacing )
1.6 L/h at 0.3 m in rows 0.35 m apart = 15.2 mm/h. Drip zone flow = emitters × L/h ÷ 60 L/min.
Source: src/sim/designer/drip.ts, src/sim/stations/drip.ts, src/sim/hydro/water.ts
Wiring
- 24 V AC from the controller's transformer. Anything on the 240 V side is an electrician's job, and the install guide says so.
- A white common daisy-chained to every solenoid and landed on the controller's C terminal, plus one coloured core per station. Two valves on one station is flagged; if their flows together top the zone cap, it fails.
- Cable per box: direct-burial multi-core, 0.5 mm² cores. Cores needed = valves + 1 common (+ 1 for a master valve). The Designer picks the smallest cable with one spare core from 5, 7, 9 and 13-core. Length is the square distance from the controller to the box plus 2 m of tails, laid in the mainline trench.
- Every underground joint in a gel-filled waterproof connector, two at each valve. The
sealedcheck fails a bare joint. - Controller: the smallest of 4, 6, 8, 12 or 16 stations with at least one spare (zones + 1). With a flow sensor, a flow-sensing controller.
Source: src/sim/stations/wire.ts, src/sim/designer/manifold.ts
Program
Run times come from each zone's precipitation rate and its planting's weekly need. The defaults are Melbourne summer figures, scaled by season.
| Hydrozone | Summer | Spring, autumn | Winter | Days a week |
|---|---|---|---|---|
| Lawn, sun | 25 | 15 | 6.25 | 3 / 2 / 1 |
| Lawn, shade | 15 | 9 | 3.75 | 3 / 2 / 1 |
| Strips | 25 | 15 | 6.25 | 3 / 2 / 1 |
| Beds | 15 | 9 | 3.75 | 3 / 2 / 1 |
| Natives | 6 | 3.6 | 1.5 | 3 / 2 / 1 |
| Veggies | 30 | 18 | 7.5 | 5 / 3 / 2 |
| Pots | 4 L | 2.4 L | 1 L | 7 |
Season factors: summer 1, spring and autumn 0.6, winter 0.25. Days are summer / spring and autumn / winter.
Run time (min per watering day) = ( weekly need ÷ days ) ÷ precipitation rate × 60
Pots (min) = ( L a day × 7 ÷ days ) ÷ L/h per pot × 60
Cycle and soak when precipitation > soil intake, or slope > 5%
Longest run = intake × 0.5 ÷ precipitation × 60 min; cycles = max( 2, ⌈ total ÷ longest run ⌉ ), 60 min soak
Soil intake: clay 5, loam 12, sand 25 mm/h. Each cycle puts down at most half an hour of the soil's intake. Minutes are rounded to the controller's 1-minute step.
Worked example: sunny lawn on rotary nozzles, clay, summer
- 25 mm a week over 3 days8.3 mm a day
- At 10 mm/h50 min
- 10 mm/h is more than clay's 5 → longest run 5 × 0.5 ÷ 10 × 6015 min
- ⌈ 50 ÷ 15 ⌉ cycles, 60 min soak between4 × 13 min
- Start: 05:00. Stations run in order; a station's next cycle waits for its soak while the others run.
- Watering window: optional and off by default. When set, the start moves inside it, and anything that runs outside it gets a soft note, never a failure: “Rules change — check your water authority.” No city's rules are stated as fact.
- Also on the controller: seasonal adjust (10–150%), and a rain sensor switch.
Source: src/sim/hydro/water.ts, src/sim/stations/program.ts
Commission
Commissioning fills the mainline, runs every zone from the program and ends with a catch-cup test. Every check that fails plays out on the plan as what you'd see on site (DRIBBLE, UNEVEN, GRIT, NOTHING RUNS), with a one-line reason and the station that fixes it. A design passes when no check is at fail. Warnings are notes worth a look.
hydrozone-mixedHydrozoneOne kind per hydrozone, no paving insidedraw-omissionsDrawThe drawn yard matches what's therehead-to-headHeads≥ 85% double coverage, no dry lawnspacingHeadsNearest neighbour ≤ 0.55 × diameteroversprayHeadsWater off hardscape (warns)zone-flowZonesEach zone ≤ 85% of design capacityone-familyZonesOne emitter family per valvematched-precipZonesMax ÷ min head rate ≤ 1.25 (warns)second-tapZonesAll zones run inside the window (warns)velocityPipeEvery run ≤ 1.5 m/spressurePipeLast head within its nozzle's rangenetwork-connectedPipeEvery emitter traces back to its valvedead-endPipeRuns end at a head, cap or flush valveshared-fittingPipeZones share trenches, never fittingszone-valveManifoldA valve for every zonebackflowManifoldA backflow device at every connectionisolationManifoldIsolation before the manifoldpoc-orderManifoldTap assembly in order; regulated when neededbox-orderManifoldBox order, and valves fit the boxsub-boxManifoldLaterals within 25 m of the valve (warns)drip-kitDripDrip zones on a Drip Control Kitdrip-flushDripA flush valve at every dripline enddrip-run-lengthDripRuns within the product's maximumvalve-wireWireEach valve on its own stationcommonWireCommon to every solenoid and Ccontroller-stationsWireEnough stations on the controllersealedWireEvery joint gel-sealed
The catch-cup test
Nine cups in a 3 × 3 pattern over the lawn's bounding box, each placed at random within its ninth (seeded, so it repeats) and snapped to the nearest lawn cell. The test runs 15 minutes; each cup's depth is the modelled rate × 15 ÷ 60, and the DU of the nine is shown beside the lawn's DU. The install guide asks the owner to run the same test with real cups.
Stars
- Coverage: lawn DU at or over the target (70 by default) and overspray no more than 5% of the lawn area.
- Hydraulics and code: no check at fail.
- Cost: parts and trench metres each within 10% of the Designer's own design for the same yard.
Source: src/sim/hydro/checks.ts, src/sim/stations/commission.ts, src/sim/hydro/du.ts, src/sim/hydro/score.ts
Good, Better, Best
On an owner's own yard, “Design it for me” offers up to three designs along one line, from “does the job” to “best result”. They are the same Designer with its choices biased, not three designers. Two that come out with the same heads and within 5% on cost collapse into one card.
| Changes | Good | Better | Best |
|---|---|---|---|
| Heads | Strips on narrow bits; fixed sprays on patches ≤ 30 m²; otherwise the usual family in its cheapest line; the lean layout (fewer heads, less water) | As described on this page | Rotary nozzles wherever they fit, even on rotor-sized lawns; also tried at 0.8 R; ranked on evenness first |
| Zones | May sprawl to 50 m before splitting | 38 m span | ≤ 80% of what the tap and pipe allow |
| Boxes | One box as far as 23 m reach allows | 18 m reach | Sub-boxes wherever they shorten laterals (12 m reach) |
| Valves | Plain | Plain | Flow-control valves on every sprinkler zone |
| Extras on by default | None | Rain sensor | Rain sensor, smart Wi-Fi controller, master valve, spare stations and cores, flush points |
Sprays on a big lawn were tried as the Good option and dropped: with this catalogue they need two to three times the zones, so they're neither cheaper nor easier. When the lean design still costs more than the usual one (a long lot where one box means twice the trench), Good is the usual design without extras.
DIY difficulty
Points = trench m ÷ 50 + bores × 0.5 + pipe fittings ÷ 100 + (boxes − 1) × 0.5 + heads ÷ 40 + drip runs ÷ 20 + 0.5 for a licensed plumber + 0.25 each for a master valve and a flow sensor
Rating: under 1.5 → 1, under 3 → 2, under 4.5 → 3, under 6.5 → 4, else 5
Risers, flush valves and air reliefs count with their emitters, not as fittings. Each card shows the rating with its reason, for example “38 m of trench, 1 bore, 2 boxes”, beside the cost, the lawn's DU and the water a week in summer.
Source: src/sim/designOptions.ts, src/sim/designer/heads.ts, src/sim/extras.ts
Phasing, required parts and optional extras
An owner can build part of a design now. Each kind of area (lawns, beds, veggies, pots, strips), or any single zone, can be:
- Build now: on this weekend's parts list.
- Later: its capacity stays in the plan: a station on the controller, a core in the cable, an outlet on the manifold (capped; the valve goes on in phase 2) and a 1 m capped stub of its lateral out of the box, so phase 2 never digs up the box, the mainline or the cable trench. Its heads, drip and the rest of its pipe are a separate phase 2 list.
- Leave out: gone. The manifold, box, cable, controller and program are re-fitted without it, and the mainline is trimmed back.
Required, never optional
- Backflow prevention, and the licensed plumber where it's at the meter
- The drip filter and regulator (Drip Control Kit)
- A pressure regulator when static pressure is over what the heads take
Optional, with a price each
- Rain sensor
- Smart Wi-Fi controller with weather adjust
- Master valve (the mainline only holds pressure while it waters)
- Flow sensor (needs a flow-sensing controller)
- Spare stations and cable cores
- Flush and drain points at the end of each lawn zone
An extra's price is the whole bill with it less the bill without it. A master valve needs a free slot in the main box; when a jumbo box is full, the switch is off and says why.
Source: src/sim/phasing.ts, src/sim/extras.ts
Assumptions and limits
The model is honest about what it simplifies. A supplier or designer should know these before relying on a design.
- DU is geometric. It comes from a modelled wedge profile (flat to 30% of the radius, straight taper to the edge) on a grid, not from a manufacturer's measured catch-can data. Real nozzles' profiles differ, so the figure ranks layouts well but isn't a test result.
- Wind is only the 15% reach allowance. There is no wind speed or direction, no evaporation, and no drift.
- Flow is taken at the reference pressure (280 kPa; sprays 210 kPa) for zone sizing, precipitation and DU. Flow and throw aren't adjusted for the pressure a head actually gets; a head is only checked against its minimum and maximum.
- Friction is Hazen-Williams with one C (140) for PVC and poly, and a single ×2.9 factor for fittings and bore instead of a loss per fitting. The zone pressure cap assumes a 32 mm mainline and a 6 m lateral; the full network check afterwards uses the real pipe.
- Supply losses come from a small table built around a 20 mm meter, a 15 m service by default and a fixed loss per backflow type. Working pressure is taken at the full design capacity, which is conservative when a zone draws less.
- The program uses fixed weekly needs (Melbourne summer defaults, seasonally scaled), not local evapotranspiration, and schedules the gross need with no allowance for DU. Soil intake is one generic figure per soil type.
- Not modelled: pumps, tanks, bores, greywater, frost drainage beyond the low-point drain, and anything imperial.
- The catalogue is invented. Its brands and lines are made up; their numbers are representative of the product types, not copies of any real product.
- Local rules vary. Backflow hazard ratings, which devices are accepted, plumbing codes and watering restrictions differ by water authority and change over time. In Australia a backflow device at the meter is a licensed plumber's job, and the app always labels it so; the owner should still check their water authority's current rules. A Sprinklers design is a well-reasoned starting point, not a certified design.
For suppliers
Every rule above reads its numbers from one catalogue file, item by item. The brands in it today are invented. A real product line could sit in the same place if it carries these fields:
| Field | What the Designer does with it |
|---|---|
family | Rotary, spray, rotor, strip, drip or bubbler: decides where it can go and what it may share a zone with |
arcOptions, arcBands | A fixed arc, or an adjustable range; the colour of each arc band for the plan and the parts list |
radiusMin, radiusMax | The throw band: sets the lattice spacing and how far it may be dialled back |
flowAt280 | L/min by arc at the reference pressure (280 kPa; 210 for sprays). Drives zone sizing, precipitation, DU and friction |
precipRate | The nominal mm/h for the family, cross-checked against the computed rate |
pressureMin, pressureMax, pressureBest | The operating band: the last-head check, the regulator decision and its setpoint |
strip | Length, width and kind (left, right or side) of a strip pattern |
flowLph, emitterSpacingM, maxRunM | Dripline and drippers: flow, application rate and the longest run |
regulatedKpa, kit, valves, cores, stations, plumberOnly | Regulated bodies and kits, box and manifold capacity, cable cores, controller stations, licensed-trade items |
price, tradeNotes | The bill of materials and the one-line note shown with each part |
How a supplier catalogue could plug in. Owners can already limit a design to chosen brands and emitter families; the Designer then works only from those lines and says in its notes when it had to step outside them. A supplier's range, entered with the fields above, could be offered the same way, with the same checks applied unchanged, and the parts list and PDF naming the supplier's parts. Today the model reads one flow per arc at one reference pressure; a full flow-by-pressure table is something it could take on if a supplier provides one.
If you supply irrigation gear or design systems and want to talk about any of this, or tell us where a rule is wrong, we'd like to hear it.
Email about suppliers