SheetForge

Construction drawing review, markup and calibrated takeoff. Free, open source, and it works with the network off.

Windows · macOS · Linux — mobile targeted, not yet shipped

Version 0.1 — an unsigned preview. The core is built and tested; the shell is young. Release binaries are not yet code-signed, so your operating system will warn on install. 0.1.1 cannot update itself — a later version means one reinstall by hand — and only the Windows build has been run by a person. What is verified and what is not is listed in the status page, gaps included.

A markup is a record, not ink

That single decision is what separates a review desk from a document annotator. A revision cloud carries who raised it, against which revision of which sheet, in which discipline, what it measures, who owns it and when it is due. The shape on screen is one projection of that record; CSV, XFDF, BCF and a flattened PDF are others.

The redline vocabulary

Clouds with real scalloped arcs, callouts, stamps, symbols, issue pins — and highlight and strikeout that select actual glyphs, so a selection across three lines draws three bands rather than one block over the margins.

Takeoff you can defend

Every quantity keeps the raw page magnitude it came from, so re-calibrating a page re-derives every measurement on it. An uncalibrated measurement reads as underived, not as zero.

A running total, not a report

The takeoff sits beside the drawing and moves as you measure, totalled by cost code and unit — so a length and an area never add up into one plausible, wrong number. What is not counted is said in words underneath rather than dropped.

Compare quantities, not just pixels

What moved between two drawings, by how much and in which direction, as a CSV for the bill of quantities. The lines that did not move are in it too: otherwise a line that held and a line nobody compared look exactly alike.

Scale per page, never per document

A plan sheet and the enlarged detail beside it are different scales. A document-wide factor produces confidently wrong numbers on half the set.

Slip-sheets that do not lie

Two issues are aligned before they are compared, because plot origins drift. Each markup gets a verdict — unchanged, relocated, or needs a human — instead of being silently reapplied over content that has since changed.

Specifications as links

A CSI spec book parses into addressable sections and clauses, so 07 84 00 §1.2.A is something you can click rather than a string somebody typed.

A trail that resists editing

Every act is a hash-chained audit entry. Altering one breaks every digest after it, and verification names the first failure. Tamper-evident — and honest about not being tamper-proof.

Something to practise on

SheetForge ships with its own drawing, and opens it the first time you start the application. It is a two-page sheet with a title block, a column grid, a legend and a graphic scale — not a blank page with a logo on it. Mark it up as hard as you like.

The tutorial's second sheet: a floor plan on a lettered and numbered column grid,
                with an overall dimension reading 144 feet 0 inches below it and 96 feet 0 inches
                down the left-hand side, a room labelled OPEN OFFICE at 2,304 square feet, a
                graphic scale, and a title block reading A-201 SECOND FLOOR PLAN.
The dimension printed as 144'-0" really is 144 feet at the scale the title block claims. Calibrate against it, measure the other side, and the sheet tells you whether you got it right — it should read 96'-0". Measure the room and you should get 2,304 SF.

That is the whole lesson, and it is the one thing a takeoff tool has to teach before anything else: a quantity is only worth what its scale is worth, so check the scale against something the drawing already tells you. Everything after that is detail.

How it compares

Bluebeam Revu is the tool this industry runs on, and it is a good one. It is also per-seat and increasingly subscription-gated, which puts it out of reach of the subcontractors, small consultancies and public-sector teams handed the same drawings.

Feature comparison
 SheetForgeBluebeam RevuGeneral PDF editors
LicenceApache-2.0, freePer-seat subscriptionPer-seat subscription
PlatformsWin · macOS · Linux — mobile targeted, not yet shippedWindows (iPad viewer)Varies
Markups as structured records
Calibrated takeoff with provenance
Revision compare and slip-sheet migration
BCF round-trip to the coordination model
CSI specification parsing and citation
Tamper-evident audit trail
Works fully offlineVaries
Editing the PDF's own content

The last row is the honest one. SheetForge does not rewrite the text and graphics inside somebody else's drawing, and it is not going to. On a construction job the issued PDF is the governing document; editing it is a liability, not a feature.

Your drawings stay yours

No account, no cloud, no telemetry. The only outbound connection in the product is the update check, and it can be turned off.

A project is a folder

Drawings, markups, scales and the audit trail in one .sfproj directory you can see, back up and hand to somebody. Delete it and it is gone; there is no other copy.

The issued bytes are untouched

Source PDFs are stored byte-identical and addressed by SHA-256. A package whose drawings were altered on disk fails its integrity check rather than opening with different drawings than the markups were made against.

The webview cannot reach your disk

No filesystem plugin, no shell, no generic bridge, and no command that accepts a path. File pickers run on the native side and only an opaque id crosses back.

Build it yourself

Needs Node 20.11+, Rust 1.82+ and your platform's Tauri prerequisites.

git clone https://github.com/ibuilder/SheetForge.git
cd SheetForge
npm install
npm run desktop:dev

Documentation