Feature
WaterCraft (water distribution)
Design and check a drinking-water distribution network on top of CivilCraft's water mains: turn parcels and customers into demands, run fire flow at every hydrant, see which main outage hurts most, and follow water age and chlorine through a 24-hour run.
Use this add-on:
Screenshots and a short video come with the listing (AL.3).
Overview
Design and check a drinking-water distribution network inside CivilCraft. WaterCraft adds to the Water mains you already draw: it turns parcels and customers into junction demands with an hourly pattern, tests the fire flow at every hydrant, shows which main outage cuts off the most customers, and follows water age, chlorine and the source of the water through a run of a day or more.
It uses CivilCraft's own pressure-network solver, so a result here is the same number you see in the Water mains window. Your network stays in the project on your computer; nothing is sent anywhere. It is a calculation aid: a water engineer checks every result, and nothing here is a stamped design.
Who it’s for
- A civil or water engineer laying out a distribution network or a subdivision's mains who needs pressures, fire flow and a check on dead ends.
- A utility planner who wants to know which main outages hurt most and where the water is oldest.
- A student or small consultancy who needs water-network analysis without a per-seat network licence.
What you can do
- Turn customers into demands: one line per parcel or meter (an id, a place, a kind and an amount), placed on the nearest junction or shared between close ones, with a peaking factor and a residential, commercial or flat day pattern. WaterCraft tab, Demands. verified
- Test fire flow at every hydrant, or every junction when none is marked: the flow each can give while the residual pressure holds, held either at the hydrant or everywhere in the system, listed worst first with meets or short. WaterCraft tab, Fire flow. verified
- Take each main, or each valved section, out of service in turn and see how much demand is cut off and which junctions fall under the minimum pressure. WaterCraft tab, Which main matters most. verified
- Follow water age, chlorine decay (in the water and at the pipe wall) and a source trace through the run, with junctions flagged when the residual is too low or the water too old. WaterCraft tab, Water age and chlorine. verified
- Save every table as a CSV that a spreadsheet will open without running a name as a formula. Each table's Save as CSV button. verified
Methods and standards
The hydraulics are CivilCraft's Water mains solver (Hazen-Williams head loss and the global gradient method). Fire flow is a bisection on the draw at a hydrant until the lowest pressure that matters reaches the residual. An outage closes the pipe, or every pipe of a valved section, and solves again. Water quality walks plug-flow segments through each pipe in small time steps, mixes completely at junctions and in tanks, and uses first-order decay with a bulk rate and a wall rate (2 times the wall coefficient over the diameter). Demands go to the nearest junction, or are shared by inverse distance. All of it is our own code from published methods.
Data and sources
It ships no data. It works on the Water mains in the open project. The use per home or per acre in the demand table, and the hourly day patterns, are generic starting values that you replace with your utility's own design figures; they are not a standard. Pipe, pump and tank data come from the project.
Verification
| Case | Result |
|---|---|
| Allocation conserves the total and matches hand arithmetic | 100 homes at 300 gpd is 20.83 gpm, 2 acres at 1,500 gpd per acre is 2.08 gpm, every flow is accounted for, a shared load adds back to its flow, every day pattern has a mean of exactly 1 (bin/test-waternet.mjs) |
| Fire flow against an independent bisection on the Hazen-Williams loss | Available flow within 0.3 % of the independent answer for a 1,000 ft, 12 in main, and within 1 % of the Water mains window's own one-hydrant answer; a node already under the residual gives 0 (bin/test-waternet.mjs) |
| Outages in a dead-end line, a loop and a valved line | Closing the pipe to a dead end cuts off exactly that junction's demand; in a loop one outage cuts off nothing; one valve in the middle of a line makes two sections and shutting the far one cuts off exactly its two junctions (bin/test-waternet.mjs) |
| Water age, chlorine and trace in one pipe, two feeds and a filling tank | Age equals pipe volume over flow within 1.5 %; chlorine equals c0 times exp(-k t) within 1 %; two equal feeds trace 50 percent each within 0.5; a filling tank matches (L - L0)/L within 3 % (bin/test-waternet.mjs) |
| CSV quoting and formula guard | Commas, quotes and a leading = or + are handled so a spreadsheet does not run a name as a formula (bin/test-waternet.mjs) |
Limits
It is a calculation aid, not an approval: the numbers are not a certificate and a water engineer decides what they are worth. It has been tested on made-up networks against hand answers, not yet on a real utility's model, so compare it with your own before you rely on it. It does not yet compare scenarios, simulate water hammer, calibrate a model to field readings, size pipes or pumps for you, model leakage or pressure-dependent demand, read SCADA, or reconcile with GIS. Chlorine decay is first order only, a tank is one mixed volume, booster stations are not modelled, a pipe cut partly by a valve is closed whole in an outage, and the day patterns and demand table are starting values. It does not design sewers; that is a separate planned add-on.
Files and formats
Reads the Water mains already in the project (drawn with the tools, or opened from LandXML or EPANET-format text). Reads pasted lines of customer loads (id, x, y, kind, amount). Writes CSV tables of demands, fire flow, outages and water quality. The demands it makes are written into the Water mains as one step that Undo takes back.
Get started
- Switch the add-on on in Settings, Add-ons, then open the WaterCraft tab. Draw your reservoir, junctions and pipes with the Water mains tools first.
- Paste your customer lines under Demands, press Check, then Put into the network.
- Press Run under Fire flow to see which hydrants fall short, and under Which main matters most to see the weak links. Run water age to find dead ends.
Languages
The text is available in:
- Afrikaans (af)
- Amharic (am)
- Arabic (ar)
- Azerbaijani (az)
- Belarusian (be)
- Bulgarian (bg)
- Bengali (bn)
- Bosnian (bs)
- Catalan (ca)
- Czech (cs)
- Danish (da)
- German (de)
- Dhivehi (dv)
- Greek (el)
- English (en)
- Spanish (Spain) (es-ES)
- Spanish (Mexico) (es-MX)
- Estonian (et)
- Persian (fa)
- Finnish (fi)
- Filipino (fil)
- French (fr)
- Galician (gl)
- Guarani (gn)
- Hebrew (he)
- Hindi (hi)
- Croatian (hr)
- Hungarian (hu)
- Armenian (hy)
- Indonesian (id)
- Icelandic (is)
- Italian (it)
- Japanese (ja)
- Georgian (ka)
- Kazakh (kk)
- Khmer (km)
- Korean (ko)
- Kyrgyz (ky)
- Lao (lo)
- Lithuanian (lt)
Works in
| Edition | Works | Note |
|---|---|---|
| Browser (/use) (yours) | Added on demand | Fetched the first time you use it, then kept for offline use. |
| Studio from getcadcraft.com | Added on demand | Fetched the first time you use it, then kept for offline use. |
| Microsoft Store | Added on demand | Fetched the first time you use it, then kept for offline use. |
| Google Play | Added on demand | Fetched the first time you use it, then kept for offline use. |
| iPad and iPhone (App Store) | Included; switch it on | Part of the reviewed app; your list switches it on. |
| Custom build | Added on demand | Fetched the first time you use it, then kept for offline use. |
Comes with
Nothing else.
Permissions
- Adds a panel section
- Opens or saves its own file types
- Adds its own objects and data to drawings
From its manifest. Shown again when an update changes them, and the update waits for your yes.
Versions
| Version | Channel | Date | What changed |
|---|---|---|---|
| 0.9.0 | stable | November 9, 2026 | Signed and published. |
Licence and maker
CadCraft (CadCraft, first-party). Licence: Apache-2.0. Dependencies carry their own licences, listed on their pages.