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. A buried system is surveyed with its testable device (see Point of connection). |
| 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
- Testable dual check at the garden tap50 kPa
- Working pressure 450 − 111339 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
Precipitation (mm/h) = 60 × Q ÷ ( A × arc ÷ 360 )
A = S² on square spacing, 0.866 × S² on triangular
Strip nozzle (mm/h) = 60 × Q ÷ ( L × W )
Q in L/min at the reference pressure, S the head spacing in m (60 000 × Q in m³/min gives the same). A head's own rate takes S = its throw: the square head-to-head convention. Flow scales with arc, and in proportion to radius when a head is dialled back.
The catalogue's figure is this formula. Every nozzle's listed precipitation is 60 × its full-circle flow ÷ its maximum throw², so what the catalogue says and what the Designer computes agree: rotary nozzles 8.8–10.1 mm/h (the Sweeper 800, 19.6), fixed sprays 39–55, strips 9.8, and gear rotors 3.7–9.6 mm/h (they used to be listed at 15, which their flows never gave).
A matched set gives the same rate at every arc. Rotary nozzles are sold per arc band with flow in proportion to arc. Each gear-rotor size is a matched-precipitation nozzle set: its quarter, half, three-quarter and full nozzles carry a quarter, half, three-quarters and all of the full-circle flow, and a head takes the nozzle for its arc. In the 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, 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.
Bodies
Every rotary, spray and strip nozzle goes on a pop-up body, on every design; a gear rotor is its own body. The body is 100 mm in lawn and the nature strip and 150 mm where a head stands in a bed or veggie patch; the 300 mm shrub riser is left to the owner (the yard doesn't record how tall the shrubs are). A spray on a supply more than its best band plus 35 kPa (about 250 kPa working) gets a 210 kPa pressure-regulating body, the cure for misting sprays. With a brand list the body is the cheapest of the owner's brands, else the cheapest of any. A hand-drawn design's parts list gets the cheapest plain 100 mm body under any nozzle that has none, so the list always has a body per nozzle beside the riser.
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. A zone's design flow is the sum of each head's flow at its reference pressure; in the pipe network each head then runs at the pressure it really gets (see Pipe).
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 25 mm poly (a 25 mm bore) carries 44 at 1.5 m/s; past that the lateral's first run is PVC. The 15% held back at the tap leaves the house some water, and covers a head running at the top of its best band (a rotary nozzle at 350 kPa draws √(350 ÷ 280) = 1.12× its reference flow). 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 far heads the bottom of their best band, for a zone centred at a given distance from the tap:
Budget = P0 − Pneed − 9.8 × rise − 8 kPa
Loss(Q) = valve(Q) + friction(Q, 32 mm PVC, 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: the regulator is set afterwards to suit the pipe. Pneed is, over the zone's heads, the highest best-band bottom less 10% (rotary 252 kPa, rotors 252), or on a pressure-regulating body its setting + 35 kPa. 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.
The owner's Zones preference
On an owner's yard the Zones station follows their choice; career jobs keep fixed rules (sun and shade apart is a hydrozone lesson there, and the cost star's reference design must not move).
| Preference | Sun and shade lawn | Zones start out spanning | Zone cap |
|---|---|---|---|
| Career | Always apart | 38 m | 0.8 share on Best |
| Balanced (the default) | Share a zone when the shade is under 30% of that lawn (SHADE_MERGE_SHARE 0.3) | 45 m | 0.8 share on Best |
| Fewest | Always share | 55 m | Full cap on every tier |
| Up to N (2–16) | Always share | 55 m | Full cap; then one group per emitter family; then heads sized for N |
- Balanced first. If its wider, shared zones fail a check the zones could cause, the rules before it (38 m, sun and shade apart) stand instead.
- Fewest is never dearer. A plan with fewer zones is taken only when it fails nothing Balanced doesn't, saves a station and doesn't cost more on the parts list. Wider zones can want sub-boxes, longer laterals and a bigger main; when they would, the design stays at Balanced's count and the card says so: “Fewer zones (9) would cost A$320 more (sub-boxes, longer laterals), so it stays at 10.”
- Up to N is the controller's limit, so it's met whatever it costs; when the tap can't do it the card says the fewest it can (“at 20 L/min you need at least 7”).
- A mixed sun-and-shade zone runs for its area-weighted weekly need.
Span, stations and the night
- Span: a zone's heads fit inside its plan's span (38 m career, 45 m Balanced, 55 m Fewest and Up to N), measured square (width + height of their bounding box), so one valve box in its middle reaches every head. 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.
- Laterals past 25 m: zones widened to finish inside the night go back to the usual spans if their laterals then run past the sub-box distance (the second-tap note says what the night needs). A zone whose lateral still runs long after its box is re-seated is split once, when the controller has the station: one more zone for its group, or drip zones whose runs start within 20 m of each other.
- 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. Best whose rotary-everywhere heads and 80% zones would need more than 16 is sized to the controller: the usual head families and full zones, keeping Best's boxes, valves and extras.
- Pressure shortfall: if, once piped, a zone's last head is under its nozzle's minimum — or, while the controller has stations to spare, under its best band — 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 Class 12 (or blue-line PE on a job that has it), 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: 19 or 25 mm LDPE poly (32 mm PVC for a big zone's first run), sized run by run for the flow in that run. A sprinkler zone's lateral is 19 mm at least; 13 mm is for drip feeders and the short tail to a single head.
Sizing: velocity first, on the real bore
| Pipe | Inside Ø | Max flow | Used for |
|---|---|---|---|
| 13 mm LDPE | 12.9 mm | 11.8 L/min | Drip feeds, a single head's tail |
| 19 mm LDPE | 19.2 mm | 26.1 L/min | Laterals |
| 25 mm LDPE | 25.0 mm | 44.2 L/min | Laterals |
| 25 mm PVC Class 12 | 29.8 mm | 62.8 L/min | Mainline |
| 32 mm PVC Class 12 | 37.5 mm | 99.4 L/min | Mainline, a big zone's first lateral run |
| 25 mm blue-line PE | 21.1 mm | 31.5 L/min | Mainline (32 mm: 26.9 mm, 51.1 L/min) |
PVC is AS/NZS 1477 Class 12 (PN12): the mean outside diameter less two mean walls (DN25: 33.55 − 2 × 1.9 mm). Blue-line is AS/NZS 4130 PE100 PN12.5 (SDR 13.6). Garden LDPE poly is sold by roughly its bore and joined with barbed fittings. Every run takes the smallest size that keeps it at or under 1.5 m/s, sized for the flow its heads draw at the top of their best band (a rotary nozzle at 350 kPa draws 1.12× its reference flow), so a head the regulator leaves near the top can't push it over; the velocity check fails anything faster.
Friction: Hazen-Williams on the real bore
v = Q ÷ ( π d² ÷ 4 )
hf (m per m) = 10.67 × Q1.852 ÷ ( C1.852 × d4.8704 )
Friction (kPa per m) = hf × 9.81 × ( 1 + minor losses )
Q in m³/s, d the inside diameter in m. C = 150 for PVC, 140 for PE (blue-line and LDPE, which ovals and snakes in the trench). Minor losses (bends, tees and the fittings' own bores) are the usual design allowance: 10% for solvent-welded PVC, 15% for blue-line's compression fittings, 20% for barbed poly, whose insert fittings narrow the bore at every joint. The old single C and ×2.9 calibration are gone.
Why not Darcy-Weisbach? On the small laterals (13–25 mm, 5–30 L/min, Reynolds numbers 8,000–25,000) Hazen-Williams with C = 140 lands within 10% of Darcy-Weisbach with the Blasius smooth-pipe friction factor; the tests check it. The fittings allowance is a bigger uncertainty than the choice of formula, so the model keeps one.
| Pipe | Flow | Velocity | Friction |
|---|---|---|---|
| 13 mm LDPE | 10 L/min | 1.28 m/s | 21 kPa |
| 19 mm LDPE | 10 L/min | 0.58 m/s | 3.1 kPa |
| 19 mm LDPE | 20 L/min | 1.15 m/s | 11 kPa |
| 25 mm LDPE | 30 L/min | 1.02 m/s | 6.5 kPa |
| 25 mm PVC | 40 L/min | 0.96 m/s | 3.8 kPa |
| 32 mm PVC | 60 L/min | 0.91 m/s | 2.6 kPa |
Pressure and flow at every head
Phead = PPOC − mainline friction − valve loss − lateral friction − 9.8 × rise
Qhead = Qref × √( Phead ÷ Pref )
PPOC is the working pressure, capped at the regulator's setpoint when one is fitted; a pressure-regulating body or a drip kit caps it again. Each head draws its flow at the pressure it gets (the orifice law, from its reference: 280 kPa, sprays 210), which changes the friction, which changes the pressure: the network is solved in under-relaxed rounds (half a step each) until no head's flow moves by 0.01 L/min. Flow through the network is summed from the far heads back to the valve; each zone's mainline loss is at its own settled flow. Drip is pressure-compensating: its flow doesn't change. The catalogue has no throw-by-pressure data, so the throw isn't adjusted; the best band keeps it close to the listed radius.
| Pressure | Reads | Why |
|---|---|---|
| Under the nozzle's minimum | Fail | It dribbles |
| Under its best band by more than 10% | Warn | The throw falls short of the next head (±10% is the usual design tolerance: flow and throw move about 5%) |
| Over its best band | Warn | Sprays mist, rotary streams break up and drift |
| Over its maximum | Warn | Fog, and past the nozzle's rating: the regulator's job |
Best bands in the catalogue: rotary and strip nozzles 280–350 kPa, gear rotors 280–380, fixed sprays 190–215. Drip is judged on its range alone. If a zone's last head is under its minimum, or under its best band, measured with the tap assembly but before the regulator (the regulator can only take pressure away), 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: many Australian water authorities rate a buried automatic irrigation system as a medium hazard to the drinking water, so every in-ground system gets a testable device — a testable dual check — at a garden tap as much as at the meter, fitted and tested by a licensed plumber (and tested again every year). The Designer adds the plumber as a labour line and never tells an owner to fit it themselves. A high-hazard job gets a reduced pressure zone device, also plumber-only. A hose-connection vacuum breaker is only for an above-ground hose timer with nothing buried. The note on the device, the parts list and the install guide: check with your water authority; installed and tested by a licensed plumber. Every point of connection must have one: the
backflowcheck fails without it, and warns on a plain dual check or vacuum breaker on a buried system. - Filter: a 150-mesh screen filter on every point of connection, sprinklers or drip.
- Regulator: fitted when the working pressure would put a head over the top of its best band, or when static pressure is over the rating of anything on that point of connection. The
poc-ordercheck fails an unregulated system whose static is over the emitters' maximum.
lo = max over the emitters of ( best-band bottom + loss ) · hi = min of ( best-band top + loss )
Setpoint = ⌈ lo ⌉ to 5 kPa when that's ≤ hi (else their midpoint); when lo > hi, the lower of ⌈ lo ⌉ and the near heads' maximum − 10; held within 150–550 kPa
“Loss” is each emitter's drop from the point of connection (mainline, valve, lateral, rise), from a network run without the regulator, then again at the first setpoint (at the lower pressure the heads draw less, so the pipe loses less). A pressure-regulating body or a drip kit asks its setting + 35 kPa at its inlet instead of a band. So the far heads sit at the bottom of their best band and the near ones inside it: a rotary lawn typically 295–305 kPa (it used to be 370, 10 under the nozzles' maximum, which fogged the sprays). The Pipe check suggests turning a regulator up when a zone's last head is short.
Sprays on a mixed system sit on 210 kPa pressure-regulating bodies (see Bodies), so one regulator can suit the rotary heads and the sprays still land in their 190–215 kPa band.
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 (testable, the plumber's, when anything is buried), 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, scaled for the yard's climate and season, and stretched for the zone's uniformity. The table below is Melbourne's (the default).
| 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.
The yard's climate
The weekly needs are scaled by the region's summer evaporation over Melbourne's. The region comes from the yard's address — the state in it, else the capital nearest the lot — and is Melbourne when the yard has none (a template or a blank block). The program, its card and the controller face say which climate it was worked out for.
ETo (mm/day) = 0.0023 × ( Tmean + 17.8 ) × √( Tmax − Tmin ) × Ra
Climate factor = ETo(region) ÷ ETo(Melbourne), to two places
Hargreaves' equation (FAO-56 eq. 52) with the Bureau of Meteorology's January mean maximum and minimum for each capital, and Ra the mid-January extraterrestrial radiation for its latitude (FAO-56 eq. 21, as mm/day). Rain isn't netted off: the rain sensor does that on the day.
| Region | Jan max / min °C | ETo mm/day | Factor |
|---|---|---|---|
| Melbourne (default) | 26.3 / 13.6 | 5.48 | 1.00 |
| Sydney | 27.0 / 19.5 | 4.57 | 0.83 |
| Brisbane | 29.2 / 21.2 | 4.90 | 0.89 |
| Adelaide | 29.2 / 17.1 | 5.80 | 1.06 |
| Perth | 31.2 / 18.1 | 6.24 | 1.14 |
| Hobart | 22.2 / 12.6 | 4.42 | 0.81 |
| Canberra | 28.7 / 13.7 | 6.15 | 1.12 |
| Darwin | 31.8 / 25.0 | 4.54 | 0.83 |
Run time (min per watering day) = ( weekly need × climate factor ÷ days ) ÷ precipitation rate × 60 × SM
Scheduling multiplier SM = 1 ÷ ( 0.4 + 0.6 × DUlq )
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
DUlq is the zone's low-quarter distribution uniformity as a fraction, over the cells it waters with every sprinkler's water on them (drip: 0.9). SM is the capped multiplier irrigation practice uses in place of 1 ÷ DU: 1 at DU 1, 1.18 at 0.75, 1.43 at 0.5, never over 2.5. 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, Melbourne, DU 75
- 25 mm a week × 1.00 over 3 days8.3 mm a day
- At 10 mm/h50 min
- × SM 1 ÷ (0.4 + 0.6 × 0.75) = 1.1859 min
- 10 mm/h is more than clay's 5 → longest run 5 × 0.5 ÷ 10 × 6015 min
- ⌈ 59 ÷ 15 ⌉ cycles, 60 min soak between4 × 15 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/spressurePipeEvery head within its nozzle's range; warns outside its best bandnetwork-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 connection; testable on a buried system (warns)isolationManifoldIsolation 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; the usual families again when that would need more than 16 stations |
| 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 (a testable backflow) + 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: a testable device on a buried system, and the licensed plumber who fits and tests it
- The drip filter and regulator (Drip Control Kit)
- A pressure regulator when the tap would push the heads past their best band
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 by pressure runs through the pipe network, the pressures and the velocities; zone sizing, precipitation and DU use each nozzle's flow at its reference pressure (280 kPa; sprays 210), which the regulator's setpoint keeps the far heads close to. Throw isn't adjusted for pressure: the catalogue has no throw-by-pressure data.
- Friction is Hazen-Williams on each product's real bore with a C per material and a percentage for fittings, not a loss per fitting. The zone pressure cap assumes a 32 mm PVC 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 scales fixed weekly needs (Melbourne's, seasonally scaled) by a capital city's January evaporation from Hargreaves' equation, not local daily ET, and doesn't net off rain (the rain sensor does); the tropical north's dry-season peak isn't modelled. It stretches run times by the scheduling multiplier from each zone's modelled 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. The Designer treats a buried automatic system as medium hazard (a testable device, fitted and tested by a licensed plumber) and 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): for a gear rotor, its matched set's quarter, half, three-quarter and full nozzles. Drives zone sizing, precipitation, DU and, scaled by √ of the pressure a head gets, friction and velocity |
precipRate | 60 × the full-circle flow ÷ the maximum throw² (strips: over L × W); the tests hold every item to it |
pressureMin, pressureMax, pressureBest | The operating band and the best band: the head checks, the regulator decision and its setpoint, pressure-regulating bodies |
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 and scales it by the orifice law; a supplier's measured flow-and-throw-by-pressure table is something it could take on in its place.
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