// tomko.ai / Civil
Civil
Civil is learning civil engineering one competency at a time. It starts with utility engineering.
Give Civil a utility drawing. It turns the pipes, structures, notes and standards citations it can support into engineering records an engineer can check, while keeping the source behind every value and leaving unsupported information unresolved instead of guessing.
Overview
Utility engineering is the first job we are teaching Civil. Each release adds another part of that job.
Civil 0.5 can already read parts of a utility drawing, build engineering records from them, and keep the source behind what it finds. It still does not understand the whole drawing or utility network. That is what the next releases are for.
Utility engineering
Capabilities
Reads the DWG file directly, with no export or conversion step. Civil separates existing conditions from proposed design, and drafting and administrative content from design content.
When Civil resolves a pipe run, it produces one record for that run, carrying diameter, material, grade, length, chainages and endpoint inverts. Each field is filled in only when the drawing supports it, and left blank with a reason when it does not. Structures are kept separate from pipes, and a structure record carries the inverts Civil could establish, each with its elevation, direction and design state. Watermain is handled as a pressure system, with no flow direction and no upstream or downstream.
A diameter label may be present elsewhere on the drawing, but Civil’s current method could not tie it to this run, so the field stays blank with its reason.
Where Civil can resolve a numbered item in a note block, that item becomes its own record with its verbatim text. Civil scans drawing objects that contain text for standard references, and records each citation against the text it appears in. Civil identifies the cited standard; it does not read the standard’s content.
resolved means Civil identified the standard and can show you its title. It does not mean the clause was read, and it does not mean the design complies. Civil puts the citation and the title side by side. It does not compare them. Whether a detail titled Trench Restoration belongs against the note that cites it is the engineer’s call. Civil reports two facts and leaves that judgment where it belongs.
“All trench backfill within the road right-of-way shall be compacted to 95% Standard Proctor Density.”
Every record keeps the source behind each field. Anything Civil picked up but could not resolve becomes a gap record, written for a reviewer, that says what evidence would resolve it. Review spreadsheets cover runs, watermain, structures and gaps.
No structure could be found at one or both ends of this pipe.
Missing: a structure label at the pipe end.
Something Civil picked up but could not resolve is reported, not dropped.
How it works
The drawing
Native DWG. Civil opens the drawing file itself and reads its objects, their text, their layers and where they sit relative to each other.
Building the records
Civil 0.5 builds its records with fixed rules. No general-purpose AI model runs in that step, and none supplies an engineering value. If the drawing does not support a value, Civil leaves it blank instead of guessing.
Engineering records
A record for each pipe run, structure, note and citation.
Review output
A gap list with a coded and a plain-language reason for each item Civil picked up but could not resolve, a citation list showing whether each citation was resolved, and review spreadsheets.
- Sources. Every field records where it came from: the drawing object, its layer, its text, and the rule that produced the value. You can check a number without trusting Civil.
- Repeatability. In release testing, running Civil 0.5 again on the same drawings produced exactly the same output. Every record is stamped with the release that made it.
- Gaps are reported. Something Civil picked up but could not resolve comes back as a gap record with a plain-language reason. It is not dropped quietly.
- Says what it cannot support. Civil states what it did and what it did not do. Where something has not been independently measured, it says so rather than reporting a rate.
Limits
- It does not find pipes from the drawing geometry. It works from what the drawing says. A structure drawn as a symbol with no text label is outside what it reads today.
- It does not trace the network. It records which runs meet a structure. It does not follow flow to an outlet, and it does not report a break in continuity.
- It can mistake other things for pipes. Non-pipe features, and service and construction notes, have been counted as pipes.
- Its gap list does not show everything it missed. If a real pipe run is labelled in a way Civil does not recognise, Civil never picks it up, so it never reaches the gap list either.
- It makes no completeness claim. Nobody has independently measured how much Civil finds or how accurate it is, so Civil 0.5 publishes no recall, precision, accuracy or error rate. A number Civil shows you is its output, not a measured result.
- It has not been shown to generalise. Three drawings from two projects, all of which shaped its development. No unseen project has been run and graded.
- Civil 0.5 has not yet been validated by a customer. Customer evaluation is still open.
- It does not check your design against municipal criteria. Civil can tell you which standards a drawing cites. It does not read them, and it does not judge whether the design complies.
- It does not do servicing, hydraulics, utility conflicts or constructability.
- And it never signs anything. Civil is not CAD, not design software, and not engineering sign-off. Engineering judgment stays with the engineer.
History
Read and extract.
Open the DWG, find the utility content, standardise the terms it uses, and attach a source to everything.
Assemble engineering objects.
Treat each pipe run and structure as one record, with a source for every field and a list of gaps.
Reconstruct the proposed design.
Separate proposed from existing. Add chainages, proposed endpoint inverts, the first watermain record, and a first, limited consistency check.
Try to make it reviewable.
Civil 0.4 tried to put review findings directly on the drawing. The reviewing engineer rejected the approach because he reviews plotted sheets, not model space. It did not ship. Some of the underlying work carried into 0.5.
Make the records checkable.
Records that keep their sources, explicit gaps, notes rebuilt as records of their own, and a citation list that says which citations it resolved.
Roadmap
Only 0.5 exists today
Understand the drawing geometry.
Find engineering objects in the drawing itself, not just in the annotations around them.
Trace the utility network.
Connect pipes and structures so Civil can trace a system through the drawing.
Quantify reconstruction performance.
Measure what Civil found, what it missed, and how accurate the reconstruction is.
Start checking the design.
Once Civil understands enough of the drawing, begin checking the design against municipal standards and design criteria.
Utility engineering.
Civil understands a utility design well enough to reason about it: reconstruct the proposed system, connect evidence across the design, apply relevant engineering criteria, identify inconsistencies and unanswered questions, and explain its conclusions and uncertainty for engineering review.
The next civil-engineering competency.
Start teaching Civil another part of civil engineering. We have not chosen which one yet.