Sheaf
Sign inOpen a blank sheet

Calculation documents for engineers

The calculation is the document.

Write the mathematics the way you would by hand. Sheaf evaluates it as you type, checks every unit dimensionally, draws the figure from the numbers, and prints a calc sheet somebody can sign — or describe the check in plain words and it writes the sheet for you.

Section B · drawn from b, h and c
b = 350 mmh = 500 mm
Midspan · the check and its verdict
KB​≔K(MB​)
=0.145
normalised moment
modeB​≔design(MB​)
="Singly reinforced"
design mode
AsreqB​≔Asreq​(MB​)
=1015.404mm²
tension steel required
AsprovB​≔Asprov​(nB​,Aϕ​)
=1472.622mm²
n_B bars provided
ηB​≔AsprovB​AsreqB​​OK
=0.690
utilisation of the tension steel
Reinforced Concrete Beam B-02 — Flexural DesignFour committed worksheets, one per discipline, rendered by the product: each figure is drawn from its sheet's variables in the figure language, each line is evaluated by the real kernel, and each verdict is the kernel's. Nothing here is a picture of a sheet.

What happens when you type

Three things, in the order they happen: the units are checked before anything is computed, everything downstream re-inks when an input moves, and the check gives its verdict.

01

Units are load-bearing

Type kN·m where the standard says kN·m. Sheaf checks the dimensions, not your spelling — and it refuses the line rather than returning a wrong number.

LOOP-01

Animation off — showing the result.

02

Change one input, watch it all move

Every result downstream re-inks. Nothing is recalculated by hand and nothing goes stale without saying so.

LOOP-03

Animation off — showing the result.

03

The check, and its verdict

η ≤ 1.0, and the chip says so. A check that is mid-flight holds its last verdict rather than flickering.

LOOP-09

Animation off — showing the result.

It draws. It tabulates. It programs.

A figure is geometry bound to the sheet's variables. A table is a grid of expressions that carries units. A program is a branch you can read. All three are regions of the same document, and all three print.

z6z6a4z6z6z6

Drawn from the numbers

Every coordinate is an expression with a unit. Change a width and the drawing redraws, the dimensions restate themselves, and the DXF you export is the drawing the sheet computed.

Everything it draws
10

Utilisation at every segment end

№η at end 1
№η at end 2
№η directional
№η simplified
№Δσ_wf[MPa]
0.4541
0.8268
0.8268
0.9344
54.10
0.8157
0.5341
0.8157
0.9344
54.10
0.5551
0.8142
0.8142
0.9783
54.10
0.8323
0.4817
0.8323
0.9783
53.60

Tables that compute

Every cell is an expression, every column carries a unit, and a utilisation column checks itself. Addresses and ranges as in a spreadsheet, without the spreadsheet.

Everything a table does

How the section is designed. Reports 'Increase section' when compression steel is required but not permitted.

design(M)≔
localKEd←M/(b⋅ηc​⋅fcd​⋅d2)
ifKEd​≤Klim​
return”Singly reinforced”
else if1≤dbl
return”Doubly reinforced”
otherwise
return”Increase section”

Logic you can read

A branch is a branch, written in the sheet rather than buried in a formula bar. This one decides how a section is reinforced, and the sheet calls it like any other function.

Programs, solve blocks and checks

Describe the check. Get the sheet.

Say what you are checking in plain words. The Assistant writes the sheet — definitions, units, checks, a figure, a table — evaluates it, and shows you what it computed. You edit it like anything else you typed, and it can extend or fill a sheet you are already writing.

Describe a calculationDescribing needs an account. The blank sheet does not.

Animation off — showing the result.

Sheets, rendered rather than drawn

4 documents from this repository's own fixtures, evaluated by the same engine the app runs and printed by the same page model. Not screenshots: a capture goes stale the first time a control moves.

Collapsible Post — Plastic Hinge Check

EN 1999-1-1 · EN 795

1

Inputs

F≔3 kN
applied load
H≔500 mm
lever arm
γM1​≔1.10
2

Section — EN AW-6082 T6

Wpl​≔12.4⋅103 mm3
fo​≔160 MPa
3

Checks

MEd​≔F⋅H=1.500kN·m
MRd​≔γM1​Wpl​⋅fo​​=1.804kN·m
η≔MRd​MEd​​=0.832OK
demo-worksheet · Collapsible Post — Plastic Hinge CheckThe canonical worksheet, whole: M_Ed = 1.500 kN·m against M_Rd = 1.804 kN·m, η = 0.832, and the verdict chip is the kernel's own.
10

Utilisation at every segment end

№η at end 1
№η at end 2
№η directional
№η simplified
№Δσ_wf[MPa]
0.4541
0.8268
0.8268
0.9344
54.10
0.8157
0.5341
0.8157
0.9344
54.10
0.5551
0.8142
0.8142
0.9783
54.10
0.8323
0.4817
0.8323
0.9783
53.60
weld-worksheet · Welded Bracket WB-07 — Fillet Weld Group DesignOn the page as itself — the one fragment frame 6 puts here. Every cell is an expression, every column carries a unit, and the utilisation column checks itself.
6.2

Midspan B — sagging

KB​≔K(MB​)
=0.145
normalised moment
modeB​≔design(MB​)
="Singly reinforced"
design mode
AsreqB​≔Asreq​(MB​)
=1015.404mm²
tension steel required
AsprovB​≔Asprov​(nB​,Aϕ​)
=1472.622mm²
n_B bars provided
ηB​≔AsprovB​AsreqB​​OK
=0.690
utilisation of the tension steel
beam-worksheet · Reinforced Concrete Beam B-02 — Flexural DesignWhat LOOP-01, LOOP-02 and LOOP-03 are authored from. The units are checked dimensionally rather than by convention — MPa over mm² resolves to N, and the sheet says so.
5

Checks

ηcable​≔Tall​Tc​​OK
=0.764
rope tension against MBL/γc
Creq​≔Smarg​−zft​
=5.718m
clearance required below the walking surface
ηclear​≔Havail​Creq​​OK
=0.817
fall clearance
ηswing​≔αlim​αsw​​OK
=0.932
swing-fall angle
ηFF​≔FFlim​FF​OK
=0.431
fall factor
lifeline-worksheet · Horizontal Lifeline HLL-01 — Fall Arrest DesignWhat LOOP-08 and LOOP-09 are authored from. Every check carries its verdict beside it, and a check that is mid-flight holds its last one rather than flickering.

One sheet, everyone on it

Two people can type into the same sheet at once. A comment anchors to a region, a version is a named snapshot with a diff that knows which numbers moved, an issued revision stops moving, and a published page is a link anyone can read.

Two people, one sheet

Live from the first line: two carets in one region, every keystroke merged per character, and every result recomputed on both machines.

LOOP-14

Animation off — showing the result.

  • a thread hanging off the region it is about, with a reply under it

    Comments and review

    Anchored to a region, with mentions, resolved in place.

  • every snapshot, grouped by the day it was taken

    Versions and the diff

    A named snapshot, and a calc-aware diff: added, removed, value changed.

  • the Review tab's Protect group, where a sheet is issued

    Issue and revision

    An issued revision is locked in the database and on the wire, and its stamp prints.

  • who can open the sheet, and where each person's access comes from

    Publish

    A read-only page with no account, rendered by the same print route.

Runs where the work is

The engine runs in your browser, so a sheet needs nothing installed. The same engine goes with the sheet when it leaves.

  • 01

    In the browser

    Pyodide, SymPy and Pint boot in a worker on your machine. Nothing is installed, and the numbers never leave the tab to be computed.

  • 02

    Offline, as one file

    The standalone export packs the engine with the sheet. It opens from the filesystem with no account and no network, and the inputs still work.

  • 03

    Beside STAAD.Pro

    A local bridge on your own Windows machine speaks OpenSTAAD and lands unit-bearing result tables in the sheet through MCP, each stamped with the run it came from.

  • 04

    In your Claude

    An MCP connector — over stdio for Claude Code, remote for Claude's own connectors — with seventeen tools to validate, create, evaluate, edit and print a sheet.

Who it's for

  1. 01

    The calculation somebody has to sign

    A check that leaves your desk with a name on it. The sheet prints with the working visible, so the person who signs it can follow every step to the verdict.

  2. 02

    The check that is redone every time an input moves

    Change one value and every result downstream re-evaluates. Nothing is a stale number waiting to be noticed, and the sheet says which results are still true.

  3. 03

    The sheet that has to print

    A4 or Letter, real margins, real pagination, a title block. The printed page is the same object as the one on screen, and the PDF is the same again.

Why Sheaf exists

An engineering calculation is a document that has to be right, and a document somebody has to sign. Almost every tool treats those as two jobs.

A spreadsheet computes and cannot show its working: the formula is behind the cell, the units are a note in a neighbouring column, and the printed page is a screenshot of a grid. A word processor sets the page and computes nothing, so every number in it was copied from somewhere else and is true only until that somewhere changes.

So the work splits. The mathematics happens in one file and the record is typed into another, and the gap between them is where a wrong number lives — copied once, checked once, carried into a signed sheet.

Sheaf closes the gap by making the calculation the document. You write the mathematics; it evaluates as you type, the units are checked dimensionally, the figure is drawn from the same variables, and what prints is the object you were editing. One file, and the record is a by-product of doing the work rather than a second job after it.

Free to start.

The meter is never the math — calculating, checking units and printing are never metered.

Plans and what they includePlans and what they include

Open a blank sheet and type.

No account until you want to keep it. The engine runs in your browser.

Open a blank sheetAll features