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.

StructuralReinforced Concrete Beam B-02 — Flexural Design
Section B in flexure · drawn in the figure language
3-H252-H16H10N.A.εcu3 = 0.0035εs = 0.0143fcd = 18.1 MPaFc = 441 kNFs = 441 kNSECTION BSTRAINSTRESS AND FORCESb = 350 mmh = 500 mmd = 442 mmz = 408 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.

One sheet, taken apart

Every layer of the sheet is live

Lift a calculation apart and nothing in it is a picture. The figure reads the sheet's variables, the lines evaluate them, the logic decides between them, and the page prints all of it as one object.

  1. 01
    Figure

    Drawn from b, h and the cover

    The section is geometry over the sheet's own variables. Change the width and it redraws — bars, hatch and dimensions with it.

  2. 02
    Mathematics

    Evaluated as you type

    Natural notation, with units checked dimensionally. Every result downstream re-inks the moment an input moves, and the last line carries the verdict.

  3. 03
    Logic

    A branch you can read

    design(M) decides how the section is reinforced. It is written in the sheet rather than buried in a formula bar, and the lines call it like any other function.

  4. 04
    Paper

    One object, printed

    Put back together it is a page with margins and a title block — the same object on screen, on paper and in the PDF.

beam-worksheet · The check lines and the logic are that worksheet's own renders; the drawing is its section B in the figure language, at its numbers, evaluated by the same kernel.

Reinforced Concrete Beam B-02 — Flexural DesignMeridian Engineering
Doc. no.MER-CALC-037
Rev.P1
Made
Checked
Date
01 · Figure
3-H252-H16H10N.A.εcu3 = 0.0035εs = 0.0143fcd = 18.1 MPaFc = 441 kNFs = 441 kNSECTION BSTRAINSTRESS AND FORCESb = 350 mmh = 500 mmd = 442 mmz = 408 mm
02 · Mathematics
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
03 · Logic

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”

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
01

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
02

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”
03

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.

MCP connector

Your AI, working in your sheets

Sheaf speaks the Model Context Protocol. Connect Claude or ChatGPT and the assistant you already use can read, write, evaluate and print your sheets — through the same contract and the same kernel as everything you type.

ClaudeMCP
# Claude · Settings → Connectors → Add custom connector# name it Sheaf, paste the URL, sign inhttps://<your-sheaf-host>/api/mcpThen ask › Use Sheaf to describe the document contract and list supported units.

Your own API key, behind the Assistant

Bring your workspace's own key from Claude, OpenAI or DeepSeek, and the Assistant writes your sheets on the provider you choose.

Tools your assistant gets
  • validate_document
  • create_document
  • evaluate_document
  • edit_document
  • author_region
  • review_document
  • preview_document
  • render_pdf
  • get_house_template
  • describe_vocabulary
  • list_units
  • export_standalone_document
  • get_current_view
  • file_document

Claude and Anthropic are trademarks of Anthropic, PBC; ChatGPT and OpenAI are trademarks of OpenAI; DeepSeek is a trademark of its owner. The marks name what Sheaf works with and imply no endorsement.

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.

  1. 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 Check01 / 04The 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.
  2. 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 Design02 / 04On 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.
  3. 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 Design03 / 04What 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.
  4. 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 Design04 / 04What 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.

Windows desktop

Sheaf Desktop for Windows

Work with worksheets in folders on your computer, and bring selected STAAD tables into your calculations. Sign in to Sheaf to use the desktop app. A cloud workspace is optional for local work.

Local folders and attachments
Open a local folder, create worksheets, and save or reopen .sheaf files with their attachments. The Local Workspace rail panel keeps file controls beside your document.
An optional cloud copy
Add to cloud uploads a separate copy to a workspace you choose. Local files stay on your computer; later edits to the local and cloud copies are separate.
STAAD table browser
Search a 41-table catalogue, choose entities, cases and columns, and preview values with units and source origin. Insert a snapshot or a refreshable table where supported, retaining authored formula columns on refresh.
Desktop controls
Use full screen with F11, manage the STAAD connection in Desktop settings, and open local files from the right rail.

Table imports tested with STAAD.Pro CONNECT Edition V22 (22.00.00.015) on Windows. Other versions are not yet verified. Available tables vary by model and version; the catalogue covers defined table projections, not every OpenSTAAD getter.

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