Built for a desktop screen. Open on a larger display for the full workspace.
← all demos
Beam rater
framing plan to load-rated model

Rate an existing structure for a change, on the drawings themselves.

A large share of structural engineering is not new design. It is answering whether an existing structure can take a change: a load rating, a renovation, a new rooftop unit or solar array, a change of use. The starting point is almost always the same, and it is the slow part: all the team has is the drawings.

To answer the question, an engineer rebuilds the structure from those drawings by hand. They read the framing plan, list every member, work out each one's span, tributary width, and the loads it carries, then run an AISC or SJI calculation on each. It is slow, mechanical transcription, and it happens before any engineering judgment begins.

What if the rating happened on the drawing itself? Read the framing plan, derive each member's inputs with receipts you can check, rate every member with a deterministic code engine, and re-rate the whole plan the moment you add load.

What we built

Exactly that, scoped to one job we could verify end to end: load rating steel beams and joists. A vision LLM reads the sheet, both the pixels and the prose, and a deterministic AISC 360-16 and SJI engine does every calculation. The tool takes one framing-plan page, vector or scanned, extracts each member, anchors a scale from the written dimensions, derives spans and tributary widths, reads the load notes with quote receipts, and rates every W-shape and joist. You correct inputs instead of transcribing them, and an added-load slider re-rates the whole plan at once. The numbers below are measured on the sheet the tool was developed on.

On the bundled Garrett College roof framing sheet, one run finishes in under a minute: it reads all 187 member labels, rates 141 and refuses the other 46 with a stated reason, and flags 78 members as overstressed once a ballasted solar array (+8 psf) is added, up from 34.

VLMdoes only what code cannot: it reads the pixels on scanned sheets, groups members into equal-span banks, and reads the load criteria out of the prose notes. It never computes a structural number.
codedoes the engineering: a deterministic AISC and SJI engine rates every member, and every checkable claim the VLM makes is verified against the sheet first. Anything unverified is tagged and left for you to confirm.
full methodology →
Where this goes

This is an early build, scoped to steel beams and joists, but the structure generalizes. It gets more useful with a firm's own data:

  • The shape and joist tables are a verified core today; a firm's full section library and connection types would widen what gets rated rather than refused.
  • The same read, derive, verify loop extends to other members and other codes, with the VLM still confined to reading and the math still in inspectable code.
Designed and built by Marwan Harajli.
← all demos
Beam rater
extracting
$0.0000
Connection to the run lost. The server may have restarted. Run state is saved on disk; reload to resume.
starting…
0
under 0.80
0
0.80 to 1.00
0
over 1.00
0
not rated
Design loadsedit either value to re-rate the whole plan
reading the load criteria…
members
membergroupspan fttrib ftutilgoverning
Confidence tags: measured/edited = citation machine-verified or set by you; model-grouped / bank-spacing = model judgment or deterministic spacing proxy, unverified; assumed = no basis, member is not rated. Gray members list their refusal reason. Nothing is rated without a complete input chain.
Scale
reading the scale…
run log
Stage letters: A ingest, B members, C scale, D spans, E tributary, F loads, G rating. Mechanism: methodology, top right.
under 0.80 0.80 to 1.00 over 1.00 not rated
0 selected trib is per member, edit in the detail panel
source page for the citation
drag to pan, scroll to zoom, click a dot to select it, shift-drag to select many, click its table row for details
rendering sheet…